You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'akpm' (patches from Andrew)
Merge more updates from Andrew Morton: - a few block updates that fell in my lap - lib/ updates - checkpatch - autofs - ipc - a ton of misc other things * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (100 commits) mm: split gfp_mask and mapping flags into separate fields fs: use mapping_set_error instead of opencoded set_bit treewide: remove redundant #include <linux/kconfig.h> hung_task: allow hung_task_panic when hung_task_warnings is 0 kthread: add kerneldoc for kthread_create() kthread: better support freezable kthread workers kthread: allow to modify delayed kthread work kthread: allow to cancel kthread work kthread: initial support for delayed kthread work kthread: detect when a kthread work is used by more workers kthread: add kthread_destroy_worker() kthread: add kthread_create_worker*() kthread: allow to call __kthread_create_on_node() with va_list args kthread/smpboot: do not park in kthread_create_on_cpu() kthread: kthread worker API cleanup kthread: rename probe_kthread_data() to kthread_probe_data() scripts/tags.sh: enable code completion in VIM mm: kmemleak: avoid using __va() on addresses that don't have a lowmem mapping kdump, vmcoreinfo: report memory sections virtual addresses ipc/sem.c: add cond_resched in exit_sme ...
This commit is contained in:
@@ -126,3 +126,20 @@ means that we won't try quite as hard to get them.
|
||||
|
||||
NOTE: At the moment DMA_ATTR_ALLOC_SINGLE_PAGES is only implemented on ARM,
|
||||
though ARM64 patches will likely be posted soon.
|
||||
|
||||
DMA_ATTR_NO_WARN
|
||||
----------------
|
||||
|
||||
This tells the DMA-mapping subsystem to suppress allocation failure reports
|
||||
(similarly to __GFP_NOWARN).
|
||||
|
||||
On some architectures allocation failures are reported with error messages
|
||||
to the system logs. Although this can help to identify and debug problems,
|
||||
drivers which handle failures (eg, retry later) have no problems with them,
|
||||
and can actually flood the system logs with error messages that aren't any
|
||||
problem at all, depending on the implementation of the retry mechanism.
|
||||
|
||||
So, this provides a way for drivers to avoid those error messages on calls
|
||||
where allocation failures are not a problem, and shouldn't bother the logs.
|
||||
|
||||
NOTE: At the moment DMA_ATTR_NO_WARN is only implemented on PowerPC.
|
||||
|
||||
@@ -57,7 +57,7 @@ Call Trace:
|
||||
[<ffffffff817db154>] kernel_thread_helper+0x4/0x10
|
||||
[<ffffffff81066430>] ? finish_task_switch+0x80/0x110
|
||||
[<ffffffff817d9c04>] ? retint_restore_args+0xe/0xe
|
||||
[<ffffffff81097510>] ? __init_kthread_worker+0x70/0x70
|
||||
[<ffffffff81097510>] ? __kthread_init_worker+0x70/0x70
|
||||
[<ffffffff817db150>] ? gs_change+0xb/0xb
|
||||
|
||||
Line 2776 of block/cfq-iosched.c in v3.0-rc5 is as follows:
|
||||
|
||||
@@ -162,6 +162,15 @@ See the include/linux/kmemleak.h header for the functions prototype.
|
||||
- ``kmemleak_alloc_recursive`` - as kmemleak_alloc but checks the recursiveness
|
||||
- ``kmemleak_free_recursive`` - as kmemleak_free but checks the recursiveness
|
||||
|
||||
The following functions take a physical address as the object pointer
|
||||
and only perform the corresponding action if the address has a lowmem
|
||||
mapping:
|
||||
|
||||
- ``kmemleak_alloc_phys``
|
||||
- ``kmemleak_free_part_phys``
|
||||
- ``kmemleak_not_leak_phys``
|
||||
- ``kmemleak_ignore_phys``
|
||||
|
||||
Dealing with false positives/negatives
|
||||
--------------------------------------
|
||||
|
||||
|
||||
@@ -179,8 +179,19 @@ struct autofs_dev_ioctl {
|
||||
* including this struct */
|
||||
__s32 ioctlfd; /* automount command fd */
|
||||
|
||||
__u32 arg1; /* Command parameters */
|
||||
__u32 arg2;
|
||||
union {
|
||||
struct args_protover protover;
|
||||
struct args_protosubver protosubver;
|
||||
struct args_openmount openmount;
|
||||
struct args_ready ready;
|
||||
struct args_fail fail;
|
||||
struct args_setpipefd setpipefd;
|
||||
struct args_timeout timeout;
|
||||
struct args_requester requester;
|
||||
struct args_expire expire;
|
||||
struct args_askumount askumount;
|
||||
struct args_ismountpoint ismountpoint;
|
||||
};
|
||||
|
||||
char path[0];
|
||||
};
|
||||
@@ -192,8 +203,8 @@ optionally be used to check a specific mount corresponding to a given
|
||||
mount point file descriptor, and when requesting the uid and gid of the
|
||||
last successful mount on a directory within the autofs file system.
|
||||
|
||||
The fields arg1 and arg2 are used to communicate parameters and results of
|
||||
calls made as described below.
|
||||
The union is used to communicate parameters and results of calls made
|
||||
as described below.
|
||||
|
||||
The path field is used to pass a path where it is needed and the size field
|
||||
is used account for the increased structure length when translating the
|
||||
@@ -245,9 +256,9 @@ AUTOFS_DEV_IOCTL_PROTOVER_CMD and AUTOFS_DEV_IOCTL_PROTOSUBVER_CMD
|
||||
Get the major and minor version of the autofs4 protocol version understood
|
||||
by loaded module. This call requires an initialized struct autofs_dev_ioctl
|
||||
with the ioctlfd field set to a valid autofs mount point descriptor
|
||||
and sets the requested version number in structure field arg1. These
|
||||
commands return 0 on success or one of the negative error codes if
|
||||
validation fails.
|
||||
and sets the requested version number in version field of struct args_protover
|
||||
or sub_version field of struct args_protosubver. These commands return
|
||||
0 on success or one of the negative error codes if validation fails.
|
||||
|
||||
|
||||
AUTOFS_DEV_IOCTL_OPENMOUNT and AUTOFS_DEV_IOCTL_CLOSEMOUNT
|
||||
@@ -256,9 +267,9 @@ AUTOFS_DEV_IOCTL_OPENMOUNT and AUTOFS_DEV_IOCTL_CLOSEMOUNT
|
||||
Obtain and release a file descriptor for an autofs managed mount point
|
||||
path. The open call requires an initialized struct autofs_dev_ioctl with
|
||||
the path field set and the size field adjusted appropriately as well
|
||||
as the arg1 field set to the device number of the autofs mount. The
|
||||
device number can be obtained from the mount options shown in
|
||||
/proc/mounts. The close call requires an initialized struct
|
||||
as the devid field of struct args_openmount set to the device number of
|
||||
the autofs mount. The device number can be obtained from the mount options
|
||||
shown in /proc/mounts. The close call requires an initialized struct
|
||||
autofs_dev_ioct with the ioctlfd field set to the descriptor obtained
|
||||
from the open call. The release of the file descriptor can also be done
|
||||
with close(2) so any open descriptors will also be closed at process exit.
|
||||
@@ -272,10 +283,10 @@ AUTOFS_DEV_IOCTL_READY_CMD and AUTOFS_DEV_IOCTL_FAIL_CMD
|
||||
Return mount and expire result status from user space to the kernel.
|
||||
Both of these calls require an initialized struct autofs_dev_ioctl
|
||||
with the ioctlfd field set to the descriptor obtained from the open
|
||||
call and the arg1 field set to the wait queue token number, received
|
||||
by user space in the foregoing mount or expire request. The arg2 field
|
||||
is set to the status to be returned. For the ready call this is always
|
||||
0 and for the fail call it is set to the errno of the operation.
|
||||
call and the token field of struct args_ready or struct args_fail set
|
||||
to the wait queue token number, received by user space in the foregoing
|
||||
mount or expire request. The status field of struct args_fail is set to
|
||||
the errno of the operation. It is set to 0 on success.
|
||||
|
||||
|
||||
AUTOFS_DEV_IOCTL_SETPIPEFD_CMD
|
||||
@@ -290,9 +301,10 @@ mount be catatonic (see next call).
|
||||
|
||||
The call requires an initialized struct autofs_dev_ioctl with the
|
||||
ioctlfd field set to the descriptor obtained from the open call and
|
||||
the arg1 field set to descriptor of the pipe. On success the call
|
||||
also sets the process group id used to identify the controlling process
|
||||
(eg. the owning automount(8) daemon) to the process group of the caller.
|
||||
the pipefd field of struct args_setpipefd set to descriptor of the pipe.
|
||||
On success the call also sets the process group id used to identify the
|
||||
controlling process (eg. the owning automount(8) daemon) to the process
|
||||
group of the caller.
|
||||
|
||||
|
||||
AUTOFS_DEV_IOCTL_CATATONIC_CMD
|
||||
@@ -323,9 +335,8 @@ mount on the given path dentry.
|
||||
|
||||
The call requires an initialized struct autofs_dev_ioctl with the path
|
||||
field set to the mount point in question and the size field adjusted
|
||||
appropriately as well as the arg1 field set to the device number of the
|
||||
containing autofs mount. Upon return the struct field arg1 contains the
|
||||
uid and arg2 the gid.
|
||||
appropriately. Upon return the uid field of struct args_requester contains
|
||||
the uid and gid field the gid.
|
||||
|
||||
When reconstructing an autofs mount tree with active mounts we need to
|
||||
re-connect to mounts that may have used the original process uid and
|
||||
@@ -343,8 +354,9 @@ this ioctl is called until no further expire candidates are found.
|
||||
The call requires an initialized struct autofs_dev_ioctl with the
|
||||
ioctlfd field set to the descriptor obtained from the open call. In
|
||||
addition an immediate expire, independent of the mount timeout, can be
|
||||
requested by setting the arg1 field to 1. If no expire candidates can
|
||||
be found the ioctl returns -1 with errno set to EAGAIN.
|
||||
requested by setting the how field of struct args_expire to 1. If no
|
||||
expire candidates can be found the ioctl returns -1 with errno set to
|
||||
EAGAIN.
|
||||
|
||||
This call causes the kernel module to check the mount corresponding
|
||||
to the given ioctlfd for mounts that can be expired, issues an expire
|
||||
@@ -357,7 +369,8 @@ Checks if an autofs mount point is in use.
|
||||
|
||||
The call requires an initialized struct autofs_dev_ioctl with the
|
||||
ioctlfd field set to the descriptor obtained from the open call and
|
||||
it returns the result in the arg1 field, 1 for busy and 0 otherwise.
|
||||
it returns the result in the may_umount field of struct args_askumount,
|
||||
1 for busy and 0 otherwise.
|
||||
|
||||
|
||||
AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD
|
||||
@@ -369,12 +382,12 @@ The call requires an initialized struct autofs_dev_ioctl. There are two
|
||||
possible variations. Both use the path field set to the path of the mount
|
||||
point to check and the size field adjusted appropriately. One uses the
|
||||
ioctlfd field to identify a specific mount point to check while the other
|
||||
variation uses the path and optionally arg1 set to an autofs mount type.
|
||||
The call returns 1 if this is a mount point and sets arg1 to the device
|
||||
number of the mount and field arg2 to the relevant super block magic
|
||||
number (described below) or 0 if it isn't a mountpoint. In both cases
|
||||
the the device number (as returned by new_encode_dev()) is returned
|
||||
in field arg1.
|
||||
variation uses the path and optionally in.type field of struct args_ismountpoint
|
||||
set to an autofs mount type. The call returns 1 if this is a mount point
|
||||
and sets out.devid field to the device number of the mount and out.magic
|
||||
field to the relevant super block magic number (described below) or 0 if
|
||||
it isn't a mountpoint. In both cases the the device number (as returned
|
||||
by new_encode_dev()) is returned in out.devid field.
|
||||
|
||||
If supplied with a file descriptor we're looking for a specific mount,
|
||||
not necessarily at the top of the mounted stack. In this case the path
|
||||
|
||||
@@ -203,9 +203,9 @@ initiated or is being considered, otherwise it returns 0.
|
||||
Mountpoint expiry
|
||||
-----------------
|
||||
|
||||
The VFS has a mechansim for automatically expiring unused mounts,
|
||||
The VFS has a mechanism for automatically expiring unused mounts,
|
||||
much as it can expire any unused dentry information from the dcache.
|
||||
This is guided by the MNT_SHRINKABLE flag. This only applies to
|
||||
This is guided by the MNT_SHRINKABLE flag. This only applies to
|
||||
mounts that were created by `d_automount()` returning a filesystem to be
|
||||
mounted. As autofs doesn't return such a filesystem but leaves the
|
||||
mounting to the automount daemon, it must involve the automount daemon
|
||||
@@ -298,7 +298,7 @@ remove directories and symlinks using normal filesystem operations.
|
||||
autofs knows whether a process requesting some operation is the daemon
|
||||
or not based on its process-group id number (see getpgid(1)).
|
||||
|
||||
When an autofs filesystem it mounted the pgid of the mounting
|
||||
When an autofs filesystem is mounted the pgid of the mounting
|
||||
processes is recorded unless the "pgrp=" option is given, in which
|
||||
case that number is recorded instead. Any request arriving from a
|
||||
process in that process group is considered to come from the daemon.
|
||||
@@ -450,7 +450,7 @@ Commands are:
|
||||
numbers for existing filesystems can be found in
|
||||
`/proc/self/mountinfo`.
|
||||
- **AUTOFS_DEV_IOCTL_CLOSEMOUNT_CMD**: same as `close(ioctlfd)`.
|
||||
- **AUTOFS_DEV_IOCTL_SETPIPEFD_CMD**: if the filesystem is in
|
||||
- **AUTOFS_DEV_IOCTL_SETPIPEFD_CMD**: if the filesystem is in
|
||||
catatonic mode, this can provide the write end of a new pipe
|
||||
in `arg1` to re-establish communication with a daemon. The
|
||||
process group of the calling process is used to identify the
|
||||
|
||||
@@ -33,6 +33,37 @@ can also be entered as
|
||||
Double-quotes can be used to protect spaces in values, e.g.:
|
||||
param="spaces in here"
|
||||
|
||||
cpu lists:
|
||||
----------
|
||||
|
||||
Some kernel parameters take a list of CPUs as a value, e.g. isolcpus,
|
||||
nohz_full, irqaffinity, rcu_nocbs. The format of this list is:
|
||||
|
||||
<cpu number>,...,<cpu number>
|
||||
|
||||
or
|
||||
|
||||
<cpu number>-<cpu number>
|
||||
(must be a positive range in ascending order)
|
||||
|
||||
or a mixture
|
||||
|
||||
<cpu number>,...,<cpu number>-<cpu number>
|
||||
|
||||
Note that for the special case of a range one can split the range into equal
|
||||
sized groups and for each group use some amount from the beginning of that
|
||||
group:
|
||||
|
||||
<cpu number>-cpu number>:<used size>/<group size>
|
||||
|
||||
For example one can add to the command line following parameter:
|
||||
|
||||
isolcpus=1,2,10-20,100-2000:2/25
|
||||
|
||||
where the final item represents CPUs 100,101,125,126,150,151,...
|
||||
|
||||
|
||||
|
||||
This document may not be entirely up to date and comprehensive. The command
|
||||
"modinfo -p ${modulename}" shows a current list of all parameters of a loadable
|
||||
module. Loadable modules, after being loaded into the running kernel, also
|
||||
@@ -1789,13 +1820,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
See Documentation/filesystems/nfs/nfsroot.txt.
|
||||
|
||||
irqaffinity= [SMP] Set the default irq affinity mask
|
||||
Format:
|
||||
<cpu number>,...,<cpu number>
|
||||
or
|
||||
<cpu number>-<cpu number>
|
||||
(must be a positive range in ascending order)
|
||||
or a mixture
|
||||
<cpu number>,...,<cpu number>-<cpu number>
|
||||
The argument is a cpu list, as described above.
|
||||
|
||||
irqfixup [HW]
|
||||
When an interrupt is not handled search all handlers
|
||||
@@ -1812,13 +1837,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
Format: <RDP>,<reset>,<pci_scan>,<verbosity>
|
||||
|
||||
isolcpus= [KNL,SMP] Isolate CPUs from the general scheduler.
|
||||
Format:
|
||||
<cpu number>,...,<cpu number>
|
||||
or
|
||||
<cpu number>-<cpu number>
|
||||
(must be a positive range in ascending order)
|
||||
or a mixture
|
||||
<cpu number>,...,<cpu number>-<cpu number>
|
||||
The argument is a cpu list, as described above.
|
||||
|
||||
This option can be used to specify one or more CPUs
|
||||
to isolate from the general SMP balancing and scheduling
|
||||
@@ -2680,6 +2699,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
Default: on
|
||||
|
||||
nohz_full= [KNL,BOOT]
|
||||
The argument is a cpu list, as described above.
|
||||
In kernels built with CONFIG_NO_HZ_FULL=y, set
|
||||
the specified list of CPUs whose tick will be stopped
|
||||
whenever possible. The boot CPU will be forced outside
|
||||
@@ -3285,6 +3305,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
See Documentation/blockdev/ramdisk.txt.
|
||||
|
||||
rcu_nocbs= [KNL]
|
||||
The argument is a cpu list, as described above.
|
||||
|
||||
In kernels built with CONFIG_RCU_NOCB_CPU=y, set
|
||||
the specified list of CPUs to be no-callback CPUs.
|
||||
Invocation of these CPUs' RCU callbacks will
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
#ifndef __ASM_ARM_TRUSTED_FOUNDATIONS_H
|
||||
#define __ASM_ARM_TRUSTED_FOUNDATIONS_H
|
||||
|
||||
#include <linux/kconfig.h>
|
||||
#include <linux/printk.h>
|
||||
#include <linux/bug.h>
|
||||
#include <linux/of.h>
|
||||
|
||||
@@ -318,8 +318,7 @@ unsigned long get_wchan(struct task_struct *p)
|
||||
|
||||
unsigned long arch_randomize_brk(struct mm_struct *mm)
|
||||
{
|
||||
unsigned long range_end = mm->brk + 0x02000000;
|
||||
return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
|
||||
return randomize_page(mm->brk, 0x02000000);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/kconfig.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/stddef.h>
|
||||
#include <linux/stringify.h>
|
||||
|
||||
@@ -372,12 +372,8 @@ unsigned long arch_align_stack(unsigned long sp)
|
||||
|
||||
unsigned long arch_randomize_brk(struct mm_struct *mm)
|
||||
{
|
||||
unsigned long range_end = mm->brk;
|
||||
|
||||
if (is_compat_task())
|
||||
range_end += 0x02000000;
|
||||
return randomize_page(mm->brk, 0x02000000);
|
||||
else
|
||||
range_end += 0x40000000;
|
||||
|
||||
return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
|
||||
return randomize_page(mm->brk, 0x40000000);
|
||||
}
|
||||
|
||||
@@ -267,6 +267,17 @@ static void octeon_crash_shutdown(struct pt_regs *regs)
|
||||
default_machine_crash_shutdown(regs);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
void octeon_crash_smp_send_stop(void)
|
||||
{
|
||||
int cpu;
|
||||
|
||||
/* disable watchdogs */
|
||||
for_each_online_cpu(cpu)
|
||||
cvmx_write_csr(CVMX_CIU_WDOGX(cpu_logical_map(cpu)), 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_KEXEC */
|
||||
|
||||
#ifdef CONFIG_CAVIUM_RESERVE32
|
||||
@@ -911,6 +922,9 @@ void __init prom_init(void)
|
||||
_machine_kexec_shutdown = octeon_shutdown;
|
||||
_machine_crash_shutdown = octeon_crash_shutdown;
|
||||
_machine_kexec_prepare = octeon_kexec_prepare;
|
||||
#ifdef CONFIG_SMP
|
||||
_crash_smp_send_stop = octeon_crash_smp_send_stop;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
octeon_user_io_init();
|
||||
|
||||
@@ -45,6 +45,7 @@ extern const unsigned char kexec_smp_wait[];
|
||||
extern unsigned long secondary_kexec_args[4];
|
||||
extern void (*relocated_kexec_smp_wait) (void *);
|
||||
extern atomic_t kexec_ready_to_reboot;
|
||||
extern void (*_crash_smp_send_stop)(void);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/kconfig.h>
|
||||
#include <boot_param.h>
|
||||
|
||||
/* loongson internal northbridge initialization */
|
||||
|
||||
@@ -47,9 +47,14 @@ static void crash_shutdown_secondary(void *passed_regs)
|
||||
|
||||
static void crash_kexec_prepare_cpus(void)
|
||||
{
|
||||
static int cpus_stopped;
|
||||
unsigned int msecs;
|
||||
unsigned int ncpus;
|
||||
|
||||
unsigned int ncpus = num_online_cpus() - 1;/* Excluding the panic cpu */
|
||||
if (cpus_stopped)
|
||||
return;
|
||||
|
||||
ncpus = num_online_cpus() - 1;/* Excluding the panic cpu */
|
||||
|
||||
dump_send_ipi(crash_shutdown_secondary);
|
||||
smp_wmb();
|
||||
@@ -64,6 +69,17 @@ static void crash_kexec_prepare_cpus(void)
|
||||
cpu_relax();
|
||||
mdelay(1);
|
||||
}
|
||||
|
||||
cpus_stopped = 1;
|
||||
}
|
||||
|
||||
/* Override the weak function in kernel/panic.c */
|
||||
void crash_smp_send_stop(void)
|
||||
{
|
||||
if (_crash_smp_send_stop)
|
||||
_crash_smp_send_stop();
|
||||
|
||||
crash_kexec_prepare_cpus();
|
||||
}
|
||||
|
||||
#else /* !defined(CONFIG_SMP) */
|
||||
|
||||
@@ -25,6 +25,7 @@ void (*_machine_crash_shutdown)(struct pt_regs *regs) = NULL;
|
||||
#ifdef CONFIG_SMP
|
||||
void (*relocated_kexec_smp_wait) (void *);
|
||||
atomic_t kexec_ready_to_reboot = ATOMIC_INIT(0);
|
||||
void (*_crash_smp_send_stop)(void) = NULL;
|
||||
#endif
|
||||
|
||||
int
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
*/
|
||||
#include <linux/sched.h>
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/kconfig.h>
|
||||
#include <linux/percpu-defs.h>
|
||||
#include <linux/perf_event.h>
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
#include <linux/errno.h>
|
||||
#include <linux/filter.h>
|
||||
#include <linux/if_vlan.h>
|
||||
#include <linux/kconfig.h>
|
||||
#include <linux/moduleloader.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/string.h>
|
||||
|
||||
@@ -479,7 +479,8 @@ int ppc_iommu_map_sg(struct device *dev, struct iommu_table *tbl,
|
||||
|
||||
/* Handle failure */
|
||||
if (unlikely(entry == DMA_ERROR_CODE)) {
|
||||
if (printk_ratelimit())
|
||||
if (!(attrs & DMA_ATTR_NO_WARN) &&
|
||||
printk_ratelimit())
|
||||
dev_info(dev, "iommu_alloc failed, tbl %p "
|
||||
"vaddr %lx npages %lu\n", tbl, vaddr,
|
||||
npages);
|
||||
@@ -776,7 +777,8 @@ dma_addr_t iommu_map_page(struct device *dev, struct iommu_table *tbl,
|
||||
mask >> tbl->it_page_shift, align,
|
||||
attrs);
|
||||
if (dma_handle == DMA_ERROR_CODE) {
|
||||
if (printk_ratelimit()) {
|
||||
if (!(attrs & DMA_ATTR_NO_WARN) &&
|
||||
printk_ratelimit()) {
|
||||
dev_info(dev, "iommu_alloc failed, tbl %p "
|
||||
"vaddr %p npages %d\n", tbl, vaddr,
|
||||
npages);
|
||||
|
||||
+1
-2
@@ -88,6 +88,5 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
|
||||
|
||||
unsigned long arch_randomize_brk(struct mm_struct *mm)
|
||||
{
|
||||
unsigned long range_end = mm->brk + 0x02000000;
|
||||
return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
|
||||
return randomize_page(mm->brk, 0x02000000);
|
||||
}
|
||||
|
||||
@@ -295,8 +295,7 @@ unsigned long get_wchan(struct task_struct *p)
|
||||
|
||||
unsigned long arch_randomize_brk(struct mm_struct *mm)
|
||||
{
|
||||
unsigned long range_end = mm->brk + 0x02000000;
|
||||
return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
|
||||
return randomize_page(mm->brk, 0x02000000);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user