2006-12-28 10:42:47

by Andrew Morton

[permalink] [raw]
Subject: 2.6.20-rc2-mm1


ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc2/2.6.20-rc2-mm1/


- 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 [email protected]

- 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



2006-12-28 15:26:07

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] DVB: fix compile error

On Thu, Dec 28, 2006 at 02:42:37AM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.20-rc1-mm1:
>...
> git-dvb.patch
>...
> git trees
>...


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 <[email protected]>

---

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"

2006-12-28 21:25:23

by Laurent Riffard

[permalink] [raw]
Subject: Re: 2.6.20-rc2-mm1: INFO: possible recursive locking detected in con_close

Le 28.12.2006 11:42, Andrew Morton a ?crit :
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc2/2.6.20-rc2-mm1/

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

2006-12-29 00:36:40

by Adrian Bunk

[permalink] [raw]
Subject: 2.6.20-rc2-mm1: i386-idle-notifier again

On Thu, Dec 28, 2006 at 02:42:37AM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.20-rc1-mm1:
>...
> +add-i386-idle-notifier-take-3.patch
>...
> x86/x86_64 updates
>...

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

2006-12-29 02:10:09

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] infiniband/ulp/ipoib/ipoib_cm.c: make functions static

On Thu, Dec 28, 2006 at 02:42:37AM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.20-rc1-mm1:
>...
> git-infiniband.patch
>...
> git trees
>...


This patch makes some needlessly global functions static.

Signed-off-by: Adrian Bunk <[email protected]>

---

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);

2006-12-29 02:10:15

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] make usbvision_rvfree() static

On Thu, Dec 28, 2006 at 02:42:37AM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.20-rc1-mm1:
>...
> git-dvb.patch
>...
> git trees
>...


usbvision_rvfree() can now become static.

Signed-off-by: Adrian Bunk <[email protected]>

--- 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;


2006-12-29 02:10:38

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] drivers/mtd/ubi/vtbl.c: make 2 functions static

On Thu, Dec 28, 2006 at 02:42:37AM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.20-rc1-mm1:
>...
> git-ubi.patch
>...
> git trees
>...

This patch makes two needlessly global functions static.

Signed-off-by: Adrian Bunk <[email protected]>

---

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];

2006-12-29 05:39:24

by Michael S. Tsirkin

[permalink] [raw]
Subject: Re: [-mm patch] infiniband/ulp/ipoib/ipoib_cm.c: make functions static

> Quoting Adrian Bunk <[email protected]>:
> Subject: [-mm patch] infiniband/ulp/ipoib/ipoib_cm.c: make functions static
>
> On Thu, Dec 28, 2006 at 02:42:37AM -0800, Andrew Morton wrote:
> >...
> > Changes since 2.6.20-rc1-mm1:
> >...
> > git-infiniband.patch
> >...
> > git trees
> >...
>
>
> This patch makes some needlessly global functions static.
>
> Signed-off-by: Adrian Bunk <[email protected]>

Thanks, I'll put this in my tree.

--
MST

2006-12-29 11:02:30

by Frederik Deweerdt

[permalink] [raw]
Subject: Re: 2.6.20-rc2-mm1: INFO: possible recursive locking detected in con_close

On Thu, Dec 28, 2006 at 10:25:12PM +0100, Laurent Riffard wrote:
> Le 28.12.2006 11:42, Andrew Morton a ?crit :
> >ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc2/2.6.20-rc2-mm1/
>
> 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.
>
Hi,

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 <[email protected]>

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;

2006-12-29 11:07:08

by Frederik Deweerdt

[permalink] [raw]
Subject: [-mm patch] add KM_SKB_DATA_SOFTIRQ to kmap_atomic debugging

On Thu, Dec 28, 2006 at 02:42:37AM -0800, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc2/2.6.20-rc2-mm1/
>
Andrew,

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 <[email protected]>

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--;
}

2006-12-29 13:06:51

by Laurent Riffard

[permalink] [raw]
Subject: Re: 2.6.20-rc2-mm1: INFO: possible recursive locking detected in con_close

Le 29.12.2006 12:00, Frederik Deweerdt a ecrit :
> On Thu, Dec 28, 2006 at 10:25:12PM +0100, Laurent Riffard wrote:
>> Le 28.12.2006 11:42, Andrew Morton a ecrit :
>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc2/2.6.20-rc2-mm1/
>> 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.
>>
> Hi,
>
> 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

Tested, it does work: the INFO about "possible recursive locking" went away.

Thanks
~~
laurent


>
> Signed-off-by: Frederik Deweerdt <[email protected]>
>
> 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;

2007-01-05 01:10:35

by Greg KH

[permalink] [raw]
Subject: Re: 2.6.20-rc2-mm1: INFO: possible recursive locking detected in con_close

On Fri, Dec 29, 2006 at 11:00:41AM +0000, Frederik Deweerdt wrote:
> On Thu, Dec 28, 2006 at 10:25:12PM +0100, Laurent Riffard wrote:
> > Le 28.12.2006 11:42, Andrew Morton a ?crit :
> > >ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc2/2.6.20-rc2-mm1/
> >
> > 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.
> >
> Hi,
>
> 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 <[email protected]>

Maneesh and Oliver, any objections to this patch?

thanks,

greg k-h


>
> 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;

2007-01-05 10:59:20

by Frederik Deweerdt

[permalink] [raw]
Subject: Re: 2.6.20-rc2-mm1: INFO: possible recursive locking detected in con_close

On Thu, Jan 04, 2007 at 05:10:05PM -0800, Greg KH wrote:
> On Fri, Dec 29, 2006 at 11:00:41AM +0000, Frederik Deweerdt wrote:
> > On Thu, Dec 28, 2006 at 10:25:12PM +0100, Laurent Riffard wrote:
> > > Le 28.12.2006 11:42, Andrew Morton a ?crit :
> > > >ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc2/2.6.20-rc2-mm1/
> > >
> > > 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.
> > >
> > Hi,
> >
> > 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 <[email protected]>
>
> Maneesh and Oliver, any objections to this patch?
>
Actually, there's a problem with the patch: inode is not initialized in
sysfs_hash_and_remove, I'll repost a patch against 2.6.20-rc3-mm1.

Regards,
Frederik