- md-fix-for-raid6-reshape-fix.patch removed from -mm tree
The patch titled md-fix-for-raid6-reshape-fix has been removed from the -mm tree. Its filename was md-fix-for-raid6-reshape-fix.patch This patch was dropped because it was folded into md-fix-for-raid6-reshape.patch -- Subject: md-fix-for-raid6-reshape-fix From: Andrew Morton [EMAIL PROTECTED] Cc: Neil Brown [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/md/raid5.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/md/raid5.c~md-fix-for-raid6-reshape-fix drivers/md/raid5.c --- a/drivers/md/raid5.c~md-fix-for-raid6-reshape-fix +++ a/drivers/md/raid5.c @@ -3071,7 +3071,7 @@ static sector_t reshape_request(mddev_t release_stripe(sh); } spin_lock_irq(conf-device_lock); - conf-expand_progress = (sector_nr + i) * new_data_disks); + conf-expand_progress = (sector_nr + i) * new_data_disks; spin_unlock_irq(conf-device_lock); /* Ok, those stripe are ready. We can start scheduling * reads on the source stripes. _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch cyclades-return-closing_wait.patch md-fix-for-raid6-reshape.patch md-fix-for-raid6-reshape-fix.patch slab-introduce-krealloc-fix.patch make-aout-executables-work-again-fix.patch sony-laptop-fix-uninitialised-variable.patch git-alsa-oops-fix.patch git-drm.patch git-dvb.patch git-input.patch setstream-param-for-psmouse-tweak.patch git-md-accel-fixup.patch nommu-present-backing-device-capabilities-for-mtd-fix.patch git-ubi.patch git-netdev-all.patch revert-drivers-net-tulip-dmfe-support-basic-carrier-detection.patch dmfe-add-support-for-suspend-resume-fix.patch sis900-warning-fixes.patch div64_64-common-code-fix.patch bonding-replace-system-timer-with-work-queue-tidy.patch git-parisc.patch rm9000-serial-driver-tidy.patch git-pciseg.patch revert-md-avoid-possible-bug_on-in-md-bitmap-handling-for-git-block.patch git-block-fixup.patch git-block-another-md-fix.patch git-unionfs.patch usbatm-create-sysfs-link-device-from-atm-class-device-tidy.patch git-wireless-fixup.patch revert-x86_64-mm-change-sysenter_setup-to-__cpuinit-improve-__init-__initdata.patch after-before-x86_64-mm-mmconfig-share.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix-2.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial-up-fix.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial-tweak.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch driver_bfin_serial_core-update.patch fix-rmmod-read-write-races-in-proc-entries-fix.patch reduce-size-of-task_struct-on-64-bit-machines.patch mm-shrink-parent-dentries-when-shrinking-slab.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2.patch call-cpu_chain-with-cpu_down_failed-if-cpu_down_prepare-failed-vs-reduce-size-of-task_struct-on-64-bit-machines.patch speedup-divides-by-cpu_power-in-scheduler-up-fix.patch lutimesat-compat-syscall-and-wire-up-on-x86_64-tidy.patch utrace-prep.patch utrace-prep-2.patch revert-utrace-prep-2.patch utrace-vs-reduce-size-of-task_struct-on-64-bit-machines.patch local_t-mips-extension-shrink-duplicated-mips-32-64-bits-functions-from-localh-fix.patch linux-kernel-markers-kconfig-menus-fix-4.patch fbdev-hecuba-framebuffer-driver-fix.patch mm-only-free-swap-space-of-reactivated-pages-debug.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
+ ia64-kexec-use-efi_loader_data-for-elf-core-header.patch added to -mm tree
The patch titled ia64 kexec: Use EFI_LOADER_DATA for ELF core header has been added to the -mm tree. Its filename is ia64-kexec-use-efi_loader_data-for-elf-core-header.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this -- Subject: ia64 kexec: Use EFI_LOADER_DATA for ELF core header From: Magnus Damm [EMAIL PROTECTED] The address where the ELF core header is stored is passed to the secondary kernel as a kernel command line option. The memory area for this header is also marked as a separate EFI memory descriptor on ia64. The separate EFI memory descriptor is at the moment of the type EFI_UNUSABLE_MEMORY. With such a type the secondary kernel skips over the entire memory granule (config option, 16M or 64M) when detecting memory. If we are lucky we will just lose some memory, but if we happen to have data in the same granule (such as an initramfs image), then this data will never get mapped and the kernel bombs out when trying to access it. So this is an attempt to fix this by changing the EFI memory descriptor type into EFI_LOADER_DATA. This type is the same type used for the kernel data and for initramfs. In the secondary kernel we then handle the ELF core header data the same way as we handle the initramfs image. This patch contains the kernel changes to make this happen. Pretty straightforward, we reserve the area in reserve_memory(). The address for the area comes from the kernel command line and the size comes from the specialized EFI parsing function vmcore_find_descriptor_size(). The kexec-tools-testing code for this can be found here: http://lists.osdl.org/pipermail/fastboot/2007-February/005983.html Signed-off-by: Magnus Damm [EMAIL PROTECTED] Cc: Simon Horman [EMAIL PROTECTED] Cc: Luck, Tony [EMAIL PROTECTED] Cc: Vivek Goyal [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- arch/ia64/kernel/efi.c | 30 ++ arch/ia64/kernel/setup.c | 30 ++ include/asm-ia64/meminit.h |8 +++- 3 files changed, 67 insertions(+), 1 deletion(-) diff -puN arch/ia64/kernel/efi.c~ia64-kexec-use-efi_loader_data-for-elf-core-header arch/ia64/kernel/efi.c --- a/arch/ia64/kernel/efi.c~ia64-kexec-use-efi_loader_data-for-elf-core-header +++ a/arch/ia64/kernel/efi.c @@ -1183,3 +1183,33 @@ kdump_find_rsvd_region (unsigned long si return ~0UL; } #endif + +#ifdef CONFIG_PROC_VMCORE +/* locate the size find a the descriptor at a certain address */ +unsigned long +vmcore_find_descriptor_size (unsigned long address) +{ + void *efi_map_start, *efi_map_end, *p; + efi_memory_desc_t *md; + u64 efi_desc_size; + unsigned long ret = 0; + + efi_map_start = __va(ia64_boot_param-efi_memmap); + efi_map_end = efi_map_start + ia64_boot_param-efi_memmap_size; + efi_desc_size = ia64_boot_param-efi_memdesc_size; + + for (p = efi_map_start; p efi_map_end; p += efi_desc_size) { + md = p; + if (efi_wb(md) md-type == EFI_LOADER_DATA +md-phys_addr == address) { + ret = efi_md_size(md); + break; + } + } + + if (ret == 0) + printk(KERN_WARNING Cannot locate EFI vmcore descriptor\n); + + return ret; +} +#endif diff -puN arch/ia64/kernel/setup.c~ia64-kexec-use-efi_loader_data-for-elf-core-header arch/ia64/kernel/setup.c --- a/arch/ia64/kernel/setup.c~ia64-kexec-use-efi_loader_data-for-elf-core-header +++ a/arch/ia64/kernel/setup.c @@ -250,6 +250,12 @@ reserve_memory (void) } #endif +#ifdef CONFIG_PROC_VMCORE + if (reserve_elfcorehdr(rsvd_region[n].start, + rsvd_region[n].end) == 0) + n++; +#endif + efi_memmap_init(rsvd_region[n].start, rsvd_region[n].end); n++; @@ -452,6 +458,30 @@ static int __init parse_elfcorehdr(char return 0; } early_param(elfcorehdr, parse_elfcorehdr); + +int __init reserve_elfcorehdr(unsigned long *start, unsigned long *end) +{ + unsigned long length; + + /* We get the address using the kernel command line, +* but the size is extracted from the EFI tables. +* Both address and size are required for reservation +* to work properly. +*/ + + if (elfcorehdr_addr = ELFCORE_ADDR_MAX) + return -EINVAL; + + if ((length = vmcore_find_descriptor_size(elfcorehdr_addr)) == 0) { + elfcorehdr_addr = ELFCORE_ADDR_MAX; + return -EINVAL; + } + + *start = (unsigned long)__va(elfcorehdr_addr); + *end = *start + length; + return 0; +} + #endif /* CONFIG_PROC_VMCORE */ void __init diff -puN
+ ia64-kexec-use-efi_loader_data-for-elf-core-header-tidy.patch added to -mm tree
The patch titled ia64-kexec-use-efi_loader_data-for-elf-core-header-tidy has been added to the -mm tree. Its filename is ia64-kexec-use-efi_loader_data-for-elf-core-header-tidy.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this -- Subject: ia64-kexec-use-efi_loader_data-for-elf-core-header-tidy From: Andrew Morton [EMAIL PROTECTED] no need for ifdefs around declarations. Cc: Luck, Tony [EMAIL PROTECTED] Cc: Magnus Damm [EMAIL PROTECTED] Cc: Simon Horman [EMAIL PROTECTED] Cc: Vivek Goyal [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- include/asm-ia64/meminit.h |4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff -puN include/asm-ia64/meminit.h~ia64-kexec-use-efi_loader_data-for-elf-core-header-tidy include/asm-ia64/meminit.h --- a/include/asm-ia64/meminit.h~ia64-kexec-use-efi_loader_data-for-elf-core-header-tidy +++ a/include/asm-ia64/meminit.h @@ -37,10 +37,8 @@ extern void find_initrd (void); extern int filter_rsvd_memory (unsigned long start, unsigned long end, void *arg); extern void efi_memmap_init(unsigned long *, unsigned long *); -#ifdef CONFIG_PROC_VMCORE -extern unsigned long vmcore_find_descriptor_size (unsigned long address); +extern unsigned long vmcore_find_descriptor_size(unsigned long address); extern int reserve_elfcorehdr(unsigned long *start, unsigned long *end); -#endif /* * For rounding an address to the next IA64_GRANULE_SIZE or order _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch cyclades-return-closing_wait.patch slab-introduce-krealloc-fix.patch make-aout-executables-work-again-fix.patch sony-laptop-fix-uninitialised-variable.patch git-alsa-oops-fix.patch git-drm.patch git-dvb.patch ia64-kexec-use-efi_loader_data-for-elf-core-header-tidy.patch git-input.patch setstream-param-for-psmouse-tweak.patch git-md-accel-fixup.patch nommu-present-backing-device-capabilities-for-mtd-fix.patch git-ubi.patch git-netdev-all.patch revert-drivers-net-tulip-dmfe-support-basic-carrier-detection.patch dmfe-add-support-for-suspend-resume-fix.patch sis900-warning-fixes.patch div64_64-common-code-fix.patch bonding-replace-system-timer-with-work-queue-tidy.patch git-parisc.patch rm9000-serial-driver-tidy.patch git-pciseg.patch revert-md-avoid-possible-bug_on-in-md-bitmap-handling-for-git-block.patch git-block-fixup.patch git-block-another-md-fix.patch git-unionfs.patch usbatm-create-sysfs-link-device-from-atm-class-device-tidy.patch git-wireless-fixup.patch revert-x86_64-mm-change-sysenter_setup-to-__cpuinit-improve-__init-__initdata.patch after-before-x86_64-mm-mmconfig-share.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix-2.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial-up-fix.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial-tweak.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch driver_bfin_serial_core-update.patch fix-rmmod-read-write-races-in-proc-entries-fix.patch reduce-size-of-task_struct-on-64-bit-machines.patch mm-shrink-parent-dentries-when-shrinking-slab.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2.patch call-cpu_chain-with-cpu_down_failed-if-cpu_down_prepare-failed-vs-reduce-size-of-task_struct-on-64-bit-machines.patch speedup-divides-by-cpu_power-in-scheduler-up-fix.patch lutimesat-compat-syscall-and-wire-up-on-x86_64-tidy.patch utrace-prep.patch utrace-prep-2.patch revert-utrace-prep-2.patch utrace-vs-reduce-size-of-task_struct-on-64-bit-machines.patch local_t-mips-extension-shrink-duplicated-mips-32-64-bits-functions-from-localh-fix.patch linux-kernel-markers-kconfig-menus-fix-4.patch fbdev-hecuba-framebuffer-driver-fix.patch mm-only-free-swap-space-of-reactivated-pages-debug.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
+ cleanup-the-includes-of-linux-pcih-fix.patch added to -mm tree
The patch titled cleanup-the-includes-of-linux-pcih-fix has been added to the -mm tree. Its filename is cleanup-the-includes-of-linux-pcih-fix.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this -- Subject: cleanup-the-includes-of-linux-pcih-fix From: Andrew Morton [EMAIL PROTECTED] In file included from include/linux/scatterlist.h:4, from drivers/scsi/libsas/sas_expander.c:25: include/asm/scatterlist.h:7: error: expected specifier-qualifier-list before 'dma_addr_t' In file included from drivers/scsi/libsas/sas_expander.c:25: include/linux/scatterlist.h: In function 'sg_set_buf': include/linux/scatterlist.h:13: error: 'struct scatterlist' has no member named 'length' In file included from include/linux/dma-mapping.h:34, from include/asm-generic/pci-dma-compat.h:7, from include/asm/pci.h:114, from include/linux/pci.h:766, from include/scsi/libsas.h:31, from drivers/scsi/libsas/sas_internal.h:32, from drivers/scsi/libsas/sas_expander.c:27: include/asm/dma-mapping.h: In function 'dma_map_sg': include/asm/dma-mapping.h:44: error: 'struct scatterlist' has no member named 'length' include/asm/dma-mapping.h:44: warning: type defaults to 'int' in declaration of '__ret_warn_on' include/asm/dma-mapping.h:44: error: 'struct scatterlist' has no member named 'length' include/asm/dma-mapping.h:49: error: 'struct scatterlist' has no member named 'dma_address' make[1]: *** [drivers/scsi/libsas/sas_expander.o] Error 1 make: *** [drivers/scsi/libsas/sas_expander.o] Error 2 Cc: Jean Delvare [EMAIL PROTECTED] Cc: Greg KH [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- include/asm-i386/scatterlist.h |2 ++ 1 file changed, 2 insertions(+) diff -puN include/asm-i386/scatterlist.h~cleanup-the-includes-of-linux-pcih-fix include/asm-i386/scatterlist.h --- a/include/asm-i386/scatterlist.h~cleanup-the-includes-of-linux-pcih-fix +++ a/include/asm-i386/scatterlist.h @@ -1,6 +1,8 @@ #ifndef _I386_SCATTERLIST_H #define _I386_SCATTERLIST_H +#include linux/types.h + struct scatterlist { struct page*page; unsigned int offset; _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch cyclades-return-closing_wait.patch slab-introduce-krealloc-fix.patch make-aout-executables-work-again-fix.patch sony-laptop-fix-uninitialised-variable.patch git-alsa-oops-fix.patch git-drm.patch git-dvb.patch ia64-kexec-use-efi_loader_data-for-elf-core-header-tidy.patch git-input.patch setstream-param-for-psmouse-tweak.patch git-md-accel-fixup.patch nommu-present-backing-device-capabilities-for-mtd-fix.patch git-ubi.patch git-netdev-all.patch revert-drivers-net-tulip-dmfe-support-basic-carrier-detection.patch dmfe-add-support-for-suspend-resume-fix.patch sis900-warning-fixes.patch div64_64-common-code-fix.patch bonding-replace-system-timer-with-work-queue-tidy.patch git-parisc.patch rm9000-serial-driver-tidy.patch cleanup-the-includes-of-linux-pcih-fix.patch git-pciseg.patch revert-md-avoid-possible-bug_on-in-md-bitmap-handling-for-git-block.patch git-block-fixup.patch git-block-another-md-fix.patch git-unionfs.patch usbatm-create-sysfs-link-device-from-atm-class-device-tidy.patch git-wireless-fixup.patch revert-x86_64-mm-change-sysenter_setup-to-__cpuinit-improve-__init-__initdata.patch after-before-x86_64-mm-mmconfig-share.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix-2.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial-up-fix.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial-tweak.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch driver_bfin_serial_core-update.patch fix-rmmod-read-write-races-in-proc-entries-fix.patch reduce-size-of-task_struct-on-64-bit-machines.patch mm-shrink-parent-dentries-when-shrinking-slab.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2.patch call-cpu_chain-with-cpu_down_failed-if-cpu_down_prepare-failed-vs-reduce-size-of-task_struct-on-64-bit-machines.patch speedup-divides-by-cpu_power-in-scheduler-up-fix.patch lutimesat-compat-syscall-and-wire-up-on-x86_64-tidy.patch utrace-prep.patch utrace-prep-2.patch revert-utrace-prep-2.patch utrace-vs-reduce-size-of-task_struct-on-64-bit-machines.patch local_t-mips-extension-shrink-duplicated-mips-32-64-bits-functions-from-localh-fix.patch linux-kernel-markers-kconfig-menus-fix-4.patch fbdev-hecuba-framebuffer-driver-fix.patch mm-only-free-swap-space-of-reactivated-pages-debug.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED]
+ git-netdev-all-ipw2200-fix.patch added to -mm tree
The patch titled git-netdev-all: ipw2200 fix has been added to the -mm tree. Its filename is git-netdev-all-ipw2200-fix.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this -- Subject: git-netdev-all: ipw2200 fix From: Andrew Morton [EMAIL PROTECTED] drivers/net/wireless/ipw2200.c: In function 'show_channels': drivers/net/wireless/ipw2200.c:1855: warning: implicit declaration of function 'ipw_get_geo' drivers/net/wireless/ipw2200.c:1855: warning: initialization makes pointer from integer without a cast Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/net/wireless/ipw2200.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/net/wireless/ipw2200.c~git-netdev-all-ipw2200-fix drivers/net/wireless/ipw2200.c --- a/drivers/net/wireless/ipw2200.c~git-netdev-all-ipw2200-fix +++ a/drivers/net/wireless/ipw2200.c @@ -1852,7 +1852,7 @@ static ssize_t show_channels(struct devi char *buf) { struct ipw_priv *priv = dev_get_drvdata(d); - const struct ieee80211_geo *geo = ipw_get_geo(priv-ieee); + const struct ieee80211_geo *geo = ieee80211_get_geo(priv-ieee); int len = 0, i; len = sprintf(buf[len], _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch cyclades-return-closing_wait.patch slab-introduce-krealloc-fix.patch make-aout-executables-work-again-fix.patch sony-laptop-fix-uninitialised-variable.patch git-alsa-oops-fix.patch git-drm.patch git-dvb.patch ia64-kexec-use-efi_loader_data-for-elf-core-header-tidy.patch git-input.patch setstream-param-for-psmouse-tweak.patch git-md-accel-fixup.patch nommu-present-backing-device-capabilities-for-mtd-fix.patch git-ubi.patch git-netdev-all.patch git-netdev-all-ipw2200-fix.patch revert-drivers-net-tulip-dmfe-support-basic-carrier-detection.patch dmfe-add-support-for-suspend-resume-fix.patch sis900-warning-fixes.patch div64_64-common-code-fix.patch bonding-replace-system-timer-with-work-queue-tidy.patch git-parisc.patch rm9000-serial-driver-tidy.patch cleanup-the-includes-of-linux-pcih-fix.patch git-pciseg.patch revert-md-avoid-possible-bug_on-in-md-bitmap-handling-for-git-block.patch git-block-fixup.patch git-block-another-md-fix.patch git-unionfs.patch usbatm-create-sysfs-link-device-from-atm-class-device-tidy.patch git-wireless-fixup.patch revert-x86_64-mm-change-sysenter_setup-to-__cpuinit-improve-__init-__initdata.patch after-before-x86_64-mm-mmconfig-share.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix-2.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial-up-fix.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial-tweak.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch driver_bfin_serial_core-update.patch fix-rmmod-read-write-races-in-proc-entries-fix.patch reduce-size-of-task_struct-on-64-bit-machines.patch mm-shrink-parent-dentries-when-shrinking-slab.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2.patch call-cpu_chain-with-cpu_down_failed-if-cpu_down_prepare-failed-vs-reduce-size-of-task_struct-on-64-bit-machines.patch speedup-divides-by-cpu_power-in-scheduler-up-fix.patch lutimesat-compat-syscall-and-wire-up-on-x86_64-tidy.patch utrace-prep.patch utrace-prep-2.patch revert-utrace-prep-2.patch utrace-vs-reduce-size-of-task_struct-on-64-bit-machines.patch local_t-mips-extension-shrink-duplicated-mips-32-64-bits-functions-from-localh-fix.patch linux-kernel-markers-kconfig-menus-fix-4.patch fbdev-hecuba-framebuffer-driver-fix.patch mm-only-free-swap-space-of-reactivated-pages-debug.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
+ fbdev-add-ultrasharp-uxga-to-broken-monitor-database-fix.patch added to -mm tree
The patch titled fbdev: fix Sharp UXGA checking has been added to the -mm tree. Its filename is fbdev-add-ultrasharp-uxga-to-broken-monitor-database-fix.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this -- Subject: fbdev: fix Sharp UXGA checking From: Antonino A. Daplas [EMAIL PROTECTED] If the Ultrasharp UXGA is detected, the check function returns a nonzero value. It should return the type of fix instead. Signed-off-by: Antonino Daplas [EMAIL PROTECTED] Cc: James Simmons [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/video/fbmon.c |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff -puN drivers/video/fbmon.c~fbdev-add-ultrasharp-uxga-to-broken-monitor-database-fix drivers/video/fbmon.c --- a/drivers/video/fbmon.c~fbdev-add-ultrasharp-uxga-to-broken-monitor-database-fix +++ a/drivers/video/fbmon.c @@ -183,10 +183,11 @@ static int check_edid(unsigned char *edi break; case FBMON_FIX_TIMINGS: b = edid + DETAILED_TIMING_DESCRIPTIONS_START; + ret = fix; for (i = 0; i 4; i++) { if (edid_is_limits_block(b)) { - ret = fix; + ret = 0; break; } _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch atyfb-fix-kconfig-error.patch fbdev-add-ultrasharp-uxga-to-broken-monitor-database.patch fbdev-add-ultrasharp-uxga-to-broken-monitor-database-fix.patch intelfb-fix-ring-space-calculation.patch nvidiafb-bring-back-generic-ddc-reading.patch nvidiafb-bring-back-generic-ddc-reading-fix.patch fbdev-ignore-vesa-modes-if-framebuffer-is-disabled.patch fbdev-fix-obvious-bug-in-show_pan.patch neofb-fill-transp-msb_right-with-the-correct.patch atyfb-kill-dead-code.patch fbdev-mm-deferred-io-support.patch fbdev-hecuba-framebuffer-driver.patch fbdev-hecuba-framebuffer-driver-fix.patch nvidiafb-backlight-fix-implicit-declaration-in-nv_backlight.patch atyfb-fix-kconfig-error-part-2.patch fbdev-fix-kconfig-error-if-fb_ddc=n.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
+ fbdev-fix-kconfig-error-if-fb_ddc=n.patch added to -mm tree
The patch titled fbdev: fix kconfig error if FB_DDC=n has been added to the -mm tree. Its filename is fbdev-fix-kconfig-error-if-fb_ddc=n.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this -- Subject: fbdev: fix kconfig error if FB_DDC=n From: James Simmons [EMAIL PROTECTED] Fix the following error if FB_DDC=n Kernel: arch/x86_64/boot/bzImage is ready (#1) Building modules, stage 2. MODPOST 229 modules WARNING: fb_ddc_read [drivers/video/nvidia/nvidiafb.ko] undefined! make[1]: *** [__modpost] Error 1 Signed-off-by: Antonino Daplas [EMAIL PROTECTED] Cc: James Simmons [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/video/Kconfig | 16 +++- 1 file changed, 7 insertions(+), 9 deletions(-) diff -puN drivers/video/Kconfig~fbdev-fix-kconfig-error-if-fb_ddc=n drivers/video/Kconfig --- a/drivers/video/Kconfig~fbdev-fix-kconfig-error-if-fb_ddc=n +++ a/drivers/video/Kconfig @@ -707,8 +707,6 @@ config FB_S1D13XXX config FB_NVIDIA tristate nVidia Framebuffer Support depends on FB PCI - select I2C_ALGOBIT if FB_NVIDIA_I2C - select I2C if FB_NVIDIA_I2C select FB_BACKLIGHT if FB_NVIDIA_BACKLIGHT select FB_MODE_HELPERS select FB_CFB_FILLRECT @@ -727,6 +725,7 @@ config FB_NVIDIA config FB_NVIDIA_I2C bool Enable DDC Support depends on FB_NVIDIA + select FB_DDC help This enables I2C support for nVidia Chipsets. This is used only for getting EDID information from the attached display @@ -746,7 +745,6 @@ config FB_NVIDIA_BACKLIGHT config FB_RIVA tristate nVidia Riva support depends on FB PCI - select FB_DDC if FB_RIVA_I2C select FB_BACKLIGHT if FB_RIVA_BACKLIGHT select FB_MODE_HELPERS select FB_CFB_FILLRECT @@ -764,6 +762,7 @@ config FB_RIVA config FB_RIVA_I2C bool Enable DDC Support depends on FB_RIVA + select FB_DDC help This enables I2C support for nVidia Chipsets. This is used only for getting EDID information from the attached display @@ -842,8 +841,6 @@ config FB_INTEL depends on FB EXPERIMENTAL PCI X86 select AGP select AGP_INTEL - select I2C_ALGOBIT if FB_INTEL_I2C - select I2C if FB_INTEL_I2C select FB_MODE_HELPERS select FB_CFB_FILLRECT select FB_CFB_COPYAREA @@ -876,6 +873,7 @@ config FB_INTEL_DEBUG config FB_INTEL_I2C bool DDC/I2C for Intel framebuffer support depends on FB_INTEL + select FB_DDC default y help Say Y here if you want DDC/I2C support for your on-board Intel graphics. @@ -954,8 +952,8 @@ config FB_MATROX_G config FB_MATROX_I2C tristate Matrox I2C support - depends on FB_MATROX I2C - select I2C_ALGOBIT + depends on FB_MATROX + select FB_DDC ---help--- This drivers creates I2C buses which are needed for accessing the DDC (I2C) bus present on all Matroxes, an I2C bus which @@ -1023,7 +1021,6 @@ config FB_MATROX_MULTIHEAD config FB_RADEON tristate ATI Radeon display support depends on FB PCI - select FB_DDC if FB_RADEON_I2C select FB_BACKLIGHT if FB_RADEON_BACKLIGHT select FB_MODE_HELPERS select FB_CFB_FILLRECT @@ -1048,6 +1045,7 @@ config FB_RADEON config FB_RADEON_I2C bool DDC/I2C for ATI Radeon support depends on FB_RADEON + select FB_DDC default y help Say Y here if you want DDC/I2C support for your Radeon board. @@ -1155,7 +1153,6 @@ config FB_S3 config FB_SAVAGE tristate S3 Savage support depends on FB PCI EXPERIMENTAL - select FB_DDC if FB_SAVAGE_I2C select FB_MODE_HELPERS select FB_CFB_FILLRECT select FB_CFB_COPYAREA @@ -1172,6 +1169,7 @@ config FB_SAVAGE config FB_SAVAGE_I2C bool Enable DDC2 Support depends on FB_SAVAGE + select FB_DDC help This enables I2C support for S3 Savage Chipsets. This is used only for getting EDID information from the attached display _ Patches currently in -mm which might be from [EMAIL PROTECTED] are ps3fb-thread-updates.patch ps3av-thread-updates.patch ps3fb-kill-superfluous-zero-initializations.patch ps3av-misc-updates.patch aty128fb-fix-blanking.patch change-rivafb_remove-to-__devexit.patch atyfb-replace-busy-loop-with-mdelay.patch fbdev-display-class.patch fbdev-display-class-update.patch fbdev-add-ultrasharp-uxga-to-broken-monitor-database-fix.patch tgafb-turbochannel-support.patch tgafb-accelerated-code.patch nvidiafb-backlight-fix-implicit-declaration-in-nv_backlight.patch atyfb-fix-kconfig-error-part-2.patch
+ nvidiafb-backlight-fix-implicit-declaration-in-nv_backlight.patch added to -mm tree
The patch titled nvidiafb backlight: Fix implicit declaration in nv_backlight has been added to the -mm tree. Its filename is nvidiafb-backlight-fix-implicit-declaration-in-nv_backlight.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this -- Subject: nvidiafb backlight: Fix implicit declaration in nv_backlight From: Dave Jones [EMAIL PROTECTED] drivers/video/nvidia/nv_backlight.c: In function 'nvidia_bl_init': drivers/video/nvidia/nv_backlight.c:103: error: implicit declaration of function 'pmac_has_backlight_type' Signed-off-by: Dave Jones [EMAIL PROTECTED] Signed-off-by: Antonino Daplas [EMAIL PROTECTED] Cc: James Simmons [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/video/nvidia/nv_backlight.c |5 + 1 file changed, 5 insertions(+) diff -puN drivers/video/nvidia/nv_backlight.c~nvidiafb-backlight-fix-implicit-declaration-in-nv_backlight drivers/video/nvidia/nv_backlight.c --- a/drivers/video/nvidia/nv_backlight.c~nvidiafb-backlight-fix-implicit-declaration-in-nv_backlight +++ a/drivers/video/nvidia/nv_backlight.c @@ -12,6 +12,11 @@ #include linux/backlight.h #include linux/fb.h #include linux/pci.h + +#ifdef CONFIG_PMAC_BACKLIGHT +#include asm/backlight.h +#endif + #include nv_local.h #include nv_type.h #include nv_proto.h _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch nvidiafb-backlight-fix-implicit-declaration-in-nv_backlight.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
+ atyfb-fix-kconfig-error-part-2.patch added to -mm tree
The patch titled atyfb: fix kconfig error part 2 has been added to the -mm tree. Its filename is atyfb-fix-kconfig-error-part-2.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this -- Subject: atyfb: fix kconfig error part 2 From: Randy Dunlap [EMAIL PROTECTED] Fix implicit declarations and missing code in atyfb. drivers/video/aty/atyfb_base.c:2137: warning: implicit declaration of function 'a ty_ld_lcd' drivers/video/aty/atyfb_base.c:2154: warning: implicit declaration of function 'a ty_st_lcd' atyfb_base.c:(.text+0x33e5c): undefined reference to `aty_ld_lcd' atyfb_base.c:(.text+0x33eb2): undefined reference to `aty_st_lcd' Signed-off-by: Randy Dunlap [EMAIL PROTECTED] Signed-off-by: Antonino Daplas [EMAIL PROTECTED] Cc: James Simmons [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/video/aty/atyfb.h |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff -puN drivers/video/aty/atyfb.h~atyfb-fix-kconfig-error-part-2 drivers/video/aty/atyfb.h --- a/drivers/video/aty/atyfb.h~atyfb-fix-kconfig-error-part-2 +++ a/drivers/video/aty/atyfb.h @@ -284,7 +284,8 @@ static inline void aty_st_8(int regindex #endif } -#if defined(CONFIG_PM) || defined(CONFIG_PMAC_BACKLIGHT) || defined (CONFIG_FB_ATY_GENERIC_LCD) +#if defined(CONFIG_PM) || defined(CONFIG_PMAC_BACKLIGHT) || \ +defined (CONFIG_FB_ATY_GENERIC_LCD) || defined (CONFIG_FB_ATY_BACKLIGHT) extern void aty_st_lcd(int index, u32 val, const struct atyfb_par *par); extern u32 aty_ld_lcd(int index, const struct atyfb_par *par); #endif _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch git-drm.patch phy-layer-add-kernel-doc-docbook.patch fusion-kernel-doc-warning-fixes.patch scripts-kernel-doc-whitespace-cleanup.patch extend-notifier_call_chain-to-count-nr_calls-made-fixes.patch reiser4-use-null-for-pointers.patch atyfb-fix-kconfig-error-part-2.patch profile_likely-export-do_check_likely.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- cleanup-the-includes-of-linux-pcih-fix.patch removed from -mm tree
The patch titled cleanup-the-includes-of-linux-pcih-fix has been removed from the -mm tree. Its filename was cleanup-the-includes-of-linux-pcih-fix.patch This patch was dropped because it is obsolete -- Subject: cleanup-the-includes-of-linux-pcih-fix From: Andrew Morton [EMAIL PROTECTED] In file included from include/linux/scatterlist.h:4, from drivers/scsi/libsas/sas_expander.c:25: include/asm/scatterlist.h:7: error: expected specifier-qualifier-list before 'dma_addr_t' In file included from drivers/scsi/libsas/sas_expander.c:25: include/linux/scatterlist.h: In function 'sg_set_buf': include/linux/scatterlist.h:13: error: 'struct scatterlist' has no member named 'length' In file included from include/linux/dma-mapping.h:34, from include/asm-generic/pci-dma-compat.h:7, from include/asm/pci.h:114, from include/linux/pci.h:766, from include/scsi/libsas.h:31, from drivers/scsi/libsas/sas_internal.h:32, from drivers/scsi/libsas/sas_expander.c:27: include/asm/dma-mapping.h: In function 'dma_map_sg': include/asm/dma-mapping.h:44: error: 'struct scatterlist' has no member named 'length' include/asm/dma-mapping.h:44: warning: type defaults to 'int' in declaration of '__ret_warn_on' include/asm/dma-mapping.h:44: error: 'struct scatterlist' has no member named 'length' include/asm/dma-mapping.h:49: error: 'struct scatterlist' has no member named 'dma_address' make[1]: *** [drivers/scsi/libsas/sas_expander.o] Error 1 make: *** [drivers/scsi/libsas/sas_expander.o] Error 2 Cc: Jean Delvare [EMAIL PROTECTED] Cc: Greg KH [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- include/asm-i386/scatterlist.h |2 ++ 1 file changed, 2 insertions(+) diff -puN include/asm-i386/scatterlist.h~cleanup-the-includes-of-linux-pcih-fix include/asm-i386/scatterlist.h --- a/include/asm-i386/scatterlist.h~cleanup-the-includes-of-linux-pcih-fix +++ a/include/asm-i386/scatterlist.h @@ -1,6 +1,8 @@ #ifndef _I386_SCATTERLIST_H #define _I386_SCATTERLIST_H +#include linux/types.h + struct scatterlist { struct page*page; unsigned int offset; _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch cyclades-return-closing_wait.patch slab-introduce-krealloc-fix.patch make-aout-executables-work-again-fix.patch sony-laptop-fix-uninitialised-variable.patch git-alsa-oops-fix.patch git-drm.patch git-dvb.patch ia64-kexec-use-efi_loader_data-for-elf-core-header-tidy.patch git-input.patch setstream-param-for-psmouse-tweak.patch git-md-accel-fixup.patch nommu-present-backing-device-capabilities-for-mtd-fix.patch git-ubi.patch git-netdev-all.patch git-netdev-all-ipw2200-fix.patch revert-drivers-net-tulip-dmfe-support-basic-carrier-detection.patch dmfe-add-support-for-suspend-resume-fix.patch sis900-warning-fixes.patch div64_64-common-code-fix.patch bonding-replace-system-timer-with-work-queue-tidy.patch git-parisc.patch rm9000-serial-driver-tidy.patch cleanup-the-includes-of-linux-pcih-fix.patch git-pciseg.patch revert-md-avoid-possible-bug_on-in-md-bitmap-handling-for-git-block.patch git-block-fixup.patch git-block-another-md-fix.patch git-unionfs.patch usbatm-create-sysfs-link-device-from-atm-class-device-tidy.patch git-wireless-fixup.patch revert-x86_64-mm-change-sysenter_setup-to-__cpuinit-improve-__init-__initdata.patch after-before-x86_64-mm-mmconfig-share.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix-2.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial-up-fix.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial-tweak.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch driver_bfin_serial_core-update.patch fix-rmmod-read-write-races-in-proc-entries-fix.patch reduce-size-of-task_struct-on-64-bit-machines.patch mm-shrink-parent-dentries-when-shrinking-slab.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2.patch call-cpu_chain-with-cpu_down_failed-if-cpu_down_prepare-failed-vs-reduce-size-of-task_struct-on-64-bit-machines.patch speedup-divides-by-cpu_power-in-scheduler-up-fix.patch lutimesat-compat-syscall-and-wire-up-on-x86_64-tidy.patch utrace-prep.patch utrace-prep-2.patch revert-utrace-prep-2.patch utrace-vs-reduce-size-of-task_struct-on-64-bit-machines.patch local_t-mips-extension-shrink-duplicated-mips-32-64-bits-functions-from-localh-fix.patch linux-kernel-markers-kconfig-menus-fix-4.patch fbdev-hecuba-framebuffer-driver-fix.patch mm-only-free-swap-space-of-reactivated-pages-debug.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- fully-honor-vdso_enabled.patch removed from -mm tree
The patch titled fully honor vdso_enabled [i386, sh; x86_64?] has been removed from the -mm tree. Its filename was fully-honor-vdso_enabled.patch This patch was dropped because I am hopelessly confused - please resend -- Subject: fully honor vdso_enabled [i386, sh; x86_64?] From: John Reiser [EMAIL PROTECTED] Architectures such as i386, sh, x86_64 have a flag /proc/sys/vm/vdso_enabled to choose whether the kernel should setup a process to use vdso after execve(). Informing the user code via AT_SYSINFO* is controlled by macro ARCH_DLINFO in fs/binfmt_elf.c and include/asm-$ARCH/elf.h, but the vdso page is established always via arch_setup_additonal_pages() called from load_elf_binary(). If vdso_enabled is off, then current code wastes kernel time during execve() and fragments the address space unnecessarily. This patch changes arch_setup_additonal_pages() to honor vdso_enabled. For i386 it also allows the option of a fixed addresss to avoid fragmenting the address space. Compiles and runs on i386. x86_64 [IA32 support] and sh maintainers also please comment. For some related history, including interaction with exec-shield, see: http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=229304 and also 207020 and 162797. Signed-off-by: John Reiser [EMAIL PROTECTED] Cc: Andi Kleen [EMAIL PROTECTED] Cc: Ingo Molnar [EMAIL PROTECTED] Cc: Arjan van de Ven [EMAIL PROTECTED] Acked-by: Paul Mundt [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- arch/i386/kernel/sysenter.c| 19 ++- arch/sh/kernel/vsyscall/vsyscall.c |3 +++ include/asm-i386/a.out.h |2 +- 3 files changed, 22 insertions(+), 2 deletions(-) diff -puN arch/i386/kernel/sysenter.c~fully-honor-vdso_enabled arch/i386/kernel/sysenter.c --- a/arch/i386/kernel/sysenter.c~fully-honor-vdso_enabled +++ a/arch/i386/kernel/sysenter.c @@ -22,6 +22,8 @@ #include asm/msr.h #include asm/pgtable.h #include asm/unistd.h +#include asm/a.out.h +#include asm/mman.h /* * Should the kernel map a VDSO page into processes and pass its @@ -105,10 +107,25 @@ int arch_setup_additional_pages(struct l { struct mm_struct *mm = current-mm; unsigned long addr; + unsigned long flags; int ret; + switch (vdso_enabled) { + case 0: /* none */ + return 0; + default: + case 1: /* vdso in random available page */ + addr = 0ul; + flags = 0ul; + break; + case 2: /* out of user's way */ + addr = STACK_TOP; + flags = MAP_FIXED; + break; + } + down_write(mm-mmap_sem); - addr = get_unmapped_area(NULL, 0, PAGE_SIZE, 0, 0); + addr = get_unmapped_area(NULL, addr, PAGE_SIZE, 0, flags); if (IS_ERR_VALUE(addr)) { ret = addr; goto up_fail; diff -puN arch/sh/kernel/vsyscall/vsyscall.c~fully-honor-vdso_enabled arch/sh/kernel/vsyscall/vsyscall.c --- a/arch/sh/kernel/vsyscall/vsyscall.c~fully-honor-vdso_enabled +++ a/arch/sh/kernel/vsyscall/vsyscall.c @@ -64,6 +64,9 @@ int arch_setup_additional_pages(struct l unsigned long addr; int ret; + if (!vdso_enabled) + return 0; + down_write(mm-mmap_sem); addr = get_unmapped_area(NULL, 0, PAGE_SIZE, 0, 0); if (IS_ERR_VALUE(addr)) { diff -puN include/asm-i386/a.out.h~fully-honor-vdso_enabled include/asm-i386/a.out.h --- a/include/asm-i386/a.out.h~fully-honor-vdso_enabled +++ a/include/asm-i386/a.out.h @@ -19,7 +19,7 @@ struct exec #ifdef __KERNEL__ -#define STACK_TOP TASK_SIZE +#define STACK_TOP (TASK_SIZE - PAGE_SIZE) /* 1 page optional for vdso */ #endif _ Patches currently in -mm which might be from [EMAIL PROTECTED] are fully-honor-vdso_enabled.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
mm snapshot broken-out-2007-03-05-02-22.tar.gz uploaded
The mm snapshot broken-out-2007-03-05-02-22.tar.gz has been uploaded to ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/mm/broken-out-2007-03-05-02-22.tar.gz It contains the following patches against 2.6.21-rc2: origin.patch cyclades-return-closing_wait.patch io_apic-needs-apicdefh.patch msi-sanely-support-hardware-level-msi-disabling.patch msi-fixup-the-msi-enable-disable-logic.patch msi-support-masking-msi-irqs-without-a-mask-bit.patch ecryptfs-check-xattr-operation-support-fix.patch parport-is-an-orphan.patch fix-soft-lockup-with-iseries-viocd-driver.patch add-config_generic_gpio.patch gpio_keys-driver-shouldnt-be-arm-specific.patch dz-remove-struct-pt_regs-references.patch shmem-and-simple-const-super_operations.patch sched-remove-smt-nice.patch fb-sm501fb-off-by-1-sysfs-store.patch page-migration-fix-vma-flag-checking.patch vmi-timer-fixes-round-two.patch vmi-sched-clock-paravirt-op-fix.patch vmi-cpu-cycles-fix.patch vmi-fix-highpte.patch vmi-paravirt-drop-udelay-op.patch vmi-pit-override.patch vmi-fix-nohz-compile.patch vmi-apic-ops.patch vmi-smp-fixes.patch md-fix-for-raid6-reshape.patch fix-nmi-appears-to-be-stuck.patch ecryptfs-lower-root-result-must-be-adirectory.patch ecryptfs-handles-aop_truncated_page-better.patch ipmi-check-if-default-ports-are-accessible-on-ppc.patch x86_64-remove-unusued-flags-variable.patch clocksource-init-adjustments-fix-bug-7426.patch timer-hrtimer-take-per-cpu-locks-in-sane-order.patch char-epcac-remove-unused-function.patch atyfb-fix-kconfig-error.patch documentation-for-io-accounting--reporting-via-procfs.patch usb-storage-do-not-rebuild-when-kernel-version-changes.patch arch-i386-kernel-vmic-must-include-asm-kmap_typesh.patch bugfix-dont-use-the-tsc-in-sched_clock-if-unstable.patch cleanup-unify-tsc_unstable-and-tsc_disable.patch possible-bugfix-make-dmi_mark_tsc_unstable-call-mark_tsc_unstable.patch slab-introduce-krealloc.patch slab-introduce-krealloc-fix.patch make-aout-executables-work-again.patch make-aout-executables-work-again-fix.patch macintosh-mangle-caps-lock-events-on-adb-keyboards.patch git-acpi.patch git-acpi-fix-cpuidle-borkage-2.patch exit-acpi-processor-module-gracefully-if-acpi-is-disabled.patch sony-laptop-fix-uninitialised-variable.patch altix-reinitialize-acpi-tables.patch fix-acpi-documentation-in-kernel-parameterstxt.patch asus_acpi-invert-read-of-wled-proc-file-to-show-correct.patch git-alsa.patch git-alsa-oops-fix.patch agp-prevent-probe-collision-of-sis-agp-and-amd64_agp.patch git-arm.patch arm-dma-mappingh.patch git-avr32.patch avr32-dma-mappingh.patch git-cifs.patch powerpc-rtas-msi-support.patch gregkh-driver-platform-reorder-platform_device_del.patch gregkh-driver-driver-core-udev-triggered-device-driver-binding.patch gregkh-driver-driver-core-per-subsystem-multithreaded-probing.patch gregkh-driver-powerpc-make-it-compile-for-multithread-change.patch gregkh-driver-driver-core-don-t-fail-attaching-the-device-if-it-cannot-be-bound.patch gregkh-driver-uio.patch gregkh-driver-uio-documentation.patch gregkh-driver-uio-dummy.patch gregkh-driver-uio-irq.patch gregkh-driver-uio-support-for-multiple-mappings.patch gregkh-driver-uio-update-documentation-for-multiple-mappings.patch gregkh-driver-put_device-might_sleep.patch gregkh-driver-sysfs-crash-debugging.patch gregkh-driver-kobject-warn.patch gregkh-driver-warn-when-statically-allocated-kobjects-are-used.patch gregkh-driver-nozomi.patch driver-core-cleanup-device-links-code.patch driver-core-add-missing-symlinks-error-handling.patch driver-core-check-sysfs_create_link-errors.patch git-drm.patch git-dvb.patch video4linux-fix-audio-input-for-avertv-go-007.patch fix-saa7146_clipping_mem-size.patch drivers-media-video-cpia_ppc-dont-use-_work_nar.patch jdelvare-i2c-i2c-amd8111-missed-cleanup.patch jdelvare-i2c-i2c-02-revert-core-warning-removal.patch jdelvare-i2c-i2c-03-use-i2c_adapterdevparent-for-messages.patch jdelvare-i2c-i2c-04-kill-i2c_adapterclass_dev.patch jdelvare-i2c-i2c-05-i2c_adapter-devices-have-no-driver.patch jdelvare-i2c-i2c-06-remove-duplicate-i2c-drivers-list.patch jdelvare-i2c-i2c-algo-bit-always-send-stop-before-leaving.patch jdelvare-i2c-i2c-add-smbus-block-read-emulation.patch jdelvare-i2c-i2c-algo-bit-emulate-smbus-block-read.patch jdelvare-i2c-i2c-parport-optimize-size.patch jdelvare-i2c-i2c-nforce2-add-mcp61-mcp65-support.patch jdelvare-i2c-clean-up-i2c-header-includes.patch jdelvare-i2c-i2c-i801-restore-initial-state.patch i2c-tsl2550-support.patch ds1374-check-for-workqueue-creation.patch jdelvare-hwmon-hwmon-smsc47m192-document-lpc47m292-support.patch jdelvare-hwmon-hwmon-request-regions.patch jdelvare-hwmon-hwmon-smsc47m1-add-lpc47m292-support.patch jdelvare-hwmon-hwmon-smsc47m1-drop-useless-lock.patch jdelvare-hwmon-hwmon-only-call-vid_which_vrm-when-needed.patch jdelvare-hwmon-hwmon-fix-vid-table.patch git-gfs2-nmw.patch git-hid.patch git-ia64.patch ia64-point-saved_max_pfn-to-the-max_pfn-of-the-entire-system.patch remove-stack-hard-limit-on-ia64.patch
- nvidiafb-bring-back-generic-ddc-reading-fix.patch removed from -mm tree
The patch titled nvidiafb-bring-back-generic-ddc-reading fix has been removed from the -mm tree. Its filename was nvidiafb-bring-back-generic-ddc-reading-fix.patch This patch was dropped because it is obsolete -- Subject: nvidiafb-bring-back-generic-ddc-reading fix From: Michal Piotrowski [EMAIL PROTECTED] Possible fix for nvidiafb-bring-back-generic-ddc-reading.patch drivers/built-in.o: In function `nvidia_probe_i2c_connector': /mnt/md0/devel/linux-mm/drivers/video/nvidia/nv_i2c.c:166: undefined reference to `fb_ddc_read' make[1]: *** [.tmp_vmlinux1] Error 1 make: *** [_all] Error 2 Signed-off-by: Michal Piotrowski [EMAIL PROTECTED] Cc: Antonino Daplas [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/video/Makefile |1 + 1 files changed, 1 insertion(+) diff -puN drivers/video/Makefile~nvidiafb-bring-back-generic-ddc-reading-fix drivers/video/Makefile --- a/drivers/video/Makefile~nvidiafb-bring-back-generic-ddc-reading-fix +++ a/drivers/video/Makefile @@ -32,6 +32,7 @@ obj-$(CONFIG_FB_PM3)+= pm3fb.o obj-$(CONFIG_FB_MATROX) += matrox/ obj-$(CONFIG_FB_RIVA)+= riva/ vgastate.o obj-$(CONFIG_FB_NVIDIA) += nvidia/ +obj-$(CONFIG_FB_NVIDIA_I2C) += fb_ddc.o obj-$(CONFIG_FB_ATY) += aty/ macmodes.o obj-$(CONFIG_FB_ATY128) += aty/ macmodes.o obj-$(CONFIG_FB_RADEON) += aty/ _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch char-epcac-remove-unused-function.patch git-ia64.patch git-input.patch i386-irq-kill-irq-compression-fix.patch extend-notifier_call_chain-to-count-nr_calls-made-fixes-3.patch edac-new-opteron-athlon64-memory-controller-driver.patch reiser4-configh.patch nvidiafb-bring-back-generic-ddc-reading-fix.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
+ fix-2621-rfcomm-lockups.patch added to -mm tree
The patch titled Fix 2.6.21 rfcomm lockups has been added to the -mm tree. Its filename is fix-2621-rfcomm-lockups.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this -- Subject: Fix 2.6.21 rfcomm lockups From: Mark Lord [EMAIL PROTECTED] Any attempt to open/use a bluetooth rfcomm device locks up scheduling completely on my machine. Interrupts (ping, alt-sysrq) seem to be alive, but nothing else. This was working fine in 2.6.20, broken now in 2.6.21-rc2-git* Reverting this change (below) fixes it: | authorMarcel Holtmann [EMAIL PROTECTED] | Sat, 17 Feb 2007 22:58:57 + (23:58 +0100) | committerDavid S. Miller [EMAIL PROTECTED] | Mon, 26 Feb 2007 19:42:41 + (11:42 -0800) | commitc1a3313698895d8ad4760f98642007bf236af2e8 | tree337a876f727061362b6a169f8759849c105b8f7atree | snapshot | parentf5ffd4620aba9e55656483ae1ef5c79ba81f5403commit | diff | | [Bluetooth] Make use of device_move() for RFCOMM TTY devices | | In the case of bound RFCOMM TTY devices the parent is not available | before its usage. So when opening a RFCOMM TTY device, move it to | the corresponding ACL device as a child. When closing the device, | move it back to the virtual device tree. | Signed-off-by: Marcel Holtmann [EMAIL PROTECTED] The simplest fix for this bug is to prevent sysfs_move_dir() from self-deadlocking when (old_parent == new_parent). This patch prevents total system lockup when using rfcomm devices. Signed-off-by: Mark Lord [EMAIL PROTECTED] Acked-by: Cornelia Huck [EMAIL PROTECTED] Cc: Greg KH [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- fs/sysfs/dir.c |2 ++ 1 files changed, 2 insertions(+) diff -puN fs/sysfs/dir.c~fix-2621-rfcomm-lockups fs/sysfs/dir.c --- a/fs/sysfs/dir.c~fix-2621-rfcomm-lockups +++ a/fs/sysfs/dir.c @@ -431,6 +431,8 @@ int sysfs_move_dir(struct kobject *kobj, new_parent_dentry = new_parent ? new_parent-dentry : sysfs_mount-mnt_sb-s_root; + if (old_parent_dentry-d_inode == new_parent_dentry-d_inode) + return 0; /* nothing to move */ again: mutex_lock(old_parent_dentry-d_inode-i_mutex); if (!mutex_trylock(new_parent_dentry-d_inode-i_mutex)) { _ Patches currently in -mm which might be from [EMAIL PROTECTED] are fix-2621-rfcomm-lockups.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- atyfb-replace-busy-loop-with-mdelay.patch removed from -mm tree
The patch titled atyfb: replace busy loop with mdelay() has been removed from the -mm tree. Its filename was atyfb-replace-busy-loop-with-mdelay.patch This patch was dropped because it is obsolete -- Subject: atyfb: replace busy loop with mdelay() From: Ville Syrjala [EMAIL PROTECTED] Replace a busy loop with mdelay() in atyfb clock setup code. This fixes boot hangs several people have experienced. Signed-off-by: Ville Syrjala [EMAIL PROTECTED] Acked-by: James Simmons [EMAIL PROTECTED] Cc: Antonino A. Daplas [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/video/aty/mach64_ct.c |9 +++-- 1 file changed, 3 insertions(+), 6 deletions(-) diff -puN drivers/video/aty/mach64_ct.c~atyfb-replace-busy-loop-with-mdelay drivers/video/aty/mach64_ct.c --- a/drivers/video/aty/mach64_ct.c~atyfb-replace-busy-loop-with-mdelay +++ a/drivers/video/aty/mach64_ct.c @@ -598,7 +598,6 @@ static void aty_resume_pll_ct(const stru struct atyfb_par *par = info-par; if (par-mclk_per != par-xclk_per) { - int i; /* * This disables the sclk, crashes the computer as reported: * aty_st_pll_ct(SPLL_CNTL2, 3, info); @@ -609,12 +608,10 @@ static void aty_resume_pll_ct(const stru aty_st_pll_ct(SCLK_FB_DIV, pll-ct.sclk_fb_div, par); aty_st_pll_ct(SPLL_CNTL2, pll-ct.spll_cntl2, par); /* -* The sclk has been started. However, I believe the first clock -* ticks it generates are not very stable. Hope this primitive loop -* helps for Rage Mobilities that sometimes crash when -* we switch to sclk. (Daniel Mantione, 13-05-2003) +* SCLK has been started. Wait for the PLL to lock. 5 ms +* should be enough according to mach64 programmer's guide. */ - for (i=0;i=0x1;i++); + mdelay(5); } aty_st_pll_ct(PLL_REF_DIV, pll-ct.pll_ref_div, par); _ Patches currently in -mm which might be from [EMAIL PROTECTED] are atyfb-replace-busy-loop-with-mdelay.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- cyclades-return-closing_wait.patch removed from -mm tree
The patch titled cyclades: return closing_wait has been removed from the -mm tree. Its filename was cyclades-return-closing_wait.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: cyclades: return closing_wait From: Andrew Morton [EMAIL PROTECTED] In http://bugzilla.kernel.org/show_bug.cgi?id=8065, Shen points out that the cyclades driver forget to return closing_wait to userspace. Cc: Alan Cox [EMAIL PROTECTED] Cc: Russell King [EMAIL PROTECTED] Cc: Shen [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/char/cyclades.c |1 + 1 file changed, 1 insertion(+) diff -puN drivers/char/cyclades.c~cyclades-return-closing_wait drivers/char/cyclades.c --- a/drivers/char/cyclades.c~cyclades-return-closing_wait +++ a/drivers/char/cyclades.c @@ -3501,6 +3501,7 @@ get_serial_info(struct cyclades_port *in tmp.irq = cinfo-irq; tmp.flags = info-flags; tmp.close_delay = info-close_delay; + tmp.closing_wait = info-closing_wait; tmp.baud_base = info-baud; tmp.custom_divisor = info-custom_divisor; tmp.hub6 = 0; /*!!! */ _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch slab-introduce-krealloc-fix.patch make-aout-executables-work-again-fix.patch sony-laptop-fix-uninitialised-variable.patch git-alsa-oops-fix.patch git-drm.patch git-dvb.patch ia64-kexec-use-efi_loader_data-for-elf-core-header-tidy.patch git-input.patch setstream-param-for-psmouse-tweak.patch git-md-accel-fixup.patch nommu-present-backing-device-capabilities-for-mtd-fix.patch git-ubi.patch git-netdev-all.patch git-netdev-all-ipw2200-fix.patch revert-drivers-net-tulip-dmfe-support-basic-carrier-detection.patch dmfe-add-support-for-suspend-resume-fix.patch sis900-warning-fixes.patch div64_64-common-code-fix.patch bonding-replace-system-timer-with-work-queue-tidy.patch git-parisc.patch rm9000-serial-driver-tidy.patch git-pciseg.patch revert-md-avoid-possible-bug_on-in-md-bitmap-handling-for-git-block.patch git-block-fixup.patch git-block-another-md-fix.patch git-unionfs.patch usbatm-create-sysfs-link-device-from-atm-class-device-tidy.patch git-wireless-fixup.patch revert-x86_64-mm-change-sysenter_setup-to-__cpuinit-improve-__init-__initdata.patch after-before-x86_64-mm-mmconfig-share.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix-2.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial-up-fix.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial-tweak.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch driver_bfin_serial_core-update.patch fix-rmmod-read-write-races-in-proc-entries-fix.patch reduce-size-of-task_struct-on-64-bit-machines.patch mm-shrink-parent-dentries-when-shrinking-slab.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2.patch call-cpu_chain-with-cpu_down_failed-if-cpu_down_prepare-failed-vs-reduce-size-of-task_struct-on-64-bit-machines.patch speedup-divides-by-cpu_power-in-scheduler-up-fix.patch lutimesat-compat-syscall-and-wire-up-on-x86_64-tidy.patch utrace-prep.patch utrace-prep-2.patch revert-utrace-prep-2.patch utrace-vs-reduce-size-of-task_struct-on-64-bit-machines.patch local_t-mips-extension-shrink-duplicated-mips-32-64-bits-functions-from-localh-fix.patch linux-kernel-markers-kconfig-menus-fix-4.patch fbdev-hecuba-framebuffer-driver-fix.patch mm-only-free-swap-space-of-reactivated-pages-debug.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- msi-sanely-support-hardware-level-msi-disabling.patch removed from -mm tree
The patch titled msi: sanely support hardware level msi disabling has been removed from the -mm tree. Its filename was msi-sanely-support-hardware-level-msi-disabling.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: msi: sanely support hardware level msi disabling From: Eric W. Biederman [EMAIL PROTECTED] In some cases when we are not using msi we need a way to ensure that the hardware does not have an msi capability enabled. Currently the code has been calling disable_msi_mode to try and achieve that. However disable_msi_mode has several other side effects and is only available when msi support is compiled in so it isn't really appropriate. Instead this patch implements pci_msi_off which disables all msi and msix capabilities unconditionally with no additional side effects. pci_disable_device was redundantly clearing the bus master enable flag and clearing the msi enable bit. A device that is not allowed to perform bus mastering operations cannot generate intx or msi interrupt messages as those are essentially a special case of dma, and require bus mastering. So the call in pci_disable_device to disable msi capabilities was redundant. quirk_pcie_pxh also called disable_msi_mode and is updated to use pci_msi_off. Signed-off-by: Eric W. Biederman [EMAIL PROTECTED] Cc: Michael Ellerman [EMAIL PROTECTED] Cc: Paul Mackerras [EMAIL PROTECTED] Cc: Benjamin Herrenschmidt [EMAIL PROTECTED] Cc: Greg KH [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- arch/powerpc/kernel/irq.c |1 - drivers/pci/msi.c |2 +- drivers/pci/pci.c | 34 +++--- drivers/pci/pci.h |2 -- drivers/pci/quirks.c |4 ++-- include/linux/pci.h |1 + include/linux/pci_regs.h |7 --- 7 files changed, 35 insertions(+), 16 deletions(-) diff -puN arch/powerpc/kernel/irq.c~msi-sanely-support-hardware-level-msi-disabling arch/powerpc/kernel/irq.c --- a/arch/powerpc/kernel/irq.c~msi-sanely-support-hardware-level-msi-disabling +++ a/arch/powerpc/kernel/irq.c @@ -968,7 +968,6 @@ void pci_scan_msi_device(struct pci_dev int pci_enable_msix(struct pci_dev* dev, struct msix_entry *entries, int nvec) {return -1;} void pci_disable_msix(struct pci_dev *dev) {} void msi_remove_pci_irq_vectors(struct pci_dev *dev) {} -void disable_msi_mode(struct pci_dev *dev, int pos, int type) {} void pci_no_msi(void) {} EXPORT_SYMBOL(pci_enable_msix); EXPORT_SYMBOL(pci_disable_msix); diff -puN drivers/pci/msi.c~msi-sanely-support-hardware-level-msi-disabling drivers/pci/msi.c --- a/drivers/pci/msi.c~msi-sanely-support-hardware-level-msi-disabling +++ a/drivers/pci/msi.c @@ -211,7 +211,7 @@ static void enable_msi_mode(struct pci_d pci_intx(dev, 0); /* disable intx */ } -void disable_msi_mode(struct pci_dev *dev, int pos, int type) +static void disable_msi_mode(struct pci_dev *dev, int pos, int type) { u16 control; diff -puN drivers/pci/pci.c~msi-sanely-support-hardware-level-msi-disabling drivers/pci/pci.c --- a/drivers/pci/pci.c~msi-sanely-support-hardware-level-msi-disabling +++ a/drivers/pci/pci.c @@ -881,13 +881,6 @@ pci_disable_device(struct pci_dev *dev) if (atomic_sub_return(1, dev-enable_cnt) != 0) return; - if (dev-msi_enabled) - disable_msi_mode(dev, pci_find_capability(dev, PCI_CAP_ID_MSI), - PCI_CAP_ID_MSI); - if (dev-msix_enabled) - disable_msi_mode(dev, pci_find_capability(dev, PCI_CAP_ID_MSI), - PCI_CAP_ID_MSIX); - pci_read_config_word(dev, PCI_COMMAND, pci_command); if (pci_command PCI_COMMAND_MASTER) { pci_command = ~PCI_COMMAND_MASTER; @@ -1277,6 +1270,33 @@ pci_intx(struct pci_dev *pdev, int enabl } } +/** + * pci_msi_off - disables any msi or msix capabilities + * @pdev: the PCI device to operate on + * + * If you want to use msi see pci_enable_msi and friends. + * This is a lower level primitive that allows us to disable + * msi operation at the device level. + */ +void pci_msi_off(struct pci_dev *dev) +{ + int pos; + u16 control; + + pos = pci_find_capability(dev, PCI_CAP_ID_MSI); + if (pos) { + pci_read_config_word(dev, pos + PCI_MSI_FLAGS, control); + control = ~PCI_MSI_FLAGS_ENABLE; + pci_write_config_word(dev, pos + PCI_MSI_FLAGS, control); + } + pos = pci_find_capability(dev, PCI_CAP_ID_MSIX); + if (pos) { + pci_read_config_word(dev, pos + PCI_MSIX_FLAGS, control); + control = ~PCI_MSIX_FLAGS_ENABLE; + pci_write_config_word(dev, pos + PCI_MSIX_FLAGS, control); + } +} + #ifndef HAVE_ARCH_PCI_SET_DMA_MASK /* * These can be overridden by arch-specific implementations diff -puN
- io_apic-needs-apicdefh.patch removed from -mm tree
The patch titled io_apic.h needs apicdef.h has been removed from the -mm tree. Its filename was io_apic-needs-apicdefh.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: io_apic.h needs apicdef.h From: Jean Delvare [EMAIL PROTECTED] A -mm patch caused: In file included from drivers/pci/quirks.c:532: include/asm/io_apic.h:61: error: MAX_IO_APICS undeclared here (not in a function) So let's include the needed header. Signed-off-by: Jean Delvare [EMAIL PROTECTED] Cc: Andi Kleen [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- include/asm-i386/io_apic.h |1 + include/asm-x86_64/io_apic.h |1 + 2 files changed, 2 insertions(+) diff -puN include/asm-i386/io_apic.h~io_apic-needs-apicdefh include/asm-i386/io_apic.h --- a/include/asm-i386/io_apic.h~io_apic-needs-apicdefh +++ a/include/asm-i386/io_apic.h @@ -3,6 +3,7 @@ #include asm/types.h #include asm/mpspec.h +#include asm/apicdef.h /* * Intel IO-APIC support for SMP and UP systems. diff -puN include/asm-x86_64/io_apic.h~io_apic-needs-apicdefh include/asm-x86_64/io_apic.h --- a/include/asm-x86_64/io_apic.h~io_apic-needs-apicdefh +++ a/include/asm-x86_64/io_apic.h @@ -3,6 +3,7 @@ #include asm/types.h #include asm/mpspec.h +#include asm/apicdef.h /* * Intel IO-APIC support for SMP and UP systems. _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch git-dvb.patch scatterlisth-needs-typesh.patch cleanup-the-includes-of-linux-pcih.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- msi-fixup-the-msi-enable-disable-logic.patch removed from -mm tree
The patch titled msi: fix up the msi enable/disable logic has been removed from the -mm tree. Its filename was msi-fixup-the-msi-enable-disable-logic.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: msi: fix up the msi enable/disable logic From: Eric W. Biederman [EMAIL PROTECTED] enable/disable_msi_mode have several side effects which keeps them from being generally useful. So this patch replaces them with with two much more targeted functions: msi_set_enable and msix_set_enable. This patch makes pci_dev-msi_enabled and pci_dev-msix_enabled the definitive way to test if linux has enabled the msi capability, and has the appropriate msi data structures set up. This patch ensures that while writing the msi messages in save/restore and during device initialization we have the msi capability disabled so we don't get into races. The pci spec requires that we do not have the msi capability enabled and the msi messages unmasked while we write the messages. Completely disabling the capability is overkill but it is easy :) Care has been taken so we never have both a msi capability and intx enabled simultaneously. We haven't run into a problem yet but better safe then sorry. Signed-off-by: Eric W. Biederman [EMAIL PROTECTED] Cc: Michael Ellerman [EMAIL PROTECTED] Cc: Paul Mackerras [EMAIL PROTECTED] Cc: Benjamin Herrenschmidt [EMAIL PROTECTED] Cc: Greg KH [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/pci/msi.c | 144 +++- 1 file changed, 64 insertions(+), 80 deletions(-) diff -puN drivers/pci/msi.c~msi-fixup-the-msi-enable-disable-logic drivers/pci/msi.c --- a/drivers/pci/msi.c~msi-fixup-the-msi-enable-disable-logic +++ a/drivers/pci/msi.c @@ -38,6 +38,36 @@ static int msi_cache_init(void) return 0; } +static void msi_set_enable(struct pci_dev *dev, int enable) +{ + int pos; + u16 control; + + pos = pci_find_capability(dev, PCI_CAP_ID_MSI); + if (pos) { + pci_read_config_word(dev, pos + PCI_MSI_FLAGS, control); + control = ~PCI_MSI_FLAGS_ENABLE; + if (enable) + control |= PCI_MSI_FLAGS_ENABLE; + pci_write_config_word(dev, pos + PCI_MSI_FLAGS, control); + } +} + +static void msix_set_enable(struct pci_dev *dev, int enable) +{ + int pos; + u16 control; + + pos = pci_find_capability(dev, PCI_CAP_ID_MSIX); + if (pos) { + pci_read_config_word(dev, pos + PCI_MSIX_FLAGS, control); + control = ~PCI_MSIX_FLAGS_ENABLE; + if (enable) + control |= PCI_MSIX_FLAGS_ENABLE; + pci_write_config_word(dev, pos + PCI_MSIX_FLAGS, control); + } +} + static void msi_set_mask_bit(unsigned int irq, int flag) { struct msi_desc *entry; @@ -192,44 +222,6 @@ static struct msi_desc* alloc_msi_entry( return entry; } -static void enable_msi_mode(struct pci_dev *dev, int pos, int type) -{ - u16 control; - - pci_read_config_word(dev, msi_control_reg(pos), control); - if (type == PCI_CAP_ID_MSI) { - /* Set enabled bits to single MSI enable MSI_enable bit */ - msi_enable(control, 1); - pci_write_config_word(dev, msi_control_reg(pos), control); - dev-msi_enabled = 1; - } else { - msix_enable(control); - pci_write_config_word(dev, msi_control_reg(pos), control); - dev-msix_enabled = 1; - } - - pci_intx(dev, 0); /* disable intx */ -} - -static void disable_msi_mode(struct pci_dev *dev, int pos, int type) -{ - u16 control; - - pci_read_config_word(dev, msi_control_reg(pos), control); - if (type == PCI_CAP_ID_MSI) { - /* Set enabled bits to single MSI enable MSI_enable bit */ - msi_disable(control); - pci_write_config_word(dev, msi_control_reg(pos), control); - dev-msi_enabled = 0; - } else { - msix_disable(control); - pci_write_config_word(dev, msi_control_reg(pos), control); - dev-msix_enabled = 0; - } - - pci_intx(dev, 1); /* enable intx */ -} - #ifdef CONFIG_PM static int __pci_save_msi_state(struct pci_dev *dev) { @@ -238,12 +230,11 @@ static int __pci_save_msi_state(struct p struct pci_cap_saved_state *save_state; u32 *cap; - pos = pci_find_capability(dev, PCI_CAP_ID_MSI); - if (pos = 0 || dev-no_msi) + if (!dev-msi_enabled) return 0; - pci_read_config_word(dev, msi_control_reg(pos), control); - if (!(control PCI_MSI_FLAGS_ENABLE)) + pos = pci_find_capability(dev, PCI_CAP_ID_MSI); + if (pos = 0) return 0; save_state = kzalloc(sizeof(struct
- msi-support-masking-msi-irqs-without-a-mask-bit.patch removed from -mm tree
The patch titled msi: support masking msi irqs without a mask bit has been removed from the -mm tree. Its filename was msi-support-masking-msi-irqs-without-a-mask-bit.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: msi: support masking msi irqs without a mask bit From: Eric W. Biederman [EMAIL PROTECTED] For devices that do not support msi-x we only support 1 interrupt. Therefore we can disable that one interrupt by disabling the msi capability itself. If we leave the intx interrupts disabled while we have the msi capability disabled no interrupts should be delivered from that device. Devices with just the minimal msi support (and thus hitting this code path) include things like the intel e1000 nic, so it looks like is going to be a fairly common case and thus important to get right. Signed-off-by: Eric W. Biederman [EMAIL PROTECTED] Cc: Michael Ellerman [EMAIL PROTECTED] Cc: Paul Mackerras [EMAIL PROTECTED] Cc: Benjamin Herrenschmidt [EMAIL PROTECTED] Cc: Greg KH [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/pci/msi.c |2 ++ 1 file changed, 2 insertions(+) diff -puN drivers/pci/msi.c~msi-support-masking-msi-irqs-without-a-mask-bit drivers/pci/msi.c --- a/drivers/pci/msi.c~msi-support-masking-msi-irqs-without-a-mask-bit +++ a/drivers/pci/msi.c @@ -85,6 +85,8 @@ static void msi_set_mask_bit(unsigned in mask_bits = ~(1); mask_bits |= flag; pci_write_config_dword(entry-dev, pos, mask_bits); + } else { + msi_set_enable(entry-dev, !flag); } break; case PCI_CAP_ID_MSIX: _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch powerpc-rtas-msi-support.patch fix-i-oat-for-kexec.patch i386-irq-kill-irq-compression.patch i386-irq-kill-irq-compression-fix.patch remove-hardcoding-of-hard_smp_processor_id-on-up.patch remove-hardcoding-of-hard_smp_processor_id-on-up-move-definition-of-hard_smp_processor_id-to-asm-smph.patch use-the-apic-to-determine-the-hardware-processor-id-i386.patch use-the-apic-to-determine-the-hardware-processor-id-x86_64.patch always-ask-the-hardware-to-obtain-hardware-processor.patch procfs-fix-race-between-proc_readdir-and-remove_proc_entry.patch procfs-fix-race-between-proc_readdir-and-remove_proc_entry-fix.patch clone-flag-clone_parent_tidptr-leaves-invalid-results-in-memory.patch fix-rmmod-read-write-races-in-proc-entries.patch fix-rmmod-read-write-races-in-proc-entries-fix.patch allow-access-to-proc-pid-fd-after-setuid.patch allow-access-to-proc-pid-fd-after-setuid-fix.patch allow-access-to-proc-pid-fd-after-setuid-update.patch allow-access-to-proc-pid-fd-after-setuid-update-2.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2.patch edac-k8-driver-coding-tidy.patch sched2-sched-domain-sysctl-use-ctl_unnumbered.patch mm-implement-swap-prefetching-use-ctl_unnumbered.patch readahead-sysctl-parameters-use-ctl_unnumbered.patch vdso-print-fatal-signals-use-ctl_unnumbered.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- fix-soft-lockup-with-iseries-viocd-driver.patch removed from -mm tree
The patch titled Fix soft lockup with iSeries viocd driver has been removed from the -mm tree. Its filename was fix-soft-lockup-with-iseries-viocd-driver.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: Fix soft lockup with iSeries viocd driver From: Tony Breeds [EMAIL PROTECTED] Fix soft lockup with iSeries viocd driver, caused by eventually calling end_that_request_first() with nr_bytes 0. Some versions of hald do an SG_IO ioctl on the viocd device which becomes a request with hard_nr_sectors and hard_cur_sectors set to zero. Passing zero as the number of sectors to end_request() (which calls end_that_request_first()) causes an infinite loop when the bio is being freed. This patch makes sure that the zero is never passed. It only requires some number larger the the request size the terminate the loop. The lockup is triggered by hald, interrogating the device. Signed-off-by: Tony Breeds [EMAIL PROTECTED] Signed-off-by: Jens Axboe [EMAIL PROTECTED] Cc: Stephen Rothwell [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/cdrom/viocd.c | 27 +++ 1 file changed, 23 insertions(+), 4 deletions(-) diff -puN drivers/cdrom/viocd.c~fix-soft-lockup-with-iseries-viocd-driver drivers/cdrom/viocd.c --- a/drivers/cdrom/viocd.c~fix-soft-lockup-with-iseries-viocd-driver +++ a/drivers/cdrom/viocd.c @@ -376,6 +376,25 @@ static int send_request(struct request * return 0; } +static void viocd_end_request(struct request *req, int uptodate) +{ + int nsectors = req-hard_nr_sectors; + + /* +* Make sure it's fully ended, and ensure that we process +* at least one sector. +*/ + if (blk_pc_request(req)) + nsectors = (req-data_len + 511) 9; + if (!nsectors) + nsectors = 1; + + if (end_that_request_first(req, uptodate, nsectors)) + BUG(); + add_disk_randomness(req-rq_disk); + blkdev_dequeue_request(req); + end_that_request_last(req, uptodate); +} static int rwreq; @@ -385,11 +404,11 @@ static void do_viocd_request(request_que while ((rwreq == 0) ((req = elv_next_request(q)) != NULL)) { if (!blk_fs_request(req)) - end_request(req, 0); + viocd_end_request(req, 0); else if (send_request(req) 0) { printk(VIOCD_KERN_WARNING unable to send message to OS/400!); - end_request(req, 0); + viocd_end_request(req, 0); } else rwreq++; } @@ -601,9 +620,9 @@ return_complete: with rc %d:0x%04X: %s\n, req, event-xRc, bevent-sub_result, err-msg); - end_request(req, 0); + viocd_end_request(req, 0); } else - end_request(req, 1); + viocd_end_request(req, 1); /* restart handling of incoming requests */ spin_unlock_irqrestore(viocd_reqlock, flags); _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- parport-is-an-orphan.patch removed from -mm tree
The patch titled parport is an orphan has been removed from the -mm tree. Its filename was parport-is-an-orphan.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: parport is an orphan From: David Brownell [EMAIL PROTECTED] The writing on the wall seem to be that the parport stack is orphaned, rather than maintained by four folk ... and having a webpage that says the latest patches are based on a 2.5 kernel. Signed-off-by: David Brownell [EMAIL PROTECTED] Acked-by: Jean Delvare [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- MAINTAINERS | 10 +- 1 file changed, 1 insertion(+), 9 deletions(-) diff -puN MAINTAINERS~parport-is-an-orphan MAINTAINERS --- a/MAINTAINERS~parport-is-an-orphan +++ a/MAINTAINERS @@ -2553,16 +2553,8 @@ L: [EMAIL PROTECTED] S: Maintained PARALLEL PORT SUPPORT -P: Phil Blundell -M: [EMAIL PROTECTED] -P: Tim Waugh -M: [EMAIL PROTECTED] -P: David Campbell -P: Andrea Arcangeli -M: [EMAIL PROTECTED] L: [EMAIL PROTECTED] -W: http://people.redhat.com/twaugh/parport/ -S: Maintained +S: Orphan PARIDE DRIVERS FOR PARALLEL PORT IDE DEVICES P: Tim Waugh _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch git-avr32.patch git-input.patch git-md-accel.patch 8250-make-probing-for-txen-bug-a-config-option.patch blackfin-on-chip-rtc-controller-driver.patch documentation-ask-driver-writers-to-provide-pm-support.patch init-dma-masks-in-pnp_dev.patch rtc-remove-sys-class-rtc-dev.patch rtc-rtc-interfaces-dont-use-class_device.patch rtc-simplified-rtc-sysfs-attribute-handling.patch rtc-simplified-proc-driver-rtc-handling.patch rtc-remove-rest-of-class_device.patch rtc-suspend-resume-restores-system-clock.patch rtc-simplified-rtc-sysfs-attribute-handling-tidy.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- shmem-and-simple-const-super_operations.patch removed from -mm tree
The patch titled shmem and simple const super_operations has been removed from the -mm tree. Its filename was shmem-and-simple-const-super_operations.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: shmem and simple const super_operations From: Hugh Dickins [EMAIL PROTECTED] shmem's super_operations were missed from the recent const-ification; and simple_fill_super()'s, which can share with get_sb_pseudo()'s. Signed-off-by: Hugh Dickins [EMAIL PROTECTED] Acked-by: Josef 'Jeff' Sipek [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- fs/libfs.c | 10 ++ mm/shmem.c |4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff -puN fs/libfs.c~shmem-and-simple-const-super_operations fs/libfs.c --- a/fs/libfs.c~shmem-and-simple-const-super_operations +++ a/fs/libfs.c @@ -190,6 +190,10 @@ const struct inode_operations simple_dir .lookup = simple_lookup, }; +static const struct super_operations simple_super_operations = { + .statfs = simple_statfs, +}; + /* * Common helper for pseudo-filesystems (sockfs, pipefs, bdev - stuff that * will never be mountable) @@ -199,7 +203,6 @@ int get_sb_pseudo(struct file_system_typ struct vfsmount *mnt) { struct super_block *s = sget(fs_type, NULL, set_anon_super, NULL); - static const struct super_operations default_ops = {.statfs = simple_statfs}; struct dentry *dentry; struct inode *root; struct qstr d_name = {.name = name, .len = strlen(name)}; @@ -212,7 +215,7 @@ int get_sb_pseudo(struct file_system_typ s-s_blocksize = 1024; s-s_blocksize_bits = 10; s-s_magic = magic; - s-s_op = ops ? ops : default_ops; + s-s_op = ops ? ops : simple_super_operations; s-s_time_gran = 1; root = new_inode(s); if (!root) @@ -359,7 +362,6 @@ int simple_commit_write(struct file *fil int simple_fill_super(struct super_block *s, int magic, struct tree_descr *files) { - static struct super_operations s_ops = {.statfs = simple_statfs}; struct inode *inode; struct dentry *root; struct dentry *dentry; @@ -368,7 +370,7 @@ int simple_fill_super(struct super_block s-s_blocksize = PAGE_CACHE_SIZE; s-s_blocksize_bits = PAGE_CACHE_SHIFT; s-s_magic = magic; - s-s_op = s_ops; + s-s_op = simple_super_operations; s-s_time_gran = 1; inode = new_inode(s); diff -puN mm/shmem.c~shmem-and-simple-const-super_operations mm/shmem.c --- a/mm/shmem.c~shmem-and-simple-const-super_operations +++ a/mm/shmem.c @@ -175,7 +175,7 @@ static inline void shmem_unacct_blocks(u vm_unacct_memory(pages * VM_ACCT(PAGE_CACHE_SIZE)); } -static struct super_operations shmem_ops; +static const struct super_operations shmem_ops; static const struct address_space_operations shmem_aops; static const struct file_operations shmem_file_operations; static const struct inode_operations shmem_inode_operations; @@ -2383,7 +2383,7 @@ static const struct inode_operations shm #endif }; -static struct super_operations shmem_ops = { +static const struct super_operations shmem_ops = { .alloc_inode= shmem_alloc_inode, .destroy_inode = shmem_destroy_inode, #ifdef CONFIG_TMPFS _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch mm-more-rmap-checking.patch mm-make-read_cache_page-synchronous.patch fs-buffer-dont-pageuptodate-without-page-locked.patch take-anonymous-pages-off-the-lru-if-we-have-no-swap.patch free-swap-space-of-reactivated-pages.patch add-__gfp_movable-for-callers-to-flag-allocations-from-high-memory-that-may-be-migrated.patch smaps-extract-pmd-walker-from-smaps-code.patch smaps-add-pages-referenced-count-to-smaps.patch smaps-add-clear_refs-file-to-clear-reference.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch ext2-reservations.patch ext2-balloc-fix-_with_rsv-freeze.patch ext2-balloc-reset-windowsz-when-full.patch ext2-balloc-fix-off-by-one-against-rsv_end.patch ext2-balloc-fix-off-by-one-against-grp_goal.patch ext2-balloc-say-rb_entry-not-list_entry.patch ext2-balloc-use-io_error-label.patch add-__gfp_movable-for-callers-to-flag-allocations-from-high-memory-that-may-be-migrated-swap-prefetch.patch rcu-preemptible-rcu-fix.patch mm-only-free-swap-space-of-reactivated-pages-debug.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- vmi-timer-fixes-round-two.patch removed from -mm tree
The patch titled vmi: timer fixes round two has been removed from the -mm tree. Its filename was vmi-timer-fixes-round-two.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: vmi: timer fixes round two From: Zachary Amsden [EMAIL PROTECTED] Critical bugfixes for the VMI-Timer code. 1) Do not setup a one shot alarm if we are keeping the periodic alarm armed. Additionally, since the periodic alarm can be run at a lower rate than HZ, let's fixup the guard to the no-idle-hz mode appropriately. This fixes the bug where the no-idle-hz mode might have a higher interrupt rate than the non-idle case. 2) The interrupt handler can no longer adjust xtime due to nested lock acquisition. Drop this. We don't need to check for wallclock time at every tick, it can be done in userspace instead. 3) Add a bypass to disable noidle operation. This is useful as a last minute workaround, or testing measure. 4) The code to skip the IO_APIC timer testing (no_timer_check) should be conditional on IO_APIC, not SMP, since UP kernels can have this configured in as well. Signed-off-by: Dan Hecht [EMAIL PROTECTED] Signed-off-by: Zachary Amsden [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- arch/i386/kernel/vmi.c | 23 +-- arch/i386/kernel/vmitime.c | 30 +++--- 2 files changed, 24 insertions(+), 29 deletions(-) diff -puN arch/i386/kernel/vmi.c~vmi-timer-fixes-round-two arch/i386/kernel/vmi.c --- a/arch/i386/kernel/vmi.c~vmi-timer-fixes-round-two +++ a/arch/i386/kernel/vmi.c @@ -54,6 +54,7 @@ static int disable_pse; static int disable_sep; static int disable_tsc; static int disable_mtrr; +static int disable_noidle; /* Cached VMI operations */ struct { @@ -255,7 +256,6 @@ static void vmi_nop(void) } /* For NO_IDLE_HZ, we stop the clock when halting the kernel */ -#ifdef CONFIG_NO_IDLE_HZ static fastcall void vmi_safe_halt(void) { int idle = vmi_stop_hz_timer(); @@ -266,7 +266,6 @@ static fastcall void vmi_safe_halt(void) local_irq_enable(); } } -#endif #ifdef CONFIG_DEBUG_PAGE_TYPE @@ -742,12 +741,7 @@ static inline int __init activate_vmi(vo (char *)paravirt_ops.save_fl); patch_offset(irq_save_disable_callout[IRQ_PATCH_DISABLE], (char *)paravirt_ops.irq_disable); -#ifndef CONFIG_NO_IDLE_HZ - para_fill(safe_halt, Halt); -#else - vmi_ops.halt = vmi_get_function(VMI_CALL_Halt); - paravirt_ops.safe_halt = vmi_safe_halt; -#endif + para_fill(wbinvd, WBINVD); /* paravirt_ops.read_msr = vmi_rdmsr */ /* paravirt_ops.write_msr = vmi_wrmsr */ @@ -881,6 +875,12 @@ static inline int __init activate_vmi(vo #endif custom_sched_clock = vmi_sched_clock; } + if (!disable_noidle) + para_fill(safe_halt, Halt); + else { + vmi_ops.halt = vmi_get_function(VMI_CALL_Halt); + paravirt_ops.safe_halt = vmi_safe_halt; + } /* * Alternative instruction rewriting doesn't happen soon enough @@ -914,9 +914,11 @@ void __init vmi_init(void) local_irq_save(flags); activate_vmi(); -#ifdef CONFIG_SMP + +#ifdef CONFIG_X86_IO_APIC no_timer_check = 1; #endif + local_irq_restore(flags X86_EFLAGS_IF); } @@ -942,7 +944,8 @@ static int __init parse_vmi(char *arg) } else if (!strcmp(arg, disable_mtrr)) { clear_bit(X86_FEATURE_MTRR, boot_cpu_data.x86_capability); disable_mtrr = 1; - } + } else if (!strcmp(arg, disable_noidle)) + disable_noidle = 1; return 0; } diff -puN arch/i386/kernel/vmitime.c~vmi-timer-fixes-round-two arch/i386/kernel/vmitime.c --- a/arch/i386/kernel/vmitime.c~vmi-timer-fixes-round-two +++ a/arch/i386/kernel/vmitime.c @@ -276,16 +276,13 @@ static void vmi_account_real_cycles(unsi cycles_not_accounted = cur_real_cycles - real_cycles_accounted_system; while (cycles_not_accounted = cycles_per_jiffy) { - /* systems wide jiffies and wallclock. */ + /* systems wide jiffies. */ do_timer(1); cycles_not_accounted -= cycles_per_jiffy; real_cycles_accounted_system += cycles_per_jiffy; } - if (vmi_timer_ops.wallclock_updated()) - update_xtime_from_wallclock(); - write_sequnlock(xtime_lock); } @@ -380,7 +377,6 @@ int vmi_stop_hz_timer(void) unsigned long seq, next; unsigned long long real_cycles_expiry; int cpu = smp_processor_id(); - int idle; BUG_ON(!irqs_disabled()); if (sysctl_hz_timer != 0) @@ -388,13 +384,13 @@ int vmi_stop_hz_timer(void) cpu_set(cpu, nohz_cpu_mask); smp_mb(); + if
- page-migration-fix-vma-flag-checking.patch removed from -mm tree
The patch titled Page migration: Fix vma flag checking has been removed from the -mm tree. Its filename was page-migration-fix-vma-flag-checking.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: Page migration: Fix vma flag checking From: Christoph Lameter [EMAIL PROTECTED] Currently we do not check for vma flags if sys_move_pages is called to move individual pages. If sys_migrate_pages is called to move pages then we check for vm_flags that indicate a non migratable vma but that still includes VM_LOCKED and we can migrate mlocked pages. Extract the vma_migratable check from mm/mempolicy.c, fix it and put it into migrate.h so that is can be used from both locations. Problem was spotted by Lee Schermerhorn Signed-off-by: Christoph Lameter [EMAIL PROTECTED] Signed-off-by: Lee Schermerhorn [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- include/linux/migrate.h |8 mm/mempolicy.c |9 - mm/migrate.c|2 +- 3 files changed, 9 insertions(+), 10 deletions(-) diff -puN include/linux/migrate.h~page-migration-fix-vma-flag-checking include/linux/migrate.h --- a/include/linux/migrate.h~page-migration-fix-vma-flag-checking +++ a/include/linux/migrate.h @@ -5,6 +5,14 @@ typedef struct page *new_page_t(struct page *, unsigned long private, int **); +/* Check if a vma is migratable */ +static inline int vma_migratable(struct vm_area_struct *vma) +{ + if (vma-vm_flags (VM_IO|VM_HUGETLB|VM_PFNMAP|VM_RESERVED)) + return 0; + return 1; +} + #ifdef CONFIG_MIGRATION extern int isolate_lru_page(struct page *p, struct list_head *pagelist); extern int putback_lru_pages(struct list_head *l); diff -puN mm/mempolicy.c~page-migration-fix-vma-flag-checking mm/mempolicy.c --- a/mm/mempolicy.c~page-migration-fix-vma-flag-checking +++ a/mm/mempolicy.c @@ -321,15 +321,6 @@ static inline int check_pgd_range(struct return 0; } -/* Check if a vma is migratable */ -static inline int vma_migratable(struct vm_area_struct *vma) -{ - if (vma-vm_flags ( - VM_LOCKED|VM_IO|VM_HUGETLB|VM_PFNMAP|VM_RESERVED)) - return 0; - return 1; -} - /* * Check if all pages in a range are on a set of nodes. * If pagelist != NULL then isolate pages from the LRU and diff -puN mm/migrate.c~page-migration-fix-vma-flag-checking mm/migrate.c --- a/mm/migrate.c~page-migration-fix-vma-flag-checking +++ a/mm/migrate.c @@ -781,7 +781,7 @@ static int do_move_pages(struct mm_struc err = -EFAULT; vma = find_vma(mm, pp-addr); - if (!vma) + if (!vma || !vma_migratable(vma)) goto set_status; page = follow_page(vma, pp-addr, FOLL_GET); _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch nfs-fix-congestion-control-v4.patch git-block-xfs-barriers-broke.patch mm-set-hashdist_default-to-1-for-x86_64-numa.patch x86_64-configurable-fake-numa-node-sizes.patch x86_64-split-remaining-fake-nodes-equally.patch x86_64-fixed-size-remaining-fake-nodes.patch x86_64-map-fake-nodes-to-real-nodes.patch x86_64-disable-alien-cache-for-fake-numa.patch x86_64-export-physnode-mapping-to-userspace.patch x86_64-fake-numa-for-cpusets-document.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial-tweak.patch cpuset-remove-sched-domain-hooks-from-cpusets.patch swap_prefetch-vs-zoned-counters.patch reiser4-vs-zoned-allocator.patch slab-leaks3-default-y.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- vmi-sched-clock-paravirt-op-fix.patch removed from -mm tree
The patch titled vmi: sched clock paravirt op fix has been removed from the -mm tree. Its filename was vmi-sched-clock-paravirt-op-fix.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: vmi: sched clock paravirt op fix From: Zachary Amsden [EMAIL PROTECTED] The custom_sched_clock hook is broken. The result from sched_clock needs to be in nanoseconds, not in CPU cycles. The TSC is insufficient for this purpose, because TSC is poorly defined in a virtual environment, and mostly represents real world time instead of scheduled process time (which can be interrupted without notice when a virtual machine is descheduled). To make the scheduler consistent, we must expose a different nature of time, that is scheduled time. So deprecate this custom_sched_clock hack and turn it into a paravirt-op, as it should have been all along. This allows the tsc.c code which converts cycles to nanoseconds to be shared by all paravirt-ops backends. It is unfortunate to add a new paravirt-op, but this is a very distinct abstraction which is clearly different for all virtual machine implementations, and it gets rid of an ugly indirect function which I ashamedly admit I hacked in to try to get this to work earlier, and then even got in the wrong units. Signed-off-by: Zachary Amsden [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- arch/i386/kernel/paravirt.c |2 ++ arch/i386/kernel/tsc.c |6 ++ arch/i386/kernel/vmi.c |2 +- arch/i386/kernel/vmitime.c |2 +- include/asm-i386/paravirt.h |3 +++ include/asm-i386/time.h |1 - include/asm-i386/timer.h|8 +++- include/asm-i386/vmi_time.h |2 +- 8 files changed, 17 insertions(+), 9 deletions(-) diff -puN arch/i386/kernel/paravirt.c~vmi-sched-clock-paravirt-op-fix arch/i386/kernel/paravirt.c --- a/arch/i386/kernel/paravirt.c~vmi-sched-clock-paravirt-op-fix +++ a/arch/i386/kernel/paravirt.c @@ -32,6 +32,7 @@ #include asm/fixmap.h #include asm/apic.h #include asm/tlbflush.h +#include asm/timer.h /* nop stub */ static void native_nop(void) @@ -520,6 +521,7 @@ struct paravirt_ops paravirt_ops = { .write_msr = native_write_msr, .read_tsc = native_read_tsc, .read_pmc = native_read_pmc, + .get_scheduled_cycles = native_read_tsc, .load_tr_desc = native_load_tr_desc, .set_ldt = native_set_ldt, .load_gdt = native_load_gdt, diff -puN arch/i386/kernel/tsc.c~vmi-sched-clock-paravirt-op-fix arch/i386/kernel/tsc.c --- a/arch/i386/kernel/tsc.c~vmi-sched-clock-paravirt-op-fix +++ a/arch/i386/kernel/tsc.c @@ -14,6 +14,7 @@ #include asm/delay.h #include asm/tsc.h #include asm/io.h +#include asm/timer.h #include mach_timer.h @@ -102,9 +103,6 @@ unsigned long long sched_clock(void) { unsigned long long this_offset; - if (unlikely(custom_sched_clock)) - return (*custom_sched_clock)(); - /* * Fall back to jiffies if there's no TSC available: */ @@ -113,7 +111,7 @@ unsigned long long sched_clock(void) return (jiffies_64 - INITIAL_JIFFIES) * (10 / HZ); /* read the Time Stamp Counter: */ - rdtscll(this_offset); + get_scheduled_cycles(this_offset); /* return the value in ns */ return cycles_2_ns(this_offset); diff -puN arch/i386/kernel/vmi.c~vmi-sched-clock-paravirt-op-fix arch/i386/kernel/vmi.c --- a/arch/i386/kernel/vmi.c~vmi-sched-clock-paravirt-op-fix +++ a/arch/i386/kernel/vmi.c @@ -873,7 +873,7 @@ static inline int __init activate_vmi(vo paravirt_ops.setup_boot_clock = vmi_timer_setup_boot_alarm; paravirt_ops.setup_secondary_clock = vmi_timer_setup_secondary_alarm; #endif - custom_sched_clock = vmi_sched_clock; + paravirt_ops.get_scheduled_cycles = vmi_get_sched_cycles; } if (!disable_noidle) para_fill(safe_halt, Halt); diff -puN arch/i386/kernel/vmitime.c~vmi-sched-clock-paravirt-op-fix arch/i386/kernel/vmitime.c --- a/arch/i386/kernel/vmitime.c~vmi-sched-clock-paravirt-op-fix +++ a/arch/i386/kernel/vmitime.c @@ -172,7 +172,7 @@ int vmi_set_wallclock(unsigned long now) return -1; } -unsigned long long vmi_sched_clock(void) +unsigned long long vmi_get_sched_cycles(void) { return read_available_cycles(); } diff -puN include/asm-i386/paravirt.h~vmi-sched-clock-paravirt-op-fix include/asm-i386/paravirt.h --- a/include/asm-i386/paravirt.h~vmi-sched-clock-paravirt-op-fix +++ a/include/asm-i386/paravirt.h @@ -94,6 +94,7 @@ struct paravirt_ops u64 (*read_tsc)(void); u64 (*read_pmc)(void); + u64 (*get_scheduled_cycles)(void); void (*load_tr_desc)(void); void (*load_gdt)(const struct Xgt_desc_struct *); @@ -273,6 +274,8 @@ static inline void halt(void) #define rdtscll(val)
- sched-remove-smt-nice.patch removed from -mm tree
The patch titled sched: remove SMT nice has been removed from the -mm tree. Its filename was sched-remove-smt-nice.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: sched: remove SMT nice From: Con Kolivas [EMAIL PROTECTED] Remove the SMT-nice feature which idles sibling cpus on SMT cpus to facilitiate nice working properly where cpu power is shared. The idling of cpus in the presence of runnable tasks is considered too fragile, easy to break with outside code, and the complexity of managing this system if an architecture comes along with many logical cores sharing cpu power will be unworkable. Remove the associated per_cpu_gain variable in sched_domains used only by this code. Also: The reason is that with dynticks enabled, this code breaks without yet further tweaks so dynticks brought on the rapid demise of this code. So either we tweak this code or kill it off entirely. It was Ingo's preference to kill it off. Either way this needs to happen for 2.6.21 since dynticks has gone in. Signed-off-by: Con Kolivas [EMAIL PROTECTED] Cc: Ingo Molnar [EMAIL PROTECTED] Cc: Nick Piggin [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- include/asm-i386/topology.h |1 include/asm-ia64/topology.h |2 include/asm-mips/mach-ip27/topology.h |1 include/asm-powerpc/topology.h|1 include/asm-x86_64/topology.h |1 include/linux/sched.h |1 include/linux/topology.h |4 kernel/sched.c| 155 8 files changed, 1 insertion(+), 165 deletions(-) diff -puN include/asm-i386/topology.h~sched-remove-smt-nice include/asm-i386/topology.h --- a/include/asm-i386/topology.h~sched-remove-smt-nice +++ a/include/asm-i386/topology.h @@ -85,7 +85,6 @@ static inline int node_to_first_cpu(int .idle_idx = 1,\ .newidle_idx= 2,\ .wake_idx = 1,\ - .per_cpu_gain = 100, \ .flags = SD_LOAD_BALANCE \ | SD_BALANCE_EXEC \ | SD_BALANCE_FORK \ diff -puN include/asm-ia64/topology.h~sched-remove-smt-nice include/asm-ia64/topology.h --- a/include/asm-ia64/topology.h~sched-remove-smt-nice +++ a/include/asm-ia64/topology.h @@ -65,7 +65,6 @@ void build_cpu_to_node_map(void); .max_interval = 4,\ .busy_factor= 64, \ .imbalance_pct = 125, \ - .per_cpu_gain = 100, \ .cache_nice_tries = 2,\ .busy_idx = 2,\ .idle_idx = 1,\ @@ -97,7 +96,6 @@ void build_cpu_to_node_map(void); .newidle_idx= 0, /* unused */ \ .wake_idx = 1,\ .forkexec_idx = 1,\ - .per_cpu_gain = 100, \ .flags = SD_LOAD_BALANCE \ | SD_BALANCE_EXEC \ | SD_BALANCE_FORK \ diff -puN include/asm-mips/mach-ip27/topology.h~sched-remove-smt-nice include/asm-mips/mach-ip27/topology.h --- a/include/asm-mips/mach-ip27/topology.h~sched-remove-smt-nice +++ a/include/asm-mips/mach-ip27/topology.h @@ -28,7 +28,6 @@ extern unsigned char __node_distances[MA .busy_factor= 32, \ .imbalance_pct = 125, \ .cache_nice_tries = 1,\ - .per_cpu_gain = 100, \ .flags = SD_LOAD_BALANCE \ | SD_BALANCE_EXEC \ | SD_WAKE_BALANCE, \ diff -puN include/asm-powerpc/topology.h~sched-remove-smt-nice include/asm-powerpc/topology.h --- a/include/asm-powerpc/topology.h~sched-remove-smt-nice +++ a/include/asm-powerpc/topology.h @@ -57,7 +57,6 @@ static inline int pcibus_to_node(struct .busy_factor= 32, \ .imbalance_pct = 125, \ .cache_nice_tries = 1,\ - .per_cpu_gain = 100, \ .busy_idx = 3,\ .idle_idx = 1,\ .newidle_idx= 2,\ diff -puN include/asm-x86_64/topology.h~sched-remove-smt-nice include/asm-x86_64/topology.h --- a/include/asm-x86_64/topology.h~sched-remove-smt-nice +++
- vmi-cpu-cycles-fix.patch removed from -mm tree
The patch titled vmi: cpu cycles fix has been removed from the -mm tree. Its filename was vmi-cpu-cycles-fix.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: vmi: cpu cycles fix From: Zachary Amsden [EMAIL PROTECTED] In order to share the common code in tsc.c which does CPU Khz calibration, we need to make an accurate value of CPU speed available to the tsc.c code. This value loses a lot of precision in a VM because of the timing differences with real hardware, but we need it to be as precise as possible so the guest can make accurate time calculations with the cycle counters. Signed-off-by: Zachary Amsden [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- arch/i386/kernel/paravirt.c |1 + arch/i386/kernel/tsc.c |2 +- arch/i386/kernel/vmi.c |1 + arch/i386/kernel/vmitime.c | 10 +- include/asm-i386/paravirt.h |2 ++ include/asm-i386/timer.h|2 ++ include/asm-i386/vmi_time.h |1 + 7 files changed, 17 insertions(+), 2 deletions(-) diff -puN arch/i386/kernel/paravirt.c~vmi-cpu-cycles-fix arch/i386/kernel/paravirt.c --- a/arch/i386/kernel/paravirt.c~vmi-cpu-cycles-fix +++ a/arch/i386/kernel/paravirt.c @@ -522,6 +522,7 @@ struct paravirt_ops paravirt_ops = { .read_tsc = native_read_tsc, .read_pmc = native_read_pmc, .get_scheduled_cycles = native_read_tsc, + .get_cpu_khz = native_calculate_cpu_khz, .load_tr_desc = native_load_tr_desc, .set_ldt = native_set_ldt, .load_gdt = native_load_gdt, diff -puN arch/i386/kernel/tsc.c~vmi-cpu-cycles-fix arch/i386/kernel/tsc.c --- a/arch/i386/kernel/tsc.c~vmi-cpu-cycles-fix +++ a/arch/i386/kernel/tsc.c @@ -117,7 +117,7 @@ unsigned long long sched_clock(void) return cycles_2_ns(this_offset); } -static unsigned long calculate_cpu_khz(void) +unsigned long native_calculate_cpu_khz(void) { unsigned long long start, end; unsigned long count; diff -puN arch/i386/kernel/vmi.c~vmi-cpu-cycles-fix arch/i386/kernel/vmi.c --- a/arch/i386/kernel/vmi.c~vmi-cpu-cycles-fix +++ a/arch/i386/kernel/vmi.c @@ -874,6 +874,7 @@ static inline int __init activate_vmi(vo paravirt_ops.setup_secondary_clock = vmi_timer_setup_secondary_alarm; #endif paravirt_ops.get_scheduled_cycles = vmi_get_sched_cycles; + paravirt_ops.get_cpu_khz = vmi_cpu_khz; } if (!disable_noidle) para_fill(safe_halt, Halt); diff -puN arch/i386/kernel/vmitime.c~vmi-cpu-cycles-fix arch/i386/kernel/vmitime.c --- a/arch/i386/kernel/vmitime.c~vmi-cpu-cycles-fix +++ a/arch/i386/kernel/vmitime.c @@ -177,6 +177,15 @@ unsigned long long vmi_get_sched_cycles( return read_available_cycles(); } +unsigned long vmi_cpu_khz(void) +{ + unsigned long long khz; + + khz = vmi_timer_ops.get_cycle_frequency(); + (void)do_div(khz, 1000); + return khz; +} + void __init vmi_time_init(void) { unsigned long long cycles_per_sec, cycles_per_msec; @@ -206,7 +215,6 @@ void __init vmi_time_init(void) (void)do_div(cycles_per_alarm, alarm_hz); cycles_per_msec = cycles_per_sec; (void)do_div(cycles_per_msec, 1000); - cpu_khz = cycles_per_msec; printk(KERN_WARNING VMI timer cycles/sec = %llu ; cycles/jiffy = %llu ; cycles/alarm = %llu\n, cycles_per_sec, cycles_per_jiffy, diff -puN include/asm-i386/paravirt.h~vmi-cpu-cycles-fix include/asm-i386/paravirt.h --- a/include/asm-i386/paravirt.h~vmi-cpu-cycles-fix +++ a/include/asm-i386/paravirt.h @@ -95,6 +95,7 @@ struct paravirt_ops u64 (*read_tsc)(void); u64 (*read_pmc)(void); u64 (*get_scheduled_cycles)(void); + unsigned long (*get_cpu_khz)(void); void (*load_tr_desc)(void); void (*load_gdt)(const struct Xgt_desc_struct *); @@ -275,6 +276,7 @@ static inline void halt(void) #define rdtscll(val) (val = paravirt_ops.read_tsc()) #define get_scheduled_cycles(val) (val = paravirt_ops.get_scheduled_cycles()) +#define calculate_cpu_khz() (paravirt_ops.get_cpu_khz()) #define write_tsc(val1,val2) wrmsr(0x10, val1, val2) diff -puN include/asm-i386/timer.h~vmi-cpu-cycles-fix include/asm-i386/timer.h --- a/include/asm-i386/timer.h~vmi-cpu-cycles-fix +++ a/include/asm-i386/timer.h @@ -7,6 +7,7 @@ void setup_pit_timer(void); unsigned long long native_sched_clock(void); +unsigned long native_calculate_cpu_khz(void); /* Modifiers for buggy PIT handling */ extern int pit_latch_buggy; @@ -17,6 +18,7 @@ extern int recalibrate_cpu_khz(void); #ifndef CONFIG_PARAVIRT #define get_scheduled_cycles(val) rdtscll(val) +#define calculate_cpu_khz() native_calculate_cpu_khz() #endif #endif diff -puN include/asm-i386/vmi_time.h~vmi-cpu-cycles-fix include/asm-i386/vmi_time.h --- a/include/asm-i386/vmi_time.h~vmi-cpu-cycles-fix +++
- vmi-fix-highpte.patch removed from -mm tree
The patch titled vmi: fix highpte has been removed from the -mm tree. Its filename was vmi-fix-highpte.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: vmi: fix highpte From: Zachary Amsden [EMAIL PROTECTED] Provide a PT map hook for HIGHPTE kernels to designate where they are mapping page tables. This information is required so the physical address of PTE updates can be determined; otherwise, the mm layer would have to carry the physical address all the way to each PTE modification callsite, which is even more hideous that the macros required to provide the proper hooks. So lets not mess up arch neutral code to achieve this, but keep the horror in an #ifdef HIGHPTE in include/asm-i386/pgtable.h. I had to use macros here because some types are not yet defined in all the include paths for this header. This patch is absolutely required for HIGHPTE kernels to operate properly with VMI. Signed-off-by: Zachary Amsden [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- arch/i386/kernel/paravirt.c |2 ++ arch/i386/kernel/vmi.c | 19 +++ include/asm-i386/paravirt.h |4 include/asm-i386/pgtable.h | 23 +++ 4 files changed, 44 insertions(+), 4 deletions(-) diff -puN arch/i386/kernel/paravirt.c~vmi-fix-highpte arch/i386/kernel/paravirt.c --- a/arch/i386/kernel/paravirt.c~vmi-fix-highpte +++ a/arch/i386/kernel/paravirt.c @@ -553,6 +553,8 @@ struct paravirt_ops paravirt_ops = { .flush_tlb_kernel = native_flush_tlb_global, .flush_tlb_single = native_flush_tlb_single, + .map_pt_hook = (void *)native_nop, + .alloc_pt = (void *)native_nop, .alloc_pd = (void *)native_nop, .alloc_pd_clone = (void *)native_nop, diff -puN arch/i386/kernel/vmi.c~vmi-fix-highpte arch/i386/kernel/vmi.c --- a/arch/i386/kernel/vmi.c~vmi-fix-highpte +++ a/arch/i386/kernel/vmi.c @@ -370,6 +370,24 @@ static void vmi_check_page_type(u32 pfn, #define vmi_check_page_type(p,t) do { } while (0) #endif +static void vmi_map_pt_hook(int type, pte_t *va, u32 pfn) +{ + /* +* Internally, the VMI ROM must map virtual addresses to physical +* addresses for processing MMU updates. By the time MMU updates +* are issued, this information is typically already lost. +* Fortunately, the VMI provides a cache of mapping slots for active +* page tables. +* +* We use slot zero for the linear mapping of physical memory, and +* in HIGHPTE kernels, slot 1 and 2 for KM_PTE0 and KM_PTE1. +* +* args: SLOT VACOUNT PFN +*/ + BUG_ON(type != KM_PTE0 type != KM_PTE1); + vmi_ops.set_linear_mapping((type - KM_PTE0)+1, (u32)va, 1, pfn); +} + static void vmi_allocate_pt(u32 pfn) { vmi_set_page_type(pfn, VMI_PAGE_L1); @@ -813,6 +831,7 @@ static inline int __init activate_vmi(vo vmi_ops.allocate_page = vmi_get_function(VMI_CALL_AllocatePage); vmi_ops.release_page = vmi_get_function(VMI_CALL_ReleasePage); + paravirt_ops.map_pt_hook = vmi_map_pt_hook; paravirt_ops.alloc_pt = vmi_allocate_pt; paravirt_ops.alloc_pd = vmi_allocate_pd; paravirt_ops.alloc_pd_clone = vmi_allocate_pd_clone; diff -puN include/asm-i386/paravirt.h~vmi-fix-highpte include/asm-i386/paravirt.h --- a/include/asm-i386/paravirt.h~vmi-fix-highpte +++ a/include/asm-i386/paravirt.h @@ -131,6 +131,8 @@ struct paravirt_ops void (*flush_tlb_kernel)(void); void (*flush_tlb_single)(u32 addr); + void (fastcall *map_pt_hook)(int type, pte_t *va, u32 pfn); + void (*alloc_pt)(u32 pfn); void (*alloc_pd)(u32 pfn); void (*alloc_pd_clone)(u32 pfn, u32 clonepfn, u32 start, u32 count); @@ -354,6 +356,8 @@ static inline void startup_ipi_hook(int #define __flush_tlb_global() paravirt_ops.flush_tlb_kernel() #define __flush_tlb_single(addr) paravirt_ops.flush_tlb_single(addr) +#define paravirt_map_pt_hook(type, va, pfn) paravirt_ops.map_pt_hook(type, va, pfn) + #define paravirt_alloc_pt(pfn) paravirt_ops.alloc_pt(pfn) #define paravirt_release_pt(pfn) paravirt_ops.release_pt(pfn) diff -puN include/asm-i386/pgtable.h~vmi-fix-highpte include/asm-i386/pgtable.h --- a/include/asm-i386/pgtable.h~vmi-fix-highpte +++ a/include/asm-i386/pgtable.h @@ -263,6 +263,7 @@ static inline pte_t pte_mkhuge(pte_t pte */ #define pte_update(mm, addr, ptep) do { } while (0) #define pte_update_defer(mm, addr, ptep) do { } while (0) +#define paravirt_map_pt_hook(slot, va, pfn)do { } while (0) #endif /* @@ -469,10 +470,24 @@ extern pte_t *lookup_address(unsigned lo #endif #if defined(CONFIG_HIGHPTE) -#define pte_offset_map(dir, address) \ - ((pte_t *)kmap_atomic(pmd_page(*(dir)),KM_PTE0) + pte_index(address)) -#define
- gpio_keys-driver-shouldnt-be-arm-specific.patch removed from -mm tree
The patch titled gpio_keys driver shouldn't be ARM-specific has been removed from the -mm tree. Its filename was gpio_keys-driver-shouldnt-be-arm-specific.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: gpio_keys driver shouldn't be ARM-specific From: David Brownell [EMAIL PROTECTED] The gpio_keys driver is wrongly ARM-specific; it can't build on other platforms with GPIO suport. This fixes that problem. Signed-off-by: David Brownell [EMAIL PROTECTED] Cc: Dmitry Torokhov [EMAIL PROTECTED] Cc: pHilipp Zabel [EMAIL PROTECTED] Cc: Haavard Skinnemoen [EMAIL PROTECTED] Cc: Russell King [EMAIL PROTECTED] Cc: Richard Purdie [EMAIL PROTECTED] Cc: Ben Nizette [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/input/keyboard/gpio_keys.c |4 +--- include/asm-arm/hardware/gpio_keys.h | 17 - include/linux/gpio_keys.h| 17 + 3 files changed, 18 insertions(+), 20 deletions(-) diff -puN drivers/input/keyboard/gpio_keys.c~gpio_keys-driver-shouldnt-be-arm-specific drivers/input/keyboard/gpio_keys.c --- a/drivers/input/keyboard/gpio_keys.c~gpio_keys-driver-shouldnt-be-arm-specific +++ a/drivers/input/keyboard/gpio_keys.c @@ -23,11 +23,9 @@ #include linux/platform_device.h #include linux/input.h #include linux/irq.h +#include linux/gpio_keys.h #include asm/gpio.h -#include asm/arch/hardware.h - -#include asm/hardware/gpio_keys.h static irqreturn_t gpio_keys_isr(int irq, void *dev_id) { diff -puN include/asm-arm/hardware/gpio_keys.h~gpio_keys-driver-shouldnt-be-arm-specific /dev/null --- a/include/asm-arm/hardware/gpio_keys.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef _GPIO_KEYS_H -#define _GPIO_KEYS_H - -struct gpio_keys_button { - /* Configuration parameters */ - int keycode; - int gpio; - int active_low; - char *desc; -}; - -struct gpio_keys_platform_data { - struct gpio_keys_button *buttons; - int nbuttons; -}; - -#endif diff -puN /dev/null include/linux/gpio_keys.h --- /dev/null +++ a/include/linux/gpio_keys.h @@ -0,0 +1,17 @@ +#ifndef _GPIO_KEYS_H +#define _GPIO_KEYS_H + +struct gpio_keys_button { + /* Configuration parameters */ + int keycode; + int gpio; + int active_low; + char *desc; +}; + +struct gpio_keys_platform_data { + struct gpio_keys_button *buttons; + int nbuttons; +}; + +#endif _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch git-avr32.patch git-input.patch git-md-accel.patch 8250-make-probing-for-txen-bug-a-config-option.patch blackfin-on-chip-rtc-controller-driver.patch documentation-ask-driver-writers-to-provide-pm-support.patch init-dma-masks-in-pnp_dev.patch rtc-remove-sys-class-rtc-dev.patch rtc-rtc-interfaces-dont-use-class_device.patch rtc-simplified-rtc-sysfs-attribute-handling.patch rtc-simplified-proc-driver-rtc-handling.patch rtc-remove-rest-of-class_device.patch rtc-suspend-resume-restores-system-clock.patch rtc-simplified-rtc-sysfs-attribute-handling-tidy.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- vmi-paravirt-drop-udelay-op.patch removed from -mm tree
The patch titled vmi: paravirt drop udelay op has been removed from the -mm tree. Its filename was vmi-paravirt-drop-udelay-op.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: vmi: paravirt drop udelay op From: Zachary Amsden [EMAIL PROTECTED] Not respecting udelay causes problems with any virtual hardware that is passed through to real hardware. This can be noticed by any device that interacts with the real world in real time - like AP startup, which takes real time. Or keyboard LEDs, which should blink in real-time. Or floppy drives, but only when passed through to a real floppy controller on OSes which can't sufficiently buffer the floppy commands to emulate a zero latency floppy. Or IDE drives, when connecting to a physical CDROM. This was mostly a hack to get the kernel to boot faster, but it introduced a number of misvirtualization bugs, and Alan and Pavel argued pretty strongly against it. We were the only client, and now want to clean up this cruft. Signed-off-by: Zachary Amsden [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- arch/i386/kernel/paravirt.c |1 - arch/i386/kernel/smpboot.c |5 - arch/i386/kernel/vmi.c |8 +--- include/asm-i386/delay.h|8 include/asm-i386/paravirt.h |1 - 5 files changed, 1 insertion(+), 22 deletions(-) diff -puN arch/i386/kernel/paravirt.c~vmi-paravirt-drop-udelay-op arch/i386/kernel/paravirt.c --- a/arch/i386/kernel/paravirt.c~vmi-paravirt-drop-udelay-op +++ a/arch/i386/kernel/paravirt.c @@ -538,7 +538,6 @@ struct paravirt_ops paravirt_ops = { .set_iopl_mask = native_set_iopl_mask, .io_delay = native_io_delay, - .const_udelay = __const_udelay, #ifdef CONFIG_X86_LOCAL_APIC .apic_write = native_apic_write, diff -puN arch/i386/kernel/smpboot.c~vmi-paravirt-drop-udelay-op arch/i386/kernel/smpboot.c --- a/arch/i386/kernel/smpboot.c~vmi-paravirt-drop-udelay-op +++ a/arch/i386/kernel/smpboot.c @@ -33,11 +33,6 @@ * Dave Jones : Report invalid combinations of Athlon CPUs. * Rusty Russell : Hacked into shape for new hotplug boot process. */ - -/* SMP boot always wants to use real time delay to allow sufficient time for - * the APs to come online */ -#define USE_REAL_TIME_DELAY - #include linux/module.h #include linux/init.h #include linux/kernel.h diff -puN arch/i386/kernel/vmi.c~vmi-paravirt-drop-udelay-op arch/i386/kernel/vmi.c --- a/arch/i386/kernel/vmi.c~vmi-paravirt-drop-udelay-op +++ a/arch/i386/kernel/vmi.c @@ -48,7 +48,6 @@ typedef u64 __attribute__((regparm(2))) static struct vrom_header *vmi_rom; static int license_gplok; -static int disable_nodelay; static int disable_pge; static int disable_pse; static int disable_sep; @@ -801,9 +800,6 @@ static inline int __init activate_vmi(vo para_fill(set_iopl_mask, SetIOPLMask); paravirt_ops.io_delay = (void *)vmi_nop; - if (!disable_nodelay) { - paravirt_ops.const_udelay = (void *)vmi_nop; - } para_fill(set_lazy_mode, SetLazyMode); @@ -947,9 +943,7 @@ static int __init parse_vmi(char *arg) if (!arg) return -EINVAL; - if (!strcmp(arg, disable_nodelay)) - disable_nodelay = 1; - else if (!strcmp(arg, disable_pge)) { + if (!strcmp(arg, disable_pge)) { clear_bit(X86_FEATURE_PGE, boot_cpu_data.x86_capability); disable_pge = 1; } else if (!strcmp(arg, disable_pse)) { diff -puN include/asm-i386/delay.h~vmi-paravirt-drop-udelay-op include/asm-i386/delay.h --- a/include/asm-i386/delay.h~vmi-paravirt-drop-udelay-op +++ a/include/asm-i386/delay.h @@ -16,13 +16,6 @@ extern void __ndelay(unsigned long nsecs extern void __const_udelay(unsigned long usecs); extern void __delay(unsigned long loops); -#if defined(CONFIG_PARAVIRT) !defined(USE_REAL_TIME_DELAY) -#define udelay(n) paravirt_ops.const_udelay((n) * 0x10c7ul) - -#define ndelay(n) paravirt_ops.const_udelay((n) * 5ul) - -#else /* !PARAVIRT || USE_REAL_TIME_DELAY */ - /* 0x10c7 is 2**32 / 100 (rounded up) */ #define udelay(n) (__builtin_constant_p(n) ? \ ((n) 2 ? __bad_udelay() : __const_udelay((n) * 0x10c7ul)) : \ @@ -32,7 +25,6 @@ extern void __delay(unsigned long loops) #define ndelay(n) (__builtin_constant_p(n) ? \ ((n) 2 ? __bad_ndelay() : __const_udelay((n) * 5ul)) : \ __ndelay(n)) -#endif void use_tsc_delay(void); diff -puN include/asm-i386/paravirt.h~vmi-paravirt-drop-udelay-op include/asm-i386/paravirt.h --- a/include/asm-i386/paravirt.h~vmi-paravirt-drop-udelay-op +++ a/include/asm-i386/paravirt.h @@ -117,7 +117,6 @@ struct paravirt_ops void (*set_iopl_mask)(unsigned mask); void (*io_delay)(void); - void (*const_udelay)(unsigned long loops); #ifdef
- ecryptfs-check-xattr-operation-support-fix.patch removed from -mm tree
The patch titled ecryptfs: check xattr operation support fix has been removed from the -mm tree. Its filename was ecryptfs-check-xattr-operation-support-fix.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: ecryptfs: check xattr operation support fix From: Dmitriy Monakhov [EMAIL PROTECTED] - ecryptfs_write_inode_size_to_metadata() error code was ignored. - i_op-setxattr() must be supported by lower fs because used below. Signed-off-by: Monakhov Dmitriy [EMAIL PROTECTED] Acked-by: Michael Halcrow [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- fs/ecryptfs/inode.c |6 +++--- fs/ecryptfs/mmap.c |3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff -puN fs/ecryptfs/inode.c~ecryptfs-check-xattr-operation-support-fix fs/ecryptfs/inode.c --- a/fs/ecryptfs/inode.c~ecryptfs-check-xattr-operation-support-fix +++ a/fs/ecryptfs/inode.c @@ -168,9 +168,9 @@ static int grow_file(struct dentry *ecry goto out; } i_size_write(inode, 0); - ecryptfs_write_inode_size_to_metadata(lower_file, lower_inode, inode, - ecryptfs_dentry, - ECRYPTFS_LOWER_I_MUTEX_NOT_HELD); + rc = ecryptfs_write_inode_size_to_metadata(lower_file, lower_inode, + inode, ecryptfs_dentry, + ECRYPTFS_LOWER_I_MUTEX_NOT_HELD); ecryptfs_inode_to_private(inode)-crypt_stat.flags |= ECRYPTFS_NEW_FILE; out: return rc; diff -puN fs/ecryptfs/mmap.c~ecryptfs-check-xattr-operation-support-fix fs/ecryptfs/mmap.c --- a/fs/ecryptfs/mmap.c~ecryptfs-check-xattr-operation-support-fix +++ a/fs/ecryptfs/mmap.c @@ -502,7 +502,8 @@ static int ecryptfs_write_inode_size_to_ goto out; } lower_dentry = ecryptfs_dentry_to_lower(ecryptfs_dentry); - if (!lower_dentry-d_inode-i_op-getxattr) { + if (!lower_dentry-d_inode-i_op-getxattr || + !lower_dentry-d_inode-i_op-setxattr) { printk(KERN_WARNING No support for setting xattr in lower filesystem\n); rc = -ENOSYS; _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch libata-handle-ata_pci_device_do_resume-failure-while-resuming-v2.patch 3c59x-handle-pci_enable_device-failure-while-resuming.patch freevxfs-possible-null-pointer-dereference-fix.patch reiserfs-possible-null-pointer-dereference-during-resize.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- vmi-pit-override.patch removed from -mm tree
The patch titled vmi: pit override has been removed from the -mm tree. Its filename was vmi-pit-override.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: vmi: pit override From: Zachary Amsden [EMAIL PROTECTED] The time_init_hook in paravirt-ops no longer functions in the correct manner after the integration of the hrtimers code. The problem is that now the call path for time initialization is: time_init : late_time_init = hpet_time_init; late_time_init - hpet_time_init: setup_pit_timer (BAD) do_time_init -- (via paravirt.h) time_init_hook -- (via arch_hooks.h) time_init_hook (in SUBARCH/setup.c) If this isn't confusing enough, the paravirt case goes through an indirect function pointer in the paravirt-ops table. The problem is, by the time the paravirt hook is called, the pit timer is already enabled. But paravirt guests have their own timer, and don't want to use the PIT. Rather than intensify the struggle for power going on here, just make it all nice and simple and just unconditionally do all timer setup in the late_time_init hook. This also has the advantage of enabling timers in the same place in all code paths, so everyone has the same bugs and we don't have outliers who break other code because they turn on timer too early or too late. So the paravirt-ops time init function is now by default hpet_time_init, which is the time init function used for native hardware. Paravirt guests have the chance to override this when they setup the paravirt-ops table, and should need no change. Signed-off-by: Zachary Amsden [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- arch/i386/kernel/paravirt.c |2 +- arch/i386/kernel/time.c | 14 +++--- include/asm-i386/paravirt.h |4 ++-- include/asm-i386/time.h |5 - 4 files changed, 18 insertions(+), 7 deletions(-) diff -puN arch/i386/kernel/paravirt.c~vmi-pit-override arch/i386/kernel/paravirt.c --- a/arch/i386/kernel/paravirt.c~vmi-pit-override +++ a/arch/i386/kernel/paravirt.c @@ -494,7 +494,7 @@ struct paravirt_ops paravirt_ops = { .memory_setup = machine_specific_memory_setup, .get_wallclock = native_get_wallclock, .set_wallclock = native_set_wallclock, - .time_init = time_init_hook, + .time_init = hpet_time_init, .init_IRQ = native_init_IRQ, .cpuid = native_cpuid, diff -puN arch/i386/kernel/time.c~vmi-pit-override arch/i386/kernel/time.c --- a/arch/i386/kernel/time.c~vmi-pit-override +++ a/arch/i386/kernel/time.c @@ -262,14 +262,22 @@ void notify_arch_cmos_timer(void) extern void (*late_time_init)(void); /* Duplicate of time_init() below, with hpet_enable part added */ -static void __init hpet_time_init(void) +void __init hpet_time_init(void) { if (!hpet_enable()) setup_pit_timer(); - do_time_init(); + time_init_hook(); } +/* + * This is called directly from init code; we must delay timer setup in the + * HPET case as we can't make the decision to turn on HPET this early in the + * boot process. + * + * The chosen time_init function will usually be hpet_time_init, above, but + * in the case of virtual hardware, an alternative function may be substituted. + */ void __init time_init(void) { - late_time_init = hpet_time_init; + late_time_init = choose_time_init(); } diff -puN include/asm-i386/paravirt.h~vmi-pit-override include/asm-i386/paravirt.h --- a/include/asm-i386/paravirt.h~vmi-pit-override +++ a/include/asm-i386/paravirt.h @@ -186,9 +186,9 @@ static inline int set_wallclock(unsigned return paravirt_ops.set_wallclock(nowtime); } -static inline void do_time_init(void) +static inline void (*choose_time_init(void))(void) { - return paravirt_ops.time_init(); + return paravirt_ops.time_init; } /* The paravirtualized CPUID instruction. */ diff -puN include/asm-i386/time.h~vmi-pit-override include/asm-i386/time.h --- a/include/asm-i386/time.h~vmi-pit-override +++ a/include/asm-i386/time.h @@ -28,13 +28,16 @@ static inline int native_set_wallclock(u return retval; } +extern void (*late_time_init)(void); +extern void hpet_time_init(void); + #ifdef CONFIG_PARAVIRT #include asm/paravirt.h #else /* !CONFIG_PARAVIRT */ #define get_wallclock() native_get_wallclock() #define set_wallclock(x) native_set_wallclock(x) -#define do_time_init() time_init_hook() +#define choose_time_init() hpet_time_init #endif /* CONFIG_PARAVIRT */ _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch make-struct-vmi_ops-static.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- fb-sm501fb-off-by-1-sysfs-store.patch removed from -mm tree
The patch titled fb: sm501fb off-by-1 sysfs store has been removed from the -mm tree. Its filename was fb-sm501fb-off-by-1-sysfs-store.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: fb: sm501fb off-by-1 sysfs store From: Paul Mundt [EMAIL PROTECTED] Currently sm501fb_crtsrc_store() won't allow the routing to be changed via echos from userspace in to the sysfs file. The reason for this is that the strnicmp() for both heads uses a sizeof() for the string length, which ends up being strlen() + 1 (\0 in the normal case, but the echo gives a newline, which is where the issue occurs), this then causes a mismatch and subsequently bails with the -EINVAL. In addition to this, the hardcoded lengths were then used for the store length that was returned, which ended up being erroneous and resulting in a write error. There's also no point in returning anything but the full length since it will -EINVAL out on a mismatch well before then anyways. sizeof(string) is great for making sure you have space in your buffer, but rather less so for string comparisons :-) Signed-off-by: Paul Mundt [EMAIL PROTECTED] Acked-by: Ben Dooks [EMAIL PROTECTED] Cc: Antonino A. Daplas [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/video/sm501fb.c |6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff -puN drivers/video/sm501fb.c~fb-sm501fb-off-by-1-sysfs-store drivers/video/sm501fb.c --- a/drivers/video/sm501fb.c~fb-sm501fb-off-by-1-sysfs-store +++ a/drivers/video/sm501fb.c @@ -1074,9 +1074,9 @@ static ssize_t sm501fb_crtsrc_store(stru if (len 1) return -EINVAL; - if (strnicmp(buf, crt, sizeof(crt)) == 0) + if (strnicmp(buf, crt, 3) == 0) head = HEAD_CRT; - else if (strnicmp(buf, panel, sizeof(panel)) == 0) + else if (strnicmp(buf, panel, 5) == 0) head = HEAD_PANEL; else return -EINVAL; @@ -1098,7 +1098,7 @@ static ssize_t sm501fb_crtsrc_store(stru writel(ctrl, info-regs + SM501_DC_CRT_CONTROL); sm501fb_sync_regs(info); - return (head == HEAD_CRT) ? 3 : 5; + return len; } /* Prepare the device_attr for registration with sysfs later */ _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch make-aout-executables-work-again.patch git-sh.patch smaps-extract-pmd-walker-from-smaps-code.patch smaps-add-pages-referenced-count-to-smaps.patch smaps-add-clear_refs-file-to-clear-reference.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch smaps-add-clear_refs-file-to-clear-reference-fix-fix.patch simplify-the-stacktrace-code.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- vmi-fix-nohz-compile.patch removed from -mm tree
The patch titled vmi: fix nohz compile has been removed from the -mm tree. Its filename was vmi-fix-nohz-compile.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: vmi: fix nohz compile From: Zachary Amsden [EMAIL PROTECTED] More goo from hrtimers integration. We do compile and run properly with NO_HZ enabled. There was a period when we didn't because of a missing export, but that was since fixed. And with the clocksource code now firmly in place, we can get rid of code that fixes up the wallclock, since this is done in the common infrastructure. This actually fixes a timer bug as well, that was caused by do_settimeofday no longer being callable with interrupts disabled due to the use of on_each_cpu(). Signed-off-by: Zachary Amsden [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- arch/i386/Kconfig |2 +- arch/i386/kernel/vmi.c |1 + arch/i386/kernel/vmitime.c | 15 --- 3 files changed, 2 insertions(+), 16 deletions(-) diff -puN arch/i386/Kconfig~vmi-fix-nohz-compile arch/i386/Kconfig --- a/arch/i386/Kconfig~vmi-fix-nohz-compile +++ a/arch/i386/Kconfig @@ -220,7 +220,7 @@ config PARAVIRT config VMI bool VMI Paravirt-ops support - depends on PARAVIRT !NO_HZ + depends on PARAVIRT default y help VMI provides a paravirtualized interface to multiple hypervisors diff -puN arch/i386/kernel/vmi.c~vmi-fix-nohz-compile arch/i386/kernel/vmi.c --- a/arch/i386/kernel/vmi.c~vmi-fix-nohz-compile +++ a/arch/i386/kernel/vmi.c @@ -934,6 +934,7 @@ void __init vmi_init(void) #ifdef CONFIG_X86_IO_APIC no_timer_check = 1; #endif + no_sync_cmos_clock = 1; local_irq_restore(flags X86_EFLAGS_IF); } diff -puN arch/i386/kernel/vmitime.c~vmi-fix-nohz-compile arch/i386/kernel/vmitime.c --- a/arch/i386/kernel/vmitime.c~vmi-fix-nohz-compile +++ a/arch/i386/kernel/vmitime.c @@ -153,13 +153,6 @@ static void vmi_get_wallclock_ts(struct ts-tv_sec = wallclock; } -static void update_xtime_from_wallclock(void) -{ - struct timespec ts; - vmi_get_wallclock_ts(ts); - do_settimeofday(ts); -} - unsigned long vmi_get_wallclock(void) { struct timespec ts; @@ -197,18 +190,10 @@ void __init vmi_time_init(void) set_intr_gate(LOCAL_TIMER_VECTOR, apic_vmi_timer_interrupt); #endif - no_sync_cmos_clock = 1; - - vmi_get_wallclock_ts(xtime); - set_normalized_timespec(wall_to_monotonic, - -xtime.tv_sec, -xtime.tv_nsec); - real_cycles_accounted_system = read_real_cycles(); - update_xtime_from_wallclock(); per_cpu(process_times_cycles_accounted_cpu, 0) = read_available_cycles(); cycles_per_sec = vmi_timer_ops.get_cycle_frequency(); - cycles_per_jiffy = cycles_per_sec; (void)do_div(cycles_per_jiffy, HZ); cycles_per_alarm = cycles_per_sec; _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch make-struct-vmi_ops-static.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- vmi-smp-fixes.patch removed from -mm tree
The patch titled vmi: smp fixes has been removed from the -mm tree. Its filename was vmi-smp-fixes.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: vmi: smp fixes From: Zachary Amsden [EMAIL PROTECTED] Critical fixes for SMP. Fix a couple functions which needed to be __devinit and fix a bogus parameter to AP startup that just so happened to work because the low virtual mapping of memory was still established. Signed-off-by: Zachary Amsden [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- arch/i386/kernel/vmi.c |7 --- arch/i386/kernel/vmitime.c |2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff -puN arch/i386/kernel/vmi.c~vmi-smp-fixes arch/i386/kernel/vmi.c --- a/arch/i386/kernel/vmi.c~vmi-smp-fixes +++ a/arch/i386/kernel/vmi.c @@ -525,13 +525,14 @@ void vmi_pmd_clear(pmd_t *pmd) #endif #ifdef CONFIG_SMP -struct vmi_ap_state ap; extern void setup_pda(void); -static void __init /* XXX cpu hotplug */ +static void __devinit vmi_startup_ipi_hook(int phys_apicid, unsigned long start_eip, unsigned long start_esp) { + struct vmi_ap_state ap; + /* Default everything to zero. This is fine for most GPRs. */ memset(ap, 0, sizeof(struct vmi_ap_state)); @@ -570,7 +571,7 @@ vmi_startup_ipi_hook(int phys_apicid, un /* Protected mode, paging, AM, WP, NE, MP. */ ap.cr0 = 0x80050023; ap.cr4 = mmu_cr4_features; - vmi_ops.set_initial_ap_state(__pa(ap), phys_apicid); + vmi_ops.set_initial_ap_state((u32)ap, phys_apicid); } #endif diff -puN arch/i386/kernel/vmitime.c~vmi-smp-fixes arch/i386/kernel/vmitime.c --- a/arch/i386/kernel/vmitime.c~vmi-smp-fixes +++ a/arch/i386/kernel/vmitime.c @@ -243,7 +243,7 @@ void __init vmi_timer_setup_boot_alarm(v /* Initialize the time accounting variables for an AP on an SMP system. * Also, set the local alarm for the AP. */ -void __init vmi_timer_setup_secondary_alarm(void) +void __devinit vmi_timer_setup_secondary_alarm(void) { int cpu = smp_processor_id(); _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch make-struct-vmi_ops-static.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- md-fix-for-raid6-reshape.patch removed from -mm tree
The patch titled md: fix for raid6 reshape has been removed from the -mm tree. Its filename was md-fix-for-raid6-reshape.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: md: fix for raid6 reshape From: NeilBrown [EMAIL PROTECTED] Recent patch for raid6 reshape had a change missing that showed up in subsequent review. Many places in the raid5 code used conf-raid_disks-1 to mean number of data disks. With raid6 that had to be changed to conf-raid_disk - conf-max_degraded or similar. One place was missed. This bug means that if a raid6 reshape were aborted in the middle the recorded position would be wrong. On restart it would either fail (as the position wasn't on an appropriate boundary) or would leave a section of the array unreshaped, causing data corruption. Signed-off-by: Neil Brown [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/md/raid5.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/md/raid5.c~md-fix-for-raid6-reshape drivers/md/raid5.c --- a/drivers/md/raid5.c~md-fix-for-raid6-reshape +++ a/drivers/md/raid5.c @@ -3071,7 +3071,7 @@ static sector_t reshape_request(mddev_t release_stripe(sh); } spin_lock_irq(conf-device_lock); - conf-expand_progress = (sector_nr + i)*(conf-raid_disks-1); + conf-expand_progress = (sector_nr + i) * new_data_disks; spin_unlock_irq(conf-device_lock); /* Ok, those stripe are ready. We can start scheduling * reads on the source stripes. _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch revert-md-avoid-possible-bug_on-in-md-bitmap-handling-for-git-block.patch fix-quadratic-behavior-of-shrink_dcache_parent.patch fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous.patch fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous-tidy.patch the-nfsv2-nfsv3-server-does-not-handle-zero-length-write.patch readahead-nfsd-case.patch readahead-nfsd-case-fix.patch drivers-mdc-use-array_size-macro-when-appropriate.patch md-dm-reduce-stack-usage-with-stacked-block-devices.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- fix-nmi-appears-to-be-stuck.patch removed from -mm tree
The patch titled fix NMI appears to be stuck has been removed from the -mm tree. Its filename was fix-nmi-appears-to-be-stuck.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: fix NMI appears to be stuck From: Thomas Gleixner [EMAIL PROTECTED] Testing NMI watchdog ... CPU#0: NMI appears to be stuck (54-54)! CPU#1: NMI appears to be stuck (0-0)! Keep the PIT/HPET alive when nmi_watchdog = 1 is given on the command line. Signed-off-by: Thomas Gleixner [EMAIL PROTECTED] Cc: Ingo Molnar [EMAIL PROTECTED] Cc: Andi Kleen [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- arch/i386/kernel/apic.c | 11 +-- 1 file changed, 9 insertions(+), 2 deletions(-) diff -puN arch/i386/kernel/apic.c~fix-nmi-appears-to-be-stuck arch/i386/kernel/apic.c --- a/arch/i386/kernel/apic.c~fix-nmi-appears-to-be-stuck +++ a/arch/i386/kernel/apic.c @@ -493,8 +493,15 @@ void __init setup_boot_APIC_clock(void) /* No broadcast on UP ! */ if (num_possible_cpus() == 1) return; - } else - lapic_clockevent.features = ~CLOCK_EVT_FEAT_DUMMY; + } else { + /* +* If nmi_watchdog is set to IO_APIC, we need the +* PIT/HPET going. Otherwise register lapic as a dummy +* device. +*/ + if (nmi_watchdog != NMI_IO_APIC) + lapic_clockevent.features = ~CLOCK_EVT_FEAT_DUMMY; + } /* Setup the lapic or request the broadcast */ setup_APIC_timer(); _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch bugfix-dont-use-the-tsc-in-sched_clock-if-unstable.patch cleanup-unify-tsc_unstable-and-tsc_disable.patch possible-bugfix-make-dmi_mark_tsc_unstable-call-mark_tsc_unstable.patch git-block.patch log-reason-why-tsc-was-marked-unstable.patch optimize-timespec_trunc.patch sched-fix-idle-load-balancing-in-softirqd-context.patch sched-dynticks-idle-load-balancing-v3.patch scheduled-removal-of-sa_xxx-interrupt-flags-fixups-3.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- x86_64-remove-unusued-flags-variable.patch removed from -mm tree
The patch titled x86_64: remove unusued 'flags' variable has been removed from the -mm tree. Its filename was x86_64-remove-unusued-flags-variable.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: x86_64: remove unusued 'flags' variable From: David Rientjes [EMAIL PROTECTED] Removes unused 'flags' variable from setup_IO_APIC_irq(). Signed-off-by: David Rientjes [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- arch/x86_64/kernel/io_apic.c |1 - 1 file changed, 1 deletion(-) diff -puN arch/x86_64/kernel/io_apic.c~x86_64-remove-unusued-flags-variable arch/x86_64/kernel/io_apic.c --- a/arch/x86_64/kernel/io_apic.c~x86_64-remove-unusued-flags-variable +++ a/arch/x86_64/kernel/io_apic.c @@ -789,7 +789,6 @@ static void setup_IO_APIC_irq(int apic, struct irq_cfg *cfg = irq_cfg + irq; struct IO_APIC_route_entry entry; cpumask_t mask; - unsigned long flags; if (!IO_APIC_IRQ(irq)) return; _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch x86_64-configurable-fake-numa-node-sizes.patch x86_64-split-remaining-fake-nodes-equally.patch x86_64-fixed-size-remaining-fake-nodes.patch x86_64-map-fake-nodes-to-real-nodes.patch x86_64-map-fake-nodes-to-real-nodes-fix.patch x86_64-disable-alien-cache-for-fake-numa.patch x86_64-export-physnode-mapping-to-userspace.patch x86_64-fake-numa-for-cpusets-document.patch smaps-extract-pmd-walker-from-smaps-code.patch smaps-add-pages-referenced-count-to-smaps.patch smaps-add-clear_refs-file-to-clear-reference.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch smaps-add-clear_refs-file-to-clear-reference-fix-fix.patch smaps-add-clear_refs-file-to-clear-reference-docs.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- ipmi-check-if-default-ports-are-accessible-on-ppc.patch removed from -mm tree
The patch titled ipmi: check, if default ports are accessible on PPC has been removed from the -mm tree. Its filename was ipmi-check-if-default-ports-are-accessible-on-ppc.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: ipmi: check, if default ports are accessible on PPC From: Christian Krafft [EMAIL PROTECTED] ipmi_si_intf tries to access default ports, if no device could be found elsewhere. On PPC we have a function to check, if these legacy IO ports are accessible. This patch adds a check for these ports on PPC. This patch fixes a breakage of IPMI module on PPC machines without a BMC. Signed-off-by: Christian Krafft [EMAIL PROTECTED] Acked-by: Michael Ellerman [EMAIL PROTECTED] Signed-off-by: Corey Minyard [EMAIL PROTECTED] Cc: Paul Mackerras [EMAIL PROTECTED] Cc: Benjamin Herrenschmidt [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/char/ipmi/ipmi_si_intf.c |5 + 1 file changed, 5 insertions(+) diff -puN drivers/char/ipmi/ipmi_si_intf.c~ipmi-check-if-default-ports-are-accessible-on-ppc drivers/char/ipmi/ipmi_si_intf.c --- a/drivers/char/ipmi/ipmi_si_intf.c~ipmi-check-if-default-ports-are-accessible-on-ppc +++ a/drivers/char/ipmi/ipmi_si_intf.c @@ -2478,6 +2478,11 @@ static __devinit void default_find_bmc(v if (!info) return; +#ifdef CONFIG_PPC_MERGE + if (check_legacy_ioport(ipmi_defaults[i].port)) + continue; +#endif + info-addr_source = NULL; info-si_type = ipmi_defaults[i].type; _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch ipmi-add-powerpc-openfirmware-sensing.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- atyfb-fix-kconfig-error.patch removed from -mm tree
The patch titled atyfb: Fix kconfig error has been removed from the -mm tree. Its filename was atyfb-fix-kconfig-error.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: atyfb: Fix kconfig error From: Antonino A. Daplas [EMAIL PROTECTED] Fix the following compile error: MODPOST 327 modules WARNING: aty_st_lcd [drivers/video/aty/atyfb.ko] undefined! WARNING: aty_ld_lcd [drivers/video/aty/atyfb.ko] undefined! make[1]: *** [__modpost] Error 1 make: *** [modules] Error 2 Signed-off-by: Antonino Daplas [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/video/aty/atyfb_base.c |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff -puN drivers/video/aty/atyfb_base.c~atyfb-fix-kconfig-error drivers/video/aty/atyfb_base.c --- a/drivers/video/aty/atyfb_base.c~atyfb-fix-kconfig-error +++ a/drivers/video/aty/atyfb_base.c @@ -131,7 +131,8 @@ #define PRINTKI(fmt, args...) printk(KERN_INFO atyfb: fmt, ## args) #define PRINTKE(fmt, args...) printk(KERN_ERR atyfb: fmt, ## args) -#if defined(CONFIG_PM) || defined(CONFIG_PMAC_BACKLIGHT) || defined (CONFIG_FB_ATY_GENERIC_LCD) +#if defined(CONFIG_PM) || defined(CONFIG_PMAC_BACKLIGHT) || \ +defined (CONFIG_FB_ATY_GENERIC_LCD) || defined(CONFIG_FB_ATY_BACKLIGHT) static const u32 lt_lcd_regs[] = { CONFIG_PANEL_LG, LCD_GEN_CNTL_LG, _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch nvidiafb-backlight-fix-implicit-declaration-in-nv_backlight.patch atyfb-fix-kconfig-error-part-2.patch fbdev-fix-kconfig-error-if-fb_ddc=n.patch fbdev-add-ultrasharp-uxga-to-broken-monitor-database.patch fbdev-add-ultrasharp-uxga-to-broken-monitor-database-fix.patch intelfb-fix-ring-space-calculation.patch nvidiafb-bring-back-generic-ddc-reading.patch fbdev-ignore-vesa-modes-if-framebuffer-is-disabled.patch fbdev-fix-obvious-bug-in-show_pan.patch neofb-fill-transp-msb_right-with-the-correct.patch atyfb-kill-dead-code.patch fbdev-mm-deferred-io-support.patch fbdev-hecuba-framebuffer-driver.patch fbdev-hecuba-framebuffer-driver-fix.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- documentation-for-io-accounting--reporting-via-procfs.patch removed from -mm tree
The patch titled Documentation for io-accounting / reporting via procfs has been removed from the -mm tree. Its filename was documentation-for-io-accounting--reporting-via-procfs.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: Documentation for io-accounting / reporting via procfs From: Roland Kletzing [EMAIL PROTECTED] Add some documentation for the new and very useful io-accounting feature. It's being added to Documentation/filesystems/proc.txt Signed-off-by: Roland Kletzing [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- Documentation/filesystems/proc.txt | 105 +++ 1 file changed, 105 insertions(+) diff -puN Documentation/filesystems/proc.txt~documentation-for-io-accounting--reporting-via-procfs Documentation/filesystems/proc.txt --- a/Documentation/filesystems/proc.txt~documentation-for-io-accounting--reporting-via-procfs +++ a/Documentation/filesystems/proc.txt @@ -41,6 +41,7 @@ Table of Contents 2.11 /proc/sys/fs/mqueue - POSIX message queues filesystem 2.12 /proc/pid/oom_adj - Adjust the oom-killer score 2.13 /proc/pid/oom_score - Display current oom-killer score + 2.14 /proc/pid/io - Display the IO accounting fields -- Preface @@ -1990,3 +1991,107 @@ need to recompile the kernel, or even command to write value into these files, thereby changing the default settings of the kernel. -- + +2.14 /proc/pid/io - Display the IO accounting fields +--- + +This file contains IO statistics for each running process + +Example +--- + +test:/tmp # dd if=/dev/zero of=/tmp/test.dat +[1] 3828 + +test:/tmp # cat /proc/3828/io +rchar: 323934931 +wchar: 323929600 +syscr: 632687 +syscw: 632675 +read_bytes: 0 +write_bytes: 323932160 +cancelled_write_bytes: 0 + + +Description +--- + +rchar +- + +I/O counter: chars read +The number of bytes which this task has caused to be read from storage. This +is simply the sum of bytes which this process passed to read() and pread(). +It includes things like tty IO and it is unaffected by whether or not actual +physical disk IO was required (the read might have been satisfied from +pagecache) + + +wchar +- + +I/O counter: chars written +The number of bytes which this task has caused, or shall cause to be written +to disk. Similar caveats apply here as with rchar. + + +syscr +- + +I/O counter: read syscalls +Attempt to count the number of read I/O operations, i.e. syscalls like read() +and pread(). + + +syscw +- + +I/O counter: write syscalls +Attempt to count the number of write I/O operations, i.e. syscalls like +write() and pwrite(). + + +read_bytes +-- + +I/O counter: bytes read +Attempt to count the number of bytes which this process really did cause to +be fetched from the storage layer. Done at the submit_bio() level, so it is +accurate for block-backed filesystems. please add status regarding NFS and +CIFS at a later time + + +write_bytes +--- + +I/O counter: bytes written +Attempt to count the number of bytes which this process caused to be sent to +the storage layer. This is done at page-dirtying time. + + +cancelled_write_bytes +- + +The big inaccuracy here is truncate. If a process writes 1MB to a file and +then deletes the file, it will in fact perform no writeout. But it will have +been accounted as having caused 1MB of write. +In other words: The number of bytes which this process caused to not happen, +by truncating pagecache. A task can cause negative IO too. If this task +truncates some dirty pagecache, some IO which another task has been accounted +for (in it's write_bytes) will not be happening. We _could_ just subtract that +from the truncating task's write_bytes, but there is information loss in doing +that. + + +Note + + +At its current implementation state, this is a bit racy on 32-bit machines: if +process A reads process B's /proc/pid/io while process B is updating one of +those 64-bit counters, process A could see an intermediate result. + + +More information about this can be found within the taskstats documentation in +Documentation/accounting. + +-- _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- char-epcac-remove-unused-function.patch removed from -mm tree
The patch titled char/epca.c: remove unused function has been removed from the -mm tree. Its filename was char-epcac-remove-unused-function.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: char/epca.c: remove unused function From: Michal Piotrowski [EMAIL PROTECTED] drivers/char/epca.c:2741: warning: 'get_termio' defined but not used Signed-off-by: Michal Piotrowski [EMAIL PROTECTED] Acked-by: Alan Cox [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/char/epca.c | 17 - 1 file changed, 17 deletions(-) diff -puN drivers/char/epca.c~char-epcac-remove-unused-function drivers/char/epca.c --- a/drivers/char/epca.c~char-epcac-remove-unused-function +++ a/drivers/char/epca.c @@ -209,7 +209,6 @@ static void digi_send_break(struct chann static void setup_empty_event(struct tty_struct *tty, struct channel *ch); void epca_setup(char *, int *); -static int get_termio(struct tty_struct *, struct termio __user *); static int pc_write(struct tty_struct *, const unsigned char *, int); static int pc_init(void); static int init_PCI(void); @@ -2362,15 +2361,6 @@ static int pc_ioctl(struct tty_struct *t switch (cmd) { /* Begin switch cmd */ - -#if 0 /* Handled by calling layer properly */ - case TCGETS: - if (copy_to_user(argp, tty-termios, sizeof(struct ktermios))) - return -EFAULT; - return 0; - case TCGETA: - return get_termio(tty, argp); -#endif case TCSBRK:/* SVID version: non-zero arg -- no break */ retval = tty_check_change(tty); if (retval) @@ -2735,13 +2725,6 @@ static void setup_empty_event(struct tty memoff(ch); } /* End setup_empty_event */ -/* - Begin get_termio --- */ - -static int get_termio(struct tty_struct * tty, struct termio __user * termio) -{ /* Begin get_termio */ - return kernel_termios_to_user_termio(termio, tty-termios); -} /* End get_termio */ - /* -- Begin epca_setup -- */ void epca_setup(char *str, int *ints) { /* Begin epca_setup */ _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch git-ia64.patch git-input.patch i386-irq-kill-irq-compression-fix.patch extend-notifier_call_chain-to-count-nr_calls-made-fixes-3.patch edac-new-opteron-athlon64-memory-controller-driver.patch reiser4-configh.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- clocksource-init-adjustments-fix-bug-7426.patch removed from -mm tree
The patch titled clocksource init adjustments (fix bug #7426) has been removed from the -mm tree. Its filename was clocksource-init-adjustments-fix-bug-7426.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: clocksource init adjustments (fix bug #7426) From: john stultz [EMAIL PROTECTED] This patch resolves the issue found here: http://bugme.osdl.org/show_bug.cgi?id=7426 The basic summary is: Currently we register most of i386/x86_64 clocksources at module_init time. Then we enable clocksource selection at late_initcall time. This causes some problems for drivers that use gettimeofday for init calibration routines (specifically the es1968 driver in this case), where durring module_init, the only clocksource available is the low-res jiffies clocksource. This may cause slight calibration errors, due to the small sampling time used. It should be noted that drivers that require fine grained time may not function on architectures that do not have better then jiffies resolution timekeeping (there are a few). However, this does not discount the reasonable need for such fine-grained timekeeping at init time. Thus the solution here is to register clocksources earlier (ideally when the hardware is being initialized), and then we enable clocksource selection at fs_initcall (before device_initcall). This patch should probably get some testing time in -mm, since clocksource selection is one of the most important issues for correct timekeeping, and I've only been able to test this on a few of my own boxes. Signed-off-by: John Stultz [EMAIL PROTECTED] Cc: Thomas Gleixner [EMAIL PROTECTED] Cc: Ingo Molnar [EMAIL PROTECTED] Cc: David S. Miller [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- arch/i386/kernel/hpet.c | 80 ++- arch/i386/kernel/i8253.c |2 arch/i386/kernel/setup.c |1 arch/i386/kernel/time.c |1 arch/i386/kernel/tsc.c| 83 ++-- arch/x86_64/kernel/hpet.c | 109 arch/x86_64/kernel/time.c |2 arch/x86_64/kernel/tsc.c |7 -- drivers/clocksource/acpi_pm.c |5 + drivers/clocksource/cyclone.c |2 include/asm-x86_64/tsc.h |1 kernel/time/clocksource.c |8 +- 12 files changed, 135 insertions(+), 166 deletions(-) diff -puN arch/i386/kernel/hpet.c~clocksource-init-adjustments-fix-bug-7426 arch/i386/kernel/hpet.c --- a/arch/i386/kernel/hpet.c~clocksource-init-adjustments-fix-bug-7426 +++ a/arch/i386/kernel/hpet.c @@ -201,12 +201,30 @@ static int hpet_next_event(unsigned long } /* + * Clock source related code + */ +static cycle_t read_hpet(void) +{ + return (cycle_t)hpet_readl(HPET_COUNTER); +} + +static struct clocksource clocksource_hpet = { + .name = hpet, + .rating = 250, + .read = read_hpet, + .mask = HPET_MASK, + .shift = HPET_SHIFT, + .flags = CLOCK_SOURCE_IS_CONTINUOUS, +}; + +/* * Try to setup the HPET timer */ int __init hpet_enable(void) { unsigned long id; uint64_t hpet_freq; + u64 tmp; if (!is_hpet_capable()) return 0; @@ -253,6 +271,25 @@ int __init hpet_enable(void) /* Start the counter */ hpet_start_counter(); + /* Initialize and register HPET clocksource +* +* hpet period is in femto seconds per cycle +* so we need to convert this to ns/cyc units +* aproximated by mult/2^shift +* +* fsec/cyc * 1nsec/100fsec = nsec/cyc = mult/2^shift +* fsec/cyc * 1ns/100fsec * 2^shift = mult +* fsec/cyc * 2^shift * 1nsec/100fsec = mult +* (fsec/cyc shift)/100 = mult +* (hpet_period shift)/FSEC_PER_NSEC = mult +*/ + tmp = (u64)hpet_period HPET_SHIFT; + do_div(tmp, FSEC_PER_NSEC); + clocksource_hpet.mult = (u32)tmp; + + clocksource_register(clocksource_hpet); + + if (id HPET_ID_LEGSUP) { hpet_enable_int(); hpet_reserve_platform_timers(id); @@ -273,49 +310,6 @@ out_nohpet: return 0; } -/* - * Clock source related code - */ -static cycle_t read_hpet(void) -{ - return (cycle_t)hpet_readl(HPET_COUNTER); -} - -static struct clocksource clocksource_hpet = { - .name = hpet, - .rating = 250, - .read = read_hpet, - .mask = HPET_MASK, - .shift = HPET_SHIFT, - .flags = CLOCK_SOURCE_IS_CONTINUOUS, -}; - -static int __init init_hpet_clocksource(void) -{ - u64 tmp; - - if (!hpet_virt_address) - return -ENODEV; - - /* -* hpet period is in femto seconds per cycle -* so we need to convert this to ns/cyc units -*
- usb-storage-do-not-rebuild-when-kernel-version-changes.patch removed from -mm tree
The patch titled usb-storage: do not rebuild when kernel version changes has been removed from the -mm tree. Its filename was usb-storage-do-not-rebuild-when-kernel-version-changes.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: usb-storage: do not rebuild when kernel version changes From: Sam Ravnborg [EMAIL PROTECTED] Replacing use of UTS_RELEASE with utsname()-release avoids that the usb-storage driver is recompiled each time the kernel version changes. Signed-off-by: Sam Ravnborg [EMAIL PROTECTED] Cc: Greg KH [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/usb/storage/usb.c |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff -puN drivers/usb/storage/usb.c~usb-storage-do-not-rebuild-when-kernel-version-changes drivers/usb/storage/usb.c --- a/drivers/usb/storage/usb.c~usb-storage-do-not-rebuild-when-kernel-version-changes +++ a/drivers/usb/storage/usb.c @@ -55,7 +55,7 @@ #include linux/slab.h #include linux/kthread.h #include linux/mutex.h -#include linux/utsrelease.h +#include linux/utsname.h #include scsi/scsi.h #include scsi/scsi_cmnd.h @@ -547,7 +547,7 @@ static int get_device_info(struct us_dat idesc-bInterfaceSubClass, idesc-bInterfaceProtocol, msgs[msg], - UTS_RELEASE); + utsname()-release); } return 0; _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch kbuild-override-build-timestamp.patch kconfig-abort-configuration-with-recursive-dependencies.patch pci-do-not-mark-exported-functions-as-__devinit.patch x86_64-fix-section-mismatch-warnings.patch fix-section-mismatch-warning-in-lib-swiotlbc.patch extend-print_symbol-capability.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- timer-hrtimer-take-per-cpu-locks-in-sane-order.patch removed from -mm tree
The patch titled timer/hrtimer: take per cpu locks in sane order has been removed from the -mm tree. Its filename was timer-hrtimer-take-per-cpu-locks-in-sane-order.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: timer/hrtimer: take per cpu locks in sane order From: Heiko Carstens [EMAIL PROTECTED] Doing something like this on a two cpu system # echo 0 /sys/devices/system/cpu/cpu0/online # echo 1 /sys/devices/system/cpu/cpu0/online # echo 0 /sys/devices/system/cpu/cpu1/online will give me this: === [ INFO: possible circular locking dependency detected ] 2.6.21-rc2-g562aa1d4-dirty #7 --- bash/1282 is trying to acquire lock: (cpu_base-lock_key){.+..}, at: [0005f17e] hrtimer_cpu_notify+0xc6/0x240 but task is already holding lock: (cpu_base-lock_key#2){.+..}, at: [0005f174] hrtimer_cpu_notify+0xbc/0x240 which lock already depends on the new lock. This happens because we have the following code in kernel/hrtimer.c: migrate_hrtimers(int cpu) [...] old_base = per_cpu(hrtimer_bases, cpu); new_base = get_cpu_var(hrtimer_bases); [...] spin_lock(new_base-lock); spin_lock(old_base-lock); Which means the spinlocks are taken in an order which depends on which cpu gets shut down from which other cpu. Therefore lockdep complains that there might be an ABBA deadlock. Since migrate_hrtimers() gets only called on cpu hotplug it's safe to assume that it isn't executed concurrently on a The same problem exists in kernel/timer.c: migrate_timers(). As pointed out by Christian Borntraeger one possible solution to avoid the locking order complaints would be to make sure that the locks are always taken in the same order. E.g. by taking the lock of the cpu with the lower number first. To achieve this we introduce two new spinlock functions double_spin_lock and double_spin_unlock which lock or unlock two locks in a given order. Cc: Ingo Molnar [EMAIL PROTECTED] Cc: Thomas Gleixner [EMAIL PROTECTED] Cc: Roman Zippel [EMAIL PROTECTED] Cc: John Stultz [EMAIL PROTECTED] Cc: Christian Borntraeger [EMAIL PROTECTED] Cc: Martin Schwidefsky [EMAIL PROTECTED] Signed-off-by: Heiko Carstens [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- include/linux/spinlock.h | 37 + kernel/hrtimer.c |9 - kernel/timer.c |8 3 files changed, 45 insertions(+), 9 deletions(-) diff -puN include/linux/spinlock.h~timer-hrtimer-take-per-cpu-locks-in-sane-order include/linux/spinlock.h --- a/include/linux/spinlock.h~timer-hrtimer-take-per-cpu-locks-in-sane-order +++ a/include/linux/spinlock.h @@ -283,6 +283,43 @@ do { \ }) /* + * Locks two spinlocks l1 and l2. + * l1_first indicates if spinlock l1 should be taken first. + */ +static inline void double_spin_lock(spinlock_t *l1, spinlock_t *l2, + bool l1_first) + __acquires(l1) + __acquires(l2) +{ + if (l1_first) { + spin_lock(l1); + spin_lock(l2); + } else { + spin_lock(l2); + spin_lock(l1); + } +} + +/* + * Unlocks two spinlocks l1 and l2. + * l1_taken_first indicates if spinlock l1 was taken first and therefore + * should be released after spinlock l2. + */ +static inline void double_spin_unlock(spinlock_t *l1, spinlock_t *l2, + bool l1_taken_first) + __releases(l1) + __releases(l2) +{ + if (l1_taken_first) { + spin_unlock(l2); + spin_unlock(l1); + } else { + spin_unlock(l1); + spin_unlock(l2); + } +} + +/* * Pull the atomic_t declaration: * (asm-mips/atomic.h needs above definitions) */ diff -puN kernel/hrtimer.c~timer-hrtimer-take-per-cpu-locks-in-sane-order kernel/hrtimer.c --- a/kernel/hrtimer.c~timer-hrtimer-take-per-cpu-locks-in-sane-order +++ a/kernel/hrtimer.c @@ -1355,17 +1355,16 @@ static void migrate_hrtimers(int cpu) tick_cancel_sched_timer(cpu); local_irq_disable(); - - spin_lock(new_base-lock); - spin_lock(old_base-lock); + double_spin_lock(new_base-lock, old_base-lock, +smp_processor_id() cpu); for (i = 0; i HRTIMER_MAX_CLOCK_BASES; i++) { migrate_hrtimer_list(old_base-clock_base[i], new_base-clock_base[i]); } - spin_unlock(old_base-lock); - spin_unlock(new_base-lock); + double_spin_unlock(new_base-lock, old_base-lock, + smp_processor_id() cpu); local_irq_enable(); put_cpu_var(hrtimer_bases); } diff -puN
- pcie-fix-section-mismatch-warning.patch removed from -mm tree
The patch titled pcie: fix section mismatch warning has been removed from the -mm tree. Its filename was pcie-fix-section-mismatch-warning.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: pcie: fix section mismatch warning From: Sam Ravnborg [EMAIL PROTECTED] Fix following section mismatch warning (when compiled with CONFIG_HOTPLUG=n): WARNING: drivers/pci/built-in.o - Section mismatch: reference to .init.text:pcie_portdrv_probe from .data between 'pcie_portdrv' (at offset 0xe40) and 'pcie_portdrv_err_handler' This warning was fixed by renaming pcie_portdrv to pcie_portdriver so we pass the whitelist. Signed-off-by: Sam Ravnborg [EMAIL PROTECTED] Cc: Greg KH [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/pci/pcie/portdrv_pci.c |6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff -puN drivers/pci/pcie/portdrv_pci.c~pcie-fix-section-mismatch-warning drivers/pci/pcie/portdrv_pci.c --- a/drivers/pci/pcie/portdrv_pci.c~pcie-fix-section-mismatch-warning +++ a/drivers/pci/pcie/portdrv_pci.c @@ -276,7 +276,7 @@ static struct pci_error_handlers pcie_po .resume = pcie_portdrv_err_resume, }; -static struct pci_driver pcie_portdrv = { +static struct pci_driver pcie_portdriver = { .name = (char *)device_name, .id_table = port_pci_ids[0], @@ -298,7 +298,7 @@ static int __init pcie_portdrv_init(void printk(KERN_WARNING PCIE: bus_register error: %d\n, retval); goto out; } - retval = pci_register_driver(pcie_portdrv); + retval = pci_register_driver(pcie_portdriver); if (retval) pcie_port_bus_unregister(); out: @@ -307,7 +307,7 @@ static int __init pcie_portdrv_init(void static void __exit pcie_portdrv_exit(void) { - pci_unregister_driver(pcie_portdrv); + pci_unregister_driver(pcie_portdriver); pcie_port_bus_unregister(); } _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch kbuild-override-build-timestamp.patch kconfig-abort-configuration-with-recursive-dependencies.patch pci-do-not-mark-exported-functions-as-__devinit.patch x86_64-fix-section-mismatch-warnings.patch fix-section-mismatch-warning-in-lib-swiotlbc.patch extend-print_symbol-capability.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- aer-fix-section-mismatch-warning.patch removed from -mm tree
The patch titled aer: fix section mismatch warning has been removed from the -mm tree. Its filename was aer-fix-section-mismatch-warning.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: aer: fix section mismatch warning From: Sam Ravnborg [EMAIL PROTECTED] Fix following section mismatch warning (when compiled with CONFIG_HOTPLUG=n): WARNING: drivers/pci/built-in.o - Section mismatch: reference to .init.text:aer_probe from .data between 'aerdrv' (at offset 0x1608) and 'aer_error_handlers' Warning was fixed by renaming aerdrv to aerdriver so we pass the whitelist. Signed-off-by: Sam Ravnborg [EMAIL PROTECTED] Cc: Greg KH [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/pci/pcie/aer/aerdrv.c |6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff -puN drivers/pci/pcie/aer/aerdrv.c~aer-fix-section-mismatch-warning drivers/pci/pcie/aer/aerdrv.c --- a/drivers/pci/pcie/aer/aerdrv.c~aer-fix-section-mismatch-warning +++ a/drivers/pci/pcie/aer/aerdrv.c @@ -66,7 +66,7 @@ static struct pci_error_handlers aer_err .resume = aer_error_resume, }; -static struct pcie_port_service_driver aerdrv = { +static struct pcie_port_service_driver aerdriver = { .name = aer, .id_table = aer_id[0], @@ -328,7 +328,7 @@ static void aer_error_resume(struct pci_ **/ static int __init aer_service_init(void) { - return pcie_port_service_register(aerdrv); + return pcie_port_service_register(aerdriver); } /** @@ -338,7 +338,7 @@ static int __init aer_service_init(void) **/ static void __exit aer_service_exit(void) { - pcie_port_service_unregister(aerdrv); + pcie_port_service_unregister(aerdriver); } module_init(aer_service_init); _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch kbuild-override-build-timestamp.patch kconfig-abort-configuration-with-recursive-dependencies.patch pci-do-not-mark-exported-functions-as-__devinit.patch x86_64-fix-section-mismatch-warnings.patch fix-section-mismatch-warning-in-lib-swiotlbc.patch extend-print_symbol-capability.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- schedule-wext-rtnl-for-removal.patch removed from -mm tree
The patch titled schedule wext/rtnl for removal has been removed from the -mm tree. Its filename was schedule-wext-rtnl-for-removal.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: schedule wext/rtnl for removal From: Johannes Berg [EMAIL PROTECTED] Since wext is being replaced as fast as we can (it'll probably stick around for legacy drivers though) and the wext/netlink stuff was never really used, this schedules it for removal. The removal schedule is tight but there are no users of the code, the main user of the wext user interface are the wireless-tools, they only have an alpha version using the netlink interface and even that is incomplete. Signed-off-by: Johannes Berg [EMAIL PROTECTED] Signed-off-by: John W. Linville [EMAIL PROTECTED] Cc: Jeff Garzik [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- Documentation/feature-removal-schedule.txt | 12 1 file changed, 12 insertions(+) diff -puN Documentation/feature-removal-schedule.txt~schedule-wext-rtnl-for-removal Documentation/feature-removal-schedule.txt --- a/Documentation/feature-removal-schedule.txt~schedule-wext-rtnl-for-removal +++ a/Documentation/feature-removal-schedule.txt @@ -304,3 +304,15 @@ Why: The code says it was obsolete when Who: Richard Purdie [EMAIL PROTECTED] --- + +What: Wireless extensions over netlink (CONFIG_NET_WIRELESS_RTNETLINK) +When: with the merge of wireless-dev, 2.6.22 or later +Why: The option/code is +* not enabled on most kernels +* not required by any userspace tools (except an experimental one, + and even there only for some parts, others use ioctl) +* pointless since wext is no longer evolving and the ioctl + interface needs to be kept +Who: Johannes Berg [EMAIL PROTECTED] + +--- _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch git-wireless.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- dz-remove-struct-pt_regs-references.patch removed from -mm tree
The patch titled dz: remove struct pt_regs references has been removed from the -mm tree. Its filename was dz-remove-struct-pt_regs-references.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: dz: remove struct pt_regs references From: Maciej W. Rozycki [EMAIL PROTECTED] Remove remaining references to saved registers now that uart_handle_sysrq_char() does not want them. Signed-off-by: Maciej W. Rozycki [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/serial/dz.c |7 +++ 1 file changed, 3 insertions(+), 4 deletions(-) diff -puN drivers/serial/dz.c~dz-remove-struct-pt_regs-references drivers/serial/dz.c --- a/drivers/serial/dz.c~dz-remove-struct-pt_regs-references +++ a/drivers/serial/dz.c @@ -170,8 +170,7 @@ static void dz_enable_ms(struct uart_por * This routine deals with inputs from any lines. * */ -static inline void dz_receive_chars(struct dz_port *dport_in, - struct pt_regs *regs) +static inline void dz_receive_chars(struct dz_port *dport_in) { struct dz_port *dport; struct tty_struct *tty = NULL; @@ -226,7 +225,7 @@ static inline void dz_receive_chars(stru break; } - if (uart_handle_sysrq_char(dport-port, ch, regs)) + if (uart_handle_sysrq_char(dport-port, ch)) continue; if ((status dport-port.ignore_status_mask) == 0) { @@ -332,7 +331,7 @@ static irqreturn_t dz_interrupt(int irq, status = dz_in(dport, DZ_CSR); if ((status (DZ_RDONE | DZ_RIE)) == (DZ_RDONE | DZ_RIE)) - dz_receive_chars(dport, regs); + dz_receive_chars(dport); if ((status (DZ_TRDY | DZ_TIE)) == (DZ_TRDY | DZ_TIE)) dz_transmit_chars(dport); _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch aio-use-flush_work.patch kblockd-use-flush_work.patch relayfs-use-flush_keventd_work.patch tg3-use-flush_keventd_work.patch e1000-use-flush_keventd_work.patch libata-use-flush_work.patch phy-use-flush_work.patch tgafb-turbochannel-support.patch tgafb-accelerated-code.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- ecryptfs-handles-aop_truncated_page-better.patch removed from -mm tree
The patch titled ecryptfs: handle AOP_TRUNCATED_PAGE better has been removed from the -mm tree. Its filename was ecryptfs-handles-aop_truncated_page-better.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: ecryptfs: handle AOP_TRUNCATED_PAGE better From: Dmitriy Monakhov [EMAIL PROTECTED] - In fact we don't have to fail if AOP_TRUNCATED_PAGE was returned from prepare_write or commit_write. It is beter to retry attempt where it is possible. - Rearange ecryptfs_get_lower_page() error handling logic, make it more clean. Signed-off-by: Dmitriy Monakhov [EMAIL PROTECTED] Acked-by: Michael Halcrow [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- fs/ecryptfs/mmap.c | 28 1 file changed, 16 insertions(+), 12 deletions(-) diff -puN fs/ecryptfs/mmap.c~ecryptfs-handles-aop_truncated_page-better fs/ecryptfs/mmap.c --- a/fs/ecryptfs/mmap.c~ecryptfs-handles-aop_truncated_page-better +++ a/fs/ecryptfs/mmap.c @@ -446,6 +446,7 @@ static int ecryptfs_write_inode_size_to_ const struct address_space_operations *lower_a_ops; u64 file_size; +retry: header_page = grab_cache_page(lower_inode-i_mapping, 0); if (!header_page) { ecryptfs_printk(KERN_ERR, grab_cache_page for @@ -456,9 +457,10 @@ static int ecryptfs_write_inode_size_to_ lower_a_ops = lower_inode-i_mapping-a_ops; rc = lower_a_ops-prepare_write(lower_file, header_page, 0, 8); if (rc) { - if (rc == AOP_TRUNCATED_PAGE) + if (rc == AOP_TRUNCATED_PAGE) { ecryptfs_release_lower_page(header_page, 0); - else + goto retry; + } else ecryptfs_release_lower_page(header_page, 1); goto out; } @@ -473,9 +475,10 @@ static int ecryptfs_write_inode_size_to_ if (rc 0) ecryptfs_printk(KERN_ERR, Error commiting header page write\n); - if (rc == AOP_TRUNCATED_PAGE) + if (rc == AOP_TRUNCATED_PAGE) { ecryptfs_release_lower_page(header_page, 0); - else + goto retry; + } else ecryptfs_release_lower_page(header_page, 1); lower_inode-i_mtime = lower_inode-i_ctime = CURRENT_TIME; mark_inode_dirty_sync(inode); @@ -565,6 +568,7 @@ int ecryptfs_get_lower_page(struct page { int rc = 0; +retry: *lower_page = grab_cache_page(lower_inode-i_mapping, lower_page_index); if (!(*lower_page)) { rc = -EINVAL; @@ -578,18 +582,18 @@ int ecryptfs_get_lower_page(struct page byte_offset, region_bytes); if (rc) { - ecryptfs_printk(KERN_ERR, prepare_write for + if (rc == AOP_TRUNCATED_PAGE) { + ecryptfs_release_lower_page(*lower_page, 0); + goto retry; + } else { + ecryptfs_printk(KERN_ERR, prepare_write for lower_page_index = [0x%.16x] failed; rc = [%d]\n, lower_page_index, rc); - } -out: - if (rc (*lower_page)) { - if (rc == AOP_TRUNCATED_PAGE) - ecryptfs_release_lower_page(*lower_page, 0); - else ecryptfs_release_lower_page(*lower_page, 1); - (*lower_page) = NULL; + (*lower_page) = NULL; + } } +out: return rc; } _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch libata-handle-ata_pci_device_do_resume-failure-while-resuming-v2.patch 3c59x-handle-pci_enable_device-failure-while-resuming.patch sk98lin-handle-pci_enable_device-return-value-in-skge_resume.patch mpt-fusion-handle-mpt_resume-failure-while-resuming.patch freevxfs-possible-null-pointer-dereference-fix.patch reiserfs-possible-null-pointer-dereference-during-resize.patch irq-add-__must_check-to-request_irq.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- arch-i386-kernel-vmic-must-include-asm-kmap_typesh.patch removed from -mm tree
The patch titled arch/i386/kernel/vmi.c must #include asm/kmap_types.h has been removed from the -mm tree. Its filename was arch-i386-kernel-vmic-must-include-asm-kmap_typesh.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: arch/i386/kernel/vmi.c must #include asm/kmap_types.h From: Adrian Bunk [EMAIL PROTECTED] CC arch/i386/kernel/vmi.o /home/bunk/linux/kernel-2.6/linux-2.6.21-rc2-mm1/arch/i386/kernel/vmi.c: In function 'vmi_map_pt_hook': /home/bunk/linux/kernel-2.6/linux-2.6.21-rc2-mm1/arch/i386/kernel/vmi.c:387: error: 'KM_PTE0' undeclared (first use in this function) /home/bunk/linux/kernel-2.6/linux-2.6.21-rc2-mm1/arch/i386/kernel/vmi.c:387: error: (Each undeclared identifier is reported only once /home/bunk/linux/kernel-2.6/linux-2.6.21-rc2-mm1/arch/i386/kernel/vmi.c:387: error: for each function it appears in.) /home/bunk/linux/kernel-2.6/linux-2.6.21-rc2-mm1/arch/i386/kernel/vmi.c:387: error: 'KM_PTE1' undeclared (first use in this function) make[2]: *** [arch/i386/kernel/vmi.o] Error 1 Signed-off-by: Adrian Bunk [EMAIL PROTECTED] Acked-by: Zachary Amsden [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- arch/i386/kernel/vmi.c |1 + 1 file changed, 1 insertion(+) diff -puN arch/i386/kernel/vmi.c~arch-i386-kernel-vmic-must-include-asm-kmap_typesh arch/i386/kernel/vmi.c --- a/arch/i386/kernel/vmi.c~arch-i386-kernel-vmic-must-include-asm-kmap_typesh +++ a/arch/i386/kernel/vmi.c @@ -35,6 +35,7 @@ #include asm/processor.h #include asm/timer.h #include asm/vmi_time.h +#include asm/kmap_types.h /* Convenient for calling VMI functions indirectly in the ROM */ typedef u32 __attribute__((regparm(1))) (VROMFUNC)(void); _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch git-drm.patch git-dvb.patch git-gfs2-nmw.patch git-ieee1394.patch kconfig-abort-configuration-with-recursive-dependencies.patch remove-fs-jffs2-ioctlc.patch git-ubi.patch drivers-net-vioc-possible-cleanups.patch net-uninline-skb_put-fix.patch drivers-scsi-small-cleanups.patch drivers-scsi-advansysc-cleanups.patch megaraid-fix-warnings-when-config_proc_fs=n.patch drivers-scsi-dpt_i2oc-remove-dead-code.patch drivers-scsi-aic7xxx-make-functions-static.patch drivers-scsi-wd33c93c-cleanups.patch drivers-scsi-qla4xxx-possible-cleanups.patch make-seagate_st0x_detect-static.patch drivers-scsi-aacraid-cleanups.patch remove-the-broken-scsi_acornscsi_3-driver.patch git-unionfs.patch git-wireless.patch git-ipwireless_cs.patch arch-i386-kernel-alternativec-should-include-asm-bugsh.patch make-struct-vmi_ops-static.patch i386-asm-offsetsc-workaround-for-a-wmissing-prototypes-warning.patch lguest-kconfig-and-headers-fix.patch proper-prototype-for-hugetlb_get_unmapped_area.patch mm-slabc-proper-prototypes.patch lumpy-reclaim-cleanup.patch filesystem-disk-errors-at-boot-time-caused-by-probe-fix.patch kill-net-rxrpc-rxrpc_symsc.patch drivers-char-hvc_consolec-cleanups.patch init-do_mountsc-proper-prepare_namespace-prototype.patch make-ext2_get_blocks-static.patch drivers-edac-make-code-static.patch linux-kernel-markers-kconfig-menus-fix.patch linux-kernel-markers-architecture-independant-code-license-fix.patch linux-kernel-markers-i386-optimization-export-fix.patch readahead-events-accounting-make-readahead_debug_level-static.patch reiser4-export-remove_from_page_cache-fix.patch fs-reiser4-possible-cleanups.patch reiser4-possible-cleanups-2.patch fs-reiser4-possible-cleanups-2.patch fs-reiser4-more-possible-cleanups.patch slim-main-patch-security-slim-slm_mainc-make-2-functions-static.patch slim-debug-output-slm_set_taskperm-remove-horrible-error-handling-code.patch i386-enable-4k-stacks-by-default.patch mutex-subsystem-synchro-test-module.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- ecryptfs-lower-root-result-must-be-adirectory.patch removed from -mm tree
The patch titled ecryptfs: lower root result must be adirectory has been removed from the -mm tree. Its filename was ecryptfs-lower-root-result-must-be-adirectory.patch This patch was dropped because it was merged into mainline or a subsystem tree -- Subject: ecryptfs: lower root result must be adirectory From: Dmitriy Monakhov [EMAIL PROTECTED] - Currently after path_lookup succeed we dot't have any guarantie what it is DIR. This must be explicitly demanded. - path_lookup can't return negative dentry, So inode check is useless. Signed-off-by: Dmitriy Monakhov [EMAIL PROTECTED] Acked-by: Michael Halcrow [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- fs/ecryptfs/main.c |8 +--- 1 file changed, 1 insertion(+), 7 deletions(-) diff -puN fs/ecryptfs/main.c~ecryptfs-lower-root-result-must-be-adirectory fs/ecryptfs/main.c --- a/fs/ecryptfs/main.c~ecryptfs-lower-root-result-must-be-adirectory +++ a/fs/ecryptfs/main.c @@ -484,18 +484,12 @@ static int ecryptfs_read_super(struct su struct vfsmount *lower_mnt; memset(nd, 0, sizeof(struct nameidata)); - rc = path_lookup(dev_name, LOOKUP_FOLLOW, nd); + rc = path_lookup(dev_name, LOOKUP_FOLLOW | LOOKUP_DIRECTORY, nd); if (rc) { ecryptfs_printk(KERN_WARNING, path_lookup() failed\n); goto out; } lower_root = nd.dentry; - if (!lower_root-d_inode) { - ecryptfs_printk(KERN_WARNING, - No directory to interpose on\n); - rc = -ENOENT; - goto out_free; - } lower_mnt = nd.mnt; ecryptfs_set_superblock_lower(sb, lower_root-d_sb); sb-s_maxbytes = lower_root-d_sb-s_maxbytes; _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch libata-handle-ata_pci_device_do_resume-failure-while-resuming-v2.patch 3c59x-handle-pci_enable_device-failure-while-resuming.patch freevxfs-possible-null-pointer-dereference-fix.patch reiserfs-possible-null-pointer-dereference-during-resize.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- safer-nr_node_ids-and-nr_node_ids-determination-and-initial-up-fix.patch removed from -mm tree
The patch titled safer-nr_node_ids-and-nr_node_ids-determination-and-initial-up-fix has been removed from the -mm tree. Its filename was safer-nr_node_ids-and-nr_node_ids-determination-and-initial-up-fix.patch This patch was dropped because it was folded into safer-nr_node_ids-and-nr_node_ids-determination-and-initial.patch -- Subject: safer-nr_node_ids-and-nr_node_ids-determination-and-initial-up-fix From: Andrew Morton [EMAIL PROTECTED] Cc: Christoph Lameter [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- kernel/sched.c | 11 ++- 1 file changed, 6 insertions(+), 5 deletions(-) diff -puN kernel/sched.c~safer-nr_node_ids-and-nr_node_ids-determination-and-initial-up-fix kernel/sched.c --- a/kernel/sched.c~safer-nr_node_ids-and-nr_node_ids-determination-and-initial-up-fix +++ a/kernel/sched.c @@ -5279,6 +5279,11 @@ int __init migration_init(void) #endif #ifdef CONFIG_SMP + +/* Number of possible processor ids */ +int nr_cpu_ids = NR_CPUS; +EXPORT_SYMBOL(nr_cpu_ids); + #undef SCHED_DOMAIN_DEBUG #ifdef SCHED_DOMAIN_DEBUG static void sched_domain_debug(struct sched_domain *sd, int cpu) @@ -6758,10 +6763,6 @@ int in_sched_functions(unsigned long add addr (unsigned long)__sched_text_end); } -/* Number of possible processor ids */ -int nr_cpu_ids = NR_CPUS; -EXPORT_SYMBOL(nr_cpu_ids); - void __init sched_init(void) { int i, j, k; @@ -6802,11 +6803,11 @@ void __init sched_init(void) } highest_cpu = i; } - nr_cpu_ids = highest_cpu + 1; set_load_weight(init_task); #ifdef CONFIG_SMP + nr_cpu_ids = highest_cpu + 1; open_softirq(SCHED_SOFTIRQ, run_rebalance_domains, NULL); #endif _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch slab-introduce-krealloc-fix.patch make-aout-executables-work-again-fix.patch sony-laptop-fix-uninitialised-variable.patch git-alsa-oops-fix.patch git-drm.patch git-dvb.patch ia64-kexec-use-efi_loader_data-for-elf-core-header-tidy.patch git-input.patch setstream-param-for-psmouse-tweak.patch git-md-accel-fixup.patch nommu-present-backing-device-capabilities-for-mtd-fix.patch git-ubi.patch git-netdev-all.patch git-netdev-all-ipw2200-fix.patch revert-drivers-net-tulip-dmfe-support-basic-carrier-detection.patch dmfe-add-support-for-suspend-resume-fix.patch sis900-warning-fixes.patch div64_64-common-code-fix.patch bonding-replace-system-timer-with-work-queue-tidy.patch git-parisc.patch rm9000-serial-driver-tidy.patch git-pciseg.patch git-unionfs.patch usbatm-create-sysfs-link-device-from-atm-class-device-tidy.patch git-wireless-fixup.patch revert-x86_64-mm-change-sysenter_setup-to-__cpuinit-improve-__init-__initdata.patch after-before-x86_64-mm-mmconfig-share.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix-2.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial-up-fix.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial-tweak.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch driver_bfin_serial_core-update.patch fix-rmmod-read-write-races-in-proc-entries-fix.patch reduce-size-of-task_struct-on-64-bit-machines.patch mm-shrink-parent-dentries-when-shrinking-slab.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2.patch call-cpu_chain-with-cpu_down_failed-if-cpu_down_prepare-failed-vs-reduce-size-of-task_struct-on-64-bit-machines.patch speedup-divides-by-cpu_power-in-scheduler-up-fix.patch lutimesat-compat-syscall-and-wire-up-on-x86_64-tidy.patch utrace-prep.patch utrace-prep-2.patch revert-utrace-prep-2.patch utrace-vs-reduce-size-of-task_struct-on-64-bit-machines.patch local_t-mips-extension-shrink-duplicated-mips-32-64-bits-functions-from-localh-fix.patch linux-kernel-markers-kconfig-menus-fix-4.patch fbdev-hecuba-framebuffer-driver-fix.patch mm-only-free-swap-space-of-reactivated-pages-debug.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- safer-nr_node_ids-and-nr_node_ids-determination-and-initial-tweak.patch removed from -mm tree
The patch titled safer-nr_node_ids-and-nr_node_ids-determination-and-initial-tweak has been removed from the -mm tree. Its filename was safer-nr_node_ids-and-nr_node_ids-determination-and-initial-tweak.patch This patch was dropped because it was folded into safer-nr_node_ids-and-nr_node_ids-determination-and-initial.patch -- Subject: safer-nr_node_ids-and-nr_node_ids-determination-and-initial-tweak From: Andrew Morton [EMAIL PROTECTED] yes? Cc: Christoph Lameter [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- kernel/sched.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN kernel/sched.c~safer-nr_node_ids-and-nr_node_ids-determination-and-initial-tweak kernel/sched.c --- a/kernel/sched.c~safer-nr_node_ids-and-nr_node_ids-determination-and-initial-tweak +++ a/kernel/sched.c @@ -5281,7 +5281,7 @@ int __init migration_init(void) #ifdef CONFIG_SMP /* Number of possible processor ids */ -int nr_cpu_ids = NR_CPUS; +int nr_cpu_ids __read_mostly = NR_CPUS; EXPORT_SYMBOL(nr_cpu_ids); #undef SCHED_DOMAIN_DEBUG _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch slab-introduce-krealloc-fix.patch make-aout-executables-work-again-fix.patch sony-laptop-fix-uninitialised-variable.patch git-alsa-oops-fix.patch git-drm.patch git-dvb.patch ia64-kexec-use-efi_loader_data-for-elf-core-header-tidy.patch git-input.patch setstream-param-for-psmouse-tweak.patch git-md-accel-fixup.patch nommu-present-backing-device-capabilities-for-mtd-fix.patch git-ubi.patch git-netdev-all.patch git-netdev-all-ipw2200-fix.patch revert-drivers-net-tulip-dmfe-support-basic-carrier-detection.patch dmfe-add-support-for-suspend-resume-fix.patch sis900-warning-fixes.patch div64_64-common-code-fix.patch bonding-replace-system-timer-with-work-queue-tidy.patch git-parisc.patch rm9000-serial-driver-tidy.patch git-pciseg.patch git-unionfs.patch usbatm-create-sysfs-link-device-from-atm-class-device-tidy.patch git-wireless-fixup.patch revert-x86_64-mm-change-sysenter_setup-to-__cpuinit-improve-__init-__initdata.patch after-before-x86_64-mm-mmconfig-share.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix-2.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial-tweak.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch driver_bfin_serial_core-update.patch fix-rmmod-read-write-races-in-proc-entries-fix.patch reduce-size-of-task_struct-on-64-bit-machines.patch mm-shrink-parent-dentries-when-shrinking-slab.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2.patch call-cpu_chain-with-cpu_down_failed-if-cpu_down_prepare-failed-vs-reduce-size-of-task_struct-on-64-bit-machines.patch speedup-divides-by-cpu_power-in-scheduler-up-fix.patch lutimesat-compat-syscall-and-wire-up-on-x86_64-tidy.patch utrace-prep.patch utrace-prep-2.patch revert-utrace-prep-2.patch utrace-vs-reduce-size-of-task_struct-on-64-bit-machines.patch local_t-mips-extension-shrink-duplicated-mips-32-64-bits-functions-from-localh-fix.patch linux-kernel-markers-kconfig-menus-fix-4.patch fbdev-hecuba-framebuffer-driver-fix.patch mm-only-free-swap-space-of-reactivated-pages-debug.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- use-zvc-counters-to-establish-exact-size-of-dirtyable-pages-fix.patch removed from -mm tree
The patch titled Use ZVC counters to establish exact size of dirtyable pages (fix) has been removed from the -mm tree. Its filename was use-zvc-counters-to-establish-exact-size-of-dirtyable-pages-fix.patch This patch was dropped because it was folded into use-zvc-counters-to-establish-exact-size-of-dirtyable-pages.patch -- Subject: Use ZVC counters to establish exact size of dirtyable pages (fix) From: Christoph Lameter [EMAIL PROTECTED] Insure that dirtyable memory calculation always returns positive number In order to avoid division by zero and strange results we insure that the memory calculation of dirtyable memory always returns at least 1. We need to make sure that highmem_dirtyable_memory() never returns a number larger than the total dirtyable memory. Counter deferrals and strange VM situations with unimagiably small lowmem may make the count go negative. Also base the calculation of the mapped_ratio on the amount of dirtyable memory. Signed-off-by: Christoph Lameter [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- mm/page-writeback.c | 18 -- 1 file changed, 12 insertions(+), 6 deletions(-) diff -puN mm/page-writeback.c~use-zvc-counters-to-establish-exact-size-of-dirtyable-pages-fix mm/page-writeback.c --- a/mm/page-writeback.c~use-zvc-counters-to-establish-exact-size-of-dirtyable-pages-fix +++ a/mm/page-writeback.c @@ -120,7 +120,7 @@ static void background_writeout(unsigned * clamping level. */ -static unsigned long highmem_dirtyable_memory(void) +static unsigned long highmem_dirtyable_memory(unsigned long total) { #ifdef CONFIG_HIGHMEM int node; @@ -134,7 +134,13 @@ static unsigned long highmem_dirtyable_m + zone_page_state(z, NR_INACTIVE) + zone_page_state(z, NR_ACTIVE); } - return x; + /* +* Make sure that the number of highmem pages is never larger +* than the number of the total dirtyable memory. This can only +* occur in very strange VM situations but we want to make sure +* that this does not occur. +*/ + return min(x, total); #else return 0; #endif @@ -146,9 +152,9 @@ static unsigned long determine_dirtyable x = global_page_state(NR_FREE_PAGES) + global_page_state(NR_INACTIVE) - + global_page_state(NR_ACTIVE) - - highmem_dirtyable_memory(); - return x; + + global_page_state(NR_ACTIVE); + x -= highmem_dirtyable_memory(x); + return x + 1; /* Ensure that we never return 0 */ } static void @@ -165,7 +171,7 @@ get_dirty_limits(long *pbackground, long unmapped_ratio = 100 - ((global_page_state(NR_FILE_MAPPED) + global_page_state(NR_ANON_PAGES)) * 100) / - vm_total_pages; + available_memory; dirty_ratio = vm_dirty_ratio; if (dirty_ratio unmapped_ratio / 2) _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch slab-introduce-krealloc.patch slab-introduce-krealloc-fix.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial.patch use-zvc-counters-to-establish-exact-size-of-dirtyable-pages.patch use-zvc-counters-to-establish-exact-size-of-dirtyable-pages-fix.patch make-try_to_unmap-return-a-special-exit-code.patch slab-ensure-cache_alloc_refill-terminates.patch add-nr_mlock-zvc.patch add-pagemlocked-page-state-bit-and-lru-infrastructure.patch add-pagemlocked-page-state-bit-and-lru-infrastructure-fix.patch logic-to-move-mlocked-pages.patch consolidate-new-anonymous-page-code-paths.patch avoid-putting-new-mlocked-anonymous-pages-on-lru.patch opportunistically-move-mlocked-pages-off-the-lru.patch take-anonymous-pages-off-the-lru-if-we-have-no-swap.patch smaps-extract-pmd-walker-from-smaps-code.patch smaps-add-pages-referenced-count-to-smaps.patch smaps-add-clear_refs-file-to-clear-reference.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch smaps-add-clear_refs-file-to-clear-reference-fix-fix.patch slab-shutdown-cache_reaper-when-cpu-goes-down.patch mm-implement-swap-prefetching-vs-zvc-stuff.patch mm-implement-swap-prefetching-vs-zvc-stuff-2.patch zvc-support-nr_slab_reclaimable--nr_slab_unreclaimable-swap_prefetch.patch reduce-max_nr_zones-swap_prefetch-remove-incorrect-use-of-zone_highmem.patch numa-add-zone_to_nid-function-swap_prefetch.patch remove-uses-of-kmem_cache_t-from-mm-and-include-linux-slabh-prefetch.patch readahead-state-based-method-aging-accounting.patch readahead-state-based-method-aging-accounting-vs-zvc-changes.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- add-pagemlocked-page-state-bit-and-lru-infrastructure-fix.patch removed from -mm tree
The patch titled has been removed from the -mm tree. Its filename was add-pagemlocked-page-state-bit-and-lru-infrastructure-fix.patch This patch was dropped because it was folded into add-pagemlocked-page-state-bit-and-lru-infrastructure.patch -- Subject: From: Christoph Lameter [EMAIL PROTECTED] The problem is that in some circumstances a page may be freed that is mlocked (if one is marking a page as mlocked early). The page allocator will not touch the PG_mlocked bit and thus a newly allocated page may have PG_mlocked set. If we then try to put it on the lru then the VM_BUG_ONs are triggered. The following patch detects these conditions in the page allocator and does the proper checks and cleanup. Signed-off-by: Christoph Lameter [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- include/linux/page-flags.h |1 + mm/page_alloc.c|7 +++ 2 files changed, 8 insertions(+) diff -puN include/linux/page-flags.h~add-pagemlocked-page-state-bit-and-lru-infrastructure-fix include/linux/page-flags.h --- a/include/linux/page-flags.h~add-pagemlocked-page-state-bit-and-lru-infrastructure-fix +++ a/include/linux/page-flags.h @@ -264,6 +264,7 @@ static inline void SetPageUptodate(struc #define PageMlocked(page) test_bit(PG_mlocked, (page)-flags) #define SetPageMlocked(page) set_bit(PG_mlocked, (page)-flags) #define ClearPageMlocked(page) clear_bit(PG_mlocked, (page)-flags) +#define __ClearPageMlocked(page) __clear_bit(PG_mlocked, (page)-flags) struct page; /* forward declaration */ diff -puN mm/page_alloc.c~add-pagemlocked-page-state-bit-and-lru-infrastructure-fix mm/page_alloc.c --- a/mm/page_alloc.c~add-pagemlocked-page-state-bit-and-lru-infrastructure-fix +++ a/mm/page_alloc.c @@ -203,6 +203,7 @@ static void bad_page(struct page *page) 1 PG_slab| 1 PG_swapcache | 1 PG_writeback | + 1 PG_mlocked | 1 PG_buddy ); set_page_count(page, 0); reset_page_mapcount(page); @@ -442,6 +443,11 @@ static inline int free_pages_check(struc bad_page(page); if (PageDirty(page)) __ClearPageDirty(page); + if (PageMlocked(page)) { + /* Page is unused so no need to take the lru lock */ + __ClearPageMlocked(page); + dec_zone_page_state(page, NR_MLOCK); + } /* * For now, we report if PG_reserved was found set, but do not * clear it, and do not free the page. But we shall soon need @@ -588,6 +594,7 @@ static int prep_new_page(struct page *pa 1 PG_swapcache | 1 PG_writeback | 1 PG_reserved | + 1 PG_mlocked | 1 PG_buddy bad_page(page); _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch slab-introduce-krealloc.patch slab-introduce-krealloc-fix.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial.patch use-zvc-counters-to-establish-exact-size-of-dirtyable-pages.patch make-try_to_unmap-return-a-special-exit-code.patch slab-ensure-cache_alloc_refill-terminates.patch add-nr_mlock-zvc.patch add-pagemlocked-page-state-bit-and-lru-infrastructure.patch add-pagemlocked-page-state-bit-and-lru-infrastructure-fix.patch logic-to-move-mlocked-pages.patch consolidate-new-anonymous-page-code-paths.patch avoid-putting-new-mlocked-anonymous-pages-on-lru.patch opportunistically-move-mlocked-pages-off-the-lru.patch take-anonymous-pages-off-the-lru-if-we-have-no-swap.patch smaps-extract-pmd-walker-from-smaps-code.patch smaps-add-pages-referenced-count-to-smaps.patch smaps-add-clear_refs-file-to-clear-reference.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch smaps-add-clear_refs-file-to-clear-reference-fix-fix.patch slab-shutdown-cache_reaper-when-cpu-goes-down.patch mm-implement-swap-prefetching-vs-zvc-stuff.patch mm-implement-swap-prefetching-vs-zvc-stuff-2.patch zvc-support-nr_slab_reclaimable--nr_slab_unreclaimable-swap_prefetch.patch reduce-max_nr_zones-swap_prefetch-remove-incorrect-use-of-zone_highmem.patch numa-add-zone_to_nid-function-swap_prefetch.patch remove-uses-of-kmem_cache_t-from-mm-and-include-linux-slabh-prefetch.patch readahead-state-based-method-aging-accounting.patch readahead-state-based-method-aging-accounting-vs-zvc-changes.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- add-nr_mlock-zvc.patch removed from -mm tree
The patch titled Add NR_MLOCK ZVC has been removed from the -mm tree. Its filename was add-nr_mlock-zvc.patch This patch was dropped because an updated version will be merged -- Subject: Add NR_MLOCK ZVC From: Christoph Lameter [EMAIL PROTECTED] Basic infrastructure to support NR_MLOCK Add a new ZVC to support NR_MLOCK. NR_MLOCK counts the number of mlocked pages taken off the LRU. Get rid of wrong calculation of cache line size in the comments in mmzone.h. Signed-off-by: Christoph Lameter [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/base/node.c|2 ++ fs/proc/proc_misc.c|2 ++ include/linux/mmzone.h |3 +-- mm/vmstat.c|1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff -puN drivers/base/node.c~add-nr_mlock-zvc drivers/base/node.c --- a/drivers/base/node.c~add-nr_mlock-zvc +++ a/drivers/base/node.c @@ -60,6 +60,7 @@ static ssize_t node_read_meminfo(struct Node %d FilePages:%8lu kB\n Node %d Mapped: %8lu kB\n Node %d AnonPages:%8lu kB\n + Node %d Mlock:%8lu KB\n Node %d PageTables: %8lu kB\n Node %d NFS_Unstable: %8lu kB\n Node %d Bounce: %8lu kB\n @@ -82,6 +83,7 @@ static ssize_t node_read_meminfo(struct nid, K(node_page_state(nid, NR_FILE_PAGES)), nid, K(node_page_state(nid, NR_FILE_MAPPED)), nid, K(node_page_state(nid, NR_ANON_PAGES)), + nid, K(node_page_state(nid, NR_MLOCK)), nid, K(node_page_state(nid, NR_PAGETABLE)), nid, K(node_page_state(nid, NR_UNSTABLE_NFS)), nid, K(node_page_state(nid, NR_BOUNCE)), diff -puN fs/proc/proc_misc.c~add-nr_mlock-zvc fs/proc/proc_misc.c --- a/fs/proc/proc_misc.c~add-nr_mlock-zvc +++ a/fs/proc/proc_misc.c @@ -166,6 +166,7 @@ static int meminfo_read_proc(char *page, Writeback:%8lu kB\n AnonPages:%8lu kB\n Mapped: %8lu kB\n + Mlock:%8lu KB\n Slab: %8lu kB\n SReclaimable: %8lu kB\n SUnreclaim: %8lu kB\n @@ -196,6 +197,7 @@ static int meminfo_read_proc(char *page, K(global_page_state(NR_WRITEBACK)), K(global_page_state(NR_ANON_PAGES)), K(global_page_state(NR_FILE_MAPPED)), + K(global_page_state(NR_MLOCK)), K(global_page_state(NR_SLAB_RECLAIMABLE) + global_page_state(NR_SLAB_UNRECLAIMABLE)), K(global_page_state(NR_SLAB_RECLAIMABLE)), diff -puN include/linux/mmzone.h~add-nr_mlock-zvc include/linux/mmzone.h --- a/include/linux/mmzone.h~add-nr_mlock-zvc +++ a/include/linux/mmzone.h @@ -47,17 +47,16 @@ struct zone_padding { #endif enum zone_stat_item { - /* First 128 byte cacheline (assuming 64 bit words) */ NR_FREE_PAGES, NR_INACTIVE, NR_ACTIVE, + NR_MLOCK, /* Mlocked pages */ NR_ANON_PAGES, /* Mapped anonymous pages */ NR_FILE_MAPPED, /* pagecache pages mapped into pagetables. only modified from process context */ NR_FILE_PAGES, NR_FILE_DIRTY, NR_WRITEBACK, - /* Second 128 byte cacheline */ NR_SLAB_RECLAIMABLE, NR_SLAB_UNRECLAIMABLE, NR_PAGETABLE, /* used for pagetables */ diff -puN mm/vmstat.c~add-nr_mlock-zvc mm/vmstat.c --- a/mm/vmstat.c~add-nr_mlock-zvc +++ a/mm/vmstat.c @@ -434,6 +434,7 @@ static const char * const vmstat_text[] nr_free_pages, nr_active, nr_inactive, + nr_mlock, nr_anon_pages, nr_mapped, nr_file_pages, _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch slab-introduce-krealloc.patch slab-introduce-krealloc-fix.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial.patch use-zvc-counters-to-establish-exact-size-of-dirtyable-pages.patch make-try_to_unmap-return-a-special-exit-code.patch slab-ensure-cache_alloc_refill-terminates.patch add-nr_mlock-zvc.patch add-pagemlocked-page-state-bit-and-lru-infrastructure.patch logic-to-move-mlocked-pages.patch consolidate-new-anonymous-page-code-paths.patch avoid-putting-new-mlocked-anonymous-pages-on-lru.patch opportunistically-move-mlocked-pages-off-the-lru.patch take-anonymous-pages-off-the-lru-if-we-have-no-swap.patch smaps-extract-pmd-walker-from-smaps-code.patch smaps-add-pages-referenced-count-to-smaps.patch smaps-add-clear_refs-file-to-clear-reference.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch smaps-add-clear_refs-file-to-clear-reference-fix-fix.patch
- add-pagemlocked-page-state-bit-and-lru-infrastructure.patch removed from -mm tree
The patch titled Add PageMlocked() page state bit and lru infrastructure has been removed from the -mm tree. Its filename was add-pagemlocked-page-state-bit-and-lru-infrastructure.patch This patch was dropped because an updated version will be merged -- Subject: Add PageMlocked() page state bit and lru infrastructure From: Christoph Lameter [EMAIL PROTECTED] Add PageMlocked() infrastructure This adds a new PG_mlocked to mark pages that were taken off the LRU because they have a reference from a VM_LOCKED vma. (Yes, we still have 4 free page flag bits BITS_PER_LONG-FLAGS_RESERVED = 32 - 9 = 23 page flags). Also add pagevec handling for returning mlocked pages to the LRU. Signed-off-by: Christoph Lameter [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- include/linux/page-flags.h | 13 + include/linux/pagevec.h|1 include/linux/swap.h |1 mm/page_alloc.c|7 + mm/swap.c | 47 +++ 5 files changed, 69 insertions(+) diff -puN include/linux/page-flags.h~add-pagemlocked-page-state-bit-and-lru-infrastructure include/linux/page-flags.h --- a/include/linux/page-flags.h~add-pagemlocked-page-state-bit-and-lru-infrastructure +++ a/include/linux/page-flags.h @@ -91,6 +91,8 @@ #define PG_nosave_free 18 /* Used for system suspend/resume */ #define PG_buddy 19 /* Page is free, on buddy lists */ +#define PG_mlocked 20 /* Page is mlocked */ + /* PG_owner_priv_1 users should have descriptive aliases */ #define PG_checked PG_owner_priv_1 /* Used by some filesystems */ @@ -253,6 +255,17 @@ static inline void SetPageUptodate(struc #define SetPageUncached(page) set_bit(PG_uncached, (page)-flags) #define ClearPageUncached(page)clear_bit(PG_uncached, (page)-flags) +/* + * PageMlocked set means that the page was taken off the LRU because + * a VM_LOCKED vma does exist. PageMlocked must be cleared before a + * page is put back onto the LRU. PageMlocked is only modified + * under the zone-lru_lock like PageLRU. + */ +#define PageMlocked(page) test_bit(PG_mlocked, (page)-flags) +#define SetPageMlocked(page) set_bit(PG_mlocked, (page)-flags) +#define ClearPageMlocked(page) clear_bit(PG_mlocked, (page)-flags) +#define __ClearPageMlocked(page) __clear_bit(PG_mlocked, (page)-flags) + struct page; /* forward declaration */ extern void cancel_dirty_page(struct page *page, unsigned int account_size); diff -puN include/linux/pagevec.h~add-pagemlocked-page-state-bit-and-lru-infrastructure include/linux/pagevec.h --- a/include/linux/pagevec.h~add-pagemlocked-page-state-bit-and-lru-infrastructure +++ a/include/linux/pagevec.h @@ -25,6 +25,7 @@ void __pagevec_release_nonlru(struct pag void __pagevec_free(struct pagevec *pvec); void __pagevec_lru_add(struct pagevec *pvec); void __pagevec_lru_add_active(struct pagevec *pvec); +void __pagevec_lru_add_mlock(struct pagevec *pvec); void pagevec_strip(struct pagevec *pvec); unsigned pagevec_lookup(struct pagevec *pvec, struct address_space *mapping, pgoff_t start, unsigned nr_pages); diff -puN include/linux/swap.h~add-pagemlocked-page-state-bit-and-lru-infrastructure include/linux/swap.h --- a/include/linux/swap.h~add-pagemlocked-page-state-bit-and-lru-infrastructure +++ a/include/linux/swap.h @@ -182,6 +182,7 @@ extern void FASTCALL(lru_cache_add(struc extern void FASTCALL(lru_cache_add_active(struct page *)); extern void FASTCALL(activate_page(struct page *)); extern void FASTCALL(mark_page_accessed(struct page *)); +extern void FASTCALL(lru_cache_add_mlock(struct page *)); extern void lru_add_drain(void); extern int lru_add_drain_all(void); extern int rotate_reclaimable_page(struct page *page); diff -puN mm/swap.c~add-pagemlocked-page-state-bit-and-lru-infrastructure mm/swap.c --- a/mm/swap.c~add-pagemlocked-page-state-bit-and-lru-infrastructure +++ a/mm/swap.c @@ -176,6 +176,7 @@ EXPORT_SYMBOL(mark_page_accessed); */ static DEFINE_PER_CPU(struct pagevec, lru_add_pvecs) = { 0, }; static DEFINE_PER_CPU(struct pagevec, lru_add_active_pvecs) = { 0, }; +static DEFINE_PER_CPU(struct pagevec, lru_add_mlock_pvecs) = { 0, }; void fastcall lru_cache_add(struct page *page) { @@ -197,6 +198,16 @@ void fastcall lru_cache_add_active(struc put_cpu_var(lru_add_active_pvecs); } +void fastcall lru_cache_add_mlock(struct page *page) +{ + struct pagevec *pvec = get_cpu_var(lru_add_mlock_pvecs); + + page_cache_get(page); + if (!pagevec_add(pvec, page)) + __pagevec_lru_add_mlock(pvec); + put_cpu_var(lru_add_mlock_pvecs); +} + static void __lru_add_drain(int cpu) { struct pagevec *pvec = per_cpu(lru_add_pvecs, cpu); @@ -207,6 +218,9 @@ static void __lru_add_drain(int cpu) pvec = per_cpu(lru_add_active_pvecs, cpu); if
- logic-to-move-mlocked-pages.patch removed from -mm tree
The patch titled Logic to move mlocked pages has been removed from the -mm tree. Its filename was logic-to-move-mlocked-pages.patch This patch was dropped because an updated version will be merged -- Subject: Logic to move mlocked pages From: Christoph Lameter [EMAIL PROTECTED] Add logic to lazily remove/add mlocked pages from LRU This is the core of the patchset. It adds the necessary logic to remove mlocked pages from the LRU and put them back later. The basic idea by Andrew Morton and others has been around for awhile. During reclaim we attempt to unmap pages. In order to do so we have to scan all vmas that a page belongs to to check for VM_LOCKED. If we find that VM_LOCKED is set for a page then we remove the page from the LRU and mark it with SetMlocked. We must mark the page with a special flag bit. Without PageMLocked we have later no way to distinguish pages that are off the LRU because of mlock from pages that are off the LRU for other reasons. We should only feed back mlocked pages to the LRU and not the pages that were removed for other reasons. We feed pages back to the LRU in two places: zap_pte_range: Here pages are removed from a vma. If a page is mlocked then we add it back to the LRU. If other vmas with VM_LOCKED set have mapped the page then we will discover that later during reclaim and move the page off the LRU again. munlock/munlockall: We scan all pages in the vma and do the same as in zap_pte_range. We also have to modify the page migration logic to handle PageMlocked pages. We simply clear the PageMlocked bit and then we can treat the page as a regular page from the LRU. Page migration feeds all pages back the LRU and relies on reclaim to move them off again. Note that this is lazy accounting for mlocked pages. NR_MLOCK may increase as the system discovers more mlocked pages. If a machine has a large amount of memory then it may take awhile until reclaim gets through with all pages. We may only discover the extend of mlocked pages when memory gets tight. Some of the later patches opportunistically move pages off the LRU to avoid delays in accounting. Usually these opportunistic moves do a pretty good job but there are special situations (such as page migration and munlocking a memory area mlocked by multiple processes) where NR_MLOCK may become low until reclaim detects the mlocked pages again. So, the scheme is fundamentally lazy and one cannot count on NR_MLOCK to reflect the actual number of mlocked pages. NR_MLOCK represents the number *discovered* mlocked pages so far which may be less than the actual number of mlocked pages. Signed-off-by: Christoph Lameter [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- mm/memory.c |2 ++ mm/migrate.c |7 +++ mm/mlock.c | 19 ++- mm/vmscan.c | 10 +- 4 files changed, 36 insertions(+), 2 deletions(-) diff -puN mm/memory.c~logic-to-move-mlocked-pages mm/memory.c --- a/mm/memory.c~logic-to-move-mlocked-pages +++ a/mm/memory.c @@ -682,6 +682,8 @@ static unsigned long zap_pte_range(struc file_rss--; } page_remove_rmap(page, vma); + if (PageMlocked(page) vma-vm_flags VM_LOCKED) + lru_cache_add_mlock(page); tlb_remove_page(tlb, page); continue; } diff -puN mm/migrate.c~logic-to-move-mlocked-pages mm/migrate.c --- a/mm/migrate.c~logic-to-move-mlocked-pages +++ a/mm/migrate.c @@ -58,6 +58,13 @@ int isolate_lru_page(struct page *page, else del_page_from_inactive_list(zone, page); list_add_tail(page-lru, pagelist); + } else + if (PageMlocked(page)) { + ret = 0; + get_page(page); + ClearPageMlocked(page); + list_add_tail(page-lru, pagelist); + __dec_zone_state(zone, NR_MLOCK); } spin_unlock_irq(zone-lru_lock); } diff -puN mm/mlock.c~logic-to-move-mlocked-pages mm/mlock.c --- a/mm/mlock.c~logic-to-move-mlocked-pages +++ a/mm/mlock.c @@ -10,7 +10,7 @@ #include linux/mm.h #include linux/mempolicy.h #include linux/syscalls.h - +#include linux/swap.h static int mlock_fixup(struct vm_area_struct *vma, struct vm_area_struct **prev, unsigned long start, unsigned long end, unsigned int newflags) @@ -63,6 +63,23 @@ success: pages = -pages; if (!(newflags VM_IO)) ret = make_pages_present(start, end); + } else { + unsigned long addr; + + /* +* We are clearing VM_LOCKED. Feed all pages back +*
- consolidate-new-anonymous-page-code-paths.patch removed from -mm tree
The patch titled Consolidate new anonymous page code paths has been removed from the -mm tree. Its filename was consolidate-new-anonymous-page-code-paths.patch This patch was dropped because an updated version will be merged -- Subject: Consolidate new anonymous page code paths From: Christoph Lameter [EMAIL PROTECTED] Consolidate code to add an anonymous page in memory.c There are two location in which we add anonymous pages. Both implement the same logic. Create a new function add_anon_page() to have a common code path. Signed-off-by: Christoph Lameter [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- mm/memory.c | 23 +++ 1 file changed, 15 insertions(+), 8 deletions(-) diff -puN mm/memory.c~consolidate-new-anonymous-page-code-paths mm/memory.c --- a/mm/memory.c~consolidate-new-anonymous-page-code-paths +++ a/mm/memory.c @@ -900,6 +900,17 @@ unsigned long zap_page_range(struct vm_a } /* + * Add a new anonymous page + */ +static void add_anon_page(struct vm_area_struct *vma, struct page *page, + unsigned long address) +{ + inc_mm_counter(vma-vm_mm, anon_rss); + lru_cache_add_active(page); + page_add_new_anon_rmap(page, vma, address); +} + +/* * Do a quick page-table lookup for a single page. */ struct page *follow_page(struct vm_area_struct *vma, unsigned long address, @@ -2148,9 +2159,7 @@ static int do_anonymous_page(struct mm_s page_table = pte_offset_map_lock(mm, pmd, address, ptl); if (!pte_none(*page_table)) goto release; - inc_mm_counter(mm, anon_rss); - lru_cache_add_active(page); - page_add_new_anon_rmap(page, vma, address); + add_anon_page(vma, page, address); } else { /* Map the ZERO_PAGE - vm_page_prot is readonly */ page = ZERO_PAGE(address); @@ -2294,11 +2303,9 @@ retry: if (write_access) entry = maybe_mkwrite(pte_mkdirty(entry), vma); set_pte_at(mm, address, page_table, entry); - if (anon) { - inc_mm_counter(mm, anon_rss); - lru_cache_add_active(new_page); - page_add_new_anon_rmap(new_page, vma, address); - } else { + if (anon) + add_anon_page(vma, new_page, address); + else { inc_mm_counter(mm, file_rss); page_add_file_rmap(new_page); if (write_access) { _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch slab-introduce-krealloc.patch slab-introduce-krealloc-fix.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial.patch use-zvc-counters-to-establish-exact-size-of-dirtyable-pages.patch make-try_to_unmap-return-a-special-exit-code.patch slab-ensure-cache_alloc_refill-terminates.patch consolidate-new-anonymous-page-code-paths.patch avoid-putting-new-mlocked-anonymous-pages-on-lru.patch opportunistically-move-mlocked-pages-off-the-lru.patch take-anonymous-pages-off-the-lru-if-we-have-no-swap.patch smaps-extract-pmd-walker-from-smaps-code.patch smaps-add-pages-referenced-count-to-smaps.patch smaps-add-clear_refs-file-to-clear-reference.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch smaps-add-clear_refs-file-to-clear-reference-fix-fix.patch slab-shutdown-cache_reaper-when-cpu-goes-down.patch mm-implement-swap-prefetching-vs-zvc-stuff.patch mm-implement-swap-prefetching-vs-zvc-stuff-2.patch zvc-support-nr_slab_reclaimable--nr_slab_unreclaimable-swap_prefetch.patch reduce-max_nr_zones-swap_prefetch-remove-incorrect-use-of-zone_highmem.patch numa-add-zone_to_nid-function-swap_prefetch.patch remove-uses-of-kmem_cache_t-from-mm-and-include-linux-slabh-prefetch.patch readahead-state-based-method-aging-accounting.patch readahead-state-based-method-aging-accounting-vs-zvc-changes.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- avoid-putting-new-mlocked-anonymous-pages-on-lru.patch removed from -mm tree
The patch titled Avoid putting new mlocked anonymous pages on LRU has been removed from the -mm tree. Its filename was avoid-putting-new-mlocked-anonymous-pages-on-lru.patch This patch was dropped because an updated version will be merged -- Subject: Avoid putting new mlocked anonymous pages on LRU From: Christoph Lameter [EMAIL PROTECTED] Mark new anonymous pages mlocked if they are in a mlocked VMA. Avoid putting pages onto the LRU that are allocated in a VMA with VM_LOCKED set. NR_MLOCK will be more accurate. Signed-off-by: Christoph Lameter [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- mm/memory.c | 11 ++- 1 file changed, 10 insertions(+), 1 deletion(-) diff -puN mm/memory.c~avoid-putting-new-mlocked-anonymous-pages-on-lru mm/memory.c --- a/mm/memory.c~avoid-putting-new-mlocked-anonymous-pages-on-lru +++ a/mm/memory.c @@ -906,7 +906,16 @@ static void add_anon_page(struct vm_area unsigned long address) { inc_mm_counter(vma-vm_mm, anon_rss); - lru_cache_add_active(page); + if (vma-vm_flags VM_LOCKED) { + /* +* Page is new and therefore not on the LRU +* so we can directly mark it as mlocked +*/ + SetPageMlocked(page); + ClearPageActive(page); + inc_zone_page_state(page, NR_MLOCK); + } else + lru_cache_add_active(page); page_add_new_anon_rmap(page, vma, address); } _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch slab-introduce-krealloc.patch slab-introduce-krealloc-fix.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial.patch use-zvc-counters-to-establish-exact-size-of-dirtyable-pages.patch make-try_to_unmap-return-a-special-exit-code.patch slab-ensure-cache_alloc_refill-terminates.patch avoid-putting-new-mlocked-anonymous-pages-on-lru.patch opportunistically-move-mlocked-pages-off-the-lru.patch take-anonymous-pages-off-the-lru-if-we-have-no-swap.patch smaps-extract-pmd-walker-from-smaps-code.patch smaps-add-pages-referenced-count-to-smaps.patch smaps-add-clear_refs-file-to-clear-reference.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch smaps-add-clear_refs-file-to-clear-reference-fix-fix.patch slab-shutdown-cache_reaper-when-cpu-goes-down.patch mm-implement-swap-prefetching-vs-zvc-stuff.patch mm-implement-swap-prefetching-vs-zvc-stuff-2.patch zvc-support-nr_slab_reclaimable--nr_slab_unreclaimable-swap_prefetch.patch reduce-max_nr_zones-swap_prefetch-remove-incorrect-use-of-zone_highmem.patch numa-add-zone_to_nid-function-swap_prefetch.patch remove-uses-of-kmem_cache_t-from-mm-and-include-linux-slabh-prefetch.patch readahead-state-based-method-aging-accounting.patch readahead-state-based-method-aging-accounting-vs-zvc-changes.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- opportunistically-move-mlocked-pages-off-the-lru.patch removed from -mm tree
The patch titled Opportunistically move mlocked pages off the LRU has been removed from the -mm tree. Its filename was opportunistically-move-mlocked-pages-off-the-lru.patch This patch was dropped because an updated version will be merged -- Subject: Opportunistically move mlocked pages off the LRU From: Christoph Lameter [EMAIL PROTECTED] Opportunistically move mlocked pages off the LRU Add a new function try_to_mlock() that attempts to move a page off the LRU and marks it mlocked. This function can then be used in various code paths to move pages off the LRU immediately. Early discovery will make NR_MLOCK track the actual number of mlocked pages in the system more closely. Signed-off-by: Christoph Lameter [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- mm/memory.c | 33 + 1 file changed, 33 insertions(+) diff -puN mm/memory.c~opportunistically-move-mlocked-pages-off-the-lru mm/memory.c --- a/mm/memory.c~opportunistically-move-mlocked-pages-off-the-lru +++ a/mm/memory.c @@ -59,6 +59,7 @@ #include linux/swapops.h #include linux/elf.h +#include linux/mm_inline.h #ifndef CONFIG_NEED_MULTIPLE_NODES /* use the per-pgdat data instead for discontigmem - mbligh */ @@ -920,6 +921,34 @@ static void add_anon_page(struct vm_area } /* + * Opportunistically move the page off the LRU + * if possible. If we do not succeed then the LRU + * scans will take the page off. + */ +static void try_to_set_mlocked(struct page *page) +{ + struct zone *zone; + unsigned long flags; + + if (!PageLRU(page) || PageMlocked(page)) + return; + + zone = page_zone(page); + if (spin_trylock_irqsave(zone-lru_lock, flags)) { + if (PageLRU(page) !PageMlocked(page)) { + ClearPageLRU(page); + if (PageActive(page)) + del_page_from_active_list(zone, page); + else + del_page_from_inactive_list(zone, page); + ClearPageActive(page); + SetPageMlocked(page); + __inc_zone_page_state(page, NR_MLOCK); + } + spin_unlock_irqrestore(zone-lru_lock, flags); + } +} +/* * Do a quick page-table lookup for a single page. */ struct page *follow_page(struct vm_area_struct *vma, unsigned long address, @@ -979,6 +1008,8 @@ struct page *follow_page(struct vm_area_ set_page_dirty(page); mark_page_accessed(page); } + if (vma-vm_flags VM_LOCKED) + try_to_set_mlocked(page); unlock: pte_unmap_unlock(ptep, ptl); out: @@ -2317,6 +2348,8 @@ retry: else { inc_mm_counter(mm, file_rss); page_add_file_rmap(new_page); + if (vma-vm_flags VM_LOCKED) + try_to_set_mlocked(new_page); if (write_access) { dirty_page = new_page; get_page(dirty_page); _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch slab-introduce-krealloc.patch slab-introduce-krealloc-fix.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial.patch use-zvc-counters-to-establish-exact-size-of-dirtyable-pages.patch make-try_to_unmap-return-a-special-exit-code.patch slab-ensure-cache_alloc_refill-terminates.patch opportunistically-move-mlocked-pages-off-the-lru.patch take-anonymous-pages-off-the-lru-if-we-have-no-swap.patch smaps-extract-pmd-walker-from-smaps-code.patch smaps-add-pages-referenced-count-to-smaps.patch smaps-add-clear_refs-file-to-clear-reference.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch smaps-add-clear_refs-file-to-clear-reference-fix-fix.patch slab-shutdown-cache_reaper-when-cpu-goes-down.patch mm-implement-swap-prefetching-vs-zvc-stuff.patch mm-implement-swap-prefetching-vs-zvc-stuff-2.patch zvc-support-nr_slab_reclaimable--nr_slab_unreclaimable-swap_prefetch.patch reduce-max_nr_zones-swap_prefetch-remove-incorrect-use-of-zone_highmem.patch numa-add-zone_to_nid-function-swap_prefetch.patch remove-uses-of-kmem_cache_t-from-mm-and-include-linux-slabh-prefetch.patch readahead-state-based-method-aging-accounting.patch readahead-state-based-method-aging-accounting-vs-zvc-changes.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- take-anonymous-pages-off-the-lru-if-we-have-no-swap.patch removed from -mm tree
The patch titled Take anonymous pages off the LRU if we have no swap has been removed from the -mm tree. Its filename was take-anonymous-pages-off-the-lru-if-we-have-no-swap.patch This patch was dropped because an updated version will be merged -- Subject: Take anonymous pages off the LRU if we have no swap From: Christoph Lameter [EMAIL PROTECTED] If the kernel was compiled without support for swapping then we have no means of evicting anonymous pages and they become like mlocked pages. Do not add new anonymous pages to the LRU and if we find one on the LRU then take it off. This is also going to reduce the overhead of allocating anonymous pages since the LRU lock must no longer be taken to put pages onto the active list. Probably mostly of interest to embedded systems since normal kernels support swap. On linux-mm we also discussed taking anonymous pages off the LRU if there is no swap defined or not enough swap. However, there is no easy way of putting the pages back to the LRU since we have no list of mlocked pages. We could set up such a list but then list manipulation would complicate the mlocked page treatment and require taking the lru lock. I'd rather leave the mlocked handling as simple as it is right now. Anonymous pages will be accounted as mlocked pages. Signed-off-by: Christoph Lameter [EMAIL PROTECTED] Cc: Nick Piggin [EMAIL PROTECTED] Cc: Hugh Dickins [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- mm/memory.c | 29 +++-- mm/vmscan.c |4 +++- 2 files changed, 22 insertions(+), 11 deletions(-) diff -puN mm/memory.c~take-anonymous-pages-off-the-lru-if-we-have-no-swap mm/memory.c --- a/mm/memory.c~take-anonymous-pages-off-the-lru-if-we-have-no-swap +++ a/mm/memory.c @@ -907,17 +907,26 @@ static void add_anon_page(struct vm_area unsigned long address) { inc_mm_counter(vma-vm_mm, anon_rss); - if (vma-vm_flags VM_LOCKED) { - /* -* Page is new and therefore not on the LRU -* so we can directly mark it as mlocked -*/ - SetPageMlocked(page); - ClearPageActive(page); - inc_zone_page_state(page, NR_MLOCK); - } else - lru_cache_add_active(page); page_add_new_anon_rmap(page, vma, address); + +#ifdef CONFIG_SWAP + /* +* It only makes sense to put anonymous pages on the +* LRU if we have a way of evicting anonymous pages. +*/ + if (!(vma-vm_flags VM_LOCKED)) { + lru_cache_add_active(page); + return; + } +#endif + + /* +* Page is new and therefore not on the LRU +* so we can directly mark it as mlocked +*/ + SetPageMlocked(page); + ClearPageActive(page); + inc_zone_page_state(page, NR_MLOCK); } /* diff -puN mm/vmscan.c~take-anonymous-pages-off-the-lru-if-we-have-no-swap mm/vmscan.c --- a/mm/vmscan.c~take-anonymous-pages-off-the-lru-if-we-have-no-swap +++ a/mm/vmscan.c @@ -488,14 +488,16 @@ static unsigned long shrink_page_list(st if (referenced page_mapping_inuse(page)) goto activate_locked; -#ifdef CONFIG_SWAP /* * Anonymous process memory has backing store? * Try to allocate it some swap space here. */ if (PageAnon(page) !PageSwapCache(page)) +#ifdef CONFIG_SWAP if (!add_to_swap(page, GFP_ATOMIC)) goto activate_locked; +#else + goto mlocked; #endif /* CONFIG_SWAP */ mapping = page_mapping(page); _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch slab-introduce-krealloc.patch slab-introduce-krealloc-fix.patch safer-nr_node_ids-and-nr_node_ids-determination-and-initial.patch use-zvc-counters-to-establish-exact-size-of-dirtyable-pages.patch make-try_to_unmap-return-a-special-exit-code.patch slab-ensure-cache_alloc_refill-terminates.patch take-anonymous-pages-off-the-lru-if-we-have-no-swap.patch smaps-extract-pmd-walker-from-smaps-code.patch smaps-add-pages-referenced-count-to-smaps.patch smaps-add-clear_refs-file-to-clear-reference.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch smaps-add-clear_refs-file-to-clear-reference-fix-fix.patch slab-shutdown-cache_reaper-when-cpu-goes-down.patch mm-implement-swap-prefetching-vs-zvc-stuff.patch mm-implement-swap-prefetching-vs-zvc-stuff-2.patch zvc-support-nr_slab_reclaimable--nr_slab_unreclaimable-swap_prefetch.patch reduce-max_nr_zones-swap_prefetch-remove-incorrect-use-of-zone_highmem.patch numa-add-zone_to_nid-function-swap_prefetch.patch remove-uses-of-kmem_cache_t-from-mm-and-include-linux-slabh-prefetch.patch readahead-state-based-method-aging-accounting.patch
- lumpy-reclaim-v2-page_to_pfn-fix.patch removed from -mm tree
The patch titled lumpy-reclaim-v2-page_to_pfn-fix has been removed from the -mm tree. Its filename was lumpy-reclaim-v2-page_to_pfn-fix.patch This patch was dropped because it was folded into lumpy-reclaim-v2.patch -- Subject: lumpy-reclaim-v2-page_to_pfn-fix From: Andrew Morton [EMAIL PROTECTED] Cc: Andy Whitcroft [EMAIL PROTECTED] Cc: Peter Zijlstra [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- mm/vmscan.c |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff -puN mm/vmscan.c~lumpy-reclaim-v2-page_to_pfn-fix mm/vmscan.c --- a/mm/vmscan.c~lumpy-reclaim-v2-page_to_pfn-fix +++ a/mm/vmscan.c @@ -703,7 +703,7 @@ static unsigned long isolate_lru_pages(u * the same active state as that tag page. */ zone_id = page_zone_id(page); - page_pfn = __page_to_pfn(page); + page_pfn = page_to_pfn(page); pfn = page_pfn ~((1 order) - 1); end_pfn = pfn + (1 order); for (; pfn end_pfn; pfn++) { @@ -712,7 +712,7 @@ static unsigned long isolate_lru_pages(u if (unlikely(!pfn_valid(pfn))) break; - tmp = __pfn_to_page(pfn); + tmp = pfn_to_page(pfn); if (unlikely(page_zone_id(tmp) != zone_id)) continue; scan++; _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch macintosh-mangle-caps-lock-events-on-adb-keyboards.patch git-ia64.patch git-ieee1394.patch sata_nv-add-back-some-verbosity-into-adma-error_handler.patch git-ubi.patch update-smc91x-driver-with-arm-versatile-board-info.patch drivers-net-ns83820c-add-paramter-to-disable-auto.patch net-uninline-skb_put.patch git-ioat-vs-git-md-accel.patch ioat-warning-fix.patch drivers-scsi-mca_53c9xc-save_flags-cli-removal.patch scsi-cover-up-bugs-fix-up-compiler-warnings-in-megaraid-driver.patch git-ipwireless_cs.patch arch-i386-kernel-alternativec-dont-include-bugsh.patch lumpy-reclaim-v2.patch lumpy-reclaim-v2-page_to_pfn-fix.patch lumpy-reclaim-v2-tidy.patch deprecate-smbfs-in-favour-of-cifs.patch procfs-fix-race-between-proc_readdir-and-remove_proc_entry-fix.patch factor-outstanding-i-o-error-handling-tidy.patch block_write_full_page-handle-enospc.patch filesystem-disk-errors-at-boot-time-caused-by-probe.patch allow-access-to-proc-pid-fd-after-setuid-fix.patch fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous-tidy.patch consolidate-generic_writepages-and-mpage_writepages-tidy.patch sync_sb_inodes-propagate-errors.patch mips-convert-to-use-shared-apm-emulation-fix.patch schedule_on_each_cpu-use-preempt_disable.patch implement-flush_work-sanity.patch implement-flush_work_keventd.patch flush_workqueue-use-preempt_disable-to-hold-off-cpu-hotplug.patch aio-use-flush_work.patch kblockd-use-flush_work.patch relayfs-use-flush_keventd_work.patch tg3-use-flush_keventd_work.patch e1000-use-flush_keventd_work.patch libata-use-flush_work.patch phy-use-flush_work.patch extend-notifier_call_chain-to-count-nr_calls-made.patch extend-notifier_call_chain-to-count-nr_calls-made-fixes-2.patch define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix.patch eliminate-lock_cpu_hotplug-in-kernel-schedc-fix.patch move-page-writeback-acounting-out-of-macros.patch per-backing_dev-dirty-and-writeback-page-accounting.patch ext2-reservations.patch edac-new-opteron-athlon64-memory-controller-driver.patch aio-is-unlikely.patch sched2-sched-domain-sysctl-use-ctl_unnumbered.patch mm-implement-swap-prefetching-use-ctl_unnumbered.patch swap_prefetch-vs-zoned-counters.patch add-include-linux-freezerh-and-move-definitions-from-prefetch.patch rcu-preemptible-rcu.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix-2.patch local_t-powerpc-extension-fix.patch local_t-powerpc-extension-fix-build-fix.patch readahead-kconfig-options-fix.patch readahead-minmax_ra_pages.patch readahead-sysctl-parameters.patch readahead-sysctl-parameters-use-ctl_unnumbered.patch readahead-context-based-method-locking-fix.patch readahead-context-based-method-locking-fix-2.patch readahead-call-scheme-ifdef-fix.patch readahead-call-scheme-build-fix.patch readahead-nfsd-case-fix.patch make-copy_from_user_inatomic-not-zero-the-tail-on-i386-vs-reiser4.patch resier4-add-include-linux-freezerh-and-move-definitions-from.patch make-kmem_cache_destroy-return-void-reiser4.patch reiser4-hardirq-include-fix.patch reiser4-run-truncate_inode_pages-in-reiser4_delete_inode.patch reiser4-get_sb_dev-fix.patch reiser4-vs-zoned-allocator.patch reiser4-temp-fix.patch reiser4-kmem_cache_t-removal.patch reiser4-test_clear_page_dirty.patch statistics-infrastructure-fix-buffer-overflow-in-histogram-with-linear-tidy.patch
- lumpy-reclaim-v2-tidy.patch removed from -mm tree
The patch titled lumpy-reclaim-v2-tidy has been removed from the -mm tree. Its filename was lumpy-reclaim-v2-tidy.patch This patch was dropped because it was folded into lumpy-reclaim-v2.patch -- Subject: lumpy-reclaim-v2-tidy From: Andrew Morton [EMAIL PROTECTED] Cc: Andy Whitcroft [EMAIL PROTECTED] Cc: Peter Zijlstra [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- include/linux/swap.h |3 ++- mm/vmscan.c | 35 +-- 2 files changed, 23 insertions(+), 15 deletions(-) diff -puN include/linux/swap.h~lumpy-reclaim-v2-tidy include/linux/swap.h --- a/include/linux/swap.h~lumpy-reclaim-v2-tidy +++ a/include/linux/swap.h @@ -189,7 +189,8 @@ extern int rotate_reclaimable_page(struc extern void swap_setup(void); /* linux/mm/vmscan.c */ -extern unsigned long try_to_free_pages(struct zone **, int, gfp_t); +extern unsigned long try_to_free_pages(struct zone **zones, int order, + gfp_t gfp_mask); extern unsigned long shrink_all_memory(unsigned long nr_pages); extern int vm_swappiness; extern int remove_mapping(struct address_space *mapping, struct page *page); diff -puN mm/vmscan.c~lumpy-reclaim-v2-tidy mm/vmscan.c --- a/mm/vmscan.c~lumpy-reclaim-v2-tidy +++ a/mm/vmscan.c @@ -616,12 +616,12 @@ keep: } /* - * Attempt to remove the specified page from its LRU. Only take this - * page if it is of the appropriate PageActive status. Pages which - * are being freed elsewhere are also ignored. + * Attempt to remove the specified page from its LRU. Only take this page if it + * is of the appropriate PageActive status. Pages which are being freed + * elsewhere are also ignored. * - * @page: page to consider - * @active:active/inactive flag only take pages of this type + * page: page to consider + * active: active/inactive flag only take pages of this type * * returns 0 on success, -ve errno on failure. */ @@ -659,6 +659,7 @@ int __isolate_lru_page(struct page *page * @src: The LRU list to pull pages off. * @dst: The temp list to put pages on to. * @scanned: The number of pages that were scanned. + * @order: The caller's attempted allocation order * * returns how many pages were moved onto [EMAIL PROTECTED] */ @@ -667,12 +668,16 @@ static unsigned long isolate_lru_pages(u unsigned long *scanned, int order) { unsigned long nr_taken = 0; - struct page *page, *tmp; - unsigned long scan, pfn, end_pfn, page_pfn; - int active; - int zone_id; + unsigned long scan; for (scan = 0; scan nr_to_scan !list_empty(src); scan++) { + struct page *page; + unsigned long pfn; + unsigned long end_pfn; + unsigned long page_pfn; + int active; + int zone_id; + page = lru_to_page(src); prefetchw_prev_lru_page(page, src, flags); @@ -707,24 +712,26 @@ static unsigned long isolate_lru_pages(u pfn = page_pfn ~((1 order) - 1); end_pfn = pfn + (1 order); for (; pfn end_pfn; pfn++) { + struct page *cursor_page; + if (unlikely(pfn == page_pfn)) continue; if (unlikely(!pfn_valid(pfn))) break; - tmp = pfn_to_page(pfn); - if (unlikely(page_zone_id(tmp) != zone_id)) + cursor_page = pfn_to_page(pfn); + if (unlikely(page_zone_id(cursor_page) != zone_id)) continue; scan++; - switch (__isolate_lru_page(tmp, active)) { + switch (__isolate_lru_page(cursor_page, active)) { case 0: - list_move(tmp-lru, dst); + list_move(cursor_page-lru, dst); nr_taken++; break; case -EBUSY: /* else it is being freed elsewhere */ - list_move(tmp-lru, src); + list_move(cursor_page-lru, src); default: break; } _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch macintosh-mangle-caps-lock-events-on-adb-keyboards.patch git-ia64.patch git-ieee1394.patch sata_nv-add-back-some-verbosity-into-adma-error_handler.patch git-ubi.patch update-smc91x-driver-with-arm-versatile-board-info.patch drivers-net-ns83820c-add-paramter-to-disable-auto.patch net-uninline-skb_put.patch git-ioat-vs-git-md-accel.patch ioat-warning-fix.patch
- lumpy-reclaim-cleanup.patch removed from -mm tree
The patch titled mm/vmscan.c: make a function static has been removed from the -mm tree. Its filename was lumpy-reclaim-cleanup.patch This patch was dropped because it was folded into lumpy-reclaim-v2.patch -- Subject: mm/vmscan.c: make a function static From: Adrian Bunk [EMAIL PROTECTED] Signed-off-by: Adrian Bunk [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- mm/vmscan.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN mm/vmscan.c~lumpy-reclaim-cleanup mm/vmscan.c --- a/mm/vmscan.c~lumpy-reclaim-cleanup +++ a/mm/vmscan.c @@ -625,7 +625,7 @@ keep: * * returns 0 on success, -ve errno on failure. */ -int __isolate_lru_page(struct page *page, int active) +static int __isolate_lru_page(struct page *page, int active) { int ret = -EINVAL; _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch git-drm.patch git-dvb.patch git-gfs2-nmw.patch git-ieee1394.patch kconfig-abort-configuration-with-recursive-dependencies.patch remove-fs-jffs2-ioctlc.patch git-ubi.patch drivers-net-vioc-possible-cleanups.patch net-uninline-skb_put-fix.patch drivers-scsi-small-cleanups.patch drivers-scsi-advansysc-cleanups.patch megaraid-fix-warnings-when-config_proc_fs=n.patch drivers-scsi-dpt_i2oc-remove-dead-code.patch drivers-scsi-aic7xxx-make-functions-static.patch drivers-scsi-wd33c93c-cleanups.patch drivers-scsi-qla4xxx-possible-cleanups.patch make-seagate_st0x_detect-static.patch drivers-scsi-aacraid-cleanups.patch remove-the-broken-scsi_acornscsi_3-driver.patch git-unionfs.patch git-wireless.patch git-ipwireless_cs.patch arch-i386-kernel-alternativec-should-include-asm-bugsh.patch make-struct-vmi_ops-static.patch i386-asm-offsetsc-workaround-for-a-wmissing-prototypes-warning.patch lguest-kconfig-and-headers-fix.patch proper-prototype-for-hugetlb_get_unmapped_area.patch mm-slabc-proper-prototypes.patch lumpy-reclaim-v2.patch lumpy-reclaim-cleanup.patch filesystem-disk-errors-at-boot-time-caused-by-probe-fix.patch kill-net-rxrpc-rxrpc_symsc.patch drivers-char-hvc_consolec-cleanups.patch init-do_mountsc-proper-prepare_namespace-prototype.patch make-ext2_get_blocks-static.patch drivers-edac-make-code-static.patch linux-kernel-markers-kconfig-menus-fix.patch linux-kernel-markers-architecture-independant-code-license-fix.patch linux-kernel-markers-i386-optimization-export-fix.patch readahead-events-accounting-make-readahead_debug_level-static.patch reiser4-export-remove_from_page_cache-fix.patch fs-reiser4-possible-cleanups.patch reiser4-possible-cleanups-2.patch fs-reiser4-possible-cleanups-2.patch fs-reiser4-more-possible-cleanups.patch slim-main-patch-security-slim-slm_mainc-make-2-functions-static.patch slim-debug-output-slm_set_taskperm-remove-horrible-error-handling-code.patch i386-enable-4k-stacks-by-default.patch mutex-subsystem-synchro-test-module.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- lumpy-reclaim-v2.patch removed from -mm tree
The patch titled lumpy reclaim v2 has been removed from the -mm tree. Its filename was lumpy-reclaim-v2.patch This patch was dropped because an updated version will be merged -- Subject: lumpy reclaim v2 From: Andy Whitcroft [EMAIL PROTECTED] When we are out of memory of a suitable size we enter reclaim. The current reclaim algorithm targets pages in LRU order, which is great for fairness but highly unsuitable if you desire pages at higher orders. To get pages of higher order we must shoot down a very high proportion of memory; 95% in a lot of cases. This patch set adds a lumpy reclaim algorithm to the allocator. It targets groups of pages at the specified order anchored at the end of the active and inactive lists. This encourages groups of pages at the requested orders to move from active to inactive, and active to free lists. This behaviour is only triggered out of direct reclaim when higher order pages have been requested. This patch set is particularly effective when utilised with an anti-fragmentation scheme which groups pages of similar reclaimability together. This patch set is based on Peter Zijlstra's lumpy reclaim V2 patch which forms the foundation. Testing of this patch set under high fragmentation high allocation load conditions shows significantly improved high order reclaim rates than a standard kernel. The stack here is now within 5% of the best case linear-reclaim figures. It would be interesting to see if this setup is also successful in reducing order-2 allocation failures that people have been seeing with jumbo frames. [EMAIL PROTECTED]: mm/vmscan.c: make a function static] Signed-off-by: Andy Whitcroft [EMAIL PROTECTED] Acked-by: Peter Zijlstra [EMAIL PROTECTED] Signed-off-by: Adrian Bunk [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- fs/buffer.c |2 include/linux/swap.h |3 - mm/page_alloc.c |2 mm/vmscan.c | 114 ++--- 4 files changed, 100 insertions(+), 21 deletions(-) diff -puN fs/buffer.c~lumpy-reclaim-v2 fs/buffer.c --- a/fs/buffer.c~lumpy-reclaim-v2 +++ a/fs/buffer.c @@ -363,7 +363,7 @@ static void free_more_memory(void) for_each_online_pgdat(pgdat) { zones = pgdat-node_zonelists[gfp_zone(GFP_NOFS)].zones; if (*zones) - try_to_free_pages(zones, GFP_NOFS); + try_to_free_pages(zones, 0, GFP_NOFS); } } diff -puN include/linux/swap.h~lumpy-reclaim-v2 include/linux/swap.h --- a/include/linux/swap.h~lumpy-reclaim-v2 +++ a/include/linux/swap.h @@ -188,7 +188,8 @@ extern int rotate_reclaimable_page(struc extern void swap_setup(void); /* linux/mm/vmscan.c */ -extern unsigned long try_to_free_pages(struct zone **, gfp_t); +extern unsigned long try_to_free_pages(struct zone **zones, int order, + gfp_t gfp_mask); extern unsigned long shrink_all_memory(unsigned long nr_pages); extern int vm_swappiness; extern int remove_mapping(struct address_space *mapping, struct page *page); diff -puN mm/page_alloc.c~lumpy-reclaim-v2 mm/page_alloc.c --- a/mm/page_alloc.c~lumpy-reclaim-v2 +++ a/mm/page_alloc.c @@ -1341,7 +1341,7 @@ nofail_alloc: reclaim_state.reclaimed_slab = 0; p-reclaim_state = reclaim_state; - did_some_progress = try_to_free_pages(zonelist-zones, gfp_mask); + did_some_progress = try_to_free_pages(zonelist-zones, order, gfp_mask); p-reclaim_state = NULL; p-flags = ~PF_MEMALLOC; diff -puN mm/vmscan.c~lumpy-reclaim-v2 mm/vmscan.c --- a/mm/vmscan.c~lumpy-reclaim-v2 +++ a/mm/vmscan.c @@ -66,6 +66,8 @@ struct scan_control { int swappiness; int all_unreclaimable; + + int order; }; /* @@ -607,6 +609,36 @@ keep: } /* + * Attempt to remove the specified page from its LRU. Only take this page if it + * is of the appropriate PageActive status. Pages which are being freed + * elsewhere are also ignored. + * + * page: page to consider + * active: active/inactive flag only take pages of this type + * + * returns 0 on success, -ve errno on failure. + */ +static int __isolate_lru_page(struct page *page, int active) +{ + int ret = -EINVAL; + + if (PageLRU(page) (PageActive(page) == active)) { + ret = -EBUSY; + if (likely(get_page_unless_zero(page))) { + /* +* Be careful not to clear PageLRU until after we're +* sure the page is not being freed elsewhere -- the +* page release code relies on it. +*/ + ClearPageLRU(page); + ret = 0; + } + } + + return ret; +} + +/* * zone-lru_lock is heavily contended. Some of the functions that * shrink the lists perform better by taking
- factor-outstanding-i-o-error-handling-tidy.patch removed from -mm tree
The patch titled factor-outstanding-i-o-error-handling-tidy has been removed from the -mm tree. Its filename was factor-outstanding-i-o-error-handling-tidy.patch This patch was dropped because it was folded into factor-outstanding-i-o-error-handling.patch -- Subject: factor-outstanding-i-o-error-handling-tidy From: Andrew Morton [EMAIL PROTECTED] Cc: Guillaume Chazarain [EMAIL PROTECTED] Cc: Steven Whitehouse [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- include/linux/pagemap.h |3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN include/linux/pagemap.h~factor-outstanding-i-o-error-handling-tidy include/linux/pagemap.h --- a/include/linux/pagemap.h~factor-outstanding-i-o-error-handling-tidy +++ a/include/linux/pagemap.h @@ -11,6 +11,7 @@ #include linux/compiler.h #include asm/uaccess.h #include linux/gfp.h +#include linux/bitops.h /* * Bits in mapping-flags. The lower __GFP_BITS_SHIFT bits are the page @@ -19,7 +20,7 @@ #defineAS_EIO (__GFP_BITS_SHIFT + 0) /* IO error on async write */ #define AS_ENOSPC (__GFP_BITS_SHIFT + 1) /* ENOSPC on async write */ -static inline void mapping_set_error(struct address_space * mapping, int error) +static inline void mapping_set_error(struct address_space *mapping, int error) { if (error) { if (error == -ENOSPC) _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch macintosh-mangle-caps-lock-events-on-adb-keyboards.patch git-ia64.patch git-ieee1394.patch sata_nv-add-back-some-verbosity-into-adma-error_handler.patch git-ubi.patch update-smc91x-driver-with-arm-versatile-board-info.patch drivers-net-ns83820c-add-paramter-to-disable-auto.patch net-uninline-skb_put.patch git-ioat-vs-git-md-accel.patch ioat-warning-fix.patch drivers-scsi-mca_53c9xc-save_flags-cli-removal.patch scsi-cover-up-bugs-fix-up-compiler-warnings-in-megaraid-driver.patch git-ipwireless_cs.patch arch-i386-kernel-alternativec-dont-include-bugsh.patch deprecate-smbfs-in-favour-of-cifs.patch factor-outstanding-i-o-error-handling.patch factor-outstanding-i-o-error-handling-tidy.patch block_write_full_page-handle-enospc.patch filesystem-disk-errors-at-boot-time-caused-by-probe.patch allow-access-to-proc-pid-fd-after-setuid-fix.patch fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous-tidy.patch consolidate-generic_writepages-and-mpage_writepages-tidy.patch sync_sb_inodes-propagate-errors.patch mips-convert-to-use-shared-apm-emulation-fix.patch schedule_on_each_cpu-use-preempt_disable.patch implement-flush_work-sanity.patch implement-flush_work_keventd.patch flush_workqueue-use-preempt_disable-to-hold-off-cpu-hotplug.patch aio-use-flush_work.patch kblockd-use-flush_work.patch relayfs-use-flush_keventd_work.patch tg3-use-flush_keventd_work.patch e1000-use-flush_keventd_work.patch libata-use-flush_work.patch phy-use-flush_work.patch extend-notifier_call_chain-to-count-nr_calls-made.patch extend-notifier_call_chain-to-count-nr_calls-made-fixes-2.patch define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix.patch eliminate-lock_cpu_hotplug-in-kernel-schedc-fix.patch move-page-writeback-acounting-out-of-macros.patch per-backing_dev-dirty-and-writeback-page-accounting.patch ext2-reservations.patch edac-new-opteron-athlon64-memory-controller-driver.patch aio-is-unlikely.patch sched2-sched-domain-sysctl-use-ctl_unnumbered.patch mm-implement-swap-prefetching-use-ctl_unnumbered.patch swap_prefetch-vs-zoned-counters.patch add-include-linux-freezerh-and-move-definitions-from-prefetch.patch rcu-preemptible-rcu.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix-2.patch local_t-powerpc-extension-fix.patch local_t-powerpc-extension-fix-build-fix.patch readahead-kconfig-options-fix.patch readahead-minmax_ra_pages.patch readahead-sysctl-parameters.patch readahead-sysctl-parameters-use-ctl_unnumbered.patch readahead-context-based-method-locking-fix.patch readahead-context-based-method-locking-fix-2.patch readahead-call-scheme-ifdef-fix.patch readahead-call-scheme-build-fix.patch readahead-nfsd-case-fix.patch make-copy_from_user_inatomic-not-zero-the-tail-on-i386-vs-reiser4.patch resier4-add-include-linux-freezerh-and-move-definitions-from.patch make-kmem_cache_destroy-return-void-reiser4.patch reiser4-hardirq-include-fix.patch reiser4-run-truncate_inode_pages-in-reiser4_delete_inode.patch reiser4-get_sb_dev-fix.patch reiser4-vs-zoned-allocator.patch reiser4-temp-fix.patch reiser4-kmem_cache_t-removal.patch reiser4-test_clear_page_dirty.patch statistics-infrastructure-fix-buffer-overflow-in-histogram-with-linear-tidy.patch slim-main-include-fix.patch nr_blockdev_pages-in_interrupt-warning.patch device-suspend-debug.patch mutex-subsystem-synchro-test-module-fix.patch slab-leaks3-default-y.patch
- fix-rmmod-read-write-races-in-proc-entries-fix.patch removed from -mm tree
The patch titled fix-rmmod-read-write-races-in-proc-entries-fix has been removed from the -mm tree. Its filename was fix-rmmod-read-write-races-in-proc-entries-fix.patch This patch was dropped because it was folded into fix-rmmod-read-write-races-in-proc-entries.patch -- Subject: fix-rmmod-read-write-races-in-proc-entries-fix From: Andrew Morton [EMAIL PROTECTED] Make lockdep happy. Cc: Alexey Dobriyan [EMAIL PROTECTED] Cc: Al Viro [EMAIL PROTECTED] Cc: Eric W. Biederman [EMAIL PROTECTED] Cc: Oleg Nesterov [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- fs/proc/generic.c |3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff -puN fs/proc/generic.c~fix-rmmod-read-write-races-in-proc-entries-fix fs/proc/generic.c --- a/fs/proc/generic.c~fix-rmmod-read-write-races-in-proc-entries-fix +++ a/fs/proc/generic.c @@ -790,9 +790,8 @@ void remove_proc_entry(const char *name, de-proc_fops = NULL; /* Wait until all existing readers/writers are done. */ if (de-pde_users 0) { - struct completion c; + DECLARE_COMPLETION_ONSTACK(c); - init_completion(c); if (!de-pde_unload_completion) de-pde_unload_completion = c; _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch slab-introduce-krealloc-fix.patch make-aout-executables-work-again-fix.patch sony-laptop-fix-uninitialised-variable.patch git-alsa-oops-fix.patch git-drm.patch git-dvb.patch ia64-kexec-use-efi_loader_data-for-elf-core-header-tidy.patch git-input.patch setstream-param-for-psmouse-tweak.patch git-md-accel-fixup.patch nommu-present-backing-device-capabilities-for-mtd-fix.patch git-ubi.patch git-netdev-all.patch git-netdev-all-ipw2200-fix.patch revert-drivers-net-tulip-dmfe-support-basic-carrier-detection.patch dmfe-add-support-for-suspend-resume-fix.patch sis900-warning-fixes.patch div64_64-common-code-fix.patch bonding-replace-system-timer-with-work-queue-tidy.patch git-parisc.patch rm9000-serial-driver-tidy.patch git-pciseg.patch git-unionfs.patch usbatm-create-sysfs-link-device-from-atm-class-device-tidy.patch git-wireless-fixup.patch revert-x86_64-mm-change-sysenter_setup-to-__cpuinit-improve-__init-__initdata.patch after-before-x86_64-mm-mmconfig-share.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix-2.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch driver_bfin_serial_core-update.patch fix-rmmod-read-write-races-in-proc-entries.patch fix-rmmod-read-write-races-in-proc-entries-fix.patch reduce-size-of-task_struct-on-64-bit-machines.patch mm-shrink-parent-dentries-when-shrinking-slab.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2.patch call-cpu_chain-with-cpu_down_failed-if-cpu_down_prepare-failed-vs-reduce-size-of-task_struct-on-64-bit-machines.patch speedup-divides-by-cpu_power-in-scheduler-up-fix.patch lutimesat-compat-syscall-and-wire-up-on-x86_64-tidy.patch utrace-prep.patch utrace-prep-2.patch revert-utrace-prep-2.patch utrace-vs-reduce-size-of-task_struct-on-64-bit-machines.patch local_t-mips-extension-shrink-duplicated-mips-32-64-bits-functions-from-localh-fix.patch linux-kernel-markers-kconfig-menus-fix-4.patch fbdev-hecuba-framebuffer-driver-fix.patch mm-only-free-swap-space-of-reactivated-pages-debug.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- file-capabilities-dont-do-file-caps-if-mnt_nosuid.patch removed from -mm tree
The patch titled file capabilities: don't do file caps if MNT_NOSUID has been removed from the -mm tree. Its filename was file-capabilities-dont-do-file-caps-if-mnt_nosuid.patch This patch was dropped because it was folded into implement-file-posix-capabilities.patch -- Subject: file capabilities: don't do file caps if MNT_NOSUID From: Serge E. Hallyn [EMAIL PROTECTED] A file system mounted NOSUID is likely a removable filesystem. Allowing file capabilities from such an fs is an easy attack vector, so don't honor file capabilities for a NOSUID filesystem. Signed-off-by: Serge E. Hallyn [EMAIL PROTECTED] Cc: Stephen Smalley [EMAIL PROTECTED] Cc: James Morris [EMAIL PROTECTED] Cc: Chris Wright [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- security/commoncap.c |4 1 file changed, 4 insertions(+) diff -puN security/commoncap.c~file-capabilities-dont-do-file-caps-if-mnt_nosuid security/commoncap.c --- a/security/commoncap.c~file-capabilities-dont-do-file-caps-if-mnt_nosuid +++ a/security/commoncap.c @@ -23,6 +23,7 @@ #include linux/ptrace.h #include linux/xattr.h #include linux/hugetlb.h +#include linux/mount.h int cap_netlink_send(struct sock *sk, struct sk_buff *skb) { @@ -152,6 +153,9 @@ static int set_file_caps(struct linux_bi struct inode *inode; int err; + if (bprm-file-f_vfsmnt-mnt_flags MNT_NOSUID) + return 0; + dentry = dget(bprm-file-f_dentry); inode = dentry-d_inode; if (!inode-i_op || !inode-i_op-getxattr) { _ Patches currently in -mm which might be from [EMAIL PROTECTED] are implement-file-posix-capabilities.patch file-capabilities-dont-do-file-caps-if-mnt_nosuid.patch file-capabilities-honor-secure_noroot.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2.patch integrity-service-api-and-dummy-provider-fix.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- fix-rmmod-read-write-races-in-proc-entries.patch removed from -mm tree
The patch titled Fix rmmod/read/write races in /proc entries has been removed from the -mm tree. Its filename was fix-rmmod-read-write-races-in-proc-entries.patch This patch was dropped because an updated version will be merged -- Subject: Fix rmmod/read/write races in /proc entries From: Alexey Dobriyan [EMAIL PROTECTED] Current /proc creation interfaces suffer from at least two types of races: 1. Write via -write_proc sleeps in copy_from_user(). Module disappears meanwhile. pde = create_proc_entry() if (!pde) return -ENOMEM; pde-write_proc = ... open write copy_from_user pde = create_proc_entry(); if (!pde) { remove_proc_entry(); return -ENOMEM; /* module unloaded */ } *boom* 2. Read/write happens when PDE only partially initialized. -data is NULL when create_proc_entry() returns. Almost all -read_proc and -write_proc handlers assume that -data is valid. pde = create_proc_entry(); if (pde) { /* which dereferences -data */ pde-write_proc = ... open write pde-data = ... } The following plan is going to be executed (as per Al Viro's explanations): PDE gets counter counting reads and writes in progress done via -read_proc, -write_proc, -get_info . Generic proc code will bump PDE's counter before calling into module-specific method and decrement it after it returns. remove_proc_entry() will wait until all readers and writers are done. To do this reliably it will set -proc_fops to NULL and generic proc code won't call into module it it sees NULL -proc_fops. This patch implements part above. So far, no changes in proc users required except that users dynamically creating -proc_fops need to be careful to not get leak. Patch fixes races of type 1. Patch survives infinite modprobe/rmmod loop in parallel with infinite read loops with many debugging options turned on including lockdep (albeit on UP-PREEMPT box). Signed-off-by: Alexey Dobriyan [EMAIL PROTECTED] Cc: Al Viro [EMAIL PROTECTED] Cc: Eric W. Biederman [EMAIL PROTECTED] Cc: Oleg Nesterov [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- fs/proc/generic.c | 82 +- include/linux/proc_fs.h | 19 2 files changed, 99 insertions(+), 2 deletions(-) diff -puN fs/proc/generic.c~fix-rmmod-read-write-races-in-proc-entries fs/proc/generic.c --- a/fs/proc/generic.c~fix-rmmod-read-write-races-in-proc-entries +++ a/fs/proc/generic.c @@ -20,6 +20,7 @@ #include linux/namei.h #include linux/bitops.h #include linux/spinlock.h +#include linux/completion.h #include asm/uaccess.h #include internal.h @@ -76,6 +77,21 @@ proc_file_read(struct file *file, char _ if (!(page = (char*) __get_free_page(GFP_KERNEL|__GFP_RECLAIMABLE))) return -ENOMEM; + spin_lock(dp-pde_unload_lock); + if (!dp-proc_fops) + /* +* remove_proc_entry() marked PDE as going away. +* No new readers allowed. +*/ + goto out_unlock; + /* +* We are going to call into module's code via -get_info or +* -read_proc. Bump refcount so that remove_proc_entry() will +* wait for read to complete. +*/ + dp-pde_users++; + spin_unlock(dp-pde_unload_lock); + while ((nbytes 0) !eof) { count = min_t(size_t, PROC_BLOCK_SIZE, nbytes); @@ -195,6 +211,13 @@ proc_file_read(struct file *file, char _ buf += n; retval += n; } + + spin_lock(dp-pde_unload_lock); + dp-pde_users--; + if (dp-pde_unload_completion dp-pde_users == 0) + complete(dp-pde_unload_completion); +out_unlock: + spin_unlock(dp-pde_unload_lock); free_page((unsigned long) page); return retval; } @@ -205,14 +228,41 @@ proc_file_write(struct file *file, const { struct inode *inode = file-f_path.dentry-d_inode; struct proc_dir_entry * dp; + ssize_t rv = -EIO; dp = PDE(inode); if (!dp-write_proc) - return -EIO; + goto out; + spin_lock(dp-pde_unload_lock); + if (!dp-proc_fops) + /* +* remove_proc_entry() marked PDE as going away. +* No new writers allowed. +*/ + goto out_unlock; + /* +* We are going to call into module's code via -write_proc . +* Bump refcount so that module won't dissapear while
- allow-access-to-proc-pid-fd-after-setuid-update-2.patch removed from -mm tree
The patch titled Allow access to /proc/$PID/fd after setuid() has been removed from the -mm tree. Its filename was allow-access-to-proc-pid-fd-after-setuid-update-2.patch This patch was dropped because it was folded into allow-access-to-proc-pid-fd-after-setuid.patch -- Subject: Allow access to /proc/$PID/fd after setuid() From: Alexey Dobriyan [EMAIL PROTECTED] Cc: Alexey Dobriyan [EMAIL PROTECTED] Cc: Eric W. Biederman [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- fs/proc/base.c |9 ++--- 1 file changed, 2 insertions(+), 7 deletions(-) diff -puN fs/proc/base.c~allow-access-to-proc-pid-fd-after-setuid-update-2 fs/proc/base.c --- a/fs/proc/base.c~allow-access-to-proc-pid-fd-after-setuid-update-2 +++ a/fs/proc/base.c @@ -1454,18 +1454,13 @@ static struct file_operations proc_fd_op static int proc_fd_permission(struct inode *inode, int mask, struct nameidata *nd) { - struct task_struct *tsk; int rv; rv = generic_permission(inode, mask, NULL); if (rv == 0) return 0; - tsk = get_proc_task(inode); - if (tsk) { - if (tsk == current) - rv = 0; - put_task_struct(tsk); - } + if (task_pid(current) == proc_pid(inode)) + rv = 0; return rv; } _ Patches currently in -mm which might be from [EMAIL PROTECTED] are ia64-sync-compat-getdents-on-ia64-and-parisc.patch parisc-sync-compat-getdents-on-ia64-and-parisc.patch x86_64-wire-up-compat-sched_rr_get_interval2.patch allow-access-to-proc-pid-fd-after-setuid.patch allow-access-to-proc-pid-fd-after-setuid-update-2.patch lutimesat-simplify-utime2.patch lutimesat-extend-do_utimes-with-flags.patch lutimesat-actual-syscall-and-wire-up-on-i386.patch lutimesat-compat-syscall-and-wire-up-on-x86_64.patch lutimesat-compat-syscall-and-wire-up-on-x86_64-tidy.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- fix-quadratic-behavior-of-shrink_dcache_parent-update.patch removed from -mm tree
The patch titled fix-quadratic-behavior-of-shrink_dcache_parent update has been removed from the -mm tree. Its filename was fix-quadratic-behavior-of-shrink_dcache_parent-update.patch This patch was dropped because it was folded into fix-quadratic-behavior-of-shrink_dcache_parent.patch -- Subject: fix-quadratic-behavior-of-shrink_dcache_parent update From: Miklos Szeredi [EMAIL PROTECTED] o dput already checks dentry == NULL, so remove check from prune_one_dentry() Signed-off-by: Miklos Szeredi [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- fs/dcache.c |3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff -puN fs/dcache.c~fix-quadratic-behavior-of-shrink_dcache_parent-update fs/dcache.c --- a/fs/dcache.c~fix-quadratic-behavior-of-shrink_dcache_parent-update +++ a/fs/dcache.c @@ -392,8 +392,7 @@ static void prune_one_dentry(struct dent __d_drop(dentry); dentry = d_kill(dentry); if (!prune_parents) { - if (dentry) - dput(dentry); + dput(dentry); spin_lock(dcache_lock); return; } _ Patches currently in -mm which might be from [EMAIL PROTECTED] are fix-quadratic-behavior-of-shrink_dcache_parent.patch fix-quadratic-behavior-of-shrink_dcache_parent-update.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- ipmi-add-new-ipmi-nmi-watchdog-handling-cleanup.patch removed from -mm tree
The patch titled ipmi: add new IPMI nmi watchdog handling (cleanup) has been removed from the -mm tree. Its filename was ipmi-add-new-ipmi-nmi-watchdog-handling-cleanup.patch This patch was dropped because it was folded into ipmi-add-new-ipmi-nmi-watchdog-handling.patch -- Subject: ipmi: add new IPMI nmi watchdog handling (cleanup) From: Corey Minyard [EMAIL PROTECTED] Reduce the gruesomness of the IPMI NMI watchdog handling. Basically, I've looked at this and thought about it a while, and the only reasonable architecture that will currently support this is x86. Anything else is just a pipe dream and the implementation would be quite different and difficult to predict. So just make this x86-only for now and remove all the junk that is no longer necessary. Signed-off-by: Corey Minyard [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- arch/i386/Kconfig.debug |4 arch/x86_64/Kconfig.debug |4 drivers/char/ipmi/ipmi_watchdog.c | 25 + include/asm-i386/kdebug.h |2 -- include/asm-x86_64/kdebug.h |2 -- 5 files changed, 17 insertions(+), 20 deletions(-) diff -puN arch/i386/Kconfig.debug~ipmi-add-new-ipmi-nmi-watchdog-handling-cleanup arch/i386/Kconfig.debug --- a/arch/i386/Kconfig.debug~ipmi-add-new-ipmi-nmi-watchdog-handling-cleanup +++ a/arch/i386/Kconfig.debug @@ -4,10 +4,6 @@ config TRACE_IRQFLAGS_SUPPORT bool default y -config HAVE_STANDARD_NOTIFY_DIE - bool - default y - source lib/Kconfig.debug config EARLY_PRINTK diff -puN arch/x86_64/Kconfig.debug~ipmi-add-new-ipmi-nmi-watchdog-handling-cleanup arch/x86_64/Kconfig.debug --- a/arch/x86_64/Kconfig.debug~ipmi-add-new-ipmi-nmi-watchdog-handling-cleanup +++ a/arch/x86_64/Kconfig.debug @@ -4,10 +4,6 @@ config TRACE_IRQFLAGS_SUPPORT bool default y -config HAVE_STANDARD_NOTIFY_DIE - bool - default y - source lib/Kconfig.debug config DEBUG_RODATA diff -puN drivers/char/ipmi/ipmi_watchdog.c~ipmi-add-new-ipmi-nmi-watchdog-handling-cleanup drivers/char/ipmi/ipmi_watchdog.c --- a/drivers/char/ipmi/ipmi_watchdog.c~ipmi-add-new-ipmi-nmi-watchdog-handling-cleanup +++ a/drivers/char/ipmi/ipmi_watchdog.c @@ -51,8 +51,17 @@ #include linux/ctype.h #include linux/delay.h #include asm/atomic.h -#ifdef CONFIG_HAVE_STANDARD_NOTIFY_DIE + +#ifdef CONFIG_X86 +/* This is ugly, but I've determined that x86 is the only architecture + that can reasonably support the IPMI NMI watchdog timeout at this + time. If another architecture adds this capability somehow, it + will have to be a somewhat different mechanism and I have no idea + how it will work. So in the unlikely event that another + architecture supports this, we can figure out a good generic + mechanism for it at that time. */ #include asm/kdebug.h +#define HAVE_DIE_NMI_POST #endif #definePFX IPMI Watchdog: @@ -364,6 +373,10 @@ static int i_ipmi_set_timeout(struct ipm int hbnow = 0; + /* These can be cleared as we are setting the timeout. */ + ipmi_start_timer_on_heartbeat = 0; + pretimeout_since_last_heartbeat = 0; + data[0] = 0; WDOG_SET_TIMER_USE(data[0], WDOG_TIMER_USE_SMS_OS); @@ -438,13 +451,12 @@ static int ipmi_set_timeout(int do_heart wait_for_completion(set_timeout_wait); + mutex_unlock(set_timeout_lock); + if ((do_heartbeat == IPMI_SET_TIMEOUT_FORCE_HB) || ((send_heartbeat_now) (do_heartbeat == IPMI_SET_TIMEOUT_HB_IF_NECESSARY))) - { rv = ipmi_heartbeat(); - } - mutex_unlock(set_timeout_lock); out: return rv; @@ -524,12 +536,10 @@ static int ipmi_heartbeat(void) int rv; struct ipmi_system_interface_addr addr; - if (ipmi_ignore_heartbeat) { + if (ipmi_ignore_heartbeat) return 0; - } if (ipmi_start_timer_on_heartbeat) { - ipmi_start_timer_on_heartbeat = 0; ipmi_watchdog_state = action_val; return ipmi_set_timeout(IPMI_SET_TIMEOUT_FORCE_HB); } else if (pretimeout_since_last_heartbeat) { @@ -537,7 +547,6 @@ static int ipmi_heartbeat(void) We don't want to set the action, though, we want to leave that alone (thus it can't be combined with the above operation. */ - pretimeout_since_last_heartbeat = 0; return ipmi_set_timeout(IPMI_SET_TIMEOUT_HB_IF_NECESSARY); } diff -puN include/asm-i386/kdebug.h~ipmi-add-new-ipmi-nmi-watchdog-handling-cleanup include/asm-i386/kdebug.h --- a/include/asm-i386/kdebug.h~ipmi-add-new-ipmi-nmi-watchdog-handling-cleanup +++ a/include/asm-i386/kdebug.h @@ -42,8 +42,6 @@ enum die_val {
- file-capabilities-honor-secure_noroot.patch removed from -mm tree
The patch titled file capabilities: honor !SECURE_NOROOT has been removed from the -mm tree. Its filename was file-capabilities-honor-secure_noroot.patch This patch was dropped because it was folded into implement-file-posix-capabilities.patch -- Subject: file capabilities: honor !SECURE_NOROOT From: Serge E. Hallyn [EMAIL PROTECTED] When the SECURE_NOROOT securebit is not set, allow root to keep it's capabilities over exec, rather than compute the capabilities based on file capabilities. Signed-off-by: Serge E. Hallyn [EMAIL PROTECTED] Cc: Stephen Smalley [EMAIL PROTECTED] Cc: James Morris [EMAIL PROTECTED] Cc: Chris Wright [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- security/commoncap.c |6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff -puN security/commoncap.c~file-capabilities-honor-secure_noroot security/commoncap.c --- a/security/commoncap.c~file-capabilities-honor-secure_noroot +++ a/security/commoncap.c @@ -202,12 +202,16 @@ static inline int set_file_caps(struct l int cap_bprm_set_security (struct linux_binprm *bprm) { + int ret; + /* Copied from fs/exec.c:prepare_binprm. */ cap_clear (bprm-cap_inheritable); cap_clear (bprm-cap_permitted); cap_clear (bprm-cap_effective); + ret = set_file_caps(bprm); + /* To support inheritance of root-permissions and suid-root * executables under compatibility mode, we raise all three * capability sets for the file. @@ -225,7 +229,7 @@ int cap_bprm_set_security (struct linux_ cap_set_full (bprm-cap_effective); } - return set_file_caps(bprm); + return ret; } void cap_bprm_apply_creds (struct linux_binprm *bprm, int unsafe) _ Patches currently in -mm which might be from [EMAIL PROTECTED] are implement-file-posix-capabilities.patch file-capabilities-honor-secure_noroot.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2.patch integrity-service-api-and-dummy-provider-fix.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- allow-access-to-proc-pid-fd-after-setuid-fix.patch removed from -mm tree
The patch titled allow-access-to-proc-pid-fd-after-setuid-fix has been removed from the -mm tree. Its filename was allow-access-to-proc-pid-fd-after-setuid-fix.patch This patch was dropped because it was folded into allow-access-to-proc-pid-fd-after-setuid.patch -- Subject: allow-access-to-proc-pid-fd-after-setuid-fix From: Andrew Morton [EMAIL PROTECTED] Cc: Alexey Dobriyan [EMAIL PROTECTED] Cc: Eric W. Biederman [EMAIL PROTECTED] Cc: James Morris [EMAIL PROTECTED] Cc: Chris Wright [EMAIL PROTECTED] Cc: Ulrich Drepper [EMAIL PROTECTED] Cc: Oleg Nesterov [EMAIL PROTECTED] Cc: Kirill Korotaev [EMAIL PROTECTED] Cc: Al Viro [EMAIL PROTECTED] Cc: Christoph Hellwig [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- fs/proc/base.c |4 1 file changed, 4 insertions(+) diff -puN fs/proc/base.c~allow-access-to-proc-pid-fd-after-setuid-fix fs/proc/base.c --- a/fs/proc/base.c~allow-access-to-proc-pid-fd-after-setuid-fix +++ a/fs/proc/base.c @@ -1447,6 +1447,10 @@ static const struct file_operations proc .readdir= proc_readfd, }; +/* + * /proc/pid/fd needs a special permission handler so that a process can still + * access /proc/self/fd after it has executed a setuid(). + */ static int proc_fd_permission(struct inode *inode, int mask, struct nameidata *nd) { _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch macintosh-mangle-caps-lock-events-on-adb-keyboards.patch git-ia64.patch git-ieee1394.patch sata_nv-add-back-some-verbosity-into-adma-error_handler.patch git-ubi.patch update-smc91x-driver-with-arm-versatile-board-info.patch drivers-net-ns83820c-add-paramter-to-disable-auto.patch net-uninline-skb_put.patch git-ioat-vs-git-md-accel.patch ioat-warning-fix.patch drivers-scsi-mca_53c9xc-save_flags-cli-removal.patch scsi-cover-up-bugs-fix-up-compiler-warnings-in-megaraid-driver.patch git-ipwireless_cs.patch arch-i386-kernel-alternativec-dont-include-bugsh.patch deprecate-smbfs-in-favour-of-cifs.patch block_write_full_page-handle-enospc.patch filesystem-disk-errors-at-boot-time-caused-by-probe.patch allow-access-to-proc-pid-fd-after-setuid.patch allow-access-to-proc-pid-fd-after-setuid-fix.patch fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous-tidy.patch consolidate-generic_writepages-and-mpage_writepages-tidy.patch sync_sb_inodes-propagate-errors.patch mips-convert-to-use-shared-apm-emulation-fix.patch schedule_on_each_cpu-use-preempt_disable.patch implement-flush_work-sanity.patch implement-flush_work_keventd.patch flush_workqueue-use-preempt_disable-to-hold-off-cpu-hotplug.patch aio-use-flush_work.patch kblockd-use-flush_work.patch relayfs-use-flush_keventd_work.patch tg3-use-flush_keventd_work.patch e1000-use-flush_keventd_work.patch libata-use-flush_work.patch phy-use-flush_work.patch extend-notifier_call_chain-to-count-nr_calls-made.patch extend-notifier_call_chain-to-count-nr_calls-made-fixes-2.patch define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix.patch eliminate-lock_cpu_hotplug-in-kernel-schedc-fix.patch move-page-writeback-acounting-out-of-macros.patch per-backing_dev-dirty-and-writeback-page-accounting.patch ext2-reservations.patch edac-new-opteron-athlon64-memory-controller-driver.patch aio-is-unlikely.patch sched2-sched-domain-sysctl-use-ctl_unnumbered.patch mm-implement-swap-prefetching-use-ctl_unnumbered.patch swap_prefetch-vs-zoned-counters.patch add-include-linux-freezerh-and-move-definitions-from-prefetch.patch rcu-preemptible-rcu.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix-2.patch local_t-powerpc-extension-fix.patch local_t-powerpc-extension-fix-build-fix.patch readahead-kconfig-options-fix.patch readahead-minmax_ra_pages.patch readahead-sysctl-parameters.patch readahead-sysctl-parameters-use-ctl_unnumbered.patch readahead-context-based-method-locking-fix.patch readahead-context-based-method-locking-fix-2.patch readahead-call-scheme-ifdef-fix.patch readahead-call-scheme-build-fix.patch readahead-nfsd-case-fix.patch make-copy_from_user_inatomic-not-zero-the-tail-on-i386-vs-reiser4.patch resier4-add-include-linux-freezerh-and-move-definitions-from.patch make-kmem_cache_destroy-return-void-reiser4.patch reiser4-hardirq-include-fix.patch reiser4-run-truncate_inode_pages-in-reiser4_delete_inode.patch reiser4-get_sb_dev-fix.patch reiser4-vs-zoned-allocator.patch reiser4-temp-fix.patch reiser4-kmem_cache_t-removal.patch reiser4-test_clear_page_dirty.patch statistics-infrastructure-fix-buffer-overflow-in-histogram-with-linear-tidy.patch slim-main-include-fix.patch nr_blockdev_pages-in_interrupt-warning.patch device-suspend-debug.patch mutex-subsystem-synchro-test-module-fix.patch slab-leaks3-default-y.patch vdso-print-fatal-signals-use-ctl_unnumbered.patch restore-rogue-readahead-printk.patch
- allow-access-to-proc-pid-fd-after-setuid-update.patch removed from -mm tree
The patch titled allow-access-to-proc-pid-fd-after-setuid-v2 has been removed from the -mm tree. Its filename was allow-access-to-proc-pid-fd-after-setuid-update.patch This patch was dropped because it was folded into allow-access-to-proc-pid-fd-after-setuid.patch -- Subject: allow-access-to-proc-pid-fd-after-setuid-v2 From: Alexey Dobriyan [EMAIL PROTECTED] crap, Pavel reminded that get_proc_task() can return NULL. Signed-off-by: Alexey Dobriyan [EMAIL PROTECTED] Cc: Eric W. Biederman [EMAIL PROTECTED] Cc: James Morris [EMAIL PROTECTED] Cc: Chris Wright [EMAIL PROTECTED] Cc: Ulrich Drepper [EMAIL PROTECTED] Cc: Oleg Nesterov [EMAIL PROTECTED] Cc: Kirill Korotaev [EMAIL PROTECTED] Cc: Al Viro [EMAIL PROTECTED] Cc: Christoph Hellwig [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- fs/proc/base.c |8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff -puN fs/proc/base.c~allow-access-to-proc-pid-fd-after-setuid-update fs/proc/base.c --- a/fs/proc/base.c~allow-access-to-proc-pid-fd-after-setuid-update +++ a/fs/proc/base.c @@ -1461,9 +1461,11 @@ static int proc_fd_permission(struct ino if (rv == 0) return 0; tsk = get_proc_task(inode); - if (tsk == current) - rv = 0; - put_task_struct(tsk); + if (tsk) { + if (tsk == current) + rv = 0; + put_task_struct(tsk); + } return rv; } _ Patches currently in -mm which might be from [EMAIL PROTECTED] are ia64-sync-compat-getdents-on-ia64-and-parisc.patch parisc-sync-compat-getdents-on-ia64-and-parisc.patch x86_64-wire-up-compat-sched_rr_get_interval2.patch allow-access-to-proc-pid-fd-after-setuid.patch allow-access-to-proc-pid-fd-after-setuid-update.patch allow-access-to-proc-pid-fd-after-setuid-update-2.patch lutimesat-simplify-utime2.patch lutimesat-extend-do_utimes-with-flags.patch lutimesat-actual-syscall-and-wire-up-on-i386.patch lutimesat-compat-syscall-and-wire-up-on-x86_64.patch lutimesat-compat-syscall-and-wire-up-on-x86_64-tidy.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous-tidy.patch removed from -mm tree
The patch titled fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous-tidy has been removed from the -mm tree. Its filename was fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous-tidy.patch This patch was dropped because it was folded into fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous.patch -- Subject: fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous-tidy From: Andrew Morton [EMAIL PROTECTED] It looks like c99-style definition-after-statement, but it isn't, but it could easily become so. Cc: Andreas Gruenbacher [EMAIL PROTECTED] Cc: NeilBrown [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- fs/namespace.c |6 -- fs/proc/base.c |1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff -puN fs/namespace.c~fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous-tidy fs/namespace.c --- a/fs/namespace.c~fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous-tidy +++ a/fs/namespace.c @@ -379,8 +379,9 @@ static int show_vfsmnt(struct seq_file * { 0, NULL } }; struct proc_fs_info *fs_infop; + char *path; - char *path = d_path(mnt-mnt_root, mnt, page, PAGE_SIZE); + path = d_path(mnt-mnt_root, mnt, page, PAGE_SIZE); if (IS_ERR(path) || *path != '/') return err; @@ -416,8 +417,9 @@ static int show_vfsstat(struct seq_file void *page = container_of(m, struct proc_mounts, m)-page; struct vfsmount *mnt = v; int err = 0; + char *path; - char *path = d_path(mnt-mnt_root, mnt, page, PAGE_SIZE); + path = d_path(mnt-mnt_root, mnt, page, PAGE_SIZE); if (IS_ERR(path) || *path != '/') return err; /* error or path unreachable from chroot */ diff -puN fs/proc/base.c~fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous-tidy fs/proc/base.c --- a/fs/proc/base.c~fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous-tidy +++ a/fs/proc/base.c @@ -415,6 +415,7 @@ static int mounts_release(struct inode * struct proc_mounts *p = container_of(file-private_data, struct proc_mounts, m); struct mnt_namespace *ns = p-m.private; + free_page((unsigned long)p-page); put_mnt_ns(ns); return seq_release(inode, file); _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch macintosh-mangle-caps-lock-events-on-adb-keyboards.patch git-ia64.patch git-ieee1394.patch sata_nv-add-back-some-verbosity-into-adma-error_handler.patch git-ubi.patch update-smc91x-driver-with-arm-versatile-board-info.patch drivers-net-ns83820c-add-paramter-to-disable-auto.patch net-uninline-skb_put.patch git-ioat-vs-git-md-accel.patch ioat-warning-fix.patch drivers-scsi-mca_53c9xc-save_flags-cli-removal.patch scsi-cover-up-bugs-fix-up-compiler-warnings-in-megaraid-driver.patch git-ipwireless_cs.patch arch-i386-kernel-alternativec-dont-include-bugsh.patch deprecate-smbfs-in-favour-of-cifs.patch block_write_full_page-handle-enospc.patch filesystem-disk-errors-at-boot-time-caused-by-probe.patch fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous.patch fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous-tidy.patch consolidate-generic_writepages-and-mpage_writepages-tidy.patch sync_sb_inodes-propagate-errors.patch mips-convert-to-use-shared-apm-emulation-fix.patch schedule_on_each_cpu-use-preempt_disable.patch implement-flush_work-sanity.patch implement-flush_work_keventd.patch flush_workqueue-use-preempt_disable-to-hold-off-cpu-hotplug.patch aio-use-flush_work.patch kblockd-use-flush_work.patch relayfs-use-flush_keventd_work.patch tg3-use-flush_keventd_work.patch e1000-use-flush_keventd_work.patch libata-use-flush_work.patch phy-use-flush_work.patch extend-notifier_call_chain-to-count-nr_calls-made.patch extend-notifier_call_chain-to-count-nr_calls-made-fixes-2.patch define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix.patch eliminate-lock_cpu_hotplug-in-kernel-schedc-fix.patch move-page-writeback-acounting-out-of-macros.patch per-backing_dev-dirty-and-writeback-page-accounting.patch ext2-reservations.patch edac-new-opteron-athlon64-memory-controller-driver.patch aio-is-unlikely.patch sched2-sched-domain-sysctl-use-ctl_unnumbered.patch mm-implement-swap-prefetching-use-ctl_unnumbered.patch swap_prefetch-vs-zoned-counters.patch add-include-linux-freezerh-and-move-definitions-from-prefetch.patch rcu-preemptible-rcu.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix-2.patch local_t-powerpc-extension-fix.patch local_t-powerpc-extension-fix-build-fix.patch readahead-kconfig-options-fix.patch readahead-minmax_ra_pages.patch readahead-sysctl-parameters.patch readahead-sysctl-parameters-use-ctl_unnumbered.patch readahead-context-based-method-locking-fix.patch readahead-context-based-method-locking-fix-2.patch
- procfs-fix-race-between-proc_readdir-and-remove_proc_entry-fix.patch removed from -mm tree
The patch titled procfs-fix-race-between-proc_readdir-and-remove_proc_entry-fix has been removed from the -mm tree. Its filename was procfs-fix-race-between-proc_readdir-and-remove_proc_entry-fix.patch This patch was dropped because it was folded into procfs-fix-race-between-proc_readdir-and-remove_proc_entry.patch -- Subject: procfs-fix-race-between-proc_readdir-and-remove_proc_entry-fix From: Andrew Morton [EMAIL PROTECTED] nfi what went wrong there. Cc: Darrick J. Wong [EMAIL PROTECTED] Cc: Eric W. Biederman [EMAIL PROTECTED] Cc: Oleg Nesterov [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- fs/proc/inode.c |9 + include/linux/proc_fs.h |9 + 2 files changed, 10 insertions(+), 8 deletions(-) diff -puN fs/proc/inode.c~procfs-fix-race-between-proc_readdir-and-remove_proc_entry-fix fs/proc/inode.c --- a/fs/proc/inode.c~procfs-fix-race-between-proc_readdir-and-remove_proc_entry-fix +++ a/fs/proc/inode.c @@ -21,17 +21,10 @@ #include internal.h -static inline struct proc_dir_entry * de_get(struct proc_dir_entry *de) -{ - if (de) - atomic_inc(de-count); - return de; -} - /* * Decrements the use count and checks for deferred deletion. */ -static void de_put(struct proc_dir_entry *de) +void de_put(struct proc_dir_entry *de) { if (de) { lock_kernel(); diff -puN include/linux/proc_fs.h~procfs-fix-race-between-proc_readdir-and-remove_proc_entry-fix include/linux/proc_fs.h --- a/include/linux/proc_fs.h~procfs-fix-race-between-proc_readdir-and-remove_proc_entry-fix +++ a/include/linux/proc_fs.h @@ -274,4 +274,13 @@ struct proc_maps_private { #endif }; +static inline struct proc_dir_entry * de_get(struct proc_dir_entry *de) +{ + if (de) + atomic_inc(de-count); + return de; +} + +void de_put(struct proc_dir_entry *de); + #endif /* _LINUX_PROC_FS_H */ _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch macintosh-mangle-caps-lock-events-on-adb-keyboards.patch git-ia64.patch git-ieee1394.patch sata_nv-add-back-some-verbosity-into-adma-error_handler.patch git-ubi.patch update-smc91x-driver-with-arm-versatile-board-info.patch drivers-net-ns83820c-add-paramter-to-disable-auto.patch net-uninline-skb_put.patch git-ioat-vs-git-md-accel.patch ioat-warning-fix.patch drivers-scsi-mca_53c9xc-save_flags-cli-removal.patch scsi-cover-up-bugs-fix-up-compiler-warnings-in-megaraid-driver.patch git-ipwireless_cs.patch arch-i386-kernel-alternativec-dont-include-bugsh.patch deprecate-smbfs-in-favour-of-cifs.patch procfs-fix-race-between-proc_readdir-and-remove_proc_entry.patch procfs-fix-race-between-proc_readdir-and-remove_proc_entry-fix.patch factor-outstanding-i-o-error-handling-tidy.patch block_write_full_page-handle-enospc.patch filesystem-disk-errors-at-boot-time-caused-by-probe.patch allow-access-to-proc-pid-fd-after-setuid-fix.patch fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous-tidy.patch consolidate-generic_writepages-and-mpage_writepages-tidy.patch sync_sb_inodes-propagate-errors.patch mips-convert-to-use-shared-apm-emulation-fix.patch schedule_on_each_cpu-use-preempt_disable.patch implement-flush_work-sanity.patch implement-flush_work_keventd.patch flush_workqueue-use-preempt_disable-to-hold-off-cpu-hotplug.patch aio-use-flush_work.patch kblockd-use-flush_work.patch relayfs-use-flush_keventd_work.patch tg3-use-flush_keventd_work.patch e1000-use-flush_keventd_work.patch libata-use-flush_work.patch phy-use-flush_work.patch extend-notifier_call_chain-to-count-nr_calls-made.patch extend-notifier_call_chain-to-count-nr_calls-made-fixes-2.patch define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix.patch eliminate-lock_cpu_hotplug-in-kernel-schedc-fix.patch move-page-writeback-acounting-out-of-macros.patch per-backing_dev-dirty-and-writeback-page-accounting.patch ext2-reservations.patch edac-new-opteron-athlon64-memory-controller-driver.patch aio-is-unlikely.patch sched2-sched-domain-sysctl-use-ctl_unnumbered.patch mm-implement-swap-prefetching-use-ctl_unnumbered.patch swap_prefetch-vs-zoned-counters.patch add-include-linux-freezerh-and-move-definitions-from-prefetch.patch rcu-preemptible-rcu.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix-2.patch local_t-powerpc-extension-fix.patch local_t-powerpc-extension-fix-build-fix.patch readahead-kconfig-options-fix.patch readahead-minmax_ra_pages.patch readahead-sysctl-parameters.patch readahead-sysctl-parameters-use-ctl_unnumbered.patch readahead-context-based-method-locking-fix.patch readahead-context-based-method-locking-fix-2.patch readahead-call-scheme-ifdef-fix.patch readahead-call-scheme-build-fix.patch readahead-nfsd-case-fix.patch make-copy_from_user_inatomic-not-zero-the-tail-on-i386-vs-reiser4.patch
- filesystem-disk-errors-at-boot-time-caused-by-probe-fix.patch removed from -mm tree
The patch titled make fs/partitions/msdos.c:check_sane_values() static has been removed from the -mm tree. Its filename was filesystem-disk-errors-at-boot-time-caused-by-probe-fix.patch This patch was dropped because it was folded into filesystem-disk-errors-at-boot-time-caused-by-probe.patch -- Subject: make fs/partitions/msdos.c:check_sane_values() static From: Adrian Bunk [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- fs/partitions/msdos.c |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN fs/partitions/msdos.c~filesystem-disk-errors-at-boot-time-caused-by-probe-fix fs/partitions/msdos.c --- a/fs/partitions/msdos.c~filesystem-disk-errors-at-boot-time-caused-by-probe-fix +++ a/fs/partitions/msdos.c @@ -431,7 +431,7 @@ static struct { * * Copyright 31 January 2007, TJ [EMAIL PROTECTED] */ -int check_sane_values(struct partition *p, struct block_device *bdev) +static int check_sane_values(struct partition *p, struct block_device *bdev) { unsigned char *data; struct partition *ext; _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch git-drm.patch git-dvb.patch git-gfs2-nmw.patch git-ieee1394.patch kconfig-abort-configuration-with-recursive-dependencies.patch remove-fs-jffs2-ioctlc.patch git-ubi.patch drivers-net-vioc-possible-cleanups.patch net-uninline-skb_put-fix.patch drivers-scsi-small-cleanups.patch drivers-scsi-advansysc-cleanups.patch megaraid-fix-warnings-when-config_proc_fs=n.patch drivers-scsi-dpt_i2oc-remove-dead-code.patch drivers-scsi-aic7xxx-make-functions-static.patch drivers-scsi-wd33c93c-cleanups.patch drivers-scsi-qla4xxx-possible-cleanups.patch make-seagate_st0x_detect-static.patch drivers-scsi-aacraid-cleanups.patch remove-the-broken-scsi_acornscsi_3-driver.patch git-unionfs.patch git-wireless.patch git-ipwireless_cs.patch arch-i386-kernel-alternativec-should-include-asm-bugsh.patch make-struct-vmi_ops-static.patch i386-asm-offsetsc-workaround-for-a-wmissing-prototypes-warning.patch lguest-kconfig-and-headers-fix.patch proper-prototype-for-hugetlb_get_unmapped_area.patch mm-slabc-proper-prototypes.patch filesystem-disk-errors-at-boot-time-caused-by-probe.patch filesystem-disk-errors-at-boot-time-caused-by-probe-fix.patch kill-net-rxrpc-rxrpc_symsc.patch drivers-char-hvc_consolec-cleanups.patch init-do_mountsc-proper-prepare_namespace-prototype.patch make-ext2_get_blocks-static.patch drivers-edac-make-code-static.patch linux-kernel-markers-kconfig-menus-fix.patch linux-kernel-markers-architecture-independant-code-license-fix.patch linux-kernel-markers-i386-optimization-export-fix.patch readahead-events-accounting-make-readahead_debug_level-static.patch reiser4-export-remove_from_page_cache-fix.patch fs-reiser4-possible-cleanups.patch reiser4-possible-cleanups-2.patch fs-reiser4-possible-cleanups-2.patch fs-reiser4-more-possible-cleanups.patch slim-main-patch-security-slim-slm_mainc-make-2-functions-static.patch slim-debug-output-slm_set_taskperm-remove-horrible-error-handling-code.patch i386-enable-4k-stacks-by-default.patch mutex-subsystem-synchro-test-module.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix.patch removed from -mm tree
The patch titled merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix has been removed from the -mm tree. Its filename was merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix.patch This patch was dropped because it was folded into merge-sys_clone-sys_unshare-nsproxy-and-namespace.patch -- Subject: merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix From: Andrew Morton [EMAIL PROTECTED] There's just less and less excuse for this sort of thing. Cc: Eric W. Biederman [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Cc: Badari Pulavarty [EMAIL PROTECTED] Cc: Cedric Le Goater [EMAIL PROTECTED] Cc: Serge Hallyn [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- include/linux/utsname.h |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff -puN include/linux/utsname.h~merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix include/linux/utsname.h --- a/include/linux/utsname.h~merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix +++ a/include/linux/utsname.h @@ -57,7 +57,8 @@ static inline void put_uts_ns(struct uts kref_put(ns-kref, free_uts_ns); } #else -static inline int copy_utsname(int flags, struct uts_namespace *ns) +static inline struct uts_namespace * +copy_utsname(int flags, struct uts_namespace *ns) { return ns; } _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch slab-introduce-krealloc-fix.patch make-aout-executables-work-again-fix.patch sony-laptop-fix-uninitialised-variable.patch git-alsa-oops-fix.patch git-drm.patch git-dvb.patch ia64-kexec-use-efi_loader_data-for-elf-core-header-tidy.patch git-input.patch setstream-param-for-psmouse-tweak.patch git-md-accel-fixup.patch nommu-present-backing-device-capabilities-for-mtd-fix.patch git-ubi.patch git-netdev-all.patch git-netdev-all-ipw2200-fix.patch revert-drivers-net-tulip-dmfe-support-basic-carrier-detection.patch dmfe-add-support-for-suspend-resume-fix.patch sis900-warning-fixes.patch div64_64-common-code-fix.patch bonding-replace-system-timer-with-work-queue-tidy.patch git-parisc.patch rm9000-serial-driver-tidy.patch git-pciseg.patch git-unionfs.patch usbatm-create-sysfs-link-device-from-atm-class-device-tidy.patch git-wireless-fixup.patch revert-x86_64-mm-change-sysenter_setup-to-__cpuinit-improve-__init-__initdata.patch after-before-x86_64-mm-mmconfig-share.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix-2.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch driver_bfin_serial_core-update.patch reduce-size-of-task_struct-on-64-bit-machines.patch mm-shrink-parent-dentries-when-shrinking-slab.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2.patch call-cpu_chain-with-cpu_down_failed-if-cpu_down_prepare-failed-vs-reduce-size-of-task_struct-on-64-bit-machines.patch speedup-divides-by-cpu_power-in-scheduler-up-fix.patch lutimesat-compat-syscall-and-wire-up-on-x86_64-tidy.patch utrace-prep.patch utrace-prep-2.patch revert-utrace-prep-2.patch utrace-vs-reduce-size-of-task_struct-on-64-bit-machines.patch local_t-mips-extension-shrink-duplicated-mips-32-64-bits-functions-from-localh-fix.patch linux-kernel-markers-kconfig-menus-fix-4.patch fbdev-hecuba-framebuffer-driver-fix.patch mm-only-free-swap-space-of-reactivated-pages-debug.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- consolidate-generic_writepages-and-mpage_writepages-tidy.patch removed from -mm tree
The patch titled consolidate-generic_writepages-and-mpage_writepages-tidy has been removed from the -mm tree. Its filename was consolidate-generic_writepages-and-mpage_writepages-tidy.patch This patch was dropped because it was folded into consolidate-generic_writepages-and-mpage_writepages.patch -- Subject: consolidate-generic_writepages-and-mpage_writepages-tidy From: Andrew Morton [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- include/linux/writeback.h |3 ++- mm/page-writeback.c |1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff -puN include/linux/writeback.h~consolidate-generic_writepages-and-mpage_writepages-tidy include/linux/writeback.h --- a/include/linux/writeback.h~consolidate-generic_writepages-and-mpage_writepages-tidy +++ a/include/linux/writeback.h @@ -109,7 +109,8 @@ balance_dirty_pages_ratelimited(struct a balance_dirty_pages_ratelimited_nr(mapping, 1); } -typedef int (*writepage_t)(struct page *, struct writeback_control *, void *); +typedef int (*writepage_t)(struct page *page, struct writeback_control *wbc, + void *data); int pdflush_operation(void (*fn)(unsigned long), unsigned long arg0); int generic_writepages(struct address_space *mapping, diff -puN mm/page-writeback.c~consolidate-generic_writepages-and-mpage_writepages-tidy mm/page-writeback.c --- a/mm/page-writeback.c~consolidate-generic_writepages-and-mpage_writepages-tidy +++ a/mm/page-writeback.c @@ -699,7 +699,6 @@ retry: mapping-writeback_index = index; return ret; } - EXPORT_SYMBOL(write_cache_pages); /* _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch macintosh-mangle-caps-lock-events-on-adb-keyboards.patch git-ia64.patch git-ieee1394.patch sata_nv-add-back-some-verbosity-into-adma-error_handler.patch git-ubi.patch update-smc91x-driver-with-arm-versatile-board-info.patch drivers-net-ns83820c-add-paramter-to-disable-auto.patch net-uninline-skb_put.patch git-ioat-vs-git-md-accel.patch ioat-warning-fix.patch drivers-scsi-mca_53c9xc-save_flags-cli-removal.patch scsi-cover-up-bugs-fix-up-compiler-warnings-in-megaraid-driver.patch git-ipwireless_cs.patch arch-i386-kernel-alternativec-dont-include-bugsh.patch deprecate-smbfs-in-favour-of-cifs.patch block_write_full_page-handle-enospc.patch filesystem-disk-errors-at-boot-time-caused-by-probe.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace.patch consolidate-generic_writepages-and-mpage_writepages.patch consolidate-generic_writepages-and-mpage_writepages-tidy.patch sync_sb_inodes-propagate-errors.patch mips-convert-to-use-shared-apm-emulation-fix.patch schedule_on_each_cpu-use-preempt_disable.patch implement-flush_work-sanity.patch implement-flush_work_keventd.patch flush_workqueue-use-preempt_disable-to-hold-off-cpu-hotplug.patch aio-use-flush_work.patch kblockd-use-flush_work.patch relayfs-use-flush_keventd_work.patch tg3-use-flush_keventd_work.patch e1000-use-flush_keventd_work.patch libata-use-flush_work.patch phy-use-flush_work.patch extend-notifier_call_chain-to-count-nr_calls-made.patch extend-notifier_call_chain-to-count-nr_calls-made-fixes-2.patch define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix.patch eliminate-lock_cpu_hotplug-in-kernel-schedc-fix.patch move-page-writeback-acounting-out-of-macros.patch per-backing_dev-dirty-and-writeback-page-accounting.patch ext2-reservations.patch edac-new-opteron-athlon64-memory-controller-driver.patch aio-is-unlikely.patch sched2-sched-domain-sysctl-use-ctl_unnumbered.patch mm-implement-swap-prefetching-use-ctl_unnumbered.patch swap_prefetch-vs-zoned-counters.patch add-include-linux-freezerh-and-move-definitions-from-prefetch.patch rcu-preemptible-rcu.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix-2.patch local_t-powerpc-extension-fix.patch local_t-powerpc-extension-fix-build-fix.patch readahead-kconfig-options-fix.patch readahead-minmax_ra_pages.patch readahead-sysctl-parameters.patch readahead-sysctl-parameters-use-ctl_unnumbered.patch readahead-context-based-method-locking-fix.patch readahead-context-based-method-locking-fix-2.patch readahead-call-scheme-ifdef-fix.patch readahead-call-scheme-build-fix.patch readahead-nfsd-case-fix.patch make-copy_from_user_inatomic-not-zero-the-tail-on-i386-vs-reiser4.patch resier4-add-include-linux-freezerh-and-move-definitions-from.patch make-kmem_cache_destroy-return-void-reiser4.patch reiser4-hardirq-include-fix.patch reiser4-run-truncate_inode_pages-in-reiser4_delete_inode.patch reiser4-get_sb_dev-fix.patch reiser4-vs-zoned-allocator.patch reiser4-temp-fix.patch reiser4-kmem_cache_t-removal.patch reiser4-test_clear_page_dirty.patch statistics-infrastructure-fix-buffer-overflow-in-histogram-with-linear-tidy.patch slim-main-include-fix.patch
- dont-run-userspace-until-initcalls-have-completed.patch removed from -mm tree
The patch titled dont-run-userspace-until-initcalls-have-completed has been removed from the -mm tree. Its filename was dont-run-userspace-until-initcalls-have-completed.patch This patch was dropped because it is obsolete -- Subject: dont-run-userspace-until-initcalls-have-completed From: Andrew Morton [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- include/asm-generic/vmlinux.lds.h |6 +- include/linux/init.h |5 + init/initramfs.c |3 ++- init/main.c |7 --- 4 files changed, 12 insertions(+), 9 deletions(-) diff -puN init/main.c~dont-run-userspace-until-initcalls-have-completed init/main.c --- a/init/main.c~dont-run-userspace-until-initcalls-have-completed +++ a/init/main.c @@ -94,7 +94,6 @@ extern void pidmap_init(void); extern void prio_tree_init(void); extern void radix_tree_init(void); extern void free_initmem(void); -extern void populate_rootfs(void); extern void driver_init(void); extern void prepare_namespace(void); #ifdef CONFIG_ACPI @@ -739,12 +738,6 @@ static int init(void * unused) cpuset_init_smp(); - /* -* Do this before initcalls, because some drivers want to access -* firmware files. -*/ - populate_rootfs(); - do_basic_setup(); /* diff -puN include/linux/init.h~dont-run-userspace-until-initcalls-have-completed include/linux/init.h --- a/include/linux/init.h~dont-run-userspace-until-initcalls-have-completed +++ a/include/linux/init.h @@ -115,6 +115,11 @@ extern void setup_arch(char **); #define device_initcall_sync(fn) __define_initcall(6s,fn,6s) #define late_initcall(fn) __define_initcall(7,fn,7) #define late_initcall_sync(fn) __define_initcall(7s,fn,7s) +#define populate_rootfs_initcall(fn) __define_initcall(8,fn,8) +#define populate_rootfs_initcall_sync(fn) __define_initcall(8s,fn,8s) +#define rootfs_neeeded_initcall(fn)__define_initcall(9,fn,9) +#define rootfs_neeeded_initcall_sync(fn) __define_initcall(9s,fn,9s) + #define __initcall(fn) device_initcall(fn) diff -puN include/asm-generic/vmlinux.lds.h~dont-run-userspace-until-initcalls-have-completed include/asm-generic/vmlinux.lds.h --- a/include/asm-generic/vmlinux.lds.h~dont-run-userspace-until-initcalls-have-completed +++ a/include/asm-generic/vmlinux.lds.h @@ -245,5 +245,9 @@ *(.initcall6.init) \ *(.initcall6s.init) \ *(.initcall7.init) \ - *(.initcall7s.init) + *(.initcall7s.init) \ + *(.initcall8.init) \ + *(.initcall8s.init) \ + *(.initcall9.init) \ + *(.initcall9s.init) diff -puN init/initramfs.c~dont-run-userspace-until-initcalls-have-completed init/initramfs.c --- a/init/initramfs.c~dont-run-userspace-until-initcalls-have-completed +++ a/init/initramfs.c @@ -526,7 +526,7 @@ static void __init free_initrd(void) #endif -void __init populate_rootfs(void) +static int __init populate_rootfs(void) { char *err = unpack_to_rootfs(__initramfs_start, __initramfs_end - __initramfs_start, 0); @@ -566,3 +566,4 @@ void __init populate_rootfs(void) } #endif } +populate_rootfs_initcall(populate_rootfs); _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch macintosh-mangle-caps-lock-events-on-adb-keyboards.patch git-ia64.patch git-ieee1394.patch sata_nv-add-back-some-verbosity-into-adma-error_handler.patch git-ubi.patch update-smc91x-driver-with-arm-versatile-board-info.patch drivers-net-ns83820c-add-paramter-to-disable-auto.patch net-uninline-skb_put.patch git-ioat-vs-git-md-accel.patch ioat-warning-fix.patch drivers-scsi-mca_53c9xc-save_flags-cli-removal.patch scsi-cover-up-bugs-fix-up-compiler-warnings-in-megaraid-driver.patch git-ipwireless_cs.patch arch-i386-kernel-alternativec-dont-include-bugsh.patch deprecate-smbfs-in-favour-of-cifs.patch block_write_full_page-handle-enospc.patch filesystem-disk-errors-at-boot-time-caused-by-probe.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace.patch sync_sb_inodes-propagate-errors.patch mips-convert-to-use-shared-apm-emulation-fix.patch schedule_on_each_cpu-use-preempt_disable.patch implement-flush_work-sanity.patch implement-flush_work_keventd.patch flush_workqueue-use-preempt_disable-to-hold-off-cpu-hotplug.patch aio-use-flush_work.patch kblockd-use-flush_work.patch relayfs-use-flush_keventd_work.patch tg3-use-flush_keventd_work.patch e1000-use-flush_keventd_work.patch libata-use-flush_work.patch phy-use-flush_work.patch
- tick-management-dyntick--highres-functionality-fix-2.patch removed from -mm tree
The patch titled dynticks: Fix one off jiffy update has been removed from the -mm tree. Its filename was tick-management-dyntick--highres-functionality-fix-2.patch This patch was dropped because it is obsolete -- Subject: dynticks: Fix one off jiffy update From: Thomas Gleixner [EMAIL PROTECTED] The rework of the jiffy update code introduced a one off error, which led to a one off accounting error for last_jiffy_update. This made jiffies lag behind. Noticed by Karsten Wiese (cpufreq_ondemand weirdness). Signed-off-by: Thomas Gleixner [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- kernel/time/tick-sched.c |6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff -puN kernel/time/tick-sched.c~tick-management-dyntick--highres-functionality-fix-2 kernel/time/tick-sched.c --- a/kernel/time/tick-sched.c~tick-management-dyntick--highres-functionality-fix-2 +++ a/kernel/time/tick-sched.c @@ -38,7 +38,7 @@ static ktime_t last_jiffies_update; */ static void tick_do_update_jiffies64(ktime_t now) { - unsigned long ticks = 1; + unsigned long ticks = 0; ktime_t delta; /* Reevalute with xtime_lock held */ @@ -55,12 +55,12 @@ static void tick_do_update_jiffies64(kti if (unlikely(delta.tv64 = tick_period.tv64)) { s64 incr = ktime_to_ns(tick_period); - ticks += ktime_divns(delta, incr); + ticks = ktime_divns(delta, incr); last_jiffies_update = ktime_add_ns(last_jiffies_update, incr * ticks); } - do_timer(ticks); + do_timer(++ticks); } write_sequnlock(xtime_lock); } _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch bugfix-dont-use-the-tsc-in-sched_clock-if-unstable.patch cleanup-unify-tsc_unstable-and-tsc_disable.patch possible-bugfix-make-dmi_mark_tsc_unstable-call-mark_tsc_unstable.patch log-reason-why-tsc-was-marked-unstable.patch optimize-timespec_trunc.patch sched-fix-idle-load-balancing-in-softirqd-context.patch sched-dynticks-idle-load-balancing-v3.patch scheduled-removal-of-sa_xxx-interrupt-flags-fixups-3.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- modpost-remove-fixed-size-buffer.patch removed from -mm tree
The patch titled modpost: remove fixed size buffer has been removed from the -mm tree. Its filename was modpost-remove-fixed-size-buffer.patch This patch was dropped because it is obsolete -- Subject: modpost: remove fixed size buffer From: Andrew Morton [EMAIL PROTECTED] modpost has a couple of fixed-sized buffers. As reported in http://bugzilla.kernel.org/show_bug.cgi?id=7878, it broke. Fix by dynamically allocating these things. Unpleasingly: we really want vasprintf(), but that's gnu-only. Cc: Roman Zippel [EMAIL PROTECTED] Cc: Samuel Ortiz [EMAIL PROTECTED] Cc: Rusty Russell [EMAIL PROTECTED] Cc: John Voltz [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- scripts/mod/modpost.c | 28 1 files changed, 20 insertions(+), 8 deletions(-) diff -puN scripts/mod/modpost.c~modpost-remove-fixed-size-buffer scripts/mod/modpost.c --- a/scripts/mod/modpost.c~modpost-remove-fixed-size-buffer +++ a/scripts/mod/modpost.c @@ -1110,8 +1110,6 @@ static void read_symbols(char *modname) mod-unres = alloc_symbol(struct_module, 0, mod-unres); } -#define SZ 500 - /* We first write the generated file into memory using the * following helper, then compare to the file on disk and * only update the later if anything changed */ @@ -1119,20 +1117,28 @@ static void read_symbols(char *modname) void __attribute__((format(printf, 2, 3))) buf_printf(struct buffer *buf, const char *fmt, ...) { - char tmp[SZ]; - int len; + char *tmp; + size_t len; va_list ap; va_start(ap, fmt); - len = vsnprintf(tmp, SZ, fmt, ap); + len = snprintf(NULL, 0, fmt, ap); + va_end(ap); + tmp = malloc(len + 1); + if (tmp == NULL) + fatal(modpost: out of memory in %s\n, __FUNCTION__); + + va_start(ap, fmt); + len = snprintf(tmp, len, fmt, ap); buf_write(buf, tmp, len); va_end(ap); + free(tmp); } void buf_write(struct buffer *buf, const char *s, int len) { if (buf-size - buf-pos len) { - buf-size += len + SZ; + buf-size += len + 500; buf-p = realloc(buf-p, buf-size); } strncpy(buf-p + buf-pos, s, len); @@ -1442,7 +1448,6 @@ int main(int argc, char **argv) { struct module *mod; struct buffer buf = { }; - char fname[SZ]; char *kernel_read = NULL, *module_read = NULL; char *dump_write = NULL; int opt; @@ -1492,6 +1497,9 @@ int main(int argc, char **argv) err = 0; for (mod = modules; mod; mod = mod-next) { + char *fname; + static const char fmt[] = %s.mod.c; + if (mod-skip) continue; @@ -1503,8 +1511,12 @@ int main(int argc, char **argv) add_moddevtable(buf, mod); add_srcversion(buf, mod); - sprintf(fname, %s.mod.c, mod-name); + fname = malloc(strlen(mod-name) + sizeof(fmt)); + if (fname == NULL) + fatal(modpost: out of memory in %s\n, __FUNCTION__); + sprintf(fname, fmt, mod-name); write_if_changed(buf, fname); + free(fname); } if (dump_write) _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch macintosh-mangle-caps-lock-events-on-adb-keyboards.patch git-ia64.patch git-ieee1394.patch sata_nv-add-back-some-verbosity-into-adma-error_handler.patch git-ubi.patch update-smc91x-driver-with-arm-versatile-board-info.patch drivers-net-ns83820c-add-paramter-to-disable-auto.patch net-uninline-skb_put.patch git-ioat-vs-git-md-accel.patch ioat-warning-fix.patch drivers-scsi-mca_53c9xc-save_flags-cli-removal.patch scsi-cover-up-bugs-fix-up-compiler-warnings-in-megaraid-driver.patch git-ipwireless_cs.patch arch-i386-kernel-alternativec-dont-include-bugsh.patch deprecate-smbfs-in-favour-of-cifs.patch block_write_full_page-handle-enospc.patch filesystem-disk-errors-at-boot-time-caused-by-probe.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace.patch sync_sb_inodes-propagate-errors.patch mips-convert-to-use-shared-apm-emulation-fix.patch schedule_on_each_cpu-use-preempt_disable.patch implement-flush_work-sanity.patch implement-flush_work_keventd.patch flush_workqueue-use-preempt_disable-to-hold-off-cpu-hotplug.patch aio-use-flush_work.patch kblockd-use-flush_work.patch relayfs-use-flush_keventd_work.patch tg3-use-flush_keventd_work.patch e1000-use-flush_keventd_work.patch libata-use-flush_work.patch phy-use-flush_work.patch extend-notifier_call_chain-to-count-nr_calls-made.patch extend-notifier_call_chain-to-count-nr_calls-made-fixes-2.patch define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix.patch eliminate-lock_cpu_hotplug-in-kernel-schedc-fix.patch
- tick-management-dyntick--highres-functionality-fix.patch removed from -mm tree
The patch titled tick-management touch softlockup watchdog on resume has been removed from the -mm tree. Its filename was tick-management-dyntick--highres-functionality-fix.patch This patch was dropped because it is obsolete -- Subject: tick-management touch softlockup watchdog on resume From: Thomas Gleixner [EMAIL PROTECTED] The softlockup watchdog needs to be touched after resume to avoid a false positive. Signed-off-by: Thomas Gleixner [EMAIL PROTECTED] Acked-by: Jiri Kosina [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- kernel/time/tick-common.c |1 + 1 files changed, 1 insertion(+) diff -puN kernel/time/tick-common.c~tick-management-dyntick--highres-functionality-fix kernel/time/tick-common.c --- a/kernel/time/tick-common.c~tick-management-dyntick--highres-functionality-fix +++ a/kernel/time/tick-common.c @@ -312,6 +312,7 @@ static int tick_notify(struct notifier_b case CLOCK_EVT_NOTIFY_RESUME: tick_resume_jiffy_update(); + touch_softlockup_watchdog(); break; case CLOCK_EVT_NOTIFY_CPU_DEAD: _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch bugfix-dont-use-the-tsc-in-sched_clock-if-unstable.patch cleanup-unify-tsc_unstable-and-tsc_disable.patch possible-bugfix-make-dmi_mark_tsc_unstable-call-mark_tsc_unstable.patch log-reason-why-tsc-was-marked-unstable.patch optimize-timespec_trunc.patch sched-fix-idle-load-balancing-in-softirqd-context.patch sched-dynticks-idle-load-balancing-v3.patch scheduled-removal-of-sa_xxx-interrupt-flags-fixups-3.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- unbreak-msi-on-ati-devices-tidy.patch removed from -mm tree
The patch titled unbreak-msi-on-ati-devices-tidy has been removed from the -mm tree. Its filename was unbreak-msi-on-ati-devices-tidy.patch This patch was dropped because it is obsolete -- Subject: unbreak-msi-on-ati-devices-tidy From: Andrew Morton [EMAIL PROTECTED] Cc: Petr Vandrovec [EMAIL PROTECTED] Cc: Eric W. Biederman [EMAIL PROTECTED] Cc: Greg KH [EMAIL PROTECTED] Cc: Takashi Iwai [EMAIL PROTECTED] Cc: Jaroslav Kysela [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/usb/core/hcd-pci.c |4 ++-- sound/pci/atiixp.c | 22 +- sound/pci/atiixp_modem.c | 22 +- 3 files changed, 20 insertions(+), 28 deletions(-) diff -puN drivers/usb/core/hcd-pci.c~unbreak-msi-on-ati-devices-tidy drivers/usb/core/hcd-pci.c --- a/drivers/usb/core/hcd-pci.c~unbreak-msi-on-ati-devices-tidy +++ a/drivers/usb/core/hcd-pci.c @@ -140,7 +140,7 @@ int usb_hcd_pci_probe (struct pci_dev *d release_region (hcd-rsrc_start, hcd-rsrc_len); err2: usb_put_hcd (hcd); - pci_disable_msi (dev); + pci_disable_msi(dev); err1: pci_disable_device (dev); dev_err (dev-dev, init %s fail, %d\n, pci_name(dev), retval); @@ -394,7 +394,7 @@ int usb_hcd_pci_resume (struct pci_dev * can't re-enable after resume, %d!\n, retval); return retval; } - pci_enable_msi (dev); + pci_enable_msi(dev); pci_set_master (dev); pci_restore_state (dev); diff -puN sound/pci/atiixp.c~unbreak-msi-on-ati-devices-tidy sound/pci/atiixp.c --- a/sound/pci/atiixp.c~unbreak-msi-on-ati-devices-tidy +++ a/sound/pci/atiixp.c @@ -1475,11 +1475,10 @@ static int snd_atiixp_suspend(struct pci snd_atiixp_aclink_down(chip); snd_atiixp_chip_stop(chip); - if (chip-have_msi) { + if (chip-have_msi) pci_disable_msi(pci); - } else { + else pci_intx(pci, 0); - } pci_disable_device(pci); pci_save_state(pci); pci_set_power_state(pci, pci_choose_state(pci, state)); @@ -1501,11 +1500,10 @@ static int snd_atiixp_resume(struct pci_ return -EIO; } pci_set_master(pci); - if (chip-have_msi) { + if (chip-have_msi) pci_enable_msi(pci); - } else { + else pci_intx(pci, 1); - } snd_atiixp_aclink_reset(chip); snd_atiixp_chip_start(chip); @@ -1575,11 +1573,10 @@ static int snd_atiixp_free(struct atiixp if (chip-remap_addr) iounmap(chip-remap_addr); pci_release_regions(chip-pci); - if (chip-have_msi) { + if (chip-have_msi) pci_disable_msi(chip-pci); - } else { + else pci_intx(chip-pci, 0); - } pci_disable_device(chip-pci); kfree(chip); return 0; @@ -1631,9 +1628,9 @@ static int __devinit snd_atiixp_create(s return -EIO; } - if (msi pci_enable_msi(pci) == 0) { + if (msi pci_enable_msi(pci) == 0) chip-have_msi = 1; - } + if (request_irq(pci-irq, snd_atiixp_interrupt, IRQF_SHARED, card-shortname, chip)) { snd_printk(KERN_ERR unable to grab IRQ %d\n, pci-irq); @@ -1642,9 +1639,8 @@ static int __devinit snd_atiixp_create(s } chip-irq = pci-irq; pci_set_master(pci); - if (!chip-have_msi) { + if (!chip-have_msi) pci_intx(pci, 1); - } synchronize_irq(chip-irq); if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, ops)) 0) { diff -puN sound/pci/atiixp_modem.c~unbreak-msi-on-ati-devices-tidy sound/pci/atiixp_modem.c --- a/sound/pci/atiixp_modem.c~unbreak-msi-on-ati-devices-tidy +++ a/sound/pci/atiixp_modem.c @@ -1132,11 +1132,10 @@ static int snd_atiixp_suspend(struct pci snd_atiixp_aclink_down(chip); snd_atiixp_chip_stop(chip); - if (chip-have_msi) { + if (chip-have_msi) pci_disable_msi(pci); - } else { + else pci_intx(pci, 0); - } pci_disable_device(pci); pci_save_state(pci); pci_set_power_state(pci, pci_choose_state(pci, state)); @@ -1158,11 +1157,10 @@ static int snd_atiixp_resume(struct pci_ return -EIO; } pci_set_master(pci); - if (chip-have_msi) { + if (chip-have_msi) pci_enable_msi(pci); - } else { + else pci_intx(pci, 1); - } snd_atiixp_aclink_reset(chip); snd_atiixp_chip_start(chip); @@ -1218,11 +1216,10 @@ static int snd_atiixp_free(struct atiixp free_irq(chip-irq, chip); if (chip-remap_addr) iounmap(chip-remap_addr); - if (chip-have_msi) { + if
- bridge-avoid-using-noautorel-workqueues.patch removed from -mm tree
The patch titled bridge: avoid using noautorel workqueues has been removed from the -mm tree. Its filename was bridge-avoid-using-noautorel-workqueues.patch This patch was dropped because it is obsolete -- Subject: bridge: avoid using noautorel workqueues From: Andrew Morton [EMAIL PROTECTED] ? Cc: David Howells [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- net/bridge/br_if.c | 14 ++ net/bridge/br_private.h |1 + 2 files changed, 7 insertions(+), 8 deletions(-) diff -puN net/bridge/br_private.h~bridge-avoid-using-noautorel-workqueues net/bridge/br_private.h --- a/net/bridge/br_private.h~bridge-avoid-using-noautorel-workqueues +++ a/net/bridge/br_private.h @@ -83,6 +83,7 @@ struct net_bridge_port struct timer_list message_age_timer; struct kobject kobj; struct delayed_work carrier_check; + struct net_device *carrier_check_dev; struct rcu_head rcu; }; diff -puN net/bridge/br_if.c~bridge-avoid-using-noautorel-workqueues net/bridge/br_if.c --- a/net/bridge/br_if.c~bridge-avoid-using-noautorel-workqueues +++ a/net/bridge/br_if.c @@ -83,14 +83,11 @@ static void port_carrier_check(struct wo struct net_device *dev; struct net_bridge *br; - dev = container_of(work, struct net_bridge_port, - carrier_check.work)-dev; - work_release(work); - + p = container_of(work, struct net_bridge_port, carrier_check.work); + dev = p-carrier_check_dev; rtnl_lock(); - p = dev-br_port; - if (!p) - goto done; + if (!dev-br_port) + goto done; /* Can this happen? */ br = p-br; if (netif_carrier_ok(dev)) @@ -280,7 +277,8 @@ static struct net_bridge_port *new_nbp(s p-port_no = index; br_init_port(p); p-state = BR_STATE_DISABLED; - INIT_DELAYED_WORK_NAR(p-carrier_check, port_carrier_check); + p-carrier_check_dev = dev; + INIT_DELAYED_WORK(p-carrier_check, port_carrier_check); br_stp_port_timer_init(p); kobject_init(p-kobj); _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch macintosh-mangle-caps-lock-events-on-adb-keyboards.patch git-ia64.patch git-ieee1394.patch sata_nv-add-back-some-verbosity-into-adma-error_handler.patch git-ubi.patch update-smc91x-driver-with-arm-versatile-board-info.patch drivers-net-ns83820c-add-paramter-to-disable-auto.patch net-uninline-skb_put.patch git-ioat-vs-git-md-accel.patch ioat-warning-fix.patch drivers-scsi-mca_53c9xc-save_flags-cli-removal.patch scsi-cover-up-bugs-fix-up-compiler-warnings-in-megaraid-driver.patch git-ipwireless_cs.patch arch-i386-kernel-alternativec-dont-include-bugsh.patch deprecate-smbfs-in-favour-of-cifs.patch block_write_full_page-handle-enospc.patch filesystem-disk-errors-at-boot-time-caused-by-probe.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace.patch sync_sb_inodes-propagate-errors.patch mips-convert-to-use-shared-apm-emulation-fix.patch schedule_on_each_cpu-use-preempt_disable.patch implement-flush_work-sanity.patch implement-flush_work_keventd.patch flush_workqueue-use-preempt_disable-to-hold-off-cpu-hotplug.patch aio-use-flush_work.patch kblockd-use-flush_work.patch relayfs-use-flush_keventd_work.patch tg3-use-flush_keventd_work.patch e1000-use-flush_keventd_work.patch libata-use-flush_work.patch phy-use-flush_work.patch extend-notifier_call_chain-to-count-nr_calls-made.patch extend-notifier_call_chain-to-count-nr_calls-made-fixes-2.patch define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix.patch eliminate-lock_cpu_hotplug-in-kernel-schedc-fix.patch move-page-writeback-acounting-out-of-macros.patch per-backing_dev-dirty-and-writeback-page-accounting.patch ext2-reservations.patch edac-new-opteron-athlon64-memory-controller-driver.patch aio-is-unlikely.patch sched2-sched-domain-sysctl-use-ctl_unnumbered.patch mm-implement-swap-prefetching-use-ctl_unnumbered.patch swap_prefetch-vs-zoned-counters.patch add-include-linux-freezerh-and-move-definitions-from-prefetch.patch rcu-preemptible-rcu.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix-2.patch local_t-powerpc-extension-fix.patch local_t-powerpc-extension-fix-build-fix.patch readahead-kconfig-options-fix.patch readahead-minmax_ra_pages.patch readahead-sysctl-parameters.patch readahead-sysctl-parameters-use-ctl_unnumbered.patch readahead-context-based-method-locking-fix.patch readahead-context-based-method-locking-fix-2.patch readahead-call-scheme-ifdef-fix.patch readahead-call-scheme-build-fix.patch readahead-nfsd-case-fix.patch make-copy_from_user_inatomic-not-zero-the-tail-on-i386-vs-reiser4.patch
- extend-notifier_call_chain-to-count-nr_calls-made-fixes-3.patch removed from -mm tree
The patch titled has been removed from the -mm tree. Its filename was extend-notifier_call_chain-to-count-nr_calls-made-fixes-3.patch This patch was dropped because it was folded into extend-notifier_call_chain-to-count-nr_calls-made.patch -- Subject: From: Michal Piotrowski [EMAIL PROTECTED] kernel/sys.c:359: error: conflicting types for '__blocking_notifier_call_chain' include/linux/notifier.h:140: error: previous declaration of '__blocking_notifier_call_chain' was here kernel/sys.c:375: error: conflicting types for '__blocking_notifier_call_chain' include/linux/notifier.h:140: error: previous declaration of '__blocking_notifier_call_chain' was here Signed-off-by: Michal Piotrowski [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- kernel/sys.c |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN kernel/sys.c~extend-notifier_call_chain-to-count-nr_calls-made-fixes-3 kernel/sys.c --- a/kernel/sys.c~extend-notifier_call_chain-to-count-nr_calls-made-fixes-3 +++ a/kernel/sys.c @@ -354,7 +354,7 @@ EXPORT_SYMBOL_GPL(blocking_notifier_chai int __blocking_notifier_call_chain(struct blocking_notifier_head *nh, unsigned long val, void *v, - int nr_to_call, unsigned int *nr_calls) + int nr_to_call, int *nr_calls) { int ret = NOTIFY_DONE; _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch git-ia64.patch git-input.patch i386-irq-kill-irq-compression-fix.patch extend-notifier_call_chain-to-count-nr_calls-made.patch extend-notifier_call_chain-to-count-nr_calls-made-fixes-3.patch edac-new-opteron-athlon64-memory-controller-driver.patch reiser4-configh.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- extend-notifier_call_chain-to-count-nr_calls-made-fixes.patch removed from -mm tree
The patch titled Fix extend notifier_call_chain to count nr_calls made has been removed from the -mm tree. Its filename was extend-notifier_call_chain-to-count-nr_calls-made-fixes.patch This patch was dropped because it was folded into extend-notifier_call_chain-to-count-nr_calls-made.patch -- Subject: Fix extend notifier_call_chain to count nr_calls made From: Gautham R Shenoy [EMAIL PROTECTED] * Corrects the type of nr_calls to int * from unsigned int * in notifier_call_chain and it's subsequent callers. * Converts comments of notifier_call_chain to be compliant with kernel-docs standards. * Reverts the changes made to the comments of other *_notifier_call_chain. * Adds parameter names to a few functions prototypes in include/linux/notifier.h . Cc: Randy Dunlap [EMAIL PROTECTED] Signed-off-by: Gautham R Shenoy [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- include/linux/notifier.h | 58 ++--- kernel/sys.c | 22 +- 2 files changed, 38 insertions(+), 42 deletions(-) diff -puN include/linux/notifier.h~extend-notifier_call_chain-to-count-nr_calls-made-fixes include/linux/notifier.h --- a/include/linux/notifier.h~extend-notifier_call_chain-to-count-nr_calls-made-fixes +++ a/include/linux/notifier.h @@ -112,40 +112,40 @@ extern void srcu_init_notifier_head(stru #ifdef __KERNEL__ -extern int atomic_notifier_chain_register(struct atomic_notifier_head *, - struct notifier_block *); -extern int blocking_notifier_chain_register(struct blocking_notifier_head *, - struct notifier_block *); -extern int raw_notifier_chain_register(struct raw_notifier_head *, - struct notifier_block *); -extern int srcu_notifier_chain_register(struct srcu_notifier_head *, - struct notifier_block *); - -extern int atomic_notifier_chain_unregister(struct atomic_notifier_head *, - struct notifier_block *); -extern int blocking_notifier_chain_unregister(struct blocking_notifier_head *, - struct notifier_block *); -extern int raw_notifier_chain_unregister(struct raw_notifier_head *, - struct notifier_block *); -extern int srcu_notifier_chain_unregister(struct srcu_notifier_head *, - struct notifier_block *); +extern int atomic_notifier_chain_register(struct atomic_notifier_head *nh, + struct notifier_block *nb); +extern int blocking_notifier_chain_register(struct blocking_notifier_head *nh, + struct notifier_block *nb); +extern int raw_notifier_chain_register(struct raw_notifier_head *nh, + struct notifier_block *nb); +extern int srcu_notifier_chain_register(struct srcu_notifier_head *nh, + struct notifier_block *nb); + +extern int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh, + struct notifier_block *nb); +extern int blocking_notifier_chain_unregister(struct blocking_notifier_head *nh, + struct notifier_block *nb); +extern int raw_notifier_chain_unregister(struct raw_notifier_head *nh, + struct notifier_block *nb); +extern int srcu_notifier_chain_unregister(struct srcu_notifier_head *nh, + struct notifier_block *nb); -extern int atomic_notifier_call_chain(struct atomic_notifier_head *, +extern int atomic_notifier_call_chain(struct atomic_notifier_head *nh, unsigned long val, void *v); -extern int __atomic_notifier_call_chain(struct atomic_notifier_head *, - unsigned long val, void *v, int nr_to_call, unsigned int *nr_calls); -extern int blocking_notifier_call_chain(struct blocking_notifier_head *, +extern int __atomic_notifier_call_chain(struct atomic_notifier_head *nh, + unsigned long val, void *v, int nr_to_call, int *nr_calls); +extern int blocking_notifier_call_chain(struct blocking_notifier_head *nh, unsigned long val, void *v); -extern int __blocking_notifier_call_chain(struct blocking_notifier_head *, - unsigned long val, void *v, int nr_to_call, unsigned int *nr_calls); -extern int raw_notifier_call_chain(struct raw_notifier_head *, +extern int __blocking_notifier_call_chain(struct blocking_notifier_head *nh, + unsigned long val, void *v, int nr_to_call, int *nr_calls); +extern int raw_notifier_call_chain(struct raw_notifier_head *nh, unsigned long val, void *v); -extern int __raw_notifier_call_chain(struct raw_notifier_head *, - unsigned long val, void *v, int nr_to_call, unsigned int *nr_calls); -extern int srcu_notifier_call_chain(struct srcu_notifier_head *, +extern int __raw_notifier_call_chain(struct raw_notifier_head *nh, + unsigned long val, void *v, int nr_to_call, int *nr_calls); +extern int srcu_notifier_call_chain(struct srcu_notifier_head *nh, unsigned long val, void *v); -extern int
- extend-notifier_call_chain-to-count-nr_calls-made-fixes-2.patch removed from -mm tree
The patch titled extend-notifier_call_chain-to-count-nr_calls-made-fixes-2 has been removed from the -mm tree. Its filename was extend-notifier_call_chain-to-count-nr_calls-made-fixes-2.patch This patch was dropped because it was folded into extend-notifier_call_chain-to-count-nr_calls-made.patch -- Subject: extend-notifier_call_chain-to-count-nr_calls-made-fixes-2 From: Andrew Morton [EMAIL PROTECTED] Cc: Gautham R Shenoy [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- kernel/sys.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN kernel/sys.c~extend-notifier_call_chain-to-count-nr_calls-made-fixes-2 kernel/sys.c --- a/kernel/sys.c~extend-notifier_call_chain-to-count-nr_calls-made-fixes-2 +++ a/kernel/sys.c @@ -161,7 +161,7 @@ static int __kprobes notifier_call_chain ret = nb-notifier_call(nb, val, v); if (nr_calls) - *nr_calls ++; + (*nr_calls)++; if ((ret NOTIFY_STOP_MASK) == NOTIFY_STOP_MASK) break; _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch macintosh-mangle-caps-lock-events-on-adb-keyboards.patch git-ia64.patch git-ieee1394.patch sata_nv-add-back-some-verbosity-into-adma-error_handler.patch git-ubi.patch update-smc91x-driver-with-arm-versatile-board-info.patch drivers-net-ns83820c-add-paramter-to-disable-auto.patch net-uninline-skb_put.patch git-ioat-vs-git-md-accel.patch ioat-warning-fix.patch drivers-scsi-mca_53c9xc-save_flags-cli-removal.patch scsi-cover-up-bugs-fix-up-compiler-warnings-in-megaraid-driver.patch git-ipwireless_cs.patch arch-i386-kernel-alternativec-dont-include-bugsh.patch deprecate-smbfs-in-favour-of-cifs.patch block_write_full_page-handle-enospc.patch filesystem-disk-errors-at-boot-time-caused-by-probe.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace.patch sync_sb_inodes-propagate-errors.patch mips-convert-to-use-shared-apm-emulation-fix.patch schedule_on_each_cpu-use-preempt_disable.patch implement-flush_work-sanity.patch implement-flush_work_keventd.patch flush_workqueue-use-preempt_disable-to-hold-off-cpu-hotplug.patch aio-use-flush_work.patch kblockd-use-flush_work.patch relayfs-use-flush_keventd_work.patch tg3-use-flush_keventd_work.patch e1000-use-flush_keventd_work.patch libata-use-flush_work.patch phy-use-flush_work.patch extend-notifier_call_chain-to-count-nr_calls-made.patch extend-notifier_call_chain-to-count-nr_calls-made-fixes-2.patch define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix.patch eliminate-lock_cpu_hotplug-in-kernel-schedc-fix.patch move-page-writeback-acounting-out-of-macros.patch per-backing_dev-dirty-and-writeback-page-accounting.patch ext2-reservations.patch edac-new-opteron-athlon64-memory-controller-driver.patch aio-is-unlikely.patch sched2-sched-domain-sysctl-use-ctl_unnumbered.patch mm-implement-swap-prefetching-use-ctl_unnumbered.patch swap_prefetch-vs-zoned-counters.patch add-include-linux-freezerh-and-move-definitions-from-prefetch.patch rcu-preemptible-rcu.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix-2.patch local_t-powerpc-extension-fix.patch local_t-powerpc-extension-fix-build-fix.patch readahead-kconfig-options-fix.patch readahead-minmax_ra_pages.patch readahead-sysctl-parameters.patch readahead-sysctl-parameters-use-ctl_unnumbered.patch readahead-context-based-method-locking-fix.patch readahead-context-based-method-locking-fix-2.patch readahead-call-scheme-ifdef-fix.patch readahead-call-scheme-build-fix.patch readahead-nfsd-case-fix.patch make-copy_from_user_inatomic-not-zero-the-tail-on-i386-vs-reiser4.patch resier4-add-include-linux-freezerh-and-move-definitions-from.patch make-kmem_cache_destroy-return-void-reiser4.patch reiser4-hardirq-include-fix.patch reiser4-run-truncate_inode_pages-in-reiser4_delete_inode.patch reiser4-get_sb_dev-fix.patch reiser4-vs-zoned-allocator.patch reiser4-temp-fix.patch reiser4-kmem_cache_t-removal.patch reiser4-test_clear_page_dirty.patch statistics-infrastructure-fix-buffer-overflow-in-histogram-with-linear-tidy.patch slim-main-include-fix.patch nr_blockdev_pages-in_interrupt-warning.patch device-suspend-debug.patch mutex-subsystem-synchro-test-module-fix.patch slab-leaks3-default-y.patch vdso-print-fatal-signals-use-ctl_unnumbered.patch restore-rogue-readahead-printk.patch put_bh-debug.patch e1000-printk-warning-fixes.patch acpi_format_exception-debug.patch add-debugging-aid-for-memory-initialisation-problems-fix.patch kmap_atomic-debugging.patch shrink_slab-handle-bad-shrinkers.patch ia64-enable-config_debug_spinlock_sleep.patch squash-ipc-warnings.patch squash-udf-warnings.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at
- cciss-fix-for-2tb-support-again.patch removed from -mm tree
The patch titled cciss: fix for 2TB support (again) has been removed from the -mm tree. Its filename was cciss-fix-for-2tb-support-again.patch This patch was dropped because it was folded into cciss-fix-for-2tb-support.patch -- Subject: cciss: fix for 2TB support (again) From: Mike Miller (OS Dev) [EMAIL PROTECTED] This patch changes the constant 0x to 0xULL to prevent sign extension. Signed-off-by: Mike Miller [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- drivers/block/cciss.c |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff -puN drivers/block/cciss.c~cciss-fix-for-2tb-support-again drivers/block/cciss.c --- a/drivers/block/cciss.c~cciss-fix-for-2tb-support-again +++ a/drivers/block/cciss.c @@ -1303,7 +1303,7 @@ static void cciss_update_drive_info(int /* if read_capacity returns all F's this volume is 2TB in size */ /* so we switch to 16-byte CDB's for all read/write ops */ - if (total_size == 0x) { + if (total_size == 0xULL) { cciss_read_capacity_16(ctlr, drv_index, 1, total_size, block_size); h-cciss_read = CCISS_READ_16; @@ -3123,7 +3123,7 @@ static void cciss_getgeometry(int cntl_n /* If read_capacity returns all F's the logical is 2TB */ /* so we switch to 16-byte CDBs for all read/write ops */ - if(total_size == 0x) { + if(total_size == 0xULL) { cciss_read_capacity_16(cntl_num, i, 0, total_size, block_size); hba[cntl_num]-cciss_read = CCISS_READ_16; _ Patches currently in -mm which might be from [EMAIL PROTECTED] are cciss-fix-for-2tb-support.patch cciss-fix-for-2tb-support-again.patch cciss-supercedes-add-shutdown-support-replaces-reboot-notifier.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix.patch removed from -mm tree
The patch titled define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix has been removed from the -mm tree. Its filename was define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix.patch This patch was dropped because it was folded into define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release.patch -- Subject: define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix From: Andrew Morton [EMAIL PROTECTED] bug, yes? Cc: Gautham R Shenoy [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- kernel/cpu.c |4 +++- 1 files changed, 3 insertions(+), 1 deletion(-) diff -puN kernel/cpu.c~define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix kernel/cpu.c --- a/kernel/cpu.c~define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix +++ a/kernel/cpu.c @@ -139,7 +139,8 @@ static int _cpu_down(unsigned int cpu) if (err == NOTIFY_BAD) { printk(%s: attempt to take down CPU %u failed\n, __FUNCTION__, cpu); - return -EINVAL; + err = -EINVAL; + goto out_release; } /* Ensure that we are not runnable on dying cpu */ @@ -187,6 +188,7 @@ out_thread: err = kthread_stop(p); out_allowed: set_cpus_allowed(current, old_allowed); +out_release: raw_notifier_call_chain(cpu_chain, CPU_LOCK_RELEASE, (void *)(long)cpu); return err; _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch macintosh-mangle-caps-lock-events-on-adb-keyboards.patch git-ia64.patch git-ieee1394.patch sata_nv-add-back-some-verbosity-into-adma-error_handler.patch git-ubi.patch update-smc91x-driver-with-arm-versatile-board-info.patch drivers-net-ns83820c-add-paramter-to-disable-auto.patch net-uninline-skb_put.patch git-ioat-vs-git-md-accel.patch ioat-warning-fix.patch drivers-scsi-mca_53c9xc-save_flags-cli-removal.patch scsi-cover-up-bugs-fix-up-compiler-warnings-in-megaraid-driver.patch git-ipwireless_cs.patch arch-i386-kernel-alternativec-dont-include-bugsh.patch deprecate-smbfs-in-favour-of-cifs.patch block_write_full_page-handle-enospc.patch filesystem-disk-errors-at-boot-time-caused-by-probe.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace.patch sync_sb_inodes-propagate-errors.patch mips-convert-to-use-shared-apm-emulation-fix.patch schedule_on_each_cpu-use-preempt_disable.patch implement-flush_work-sanity.patch implement-flush_work_keventd.patch flush_workqueue-use-preempt_disable-to-hold-off-cpu-hotplug.patch aio-use-flush_work.patch kblockd-use-flush_work.patch relayfs-use-flush_keventd_work.patch tg3-use-flush_keventd_work.patch e1000-use-flush_keventd_work.patch libata-use-flush_work.patch phy-use-flush_work.patch extend-notifier_call_chain-to-count-nr_calls-made.patch define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release.patch define-and-use-new-eventscpu_lock_acquire-and-cpu_lock_release-fix.patch eliminate-lock_cpu_hotplug-in-kernel-schedc-fix.patch move-page-writeback-acounting-out-of-macros.patch per-backing_dev-dirty-and-writeback-page-accounting.patch ext2-reservations.patch edac-new-opteron-athlon64-memory-controller-driver.patch aio-is-unlikely.patch sched2-sched-domain-sysctl-use-ctl_unnumbered.patch mm-implement-swap-prefetching-use-ctl_unnumbered.patch swap_prefetch-vs-zoned-counters.patch add-include-linux-freezerh-and-move-definitions-from-prefetch.patch rcu-preemptible-rcu.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix-2.patch local_t-powerpc-extension-fix.patch local_t-powerpc-extension-fix-build-fix.patch readahead-kconfig-options-fix.patch readahead-minmax_ra_pages.patch readahead-sysctl-parameters.patch readahead-sysctl-parameters-use-ctl_unnumbered.patch readahead-context-based-method-locking-fix.patch readahead-context-based-method-locking-fix-2.patch readahead-call-scheme-ifdef-fix.patch readahead-call-scheme-build-fix.patch readahead-nfsd-case-fix.patch make-copy_from_user_inatomic-not-zero-the-tail-on-i386-vs-reiser4.patch resier4-add-include-linux-freezerh-and-move-definitions-from.patch make-kmem_cache_destroy-return-void-reiser4.patch reiser4-hardirq-include-fix.patch reiser4-run-truncate_inode_pages-in-reiser4_delete_inode.patch reiser4-get_sb_dev-fix.patch reiser4-vs-zoned-allocator.patch reiser4-temp-fix.patch reiser4-kmem_cache_t-removal.patch reiser4-test_clear_page_dirty.patch statistics-infrastructure-fix-buffer-overflow-in-histogram-with-linear-tidy.patch slim-main-include-fix.patch nr_blockdev_pages-in_interrupt-warning.patch device-suspend-debug.patch mutex-subsystem-synchro-test-module-fix.patch slab-leaks3-default-y.patch vdso-print-fatal-signals-use-ctl_unnumbered.patch restore-rogue-readahead-printk.patch put_bh-debug.patch
- merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2.patch removed from -mm tree
The patch titled merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2 has been removed from the -mm tree. Its filename was merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2.patch This patch was dropped because it was folded into merge-sys_clone-sys_unshare-nsproxy-and-namespace.patch -- Subject: merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2 From: Andrew Morton [EMAIL PROTECTED] include/linux/ipc.h:106: warning: 'copy_ipcs' defined but not used include/linux/ipc.h:106: warning: 'copy_ipcs' defined but not used bah. Cc: Eric W. Biederman [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Cc: Badari Pulavarty [EMAIL PROTECTED] Cc: Cedric Le Goater [EMAIL PROTECTED] Cc: Serge Hallyn [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- include/linux/ipc.h |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN include/linux/ipc.h~merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2 include/linux/ipc.h --- a/include/linux/ipc.h~merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2 +++ a/include/linux/ipc.h @@ -101,7 +101,7 @@ extern void free_ipc_ns(struct kref *kre extern struct ipc_namespace *copy_ipcs(unsigned long flags, struct ipc_namespace *ns); #else -static struct ipc_namespace *copy_ipcs(unsigned long flags, +static inline struct ipc_namespace *copy_ipcs(unsigned long flags, struct ipc_namespace *ns) { return ns; _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch slab-introduce-krealloc-fix.patch make-aout-executables-work-again-fix.patch sony-laptop-fix-uninitialised-variable.patch git-alsa-oops-fix.patch git-drm.patch git-dvb.patch ia64-kexec-use-efi_loader_data-for-elf-core-header-tidy.patch git-input.patch setstream-param-for-psmouse-tweak.patch git-md-accel-fixup.patch nommu-present-backing-device-capabilities-for-mtd-fix.patch git-ubi.patch git-netdev-all.patch git-netdev-all-ipw2200-fix.patch revert-drivers-net-tulip-dmfe-support-basic-carrier-detection.patch dmfe-add-support-for-suspend-resume-fix.patch sis900-warning-fixes.patch div64_64-common-code-fix.patch bonding-replace-system-timer-with-work-queue-tidy.patch git-parisc.patch rm9000-serial-driver-tidy.patch git-pciseg.patch git-unionfs.patch usbatm-create-sysfs-link-device-from-atm-class-device-tidy.patch git-wireless-fixup.patch revert-x86_64-mm-change-sysenter_setup-to-__cpuinit-improve-__init-__initdata.patch after-before-x86_64-mm-mmconfig-share.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix.patch linux-sysdevh-needs-to-include-linux-moduleh-up-fix-2.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch driver_bfin_serial_core-update.patch reduce-size-of-task_struct-on-64-bit-machines.patch mm-shrink-parent-dentries-when-shrinking-slab.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace-fix-2.patch call-cpu_chain-with-cpu_down_failed-if-cpu_down_prepare-failed-vs-reduce-size-of-task_struct-on-64-bit-machines.patch speedup-divides-by-cpu_power-in-scheduler-up-fix.patch lutimesat-compat-syscall-and-wire-up-on-x86_64-tidy.patch utrace-prep.patch utrace-prep-2.patch revert-utrace-prep-2.patch utrace-vs-reduce-size-of-task_struct-on-64-bit-machines.patch local_t-mips-extension-shrink-duplicated-mips-32-64-bits-functions-from-localh-fix.patch linux-kernel-markers-kconfig-menus-fix-4.patch fbdev-hecuba-framebuffer-driver-fix.patch mm-only-free-swap-space-of-reactivated-pages-debug.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- eliminate-lock_cpu_hotplug-in-kernel-schedc-fix.patch removed from -mm tree
The patch titled eliminate-lock_cpu_hotplug-in-kernel-schedc-fix has been removed from the -mm tree. Its filename was eliminate-lock_cpu_hotplug-in-kernel-schedc-fix.patch This patch was dropped because it was folded into eliminate-lock_cpu_hotplug-in-kernel-schedc.patch -- Subject: eliminate-lock_cpu_hotplug-in-kernel-schedc-fix From: Andrew Morton [EMAIL PROTECTED] migration_call() is called during CPU bringup even if CONFIG_HOTPLUG_CPU=n. So we need to release that lock, else it deadlocks. Cc: Gautham R Shenoy [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- kernel/sched.c |3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff -puN kernel/sched.c~eliminate-lock_cpu_hotplug-in-kernel-schedc-fix kernel/sched.c --- a/kernel/sched.c~eliminate-lock_cpu_hotplug-in-kernel-schedc-fix +++ a/kernel/sched.c @@ -5255,11 +5255,10 @@ migration_call(struct notifier_block *nf } spin_unlock_irq(rq-lock); break; - +#endif case CPU_LOCK_RELEASE: mutex_unlock(sched_hotcpu_mutex); break; -#endif } return NOTIFY_OK; } _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch macintosh-mangle-caps-lock-events-on-adb-keyboards.patch git-ia64.patch git-ieee1394.patch sata_nv-add-back-some-verbosity-into-adma-error_handler.patch git-ubi.patch update-smc91x-driver-with-arm-versatile-board-info.patch drivers-net-ns83820c-add-paramter-to-disable-auto.patch net-uninline-skb_put.patch git-ioat-vs-git-md-accel.patch ioat-warning-fix.patch drivers-scsi-mca_53c9xc-save_flags-cli-removal.patch scsi-cover-up-bugs-fix-up-compiler-warnings-in-megaraid-driver.patch git-ipwireless_cs.patch arch-i386-kernel-alternativec-dont-include-bugsh.patch deprecate-smbfs-in-favour-of-cifs.patch block_write_full_page-handle-enospc.patch filesystem-disk-errors-at-boot-time-caused-by-probe.patch merge-sys_clone-sys_unshare-nsproxy-and-namespace.patch sync_sb_inodes-propagate-errors.patch mips-convert-to-use-shared-apm-emulation-fix.patch schedule_on_each_cpu-use-preempt_disable.patch implement-flush_work-sanity.patch implement-flush_work_keventd.patch flush_workqueue-use-preempt_disable-to-hold-off-cpu-hotplug.patch aio-use-flush_work.patch kblockd-use-flush_work.patch relayfs-use-flush_keventd_work.patch tg3-use-flush_keventd_work.patch e1000-use-flush_keventd_work.patch libata-use-flush_work.patch phy-use-flush_work.patch extend-notifier_call_chain-to-count-nr_calls-made.patch eliminate-lock_cpu_hotplug-in-kernel-schedc.patch eliminate-lock_cpu_hotplug-in-kernel-schedc-fix.patch move-page-writeback-acounting-out-of-macros.patch per-backing_dev-dirty-and-writeback-page-accounting.patch ext2-reservations.patch edac-new-opteron-athlon64-memory-controller-driver.patch aio-is-unlikely.patch sched2-sched-domain-sysctl-use-ctl_unnumbered.patch mm-implement-swap-prefetching-use-ctl_unnumbered.patch swap_prefetch-vs-zoned-counters.patch add-include-linux-freezerh-and-move-definitions-from-prefetch.patch rcu-preemptible-rcu.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix.patch atomich-add-atomic64-cmpxchg-xchg-and-add_unless-to-powerpc-fix-2.patch local_t-powerpc-extension-fix.patch local_t-powerpc-extension-fix-build-fix.patch readahead-kconfig-options-fix.patch readahead-minmax_ra_pages.patch readahead-sysctl-parameters.patch readahead-sysctl-parameters-use-ctl_unnumbered.patch readahead-context-based-method-locking-fix.patch readahead-context-based-method-locking-fix-2.patch readahead-call-scheme-ifdef-fix.patch readahead-call-scheme-build-fix.patch readahead-nfsd-case-fix.patch make-copy_from_user_inatomic-not-zero-the-tail-on-i386-vs-reiser4.patch resier4-add-include-linux-freezerh-and-move-definitions-from.patch make-kmem_cache_destroy-return-void-reiser4.patch reiser4-hardirq-include-fix.patch reiser4-run-truncate_inode_pages-in-reiser4_delete_inode.patch reiser4-get_sb_dev-fix.patch reiser4-vs-zoned-allocator.patch reiser4-temp-fix.patch reiser4-kmem_cache_t-removal.patch reiser4-test_clear_page_dirty.patch statistics-infrastructure-fix-buffer-overflow-in-histogram-with-linear-tidy.patch slim-main-include-fix.patch nr_blockdev_pages-in_interrupt-warning.patch device-suspend-debug.patch mutex-subsystem-synchro-test-module-fix.patch slab-leaks3-default-y.patch vdso-print-fatal-signals-use-ctl_unnumbered.patch restore-rogue-readahead-printk.patch put_bh-debug.patch e1000-printk-warning-fixes.patch acpi_format_exception-debug.patch add-debugging-aid-for-memory-initialisation-problems-fix.patch kmap_atomic-debugging.patch shrink_slab-handle-bad-shrinkers.patch ia64-enable-config_debug_spinlock_sleep.patch squash-ipc-warnings.patch squash-udf-warnings.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at
- workqueue-dont-save-interrupts-in-run_workqueue-update-2.patch removed from -mm tree
The patch titled workqueue-dont-save-interrupts-in-run_workqueue-update 2 has been removed from the -mm tree. Its filename was workqueue-dont-save-interrupts-in-run_workqueue-update-2.patch This patch was dropped because it was folded into workqueue-dont-save-interrupts-in-run_workqueue.patch -- Subject: workqueue-dont-save-interrupts-in-run_workqueue-update 2 From: Oleg Nesterov [EMAIL PROTECTED] Add might_sleep() checks to flush_xxx() functions. Signed-off-by: Oleg Nesterov [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- kernel/workqueue.c |4 1 files changed, 4 insertions(+) diff -puN kernel/workqueue.c~workqueue-dont-save-interrupts-in-run_workqueue-update-2 kernel/workqueue.c --- a/kernel/workqueue.c~workqueue-dont-save-interrupts-in-run_workqueue-update-2 +++ a/kernel/workqueue.c @@ -393,6 +393,8 @@ static void flush_cpu_workqueue(struct c */ void fastcall flush_workqueue(struct workqueue_struct *wq) { + might_sleep(); + if (is_single_threaded(wq)) flush_cpu_workqueue(per_cpu_ptr(wq-cpu_wq, singlethread_cpu)); else { @@ -439,6 +441,8 @@ void flush_work(struct workqueue_struct { struct cpu_workqueue_struct *cwq; + might_sleep(); + cwq = get_wq_data(work); /* Was it ever queued ? */ if (!cwq) _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch drivers-media-video-cpia_ppc-dont-use-_work_nar.patch bonding-replace-system-timer-with-work-queue.patch bonding-replace-system-timer-with-work-queue-tidy.patch smaps-add-clear_refs-file-to-clear-reference-fix.patch fix-refrigerator-vs-thaw_process-race.patch doc-atomic_add_unless-doesnt-imply-mb-on-failure.patch procfs-fix-race-between-proc_readdir-and-remove_proc_entry.patch clone-flag-clone_parent_tidptr-leaves-invalid-results-in-memory.patch allow-access-to-proc-pid-fd-after-setuid.patch freezer-task-exit_state-should-be-treated-as-bolean.patch softlockup-trivial-s-99-max_rt_prio.patch reimplement-flush_workqueue.patch implement-flush_work.patch implement-flush_work-sanity.patch implement-flush_work_keventd.patch flush_workqueue-use-preempt_disable-to-hold-off-cpu-hotplug.patch flush_cpu_workqueue-dont-flush-an-empty-worklist.patch aio-use-flush_work.patch kblockd-use-flush_work.patch relayfs-use-flush_keventd_work.patch tg3-use-flush_keventd_work.patch e1000-use-flush_keventd_work.patch libata-use-flush_work.patch phy-use-flush_work.patch call-cpu_chain-with-cpu_down_failed-if-cpu_down_prepare-failed.patch slab-use-cpu_lock_.patch workqueue-fix-freezeable-workqueues-implementation.patch workqueue-fix-flush_workqueue-vs-cpu_dead-race.patch workqueue-dont-clear-cwq-thread-until-it-exits.patch workqueue-dont-migrate-pending-works-from-the-dead-cpu.patch workqueue-kill-run_scheduled_work.patch workqueue-dont-save-interrupts-in-run_workqueue.patch workqueue-dont-save-interrupts-in-run_workqueue-update-2.patch workqueue-make-cancel_rearming_delayed_workqueue-work-on-idle-dwork.patch workqueue-introduce-cpu_singlethread_map.patch workqueue-introduce-workqueue_struct-singlethread.patch workqueue-make-init_workqueues-__init.patch make-queue_delayed_work-friendly-to-flush_fork.patch unify-queue_delayed_work-and-queue_delayed_work_on.patch unify-queue_delayed_work-and-queue_delayed_work_on-fix.patch workqueue-introduce-wq_per_cpu-helper.patch make-cancel_rearming_delayed_work-work-on-any-workqueue-not-just-keventd_wq.patch ipvs-flush-defense_work-before-module-unload.patch workqueue-kill-noautorel-works.patch worker_thread-dont-play-with-signals.patch slab-shutdown-cache_reaper-when-cpu-goes-down.patch unify-flush_work-flush_work_keventd-and-rename-it-to-cancel_work_sync.patch call_usermodehelper-dont-flush_signals.patch freezer-read-pf_borrowed_mm-in-a-nonracy-way.patch freezer-close-theoretical-race-between-refrigerator-and-thaw_tasks.patch freezer-remove-pf_nofreeze-from-rcutorture-thread.patch freezer-remove-pf_nofreeze-from-bluetooth-threads.patch freezer-add-try_to_freeze-calls-to-all-kernel-threads.patch freezer-fix-vfork-problem.patch freezer-take-kernel_execve-into-consideration.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- unify-queue_delayed_work-and-queue_delayed_work_on-fix.patch removed from -mm tree
The patch titled unify queue_delayed_work and queue_delayed_work_on fix has been removed from the -mm tree. Its filename was unify-queue_delayed_work-and-queue_delayed_work_on-fix.patch This patch was dropped because it was folded into unify-queue_delayed_work-and-queue_delayed_work_on.patch -- Subject: unify queue_delayed_work and queue_delayed_work_on fix From: Jiri Slaby [EMAIL PROTECTED] Since cwq-wq is unset for other than singlethread_cpu when singlethread workqueue was created, an oops occurs during bootup. Fix it by setting correct private value for workqueue. Signed-off-by: Jiri Slaby [EMAIL PROTECTED] Cc: Oleg Nesterov [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- kernel/workqueue.c |3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN kernel/workqueue.c~unify-queue_delayed_work-and-queue_delayed_work_on-fix kernel/workqueue.c --- a/kernel/workqueue.c~unify-queue_delayed_work-and-queue_delayed_work_on-fix +++ a/kernel/workqueue.c @@ -210,7 +210,8 @@ int queue_delayed_work_on(int cpu, struc /* This stores cwq for the moment, for the timer_fn */ set_wq_data(work, - per_cpu_ptr(wq-cpu_wq, raw_smp_processor_id())); + per_cpu_ptr(wq-cpu_wq, wq-singlethread ? + singlethread_cpu : raw_smp_processor_id())); timer-expires = jiffies + delay; timer-data = (unsigned long)dwork; timer-function = delayed_work_timer_fn; _ Patches currently in -mm which might be from [EMAIL PROTECTED] are unify-queue_delayed_work-and-queue_delayed_work_on.patch unify-queue_delayed_work-and-queue_delayed_work_on-fix.patch shrink_slab-handle-bad-shrinkers.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- per-backing_dev-dirty-and-writeback-page-accounting-fix.patch removed from -mm tree
The patch titled mm: Fix dirty page accounting per backing_dev has been removed from the -mm tree. Its filename was per-backing_dev-dirty-and-writeback-page-accounting-fix.patch This patch was dropped because it was folded into per-backing_dev-dirty-and-writeback-page-accounting.patch -- Subject: mm: Fix dirty page accounting per backing_dev From: Tomoki Sekiyama [EMAIL PROTECTED] I found a suspicious bug of I/O accounting in 2.6.20-rc6-mm3. The number of dirty pages per backing_dev available from /sys/block/dev/queue/nr_dirty keeps growing when a file is rapidly overwritten several times. For example: % cat /sys/block/sda/queue/nr_dirty 104 % for i in 1 2; do dd if=/dev/zero of=dummy bs=4096 count=1; done; sync % cat /sys/block/sda/queue/nr_dirty 105 % for i in 1 2 3; do dd if=/dev/zero of=dummy bs=4096 count=1; done; sync % cat /sys/block/sda/queue/nr_dirty 107 This patch fixes it. Signed-off-by: Tomoki Sekiyama [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- mm/truncate.c |1 + 1 files changed, 1 insertion(+) diff -puN mm/truncate.c~per-backing_dev-dirty-and-writeback-page-accounting-fix mm/truncate.c --- a/mm/truncate.c~per-backing_dev-dirty-and-writeback-page-accounting-fix +++ a/mm/truncate.c @@ -70,6 +70,7 @@ void cancel_dirty_page(struct page *page if (TestClearPageDirty(page)) { struct address_space *mapping = page-mapping; if (mapping mapping_cap_account_dirty(mapping)) { + atomic_long_dec(mapping-backing_dev_info-nr_dirty); dec_zone_page_state(page, NR_FILE_DIRTY); if (account_size) task_io_account_cancelled_write(account_size); _ Patches currently in -mm which might be from [EMAIL PROTECTED] are per-backing_dev-dirty-and-writeback-page-accounting.patch per-backing_dev-dirty-and-writeback-page-accounting-fix.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
- ext2-fix-reservation-extension.patch removed from -mm tree
The patch titled ext3: fix reservation extension has been removed from the -mm tree. Its filename was ext2-fix-reservation-extension.patch This patch was dropped because it was folded into ext2-reservations.patch -- Subject: ext3: fix reservation extension From: Mingming Cao [EMAIL PROTECTED] Hugh Dickins wrote: Not found anything relevant, but I keep noticing these lines in ext2_try_to_allocate_with_rsv(), ext3 and ext4 similar: } else if (grp_goal 0 (my_rsv-rsv_end - grp_goal + 1) *count) try_to_extend_reservation(my_rsv, sb, *count-my_rsv-rsv_end + grp_goal - 1); They're wrong, a no-op in most groups, aren't they? rsv_end is an absolute block number, whereas grp_goal is group-relative, so the calculation ought to bring in group_first_block? Or I'm confused. Signed-off-by: Mingming Cao [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] --- fs/ext2/balloc.c | 12 1 file changed, 8 insertions(+), 4 deletions(-) diff -puN fs/ext2/balloc.c~ext2-fix-reservation-extension fs/ext2/balloc.c --- a/fs/ext2/balloc.c~ext2-fix-reservation-extension +++ a/fs/ext2/balloc.c @@ -1089,10 +1089,14 @@ ext2_try_to_allocate_with_rsv(struct sup if (!goal_in_my_reservation(my_rsv-rsv_window, grp_goal, group, sb)) grp_goal = -1; - } else if (grp_goal 0 - (my_rsv-rsv_end-grp_goal+1) *count) - try_to_extend_reservation(my_rsv, sb, - *count-my_rsv-rsv_end + grp_goal - 1); + } else if (grp_goal 0) { + int curr = my_rsv-rsv_end - + (grp_goal + group_first_block) + 1; + + if (curr *count) + try_to_extend_reservation(my_rsv, sb, + *count - curr); + } if ((my_rsv-rsv_start group_last_block) || (my_rsv-rsv_end group_first_block)) { _ Patches currently in -mm which might be from [EMAIL PROTECTED] are origin.patch ext2-reservations.patch ext2-fix-reservation-extension.patch ext2-balloc-fix-_with_rsv-freeze.patch ext2-balloc-reset-windowsz-when-full.patch ext2-balloc-fix-off-by-one-against-rsv_end.patch ext2-balloc-fix-off-by-one-against-grp_goal.patch ext2-balloc-say-rb_entry-not-list_entry.patch ext2-balloc-use-io_error-label.patch - To unsubscribe from this list: send the line unsubscribe mm-commits in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html