- Various updates. Things are pretty quiet at present.
There are quite a few things here which are needed for 2.6.20 but which go
through subsystem maintainers, when people wake up again.
Boilerplate:
- See the `hot-fixes' directory for any important updates to this patchset.
- To fetch an -mm tree using git, use (for example)
git-fetch git://git.kernel.org/pub/scm/linux/kernel/git/smurf/linux-trees.git tag v2.6.16-rc2-mm1
git-checkout -b local-v2.6.16-rc2-mm1 v2.6.16-rc2-mm1
- -mm kernel commit activity can be reviewed by subscribing to the
mm-commits mailing list.
echo "subscribe mm-commits" | mail majo...@vger.kernel.org
- If you hit a bug in -mm and it is not obvious which patch caused it, it is
most valuable if you can perform a bisection search to identify which patch
introduced the bug. Instructions for this process are at
http://www.zip.com.au/~akpm/linux/patches/stuff/bisecting-mm-trees.txt
But beware that this process takes some time (around ten rebuilds and
reboots), so consider reporting the bug first and if we cannot immediately
identify the faulty patch, then perform the bisection search.
- When reporting bugs, please try to Cc: the relevant maintainer and mailing
list on any email.
- When reporting bugs in this kernel via email, please also rewrite the
email Subject: in some manner to reflect the nature of the bug. Some
developers filter by Subject: when looking for messages to read.
- Semi-daily snapshots of the -mm lineup are uploaded to
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/mm/ and are announced on
the mm-commits list.
Changes since 2.6.20-rc1-mm1:
git-acpi.patch
git-alsa.patch
git-agpgart.patch
git-avr32.patch
git-cifs.patch
git-cpufreq.patch
git-dvb.patch
git-gfs2-nmw.patch
git-ieee1394.patch
git-infiniband.patch
git-input.patch
git-libata-all.patch
git-lxdialog.patch
git-mmc.patch
git-mtd.patch
git-ubi.patch
git-netdev-all.patch
git-ioat.patch
git-ocfs2.patch
git-pcmcia.patch
git-selinux.patch
git-pciseg.patch
git-s390.patch
git-sh.patch
git-sas.patch
git-qla3xxx.patch
git-watchdog.patch
git-wireless.patch
git-cryptodev.patch
git-gccbug.patch
git trees
-infiniband-work-around-gcc-bug-on-sparc64.patch
-kvm-add-valid_vcpu-helper.patch
-kvm-amd-svm-handle-msr_star-in-32-bit-mode.patch
-kvm-amd-svm-save-and-restore-the-floating-point-unit.patch
-config_vm_event_counter-comment-decrustify.patch
-conditionally-check-expected_preempt_count-in-__resched_legal.patch
-fix-for-shmem_truncate_range-bug_on.patch
-rtc-warning-fix.patch
-slab-fix-kmem_ptr_validate-prototype.patch
-fix-kernel-doc-warnings-in-2620-rc1.patch
-make-kernel-printkcignore_loglevel_setup-static.patch
-fs-sysv-proper-prototypes-for-2-functions.patch
-fix-swapped-parameters-in-mm-vmscanc.patch
-add-cscope-generated-files-to-gitignore.patch
-sched-remove-__cpuinitdata-anotation-to-cpu_isolated_map.patch
-fix-vm_events_fold_cpu-build-breakage.patch
-fix-vm_events_fold_cpu-build-breakage-fix.patch
-build-compileh-earlier.patch
-workstruct-add-assign_bits-to-give-an-atomic-bitops-safe-assignment.patch
-workstruct-use-bitops-safe-direct-assignment.patch
-git-acpi-cpufreq-fixup.patch
-acpi-clear-gpe-before-disabling-it.patch
-acpi-fix-single-linked-list-manipulation.patch
-acpi-processor-prevent-loading-module-on-failures.patch
-acpi-replace-kmallocmemset-with-kzalloc.patch
-make-drivers-acpi-eccec_ecdt-static.patch
-drivers-acpi-oslc-fix-a-null-check.patch
-acpi-dont-select-pm.patch
-implementation-of-acpi_video_get_next_level.patch
-video-sysfs-support-take-2-add-dev-argument-for-backlight_device_register.patch
-fbdev-update-after-backlight-argument-change.patch
-add-display-output-class-support.patch
-add-output-class-document.patch
-add-support-for-asus-a6va-m6v-w5f-v6v-laptops-in-asus-acpi.patch
-add-support-for-acpi_load_table-acpi_unload_table_id.patch
-altix-acpi-ssdt-pci-device-support.patch
-altix-add-acpi-ssdt-pci-device-support-hotplug.patch
-acpi-make-code-static.patch
-acpi-dock-send-a-uevent-to-indicate-a-device-change.patch
-alsa-workqueue-fixes.patch
-agp-fix-detection-of-aperture-size-versus-gtt-size-on-g965.patch
-arm-systemh-build-fix.patch
-audit-fix-kstrdup-error-check.patch
-cpufreq-select-consistently-re-2619-rc5-mm1.patch
-cpufreq-set-policy-curfreq-on-initialization.patch
-bug-fix-for-acpi-cpufreq-and-cpufreq_stats-oops-on-frequency-change-notification.patch
-gregkh-driver-uio.patch
-gregkh-driver-uio-documentation.patch
-gregkh-driver-uio-dummy.patch
-gregkh-driver-uio-irq.patch
-tty-switch-to-ktermios-nozomi-fix.patch
-kobject-kobject_uevent-returns-manageable-value.patch
-proper-prototype-for-drivers-base-initcdriver_init.patch
-kref-refcnt-and-false-positives.patch
-saa7134-add-support-for-the-encore-enl-tv.patch
-drivers-media-video-cpia2-cpia2_usbc-free.patch
-fix-namespace-conflict-between-w9968cfc-on-mips.patch
-usbvision-possible-cleanups.patch
-jdelvare-hwmon-hwmon-unchecked-return-status-fixes-abituguru.patch
-make-lm70_remove-a-__devexit-function.patch
-gregkh-i2c-i2c-device-id-lm75.patch
-fs-dlm-lowcomms-tcpc-remove-2-functions.patch
-infiniband-fix-for-gregkh-depredations.patch
-pci-move-pci_vdevice-from-libata-to-core.patch
-pata_cs5530-suspend-resume-support-tweak.patch
-pata_sil680-suspend-resume-tidy.patch
-ata-fix-platform_device_register_simple-error-check.patch
-initializer-entry-defined-twice-in-pata_rz1000.patch
-pata_via-suspend-resume-support-fix.patch
-libata-simulate-report-luns-for-atapi-devices.patch
-user-of-the-jiffies-rounding-patch-ata-subsystem.patch
-libata-fix-oops-with-sparsemem.patch
-sata_nv-fix-kfree-ordering-in-remove.patch
-libata-dont-initialize-sg-in-ata_exec_internal-if-dma_none-take-2.patch
-git-mmc-fixup.patch
-git-mmc-tifm_sd-warning-fix.patch
-ubi-versus-add-include-linux-freezerh-and-move-definitions-from.patch
-driver-for-silan-sc92031-netdev.patch
-driver-for-silan-sc92031-netdev-fixes.patch
-driver-for-silan-sc92031-netdev-include-fix.patch
-driver-for-silan-sc92031-netdev-fix-more.patch
-remove-the-broken-skmc-driver.patch
-spidernet-dma-coalescing.patch
-spidernet-add-net_ratelimit-to-suppress-long-output.patch
-spidernet-remove-rxramfull-tasklet.patch
-spidernet-cleanup-un-needed-api.patch
-spidernet-rx-skb-mem-leak.patch
-spidernet-another-skb-mem-leak.patch
-spidernet-cleanup-return-codes.patch
-spidernet-rx-refill.patch
-spidernet-remove-unused-variable.patch
-spidernet-rx-chain-tail.patch
-spidernet-memory-barrier.patch
-spidernet-avoid-possible-rx-chain-corruption.patch
-spidernet-rx-debugging-printout.patch
-ep93xx-some-minor-cleanups-to-the-ep93xx-eth-driver.patch
-problem-phy-probe-not-working-properly-for-ibm_emac-ppc4xx.patch
-gss_spkm3-fix-error-handling-in-module-init.patch
-powerpc-iseries-link-error-in-allmodconfig.patch
-gregkh-pci-pci-use-sys-bus-pci-drivers-driver-new_id-first.patch
-gregkh-pci-pci-add-class-codes-for-wireless-rf-controllers.patch
-gregkh-pci-pci-quirks-remove-redundant-check.patch
-gregkh-pci-rpaphp-compiler-warning-cleanup.patch
-gregkh-pci-pci-pcieport-driver-remove-invalid-warning-message.patch
-gregkh-pci-pci-introduce-pci_find_present.patch
-gregkh-pci-pci-create-__pci_bus_find_cap_start-from-__pci_bus_find_cap.patch
-gregkh-pci-pci-add-pci_find_ht_capability-for-finding-hypertransport-capabilities.patch
-gregkh-pci-pci-use-pci_find_ht_capability-in-drivers-pci-htirq.c.patch
-gregkh-pci-pci-add-defines-for-hypertransport-msi-fields.patch
-gregkh-pci-pci-use-pci_find_ht_capability-in-drivers-pci-quirks.c.patch
-gregkh-pci-pci-only-check-the-ht-capability-bits-in-mpic.c.patch
-gregkh-pci-pci-fix-multiple-problems-with-via-hardware.patch
-gregkh-pci-pci-be-a-bit-defensive-in-quirk_nvidia_ck804-so-we-don-t-risk-dereferencing-a-null-pdev.patch
-dont-export-device-ids-to-userspace.patch
-via-sb600-sata-quirk.patch
-pci-legacy-resource-fix.patch
-pci-legacy-resource-fix-tidy.patch
-pci-disable-multithreaded-probing.patch
-scsi-fix-uaccess-handling.patch
-scsi-in2000-scsi_cmnd-convertion.patch
-fix-sense-key-medium-error-processing-and-retry.patch
-aic79xx-wrong-max-memory-at-driver-init.patch
-scsi-cover-up-bugs-fix-up-compiler-warnings-in-megaraid-driver-fix.patch
-gregkh-usb-usb-fix-oops-in-phidgetservo.patch
-gregkh-usb-usb-transvibrator-disconnect-race.patch
-gregkh-usb-usb-airprime-add-device-id-for-dell-wireless-5500-hsdpa-card.patch
-gregkh-usb-usb-ftdi_sio-machx-product-id-added.patch
-gregkh-usb-usb-removing-ifdefed-code-from-gl620a.patch
-gregkh-usb-usb-serial-eliminate-bogus-ioctl-code.patch
-gregkh-usb-usb-mutexification-of-usblp.patch
-gregkh-usb-add-baltech-reader-id-to-cp2101-driver.patch
-gregkh-usb-usb-prevent-the-funsoft-serial-device-from-entering-raw-mode.patch
-gregkh-usb-usb-fix-ohci.h-over-use-warnings.patch
-gregkh-usb-usb-rtl8150-new-device-id.patch
-gregkh-usb-usb-storage-ignore-the-virtual-cd-drive-of-the-huawei-e220-usb-modem.patch
-gregkh-usb-usb-gsm-driver-added-vendorid-and-productid-for-huawei-e220-usb-modem.patch
-gregkh-usb-usb-fix-wacom-intuos3-4x6-bugs.patch
-gregkh-usb-usb-auerswald-replace-kmalloc-memset-with-kzalloc.patch
-gregkh-usb-usb-nokia-e70-is-an-unusual-device.patch
-gregkh-usb-uhci-module-parameter-to-ignore-overcurrent-changes.patch
-gregkh-usb-usb-gadget-driver-unbind-is-optional-section-fixes-misc.patch
-gregkh-usb-usb-maintainers-update-ehci-and-ohci.patch
-gregkh-usb-usb-ohci-whitespace-comment-fixups.patch
-gregkh-usb-usb-ohci-at91-warning-fix.patch
-gregkh-usb-usb-ohci-handles-hardware-faults-during-root-port-resets.patch
-gregkh-usb-usb-ohci-support-for-pnx8550.patch
-gregkh-usb-usb-at91-udc-support-at91sam926x-addresses.patch
-gregkh-usb-usb-at91_udc-misc-fixes.patch
-gregkh-usb-usb-u132-hcd-ftdi-elan-add-support-for-option-gt-3g-quad-card.patch
-gregkh-usb-usb-at91_udc-allow-drivers-that-support-high-speed.patch
-gregkh-usb-usb-at91_udc-cleanup-variables-after-failure-in-usb_gadget_register_driver.patch
-gregkh-usb-usb-at91_udc-additional-checks.patch
-gregkh-usb-usb-ehci-hcd-make-ehci_iso_stream-instances-more-persistent.patch
-gregkh-usb-usb-ehci-hcd-periodic-startup-shutdown-centralization-and-hysteresis.patch
-gregkh-usb-usb-ehci-hcd-group-interrupt-endpoint-code-into-one-place.patch
-gregkh-usb-usb-ehci-hcd-group-ehci_iso_sched-functions-into-one-place.patch
-gregkh-usb-usb-ehci-hcd-group-ehci_iso_sched-and-ehci_itd-code.patch
-gregkh-usb-usb-ehci-hcd-group-ehci_sitd-code-in-one-place.patch
-gregkh-usb-usb-ehci-hcd-refactor-sitd-link-patch-code-for-easier-frame-spanning.patch
-gregkh-usb-usb-ehci-hcd-split-scan_periodic-to-reuse-code-for-spanned-completions.patch
-gregkh-usb-usb-ehci-hcd-unify-interval-granularity-and-limit-depth-of-interrupt-tree.patch
-gregkh-usb-usb-ehci-hcd-add-shadow-budget-code.patch
-gregkh-usb-usb-ehci-hcd-activate-shadow-budget-tracking.patch
-gregkh-usb-usb-ehci-hcd-activate-use-of-shadow-budget-for-scheduling-decisions.patch
-gregkh-usb-usb-ehci-hcd-add-fstn-support.patch
-gregkh-usb-usb-ehci-hcd-add-sitd-frame-spanning-support.patch
-gregkh-usb-ehci-hcd-fix-budget_pool-allocation-for-machines-with-multiple-ehci-controllers.patch
-gregkh-usb-usb-usbaudio-correct-bug-caused-by-harmless-underrun-during-playback-setup.patch
-gregkh-usb-usb-print_schedule_frame-defined-but-not-used-warning-fix.patch
-gregkh-usb-ehci-fix-memory-pool-name-allocation.patch
-gregkh-usb-ehci-eliminate-fstn-leaks-on-ehci-shutdown.patch
-gregkh-usb-ehci-correct-harmless-bracketing-and-whitespace-errors.patch
-gregkh-usb-usb-serial-dynamic-id.patch
-funsoft-is-bust-on-sparc.patch
-usb-serial-add-support-for-novatel-s720-u720-cdma-ev-do.patch
-bluetooth-add-support-for-another-kensington-dongle.patch
-fix-gregkh-usb-usb-ehci-hcd-add-shadow-budget-code.patch
-input-usb-supporting-more-keys-from-the-hut-consumer-page.patch
-usblp-add-serial-number-to-device-id.patch
-m68k-trivial-build-fixes.patch
-jbd-wait-for-already-submitted-t_sync_datalist-buffer.patch
Merged into mainline or a subsystem tree
+fix-ipmi-watchdog-set_param_str-using-kstrdup.patch
+aio-fix-buggy-put_ioctx-call-in-aio_complete.patch
+fix-lock-inversion-aio_kick_handler.patch
+powerpc-iseries-link-error-in-allmodconfig.patch
+change-warn_on-back-to-bug-at.patch
+rcu-rcutorture-suspend-fix.patch
+fix-oom-killer-kills-current-every-time-if-there-is.patch
+add-gitignore-file-for-relocs-in-arch-i386.patch
+pci-probe-fix-macro-that-confuses-kernel-doc.patch
+char-mxser-fix-oops-when-removing-opened.patch
+ib-mthca-fix-fmr-breakage-caused-by-kmemdup-conversion.patch
+maintainers-email-addr-change-for-eric-moore.patch
+make-fn_keys-work-again-on-power-macbooks.patch
+char-isicom-eliminate-spinlock-recursion.patch
+update-to-documentation-ttytxt-on-line-disciplines.patch
+fix-mrproper-incompleteness.patch
+sched-fix-cond_resched_softirq-offset.patch
+fix-compilation-of-via-pmu-backlight.patch
+module-fix-mod_sysfs_setup-return-value.patch
+mm-ramfs-breaks-without-config_block.patch
+mm-slob-is-broken-by-recent-cleanup-of-slabh.patch
+cciss-build-with-proc_fs=n.patch
+page_mkclean_one-fix-call-to-set_pte_at.patch
+spi-define-null-tx_buf-to-mean-shift-out-zeroes.patch
+m25p80-build-fixes-with-mtd-debug.patch
+spi-mtd-mtd_dataflash-oops-prevention.patch
+arm-omap-fix-gpmc-compiler-errors.patch
+arm-omap-fix-missing-header-on-apollon-board.patch
+buglet-in-vmscanc.patch
+cpuset-procfs-warning-fix.patch
+respect-srctree-objtree-in-documentation-docbook-makefile.patch
+spi_s3c24xx_gpio-use-right-header.patch
+lockdep-printk-warning-fix.patch
2.6.20 queue
+down_write-preserve-local-irqs.patch
+fix-garbage-instead-of-zeroes-in-ufs.patch
+shrink_all_memory-fix-lru_pages-handling.patch
+restore-pdeath_signal-behaviour.patch
Maybe 2.6.20 queue
+cifs-sprintf-fix.patch
cifs fixlet
+ppc-use-syslog-macro-for-the-printk-log-level.patch
+powerpc-use-is_init.patch
+fix-bogus-bug_on-in-in-hugetlb_get_unmapped_area.patch
powerpc things
+gregkh-driver-driver-core-warn-users-that-the-sysfs-power-interface-really-is-broken.patch
+gregkh-driver-driver-core-prefix-driver-links-in-sys-module-by-bus-name.patch
+gregkh-driver-driver-core-fix-race-in-sysfs-between-sysfs_remove_file-and-read-write.patch
+gregkh-driver-uio.patch
+gregkh-driver-uio-documentation.patch
+gregkh-driver-uio-dummy.patch
+gregkh-driver-uio-irq.patch
driver tree updates
+fix-gregkh-driver-driver-core-fix-race-in-sysfs-between-sysfs_remove_file-and-read-write.patch
Fix it.
+jdelvare-i2c-i2c-pnx-fix-interrupt-handler.patch
+jdelvare-i2c-i2c-pnx-add-maintainer.patch
+jdelvare-i2c-i2c-ali1563-cleanup-messages.patch
+jdelvare-i2c-i2c-vt8231-remove-superfluous-initialization.patch
+jdelvare-i2c-i2c-nforce2-drop-unused-reference-to-pci_dev.patch
+jdelvare-i2c-i2c-piix4-add-ati-sb600-support.patch
I2C tree updates
+jdelvare-hwmon-hwmon-it87-pwm-freq.patch
+jdelvare-hwmon-hwmon-drop-unused-mutexes.patch
+jdelvare-hwmon-hwmon-simplify-locking-1.patch
+jdelvare-hwmon-hwmon-legacy-comment-fix.patch
+jdelvare-hwmon-hwmon-lm70-make-lm70_remove-a-devexit-function.patch
+jdelvare-hwmon-hwmon-should-subsys-init.patch
+jdelvare-hwmon-hwmon-w83627ehf-add-w83627dhg-support.patch
hwmon tree updates
+ia64-alignment-bug-in-ldscript.patch
+ia64-virt_to_page-can-be-called-with-null-arg.patch
+altix-acpi-ssdt-pci-device-support.patch
+altix-add-acpi-ssdt-pci-device-support-hotplug.patch
+altix-acpi-_prt-support.patch
ia64 stuff
+git-iee1394-printk-warning-fix.patch
+git-ieee1394-build-fix.patch
+git-ieee1394-build-fix-2.patch
+git-ieee1394-build-fix-3.patch
Fix git-ieee1394.patch
+infiniband-fix-for-gregkh-driver-network-device.patch
+infiniband-work-around-gcc-bug-on-sparc64.patch
+ehca-fix-do_mmap-error-check.patch
+ehca-avoid-crash-on-kthread_create-failure.patch
+ehca-fix-memleak-on-module-unloading.patch
infiniband things
+search-a-little-harder-for-mkimage.patch
+make-mkcompile_h-use-lang=c-and-lc_all=c-for-cc-v.patch
+add-mailmap-for-proper-git-shortlog-output.patch
+qconf-immediately-update-integer-and-string-values-in-xconfig-display.patch
kbuild updates
+git-libata-all-fixup.patch
Fix rejects in git-libata-all.patch
+libata-scsi-ata_task_ioctl-should-return-ata-registers-from.patch
libata fix
+mips-turbochannel-update-to-the-driver-model.patch
+mips-turbochannel-support-for-the-decstation.patch
+mips-eisa-registration-with-config_eisa.patch
+mips-declance-driver-model-for-the-pmad-a.patch
+mips-defxx-turbochannel-support.patch
+mips-pmag-ba-fb-convert-to-the-driver-model.patch
+mips-pmagb-b-fb-convert-to-the-driver-model.patch
+mips-dec_esp-driver-model-for-the-pmaz-a.patch
MIPS turbochannel updates
+mmc-add-support-for-sdhc-cards.patch
MMC update
+git-ubi-build-fix.patch
+git-ubi-mtd_read-arg-fix.patch
+ubi-missing-include.patch
UBI tree fixes
+b44-fix-frequent-link-changes.patch
b44 netdev fix
+cxgb3-main-header-files.patch
+cxgb3-main-source-file.patch
+cxgb3-hw-access-routines.patch
+cxgb3-scatter-gather-engine.patch
+cxgb3-on-board-memory-mac-and-phy.patch
+cxgb3-offload-header-files.patch
+cxgb3-offload-capabilities.patch
+cxgb3-register-definitions.patch
+cxgb3-build-files-and-versioning.patch
+cxgb3-vs-gregkh-driver-network-device.patch
New net driver
+net-irda-proper-prototypes.patch
+ebtables-dont-compute-gap-before-checking-struct.patch
net fixes
-nfs-kill-obsolete-nfs_paranoia.patch
+nfs-kill-the-obsolete-nfs_paranoia.patch
updated
+pnx8550-uart-driver-fixes.patch
fix pnx8550-uart-driver.patch
+8250-make-probing-for-txen-bug-a-config-option.patch
serial fix
+gregkh-pci-pci-disable-pci_multithread_probe.patch
+gregkh-pci-pci-remove-too-specialized-__pci_enable_device-for-default-resume.patch
+gregkh-pci-pci-move-pci_fixup_device-and-is_enabled.patch
+gregkh-pci-pci-add-extremely-specialized-__pci_reenable_device.patch
+gregkh-pci-pci-add-selected_regions-funcs.patch
+gregkh-pci-pci-define-inline-for-test-of-channel-error-state.patch
+gregkh-pci-pci-use-newly-defined-pci-channel-offline-routine.patch
+gregkh-pci-pci-quirks.c-cleanup.patch
PCI tree updates
+pci-quirk-1k-i-o-space-iobl_adr-fix-on-p64h2.patch
+pciehp-cleanup-init_slot.patch
+pciehp-cleanup-slot-list.patch
+pciehp-remove-unnecessary-php_ctlr.patch
+pciehp-remove-unused-pci_bus-from-struct-controller.patch
+pciehp-cleanup-register-access.patch
+pciehp-cleanup-pciehph.patch
+pciehp-remove-unused-pcie_cap_base.patch
+pciehp-cleanup-wait-command-completion.patch
+pciehp-fix-wait-command-completion.patch
+pciehp-add-emi-support.patch
+update-documentation-pcitxt.patch
PCI updates
+gregkh-usb-uhci-make-test-for-asus-motherboard-more-specific.patch
+gregkh-usb-uhci-support-device_may_wakeup.patch
+gregkh-usb-usb-fix-interaction-between-different-interfaces-in-an-option-usb-device.patch
+gregkh-usb-usb-funsoft-is-borken-on-sparc.patch
+gregkh-usb-usb-omap_udc-build-fixes.patch
+gregkh-usb-usb-rework-the-ohci-quirk-mecanism-as-suggested-by-david.patch
+gregkh-usb-usb-implement-support-for-split-endian-ohci.patch
+gregkh-usb-usb-implement-support-for-ehci-with-big-endian-mmio.patch
+gregkh-usb-usb-linux-usb_ch9.h-becomes-linux-usb-ch9.h.patch
+gregkh-usb-usb-define-usb_class_misc-in-linux-usb-ch9.h.patch
+gregkh-usb-usb-remove-unneeded-void-casts-in-idmouse.c.patch
+gregkh-usb-usb-usbtouchscreen-make-itm-screens-report-btn_touch-as-zero-when-not-touched.patch
+gregkh-usb-usb-mutexification-of-rio500.patch
+gregkh-usb-usb-devio.c-add-missing-init_list_head.patch
+gregkh-usb-usb-indicate-active-altsetting-in-proc-bus-usb-devices-file.patch
+gregkh-usb-usbcore-remove-unneeded-error-check.patch
+gregkh-usb-usb-ethernet-gadget-interop-with-mcci-windows-driver.patch
+gregkh-usb-rndis_host-learns-activesync-basics.patch
+gregkh-usb-ohci-rework-bus-glue-integration-to-allow-several-at-once.patch
+gregkh-usb-ohci-add-support-for-ohci-controller-on-the-of_platform-bus.patch
+gregkh-usb-usb-serial-add-dynamic-id-support-to-usb-serial-core.patch
+gregkh-usb-usb-serial-add-driver-pointer-to-all-usb-serial-drivers.patch
+gregkh-usb-usb-bugfix-for-aircable-add-module-and-name-to-usb_serial_driver.patch
USB tree updates
+revert-gregkh-usb-usb-implement-support-for-split-endian-ohci.patch
+revert-gregkh-usb-usb-implement-support-for-ehci-with-big-endian-mmio.patch
+revert-gregkh-usb-ohci-add-support-for-ohci-controller-on-the-of_platform-bus.patch
Remove a few things from it.
+usb-interrupt-endpoint-support-for-keyspan-usb-to-serial.patch
USB fix
-x86_64-mm-defconfig-update.patch
-x86_64-mm-i386-defconfig-update.patch
Dropped due to rejects
-convert-i386-pda-code-to-use-%fs-fixes.patch
Folded into convert-i386-pda-code-to-use-%fs.patch
+convert-i386-pda-code-to-use-%fs-ptrace-make-putgetreg-work-again-for-gs-and-fs.patch
x86 fix
-add-memcpy_uncached_read-fix.patch
-add-memcpy_uncached_read-tidy.patch
Folded into add-memcpy_uncached_read.patch
+paravirt-page-allocation-hooks-for-vmi-backend.patch
+paravirt-paravirt-cpu-hypercall-batching-mode.patch
+paravirt-iopl-handling-for-paravirt-guests.patch
+paravirt-smp-boot-hook-for-paravirt.patch
+paravirt-vmi-backend-for-paravirt-ops.patch
+paravirt-vmi-timer-patches.patch
+i386-cpu-hotplug-smpboot-misc-modpost-warning-fixes.patch
+convert-some-functions-to-__init-to-avoid-modpost-warnings.patch
+i386-move-startup_32-in-texthead-section.patch
+break-init-in-two-parts-to-avoid-modpost-warnings.patch
+i386-fix-memory-hotplug-related-modpost-generated-warning.patch
+arch-i386-kernel-cpu-mcheck-mcec-should-include-asm-mceh.patch
+add-i386-idle-notifier-take-3.patch
+add-i386-idle-notifier-take-3-fix.patch
+sched-improve-sched_clock-on-i686.patch
+sched-improve-sched_clock-on-i686-fix.patch
+x86-64-system-crashes-when-no-memory-populating-node-0.patch
+mmconfig-fix-x86_64-ioremap-base_address.patch
+romsignature-checksum-cleanup.patch
+mm-set-hashdist_default-to-1-for-x86_64-numa.patch
+i386-restore-config_physical_start-option.patch
+i386-make-apic-probe-function-non-init.patch
+modpost-add-more-symbols-to-whitelist-pattern2.patch
+modpost-whitelist-reference-to-more-symbols-pattern-3.patch
x86/x86_64 updates
-virtual-memmap-on-sparsemem-v3-map-and-unmap.patch
-virtual-memmap-on-sparsemem-v3-map-and-unmap-fix.patch
-virtual-memmap-on-sparsemem-v3-map-and-unmap-fix-2.patch
-virtual-memmap-on-sparsemem-v3-map-and-unmap-fix-3.patch
-virtual-memmap-on-sparsemem-v3-generic-virtual.patch
-virtual-memmap-on-sparsemem-v3-generic-virtual-fix.patch
-virtual-memmap-on-sparsemem-v3-static-virtual.patch
-virtual-memmap-on-sparsemem-v3-static-virtual-update.patch
-virtual-memmap-on-sparsemem-v3-ia64-support.patch
-virtual-memmap-on-sparsemem-v3-ia64-support-update.patch
Dropped
+lumpy-reclaim-cleanup.patch
Clean up lumpy reclaim
-nfs-fix-nr_file_dirty-underflow.patch
-nfs-fix-nr_file_dirty-underflow-tidy.patch
Dropped (old)
+avoid-excessive-sorting-of-early_node_map.patch
+avoid-excessive-sorting-of-early_node_map-tidy.patch
+proc-zoneinfo-fix-vm-stats-display.patch
MM updates
+make-reading-proc-sys-kernel-cap-bould-not-require.patch
/proc permissions fix
+bluetooth-blacklist-lenovo-r60e.patch
bluetooth driver fix
-vmscanc-account-for-memory-already-freed-in-seeking-to.patch
Dropped
+pm-change-code-ordering-in-mainc.patch
+swsusp-change-code-ordering-in-diskc.patch
+swsusp-change-code-ordering-in-userc.patch
+swsusp-change-code-ordering-in-userc-sanity.patch
+swsusp-change-pm_ops-handling-by-userland-interface.patch
swsusp updates
+drivers-add-lcd-support-update-9.patch
More work on the LCD driver
-parse-boot-parameter-error.patch
Dropped
+toshiba-tc86c001-ide-driver-take-2-fix.patch
+toshiba-tc86c001-ide-driver-take-2-fix-2.patch
Fix toshiba-tc86c001-ide-driver-take-2.patch
+disable-init-initramfsc-updated-fix.patch
Fix disable-init-initramfsc-updated.patch
+schedule_on_each_cpu-use-preempt_disable.patch
+struct-vfsmount-keep-mnt_count-mnt_expiry_mark-away-from-mnt_flags.patch
+avoid-one-conditional-branch-in-touch_atime.patch
+mxser-remove-ambiguous-redefinition-of-init_work.patch
+make-drivers-char-mxser_newcmxser_hangup-static.patch
+char-isicom-fix-locking-in-isr.patch
+char-isicom-augment-card_reset.patch
+char-isicom-check-card-state-in-isr.patch
+char-isicom-support-higher-rates.patch
+char-isicom-correct-probing-removing.patch
+char-tty_wakeup-cleanup.patch
+kill_pid_info-kill-acquired_tasklist_lock.patch
+lockdep-also-check-for-freed-locks-in-kmem_cache_free.patch
+lockdep-more-unlock-on-error-fixes.patch
+lockdep-more-unlock-on-error-fixes-fix.patch
+lockdep-add-graph-depth-information-to-proc-lockdep.patch
+igrab-should-check-for-i_clear.patch
+consolidate-line-discipline-number-definitions-v2.patch
+consolidate-line-discipline-number-definitions-v2-sparc-fix.patch
+consolidate-line-discipline-number-definitions-v2-fix-2.patch
+scrub-non-__glibc__-checks-in-linux-socketh-and-linux-stath.patch
+rewrite-unnecessary-duplicated-code-to-use-field_sizeof.patch
+drivers-char-vc_screenc-proper-prototypes.patch
+transform-kmem_cache_allocmemset0-kmem_cache_zalloc.patch
+spi-kconfig-fix.patch
+spi-controller-driver-for-omap-microwire.patch
+spi-controller-driver-for-omap-microwire-tidy.patch
+serial-serial_txx9-driver-update.patch
+relay-add-cpu-hotplug-support.patch
+ext2-skip-pages-past-number-of-blocks-in-ext2_find_entry.patch
+char-mxser_new-mark-init-functions.patch
+char-mxser_new-remove-useless-spinlock.patch
+char-serial167-cleanup.patch
+char-n_r3964-cleanup.patch
+consolidate-default-sched_clock.patch
+pktcdvd-cleanup.patch
+pnp-export-pnp_bus_type.patch
Misc updates
+vmi-versus-hrtimers.patch
Fix VMI patches for hrtimer patches
+clockevents-i386-drivers-high-res-timers-fix-apic-event-broadcasting-code.patch
Fix clockevents-i386-drivers.patch
+high-res-timers-core-do-itimer-rearming-in-process-context-fix2.patch
+high-res-timers-core-hrtimers-add-state-tracking-fix.patch
+high-res-timers-core-hrtimers-add-state-tracking-fix-fix.patch
Fix high-res-timers-core.patch
+debugging-feature-proc-timer_list-warning-fix.patch
Fix debugging-feature-proc-timer_list.patch
+debugging-feature-sysrq-q-to-print-timers.patch
Enhance debugging-feature-proc-timer_list.patch
+generic-vsyscall-gtod-support-for-generic_time.patch
+generic-vsyscall-gtod-support-for-generic_time-tidy.patch
+time-x86_64-hpet_address-cleanup.patch
+time-x86_64-split-x86_64-kernel-timec-up.patch
+time-x86_64-split-x86_64-kernel-timec-up-tidy.patch
+time-x86_64-split-x86_64-kernel-timec-up-fix.patch
+time-x86_64-convert-x86_64-to-use-generic_time.patch
+time-x86_64-convert-x86_64-to-use-generic_time-fix.patch
+time-x86_64-convert-x86_64-to-use-generic_time-tidy.patch
+time-x86_64-re-enable-vsyscall-support-for-x86_64.patch
+time-x86_64-re-enable-vsyscall-support-for-x86_64-tidy.patch
Use generic time on x86_64
-let-warn_on-output-the-condition.patch
Dropped
+gpio-core.patch
+omap-gpio-wrappers.patch
+omap-gpio-wrappers-tidy.patch
+at91-gpio-wrappers.patch
+at91-gpio-wrappers-tidy.patch
+pxa-gpio-wrappers.patch
+sa1100-gpio-wrappers.patch
+s3c2410-gpio-wrappers.patch
Generic GPIO driver core and clients
+drivers-isdn-hisax-proper-prototypes.patch
ISDN cleanup
+reiser4-test_clear_page_dirty.patch
reiser4 fix
+fbdev-driver-for-s3-trio-virge-cleanups.patch
Fix fbdev-driver-for-s3-trio-virge.patch
+oss-replace-kmallocmemset-combos-with-kzalloc.patch
Cleanup
-pidhash-temporary-debug-checks.patch
Dropped
+shrink_slab-handle-bad-shrinkers.patch
slab debug
All 755 patches:
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc2/2.6.20-rc2-mm1/patch-list
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
This patch fixes the following compile error:
<-- snip -->
...
LD drivers/media/video/built-in.o
drivers/media/video/saa7134/built-in.o:(.data+0x85ec): multiple definition of `ir_rc5_remote_gap'
drivers/media/video/bt8xx/built-in.o:(.data+0x734c): first defined here
drivers/media/video/saa7134/built-in.o:(.data+0x85f0): multiple definition of `ir_rc5_key_timeout'
drivers/media/video/bt8xx/built-in.o:(.data+0x7350): first defined here
make[4]: *** [drivers/media/video/built-in.o] Error 1
<-- snip -->
Since this variables were needlessly global, this patch implements the
trivial fix of making them static.
Signed-off-by: Adrian Bunk <bu...@stusta.de>
---
drivers/media/video/bt8xx/bttv-input.c | 4 ++--
drivers/media/video/saa7134/saa7134-input.c | 4 ++--
include/media/ir-common.h | 3 ---
3 files changed, 4 insertions(+), 7 deletions(-)
--- linux-2.6.20-rc2-mm1/include/media/ir-common.h.old 2006-12-28 12:54:05.000000000 +0100
+++ linux-2.6.20-rc2-mm1/include/media/ir-common.h 2006-12-28 12:54:39.000000000 +0100
@@ -36,9 +36,6 @@
#define IR_KEYCODE(tab,code) (((unsigned)code < IR_KEYTAB_SIZE) \
? tab[code] : KEY_RESERVED)
-extern int ir_rc5_remote_gap;
-extern int ir_rc5_key_timeout;
-
#define RC5_START(x) (((x)>>12)&3)
#define RC5_TOGGLE(x) (((x)>>11)&1)
#define RC5_ADDR(x) (((x)>>6)&31)
--- linux-2.6.20-rc2-mm1/drivers/media/video/saa7134/saa7134-input.c.old 2006-12-28 12:54:48.000000000 +0100
+++ linux-2.6.20-rc2-mm1/drivers/media/video/saa7134/saa7134-input.c 2006-12-28 12:55:00.000000000 +0100
@@ -41,9 +41,9 @@
module_param(pinnacle_remote, int, 0644); /* Choose Pinnacle PCTV remote */
MODULE_PARM_DESC(pinnacle_remote, "Specify Pinnacle PCTV remote: 0=coloured, 1=grey (defaults to 0)");
-int ir_rc5_remote_gap = 885;
+static int ir_rc5_remote_gap = 885;
module_param(ir_rc5_remote_gap, int, 0644);
-int ir_rc5_key_timeout = 115;
+static int ir_rc5_key_timeout = 115;
module_param(ir_rc5_key_timeout, int, 0644);
#define dprintk(fmt, arg...) if (ir_debug) \
--- linux-2.6.20-rc2-mm1/drivers/media/video/bt8xx/bttv-input.c.old 2006-12-28 12:55:08.000000000 +0100
+++ linux-2.6.20-rc2-mm1/drivers/media/video/bt8xx/bttv-input.c 2006-12-28 12:55:17.000000000 +0100
@@ -36,9 +36,9 @@
static int repeat_period = 33;
module_param(repeat_period, int, 0644);
-int ir_rc5_remote_gap = 885;
+static int ir_rc5_remote_gap = 885;
module_param(ir_rc5_remote_gap, int, 0644);
-int ir_rc5_key_timeout = 200;
+static int ir_rc5_key_timeout = 200;
module_param(ir_rc5_key_timeout, int, 0644);
#define DEVNAME "bttv-input"
Hello,
got this with 2.6.20-rc2-mm1, reverting
gregkh-driver-driver-core-fix-race-in-sysfs-between-sysfs_remove_file-and-read-write.patch
made it disappear.
=============================================
[ INFO: possible recursive locking detected ]
2.6.20-rc2-mm1 #51
---------------------------------------------
init/324 is trying to acquire lock:
(&sysfs_inode_imutex_key){--..}, at: [<c02b2c79>] mutex_lock+0x1c/0x1f
but task is already holding lock:
(&sysfs_inode_imutex_key){--..}, at: [<c02b2c79>] mutex_lock+0x1c/0x1f
other info that might help us debug this:
2 locks held by init/324:
#0: (tty_mutex){--..}, at: [<c02b2c79>] mutex_lock+0x1c/0x1f
#1: (&sysfs_inode_imutex_key){--..}, at: [<c02b2c79>] mutex_lock+0x1c/0x1f
stack backtrace:
[<c0104ea7>] show_trace_log_lvl+0x1a/0x2f
[<c010557a>] show_trace+0x12/0x14
[<c010562c>] dump_stack+0x16/0x18
[<c01314ad>] __lock_acquire+0x116/0xb33
[<c0132283>] lock_acquire+0x56/0x6f
[<c02b2ad3>] __mutex_lock_slowpath+0xdc/0x266
[<c02b2c79>] mutex_lock+0x1c/0x1f
[<c018b293>] sysfs_drop_dentry+0xb7/0x12b
[<c018b3d6>] sysfs_hash_and_remove+0x90/0x14a
[<c018b985>] sysfs_remove_file+0xd/0xf
[<c0235944>] device_remove_file+0x1f/0x2a
[<c02359bb>] device_del+0x31/0x1c4
[<c0235b59>] device_unregister+0xb/0x15
[<c0235bee>] device_destroy+0x8b/0x91
[<c022d7fc>] vcs_remove_sysfs+0x1a/0x36
[<c023254f>] con_close+0x4c/0x60
[<c0226b79>] release_dev+0x221/0x62a
[<c0226f94>] tty_release+0x12/0x1c
[<c015baf1>] __fput+0xb9/0x177
[<c015bc83>] fput+0x31/0x35
[<c015951c>] filp_close+0x54/0x5c
[<c011ac05>] put_files_struct+0x7c/0xb9
[<c011bcef>] do_exit+0x219/0x72f
[<c011c275>] sys_exit_group+0x0/0x11
[<c011c284>] sys_exit_group+0xf/0x11
[<c0103ed2>] sysenter_past_esp+0x5f/0x99
=======================
--
laurent
As already said:
- merges infrastructure without any users (the corresponding x86_64 code
is now merged and bloating the kernel unused for nearly one year)
- the planned user (perfmon) doesn't use the EXPORT_SYMBOL's that will
bloat the kernel even if the code using this infrastructure will ever
be merged
Let's either get the user into -mm, too, or drop the
infrastructure on all architectures until it's actually used.
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
This patch makes two needlessly global functions static.
Signed-off-by: Adrian Bunk <bu...@stusta.de>
---
drivers/mtd/ubi/vtbl.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
--- linux-2.6.20-rc2-mm1/drivers/mtd/ubi/vtbl.c.old 2006-12-29 01:52:47.000000000 +0100
+++ linux-2.6.20-rc2-mm1/drivers/mtd/ubi/vtbl.c 2006-12-29 01:53:30.000000000 +0100
@@ -178,8 +178,8 @@
return 0;
}
-const struct ubi_vtbl_vtr *get_ivol_vtr(const struct ubi_info *ubi,
- int vol_id);
+static const struct ubi_vtbl_vtr *get_ivol_vtr(const struct ubi_info *ubi,
+ int vol_id);
const struct ubi_vtbl_vtr *ubi_vtbl_get_vtr(const struct ubi_info *ubi,
int vol_id)
@@ -237,7 +237,7 @@
static void __exit free_volume_info(const struct ubi_info *ubi);
-void __init init_ivols(struct ubi_info *ubi);
+static void __init init_ivols(struct ubi_info *ubi);
int __init ubi_vtbl_init_scan(struct ubi_info *ubi, struct ubi_scan_info *si)
{
@@ -778,7 +778,7 @@
* This function initializes information about internal UBI volumes. This
* information is not stored on flash but instead, is kept only in RAM.
*/
-void __init init_ivols(struct ubi_info *ubi)
+static void __init init_ivols(struct ubi_info *ubi)
{
struct ubi_vtbl_vtr *vtr;
struct ubi_vtbl_info *vtbl = ubi->vtbl;
@@ -818,8 +818,8 @@
* This function returns a pointer to the volume tabe record. The @vol_id must
* be correct.
*/
-const struct ubi_vtbl_vtr *get_ivol_vtr(const struct ubi_info *ubi,
- int vol_id)
+static const struct ubi_vtbl_vtr *get_ivol_vtr(const struct ubi_info *ubi,
+ int vol_id)
{
ubi_assert(ubi_is_ivol(vol_id));
return &ubi->vtbl->ivol_vtrs[vol_id - UBI_INTERNAL_VOL_START];
usbvision_rvfree() can now become static.
Signed-off-by: Adrian Bunk <bu...@stusta.de>
--- linux-2.6.20-rc2-mm1/drivers/media/video/usbvision/usbvision.h.old 2006-12-29 01:44:37.000000000 +0100
+++ linux-2.6.20-rc2-mm1/drivers/media/video/usbvision/usbvision.h 2006-12-29 01:44:43.000000000 +0100
@@ -486,7 +486,6 @@
void call_i2c_clients(struct usb_usbvision *usbvision, unsigned int cmd,void *arg);
/* defined in usbvision-core.c */
-void usbvision_rvfree(void *mem, unsigned long size);
int usbvision_read_reg(struct usb_usbvision *usbvision, unsigned char reg);
int usbvision_write_reg(struct usb_usbvision *usbvision, unsigned char reg,
unsigned char value);
--- linux-2.6.20-rc2-mm1/drivers/media/video/usbvision/usbvision-core.c.old 2006-12-29 01:44:50.000000000 +0100
+++ linux-2.6.20-rc2-mm1/drivers/media/video/usbvision/usbvision-core.c 2006-12-29 01:44:59.000000000 +0100
@@ -139,7 +139,7 @@
return mem;
}
-void usbvision_rvfree(void *mem, unsigned long size)
+static void usbvision_rvfree(void *mem, unsigned long size)
{
unsigned long adr;
This patch makes some needlessly global functions static.
Signed-off-by: Adrian Bunk <bu...@stusta.de>
---
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
--- linux-2.6.20-rc2-mm1/drivers/infiniband/ulp/ipoib/ipoib_cm.c.old 2006-12-29 01:40:17.000000000 +0100
+++ linux-2.6.20-rc2-mm1/drivers/infiniband/ulp/ipoib/ipoib_cm.c 2006-12-29 01:43:22.000000000 +0100
@@ -56,7 +56,8 @@
u32 remote_mtu;
};
-int ipoib_cm_tx_handler(struct ib_cm_id *cm_id, struct ib_cm_event *event);
+static int ipoib_cm_tx_handler(struct ib_cm_id *cm_id,
+ struct ib_cm_event *event);
static void ipoib_cm_dma_unmap_rx(struct ipoib_dev_priv *priv,
dma_addr_t mapping[IPOIB_CM_RX_SG])
@@ -265,7 +266,8 @@
return ret;
}
-int ipoib_cm_rx_handler(struct ib_cm_id *cm_id, struct ib_cm_event *event)
+static int ipoib_cm_rx_handler(struct ib_cm_id *cm_id,
+ struct ib_cm_event *event)
{
struct ipoib_cm_rx *p;
struct ipoib_dev_priv *priv;
@@ -396,7 +398,7 @@
"for buf %d\n", wr_id);
}
-void ipoib_cm_rx_completion(struct ib_cq *cq, void *dev_ptr)
+static void ipoib_cm_rx_completion(struct ib_cq *cq, void *dev_ptr)
{
struct net_device *dev = (struct net_device *) dev_ptr;
struct ipoib_dev_priv *priv = netdev_priv(dev);
@@ -550,7 +552,7 @@
spin_unlock_irqrestore(&priv->tx_lock, flags);
}
-void ipoib_cm_tx_completion(struct ib_cq *cq, void *tx_ptr)
+static void ipoib_cm_tx_completion(struct ib_cq *cq, void *tx_ptr)
{
struct ipoib_cm_tx *tx = tx_ptr;
int n, i;
@@ -768,7 +770,8 @@
return 0;
}
-int ipoib_cm_tx_init(struct ipoib_cm_tx *p, u32 qpn, struct ib_sa_path_rec *pathrec)
+static int ipoib_cm_tx_init(struct ipoib_cm_tx *p, u32 qpn,
+ struct ib_sa_path_rec *pathrec)
{
struct ipoib_dev_priv *priv = netdev_priv(p->dev);
int ret;
@@ -841,7 +844,7 @@
return ret;
}
-void ipoib_cm_tx_destroy(struct ipoib_cm_tx *p)
+static void ipoib_cm_tx_destroy(struct ipoib_cm_tx *p)
{
struct ipoib_dev_priv *priv = netdev_priv(p->dev);
struct ipoib_tx_buf *tx_req;
@@ -875,7 +878,8 @@
kfree(p);
}
-int ipoib_cm_tx_handler(struct ib_cm_id *cm_id, struct ib_cm_event *event)
+static int ipoib_cm_tx_handler(struct ib_cm_id *cm_id,
+ struct ib_cm_event *event)
{
struct ipoib_cm_tx *tx = cm_id->context;
struct ipoib_dev_priv *priv = netdev_priv(tx->dev);
@@ -960,7 +964,7 @@
}
}
-void ipoib_cm_tx_start(struct work_struct *work)
+static void ipoib_cm_tx_start(struct work_struct *work)
{
struct ipoib_dev_priv *priv =
container_of(work, struct ipoib_dev_priv, cm.start_task);
@@ -1003,7 +1007,7 @@
spin_unlock_irqrestore(&priv->tx_lock, flags);
}
-void ipoib_cm_tx_reap(struct work_struct *work)
+static void ipoib_cm_tx_reap(struct work_struct *work)
{
struct ipoib_dev_priv *priv =
container_of(work, struct ipoib_dev_priv, cm.reap_task);
Thanks, I'll put this in my tree.
--
MST
This is due to sysfs_hash_and_remove() holding dir->d_inode->i_mutex
before calling sysfs_drop_dentry() which calls orphan_all_buffers()
which in turn takes node->i_mutex.
The following patch solves the problem by defering the buffers orphaning
after the dir->d_inode->imutex is released. Not sure it's the best
solution though, Greg?
Regards,
Frederik
Signed-off-by: Frederik Deweerdt <frederik...@gmail.com>
diff --git a/fs/sysfs/inode.c b/fs/sysfs/inode.c
index 8c533cb..7cac0b6 100644
--- a/fs/sysfs/inode.c
+++ b/fs/sysfs/inode.c
@@ -230,10 +230,10 @@ static inline void orphan_all_buffers(struct inode *node)
* Unhashes the dentry corresponding to given sysfs_dirent
* Called with parent inode's i_mutex held.
*/
-void sysfs_drop_dentry(struct sysfs_dirent * sd, struct dentry * parent)
+struct inode *sysfs_drop_dentry(struct sysfs_dirent * sd, struct dentry * parent)
{
struct dentry * dentry = sd->s_dentry;
- struct inode *inode;
+ struct inode *inode = NULL;
if (dentry) {
spin_lock(&dcache_lock);
@@ -248,19 +248,19 @@ void sysfs_drop_dentry(struct sysfs_dirent * sd, struct dentry * parent)
spin_unlock(&dentry->d_lock);
spin_unlock(&dcache_lock);
simple_unlink(parent->d_inode, dentry);
- orphan_all_buffers(inode);
- iput(inode);
} else {
spin_unlock(&dentry->d_lock);
spin_unlock(&dcache_lock);
}
}
+ return inode;
}
int sysfs_hash_and_remove(struct dentry * dir, const char * name)
{
struct sysfs_dirent * sd;
struct sysfs_dirent * parent_sd;
+ struct inode *inode;
int found = 0;
if (!dir)
@@ -277,7 +277,7 @@ int sysfs_hash_and_remove(struct dentry * dir, const char * name)
continue;
if (!strcmp(sysfs_get_name(sd), name)) {
list_del_init(&sd->s_sibling);
- sysfs_drop_dentry(sd, dir);
+ inode = sysfs_drop_dentry(sd, dir);
sysfs_put(sd);
found = 1;
break;
@@ -285,5 +285,10 @@ int sysfs_hash_and_remove(struct dentry * dir, const char * name)
}
mutex_unlock(&dir->d_inode->i_mutex);
+ if (found == 1 && inode) {
+ orphan_all_buffers(inode);
+ iput(inode);
+ }
+
return found ? 0 : -ENOENT;
}
diff --git a/fs/sysfs/sysfs.h b/fs/sysfs/sysfs.h
index 5100a12..ef9d217 100644
--- a/fs/sysfs/sysfs.h
+++ b/fs/sysfs/sysfs.h
@@ -17,7 +17,7 @@ extern int sysfs_create_subdir(struct kobject *, const char *, struct dentry **)
extern void sysfs_remove_subdir(struct dentry *);
extern const unsigned char * sysfs_get_name(struct sysfs_dirent *sd);
-extern void sysfs_drop_dentry(struct sysfs_dirent *sd, struct dentry *parent);
+extern struct inode * sysfs_drop_dentry(struct sysfs_dirent *sd, struct dentry *parent);
extern int sysfs_setattr(struct dentry *dentry, struct iattr *iattr);
extern struct rw_semaphore sysfs_rename_sem;
The kmap_atomic-debugging patch checks twice for (type !=
KM_SKB_SUNRPC_DATA). The right check would be to look for
KM_SKB_DATA_SOFTIRQ, as added by the following patch. I've read the
mail, in which you mentioned that you spotted a copy-n-paste error in
kmap_atomic, I suppose that you refered to this, but just in case...
Regards,
Frederik
Signed-off-by: Frederik Deweerdt <frederik...@gmail.com>
diff --git a/arch/i386/mm/highmem.c b/arch/i386/mm/highmem.c
index 1344c98..51e4205 100644
--- a/arch/i386/mm/highmem.c
+++ b/arch/i386/mm/highmem.c
@@ -46,7 +46,7 @@ void *kmap_atomic(struct page *page, enum km_type type)
if (type != KM_IRQ0 && type != KM_IRQ1 &&
type != KM_SOFTIRQ0 && type != KM_SOFTIRQ1 &&
type != KM_SKB_SUNRPC_DATA &&
- type != KM_SKB_SUNRPC_DATA) {
+ type != KM_SKB_DATA_SOFTIRQ) {
WARN_ON(1);
warn_count--;
Tested, it does work: the INFO about "possible recursive locking" went away.
Thanks
~~
laurent
Maneesh and Oliver, any objections to this patch?
thanks,
greg k-h
Regards,
Frederik