Skip to contentSkip to conversation

2.6.17-rc2-mm1

PATCH In review Andrew Morton 19 participants 46 messages Apr 27, 2006 – May 1, 2006

Subsystems (8)
lore
Share & tools
lore
#0 lore raw

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

- It took six hours work to get this release building and linking in just a basic fashion on eight-odd architectures. It's getting out of control.

The acphphp driver is still broken and v4l and memory hotplug are, I suspect, only hanging in there by the skin of their teeth.

Could patch submitters _please_ be a lot more careful about getting the Kconfig correct, testing various Kconfig combinations (yes sometimes people will want to disable your lovely new feature) and just generally think about these things a bit harder? It isn't rocket science.

- Added the GFS tree to the -mm lineup as git-gfs2.patch . The DLM patches were consequently dropped.

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

Changes since 2.6.17-rc1-mm3:

origin.patch
git-acpi.patch
git-agpgart.patch
git-alsa.patch
git-arm.patch
git-cfq.patch
git-dvb.patch
git-gfs2.patch
git-ieee1394.patch
git-infiniband.patch
git-input.patch
git-intelfb.patch
git-libata-all.patch
git-mmc.patch
git-mtd.patch
git-netdev-all.patch
git-nfs.patch
git-ocfs2.patch
git-powerpc.patch
git-pcmcia.patch
git-scsi-misc.patch
git-scsi-rc-fixes.patch
git-scsi-target.patch
git-watchdog.patch
git-xfs.patch
git-cryptodev.patch
git-viro-bird-m32r.patch
git-viro-bird-m68k.patch
git-viro-bird-frv.patch
git-viro-bird-upf.patch
git-viro-bird-volatile.patch

git trees

-uml-make-64-bit-cow-files-compatible-with-32-bit-ones.patch -task-make-task-list-manipulations-rcu-safe.patch -for_each_possible_cpu-x86_64.patch
-uml-madv_remove-fixes.patch -m41t00-fix-bitmasks-when-writing-to-chip.patch -swsusp-prevent-possible-image-corruption-on-resume.patch -msi-k8t-neo2-fir-onboardsound-and-additional-soundcard.patch -sound-fix-hang-in-mpu401_uartc.patch -sound-fix-hang-in-mpu401_uartc-tidy.patch -for_each_possible_cpu-for-arm.patch -block-i-o-schedulers-document-runtime-selection.patch -drivers-char-drm-drm_memoryc-possible-cleanups.patch -drm-fix-further-issues-in-drivers-char-drm-via_irqc.patch -sbp2-consolidate-workarounds.patch -sbp2-add-read_capacity-workaround-for-ipod.patch -sbp2-make-tsb42aa9-workaround-specific-to-momobay-cx-1.patch -sbp2-add-ability-to-override-hardwired-blacklist.patch -mtd-improve-parameter-parsing-for-block2mtd.patch -mtd-improve-parameter-parsing-for-block2mtd-fix.patch -bcm43xx-sysfs-code-cleanup.patch -bcm43xx-fix-pctl-slowclock-limit-calculation.patch -e1000-fix-media_type-phy_type-thinko.patch -unaligned-access-in-sk_run_filter.patch -nfs-make-2-functions-static.patch -remove-needless-check-in-nfs_opendir.patch -fix-nfs-proc_fs=n-compile-error.patch -nfssunrpc-fix-compiler-warnings-if-config_proc_fs-config_sysctl-are-unset.patch -nfs_show_stats-for_each_possible_cpu-not-nr_cpus.patch -powerpc-pseries-bugfix-balance-calls-to-pci_device_put.patch -powerpc-pseries-clear-pci-failure-counter-if-no-new-failures.patch -serial-fix-uart_bug_txen-test.patch -git-scsi-misc-scsi_kmap_atomic_sg-warning-fix.patch -megaraid-unused-variable.patch -scsi-megaraid-megaraid_mmc-fix-a-null-pointer-dereference.patch -overrun-in-drivers-scsi-sim710c.patch -aic7xxx-ahc_pci_write_config-fix.patch -qla2xxx-only-free_irq-after-request_irq-succeeds.patch -git-splice-fixup.patch
-ftdi_sio-adds-support-for-iplus-device.patch -ipw2200-config_ipw_qos-to-config_ipw2200_qos.patch -softmac-uses-wiress-ext.patch
-bcm43xx_phyc-fix-a-memory-leak.patch -orinoco-remove-useless-cis-validation.patch -orinoco-remove-pcmcia-audio-support-its-useless-for-wireless-cards.patch -orinoco-remove-underscores-from-little-endian-field-names.patch -orinoco-fix-truncating-commsquality-rid-with-the-latest-symbol-firmware.patch -orinoco-remove-tracing-code-its-unused.patch -orinoco-remove-debug-buffer-code-and-userspace-include-support.patch -orinoco-symbol-card-supported-by-spectrum_cs-is-la4137-not-la4100.patch -orinoco-optimize-tx-exception-handling-in-orinoco.patch -orinoco-orinoco_xmit-should-only-return-valid-symbolic-constants.patch -orinoco-replace-hermes_write_words-with-hermes_write_bytes.patch -orinoco-dont-use-any-padding-for-tx-frames.patch -orinoco-refactor-and-clean-up-tx-error-handling.patch -orinoco-simplify-8023-encapsulation-code.patch -orinoco-fix-bap0-offset-error-after-several-days-of-operation.patch -orinoco-delay-fid-allocation-after-firmware-initialization.patch -orinoco_pci-disable-device-and-free-irq-when-suspending.patch -orinoco_pci-use-pci_iomap-for-resources.patch -orinoco-support-pci-suspend-resume-for-nortel-plx-and-tmd-adaptors.patch -orinoco-reduce-differences-between-pci-drivers-create-orinoco_pcih.patch -orinoco-further-comment-cleanup-in-the-pci-drivers.patch -orinoco-bump-version-to-015.patch -bcm43-wireless-fix-printk-format-warnings.patch -bcm43-fix-config-menu-alignment.patch -x86_64-mm-kdump-trigger-points.patch -x86_64-mm-increase-nodemap.patch
-x86_64-mm-new-syscalls.patch
-x86_64-mm-move-doublefault.patch
-x86_64-mm-alternatives-fix.patch
-arm-add_memory-build-fix.patch
-memory_hotplugh-cleanup.patch -mm-slobc-for_each_possible_cpu-not-nr_cpus.patch -oom-kill-mm-locking-fix.patch -mm-fix-mm_struct-reference-counting-bugs-in-mm-oom_killc.patch -page_allocc-buddy-handling-cleanup.patch -hugetlbfs-add-kconfig-help-text.patch -selinux-fix-mls-compatibility-off-by-one-bug.patch -asm-i386-atomich-local_irq_save-should-be-used-instead-of-local_irq_disable.patch -x86-cpuid-and-msr-notifier-callback-section-mismatches.patch -patch-to-limit-present-cpus-to-fake-cpu-hot-add-testing.patch -enable-sci_emulate-to-manually-simulate-physical-hotplug-testing.patch -drivers-acpi-busc-make-struct-acpi_sci_dir-static.patch -x86_64-use-select-for-gart_iommu-to-enable-agp.patch -x86_64-sparsemem-does-not-need-node_mem_map.patch -m32r-fix-pt_regs-for.patch -m32r-update-include-asm-m32r-semaphoreh.patch -m32r-mappi3-reboot-support.patch -m32r-remove-a-warning-of-m32r_sioc.patch -m32r-update-switch_to-macro-for-tuning.patch -uml-change-sigjmp_buf-to-jmp_buf.patch
-uml-__user-annotations.patch -uml-physical-memory-map-file-fixes.patch -uml-add-missing-__volatile__.patch -fix-file-lookup-without-ref.patch -update-obsolete_oss_driver-schedule-and-dependencies.patch -make-the-oss-sound_via82cxxx-option-available-again.patch -kconfigdebug-set-debug_mutex-to-off-by-default.patch -fs-fix-ocfs2-warning-when-debug_fs-is-not-enabled.patch -voyager-no-need-to-define-bits_per_byte-when-its-already-in-typesh.patch -apm-fix-armada-laptops-again.patch -doc-vm-hugetlbpage-update-2.patch
-ipmi-fix-devinit-placement.patch -config-update-usage-help-info.patch -fix-potential-null-pointer-deref-in-gen_init_cpio.patch -open-ipmi-bt-overflow.patch -parport_pc-fix-section-mismatch-warnings-v2.patch -pnp-fix-two-messages-in-managerc.patch -fix-dependencies-of-hugetlb_page_size_64k.patch -fix-dependencies-of-w1_slave_ds2433_crc.patch -tpm-spacing-cleanups.patch
-tpm-reorganize-sysfs-files.patch
-tpm-chip-struct-update.patch -tpm-return-chip-from-tpm_register_hardware.patch -tpm-command-duration-update.patch
-tpm-new-12-sysfs-files.patch
-tpm-new-12-sysfs-files-fix.patch -tpm-new-12-sysfs-files-fix-fix.patch -tpm-tpm-new-12-sysfs-files-fix-fix-fix.patch -tpm-driver-for-next-generation-tpm-chips.patch -tpm-driver-for-next-generation-tpm-chips-fix.patch -tpm-driver-for-next-generation-tpm-chips-fix-fix.patch -tpm-msecs_to_jiffies-cleanups.patch
-tpm-use-clear_bit.patch
-tpm-use-clear_bit-fix.patch
-tpm-use-clear_bit-fix-fix.patch
-tpm-use-clear_bit-fix-fix-fix.patch -tpm-use-clear_bit-fix-fix-fix-fix.patch -tpm-tpm_infineon-updated-to-latest-interface-changes.patch -tpm-check-mem-start-and-len.patch -tpm-update-bios-log-code-for-12.patch -tpm_infineon-section-fixup.patch -bluetooth-fix-problem-with-sco.patch -switch-kprobes-inline-functions-to-__kprobes-for-i386.patch -switch-kprobes-inline-functions-to-__kprobes-for-x86_64.patch -switch-kprobes-inline-functions-to-__kprobes-for-ppc64.patch -switch-kprobes-inline-functions-to-__kprobes-for-ia64.patch -switch-kprobes-inline-functions-to-__kprobes-for-sparc64.patch -ide-ati-sb600-ide-support.patch -remove-the-obsolete-idepci_flag_force_pdc.patch -alim15x3-uli-m-1573-south-bridge-support.patch -fb-fix-section-mismatch-in-savagefb.patch -radeonfb-section-mismatches.patch -savagefb-fix-section-mismatch-warnings.patch -fbdev-fix-return-error-of-fb_write.patch -remove-redundant-null-checks-before-free-in-net.patch

Merged

+remove-softlockup-from-invalidate_mapping_pages.patch +x25-fix-for-spinlock-recurse-and-spinlock-lockup-with.patch +off-by-1-in-kernel-power-mainc.patch +request_irq-remove-warnings-from-irq-probing.patch +input-fix-oops-on-mk712-load.patch +mv643xx_eth-provide-sysfs-class-device-symlink.patch +s390-make-qeth-buildable.patch +tpar-oops-fix.patch +fix-array-overrun-in-drivers-char-mwave-mwaveddc.patch +readd-the-oss-sound_cs4232-option.patch +avoid-printing-pointless-tsc-skew-msgs.patch +enable-x86_pc-for-hotplug_cpu.patch +mark-vmsplit-embedded.patch +kprobe-cleanup-for-vm_mask-judgement.patch +kprobe-fix-resume-execution-on-i386.patch

2.6.17 queue (mostly)

+acpiphp-use-new-dock-driver-fix.patch

Fix acpiphp-use-new-dock-driver.patch

+fw-memory-leakages-in-driver-acpi-videoc.patch +acpi-idle-__read_mostly-and-de-init-static-var.patch +acpi-suppress-power-button-event-on-s3-resume.patch

ACPI udpates

+remove-for_each_cpu.patch

Remove for_each_cpu().

+alsa-pcmcia-sound-devices-shouldnt-depend-on-isa.patch +alsa-rmmod-oops-fix.patch

ALSA fixes

+iosched-use-hlist-for-request-hashtable.patch

iosched cleanup

+gregkh-driver-frame-buffer-remove-cmap-sysfs-interface.patch +gregkh-driver-kobject-fix-build-error.patch +gregkh-driver-fix-ocfs2-warning-when-debug_fs-is-not-enabled.patch +gregkh-driver-kobject-possible-cleanups.patch +gregkh-driver-added-uri-of-linux-kernel-development-process.patch +gregkh-driver-class-device-add-attribute_group-creation.patch +gregkh-driver-netdev-create-attribute_groups-with-class_device_add.patch +gregkh-driver-tty-return-class-device-pointer-from-tty_register_device.patch +gregkh-driver-i4l-gigaset-move-sysfs-entry-to-tty-class-device.patch

Driver tree updates

+gregkh-driver-spi-spi_bitbang-clocking-fixes.patch

SPI fix

+netdev-hotplug-napi-race-cleanup.patch

net cleanup

+dvb-core-ule-fixes-and-rfc4326-additions-kernel-2616.patch +dvb-core-ule-fixes-and-rfc4326-additions-kernel-2616-tidy.patch

DVB feature

+vivi-build-fix.patch
+git-dvb-Kconfig-fix.patch
+git-dvb-Kconfig-fix-2.patch

git-dvb.patch is a bit sick.

+gregkh-i2c-rtc-add-support-for-m41t81-m41t85-chips-to-m41t00-driver.patch +gregkh-i2c-i2c-piix4-remove-fix_hstcfg-parameter.patch +gregkh-i2c-i2c-piix4-fix-typo-in-documentation.patch +gregkh-i2c-i2c-piix4-improve-ibm-error-message.patch +gregkh-i2c-i2c-nforce2-add-mcp51-mcp55-support.patch +gregkh-i2c-hwmon-hdaps-update-id-list.patch +gregkh-i2c-hwmon-w83791d-new-driver.patch +gregkh-i2c-hwmon-lm83-documentation-update.patch +gregkh-i2c-hwmon-improve-Kconfig-help.patch +gregkh-i2c-hwmon-vid-mask-per-vrm.patch

I2C tree updates.

+gregkh-i2c-w1-possible-cleanups.patch +gregkh-i2c-w1-fix-dependencies-of-w1_slave_ds2433_crc.patch

i2c cleanup and fix

-i2c-add-support-for-virtual-i2c-adapters-tidy.patch -i2c-add-support-for-virtual-i2c-adapters-fix.patch

Folded into i2c-add-support-for-virtual-i2c-adapters.patch

+i2c-mpc-fix-up-error-handling.patch +opencores-i2c-bus-driver.patch +opencores-i2c-bus-driver-tidy.patch +opencores-i2c-bus-driver-fix.patch +i2c-pca954x-fix-initial-access-to-first-mux-switch-port.patch

I2C updates.

+smc911x-Kconfig-fix.patch +via-rhine-zero-pad-short-packets-on-rhine-i-ethernet-cards.patch

netdev updates

+net-use-hlist_unhashed.patch
+ipv4-inet_init-fs_initcall.patch

net updates

+powerpc-pseries-avoid-crash-in-pci-code-if-mem-system-not-up.patch +powerpc-pseries-avoid-crash-in-pci-code-if-mem-system-not-up-tidy.patch

powerpc fix

+serial-fix-uart_bug_txen-test.patch

serial fix (needs work)

-improve-pci-config-space-writeback-tidy.patch

Folded into improve-pci-config-space-writeback.patch

+pci-quirk-via-irq-fixup-should-only-run-for-via-southbridges.patch +reverse-pci-config-space-restore-order.patch

PCI fixes

-revert-pci-pci-cardbus-cards-hidden-needs-pci=assign-busses-to-fix.patch

Dropped

+drivers-scsi-fix-proc_scsi_write-to-return-length-on.patch +drivers-scsi-sdc-fix-uninitialized-variable-in-handling-medium-errors.patch +drivers-scsi-aic7xxx-possible-cleanups-2.patch +scsi-remove-documentation-scsi-cpqfctxt.patch +enable-advansys-driver.patch
+advansys-warning-workaround.patch +scsi-clean-up-warnings-in-advansys-driver.patch +scsi-clean-up-warnings-in-advansys-driver-fix.patch +mpt-fusion-driver-initialization-failure-fix.patch

SCSI fixes

-areca-raid-linux-scsi-driver-update4.patch
-areca-raid-linux-scsi-driver-update5.patch

Foxled into areca-raid-linux-scsi-driver.patch.

+gregkh-usb-usb-resource-leak-fix-for-whiteheat-driver.patch +gregkh-usb-usb-add-new-itegno-usb-cdma-1x-card-support-for-pl2303.patch +gregkh-usb-usb-storage-unusual-devs-update.patch +gregkh-usb-usb-storage-atmel-unusual-dev-update.patch +gregkh-usb-usb-net2280-handle-stalls-for-0-length-control-in-requests.patch +gregkh-usb-usb-net2280-send-0-length-packets-for-ep0.patch +gregkh-usb-usb-net2280-check-for-shared-irqs.patch +gregkh-usb-usb-net2280-set-driver-data-before-it-is-used.patch +gregkh-usb-usb-use-new-pci_class_serial_usb_-defines.patch +gregkh-usb-usb-ftdi_sio-vendor-code-for-rr-cirkits-locobuffer-usb.patch +gregkh-usb-usb-ftdi_sio-adds-support-for-iplus-device.patch +gregkh-usb-usb-ftdi_sio-add-support-for-ask-rdr-400-series-card-reader.patch +gregkh-usb-usb-sisusbvga-possible-cleanups.patch +gregkh-usb-usb-allow-multiple-types-of-ehci-controllers-to-be-built-as-modules.patch +gregkh-usb-usb-console-fix-cr-lf-issues.patch +gregkh-usb-usb-console-fix-oops.patch +gregkh-usb-usb-console-prevent-enodev-on-node.patch +gregkh-usb-usb-macbook-pro-touchpad-support.patch

USB tree updates

+fix-sco-on-some-bluetooth-adapters.patch
+fix-sco-on-some-bluetooth-adapters-tidy.patch

USB fix

+x86_64-mm-acpi-nolapic.patch +x86_64-mm-ia32-unistd-cleanup.patch +x86_64-mm-large-bzimage.patch +x86_64-mm-topology-comment.patch +x86_64-mm-agp-select.patch +x86_64-mm-iommu_gart_bitmap-search-to-cross-next_bit.patch +x86_64-mm-new-compat-ptrace.patch

x86_64 tree updates

+gregkh-devfs-devfs-die-die-die.patch +gregkh-devfs-devfs-remove-documentation.patch +gregkh-devfs-devfs-scrub-partitions.patch +gregkh-devfs-devfs-scrub-init.patch +gregkh-devfs-devfs-remove-serial-subsystem.patch +gregkh-devfs-devfs-remove-ide-subsystem.patch +gregkh-devfs-devfs-remove-sound-subsystem.patch +gregkh-devfs-devfs-remove-devfs-tape.patch +gregkh-devfs-devfs-remove-devfs_mk_dir.patch +gregkh-devfs-devfs-remove-devfs_mk_symlink.patch +gregkh-devfs-devfs-remove-devfs_mk_bdev.patch +gregkh-devfs-devfs-remove-devfs_mk_cdev.patch +gregkh-devfs-devfs-remove-devfs_remove.patch +gregkh-devfs-devfs-remove-devfs_fs_kernel.h.patch +gregkh-devfs-devfs-remove-misc-devfs_name.patch +gregkh-devfs-devfs-remove-genhd-devfs_name.patch +gregkh-devfs-devfs-remove-videodev-devfs_name.patch +gregkh-devfs-devfs-remove-line-devfs_name.patch +gregkh-devfs-devfs-remove-tty-devfs_name.patch +gregkh-devfs-devfs-tty_driver_no_devfs.patch +gregkh-devfs-devfs-minor-cleanups.patch +gregkh-devfs-devfs-feature-removal.patch +gregkh-devfs-ndevfs.patch

Remove devfs

+reserve-space-for-swap-label.patch +read-write-migration-entries-implement-correct-behavior-in-copy_one_pte.patch +read-write-migration-entries-make-mprotect-convert-write-migration.patch +read-write-migration-entries-make-mprotect-convert-write-migration-fix.patch +read-write-migration-entries-make-mprotect-convert-write-migration-fix-fix.patch +read-write-migration-entries-make-mprotect-convert-write-migration-fix-fix-fix.patch +swsusp-rework-memory-shrinker-rev-2.patch

Memory management updates

+pgdat-allocation-for-new-node-add-specify-node-id.patch +pgdat-allocation-for-new-node-add-specify-node-id-powerpc-fix.patch +pgdat-allocation-for-new-node-add-specify-node-id-tidy.patch +pgdat-allocation-for-new-node-add-specify-node-id-fix-3.patch +pgdat-allocation-for-new-node-add-get-node-id-by-acpi.patch +pgdat-allocation-for-new-node-add-get-node-id-by-acpi-tidy.patch +pgdat-allocation-for-new-node-add-generic-alloc-node_data.patch +pgdat-allocation-for-new-node-add-generic-alloc-node_data-tidy.patch +pgdat-allocation-for-new-node-add-refresh-node_data.patch +pgdat-allocation-for-new-node-add-refresh-node_data-fix.patch +pgdat-allocation-for-new-node-add-export-kswapd-start-func.patch +pgdat-allocation-for-new-node-add-export-kswapd-start-func-tidy.patch +pgdat-allocation-for-new-node-add-call-pgdat-allocation.patch

Memory hotplug (node add)

+mm-introduce-remap_vmalloc_range.patch +mm-introduce-remap_vmalloc_range-tidy.patch +mm-introduce-remap_vmalloc_range-fix.patch +change-gen_pool-allocator-to-not-touch-managed-memory.patch +change-gen_pool-allocator-to-not-touch-managed-memory-update.patch +change-gen_pool-allocator-to-not-touch-managed-memory-update-2.patch +radix-tree-direct-data.patch
+radix-tree-small.patch +likely-cleanup-remove-unlikely-in-sys_mprotect.patch

More memory management updates

+x86-x86_64-avoid-irq0-ioapic-pin-collision.patch +x86-x86_64-avoid-irq0-ioapic-pin-collision-tidy.patch

x86_64 fix

+swsusp-add-architecture-special-saveable-pages-fix.patch

Fix swsusp-add-architecture-special-saveable-pages-support.patch

+swsusp-i386-mark-special-saveable-unsaveable-pages-fix.patch

Fix swsusp-i386-mark-special-saveable-unsaveable-pages.patch

+swsusp-x86_64-mark-special-saveable-unsaveable-pages-fix.patch

Fix swsusp-x86_64-mark-special-saveable-unsaveable-pages.patch

+kernel-power-snapshotc-cleanups.patch
+swsusp-use-less-memory-during-resume.patch

swsusp updates

-uml-prepare-fixing-compilation-output.patch

Dropped.

+s390-fix-i-o-termination-race-in-cio.patch +s390-enable-interrupts-on-error-path.patch +s390-bug-in-setup_rt_frame.patch +s390-alternate-signal-stack-handling-bug.patch +s390-qdio-memory-allocations.patch +s390-dasd-ioctl-never-returns.patch +s390-fix-slab-debugging.patch +s390-futex-atomic-operations.patch +s390-futex-atomic-operations-part-2.patch +s390-tape-3590-changes.patch +s390-segment-operation-error-codes.patch +s390-instruction-processing-damage-handling.patch +s390-add-read_mostly-optimization.patch +s390-dasd-device-identifiers.patch +s390-dasd-device-identifiers-fix.patch +s390-new-system-calls.patch

s390 updates

-fix-cdrom-being-confused-on-using-kdump-tweaks.patch

Folded into fix-cdrom-being-confused-on-using-kdump.patch

+cond-resched-might-sleep-fix.patch +enhancing-accessibility-of-lxdialog.patch +the-scheduled-unexport-of-insert_resource.patch +jbd-fix-bug-in-journal_commit_transaction.patch +rename-swapper-to-idle.patch +oss-cs46xx-cleanup-and-tiny-bugfix.patch +i4l-memory-leak-fix-for-sc_ioctl.patch +isdn-unsafe-interaction-between-isdn_write-and-isdn_writebuf_stub.patch +invert-irq-migrationc-brach-prediction.patch +x86-powerpc-make-hardirq_ctx-and-softirq_ctx-__read_mostly.patch +jbd-avoid-kfree-null.patch +ext3_clear_inode-avoid-kfree-null.patch +make-noirqdebug-irqfixup-__read_mostly-add-unlikely.patch +leds-amstrad-delta-led-support.patch +leds-amstrad-delta-led-support-tidy.patch +update-devicestxt.patch +binfmt_elf-codingstyle-cleanup-and-remove-some-pointless-casts.patch +binfnt_elf-remove-more-casts.patch +fix-incorrect-sa_onstack-behaviour-for-64-bit-processes.patch +percpu-counter-data-type-changes-to-suppport.patch +percpu-counter-data-type-changes-to-suppport-fix.patch +remove-unlikely-in-might_sleep_if.patch +process-events-header-cleanup.patch +process-events-license-change.patch
+strstrip-api.patch
+ipmi-strstrip-conversion.patch +rcu-introduce-rcu_needs_cpu-interface.patch +s390-exploit-rcu_needs_cpu-interface.patch

Misc updates

+time-rename-clocksource-functions.patch
+make-pmtmr_ioport-__read_mostly.patch

Update time management patches in -mm.

+kprobe-boost-2byte-opcodes-on-i386.patch
+kprobemulti-kprobe-posthandler-for-booster.patch
+notify-page-fault-call-chain-for-x86_64.patch
+notify-page-fault-call-chain-for-i386.patch
+notify-page-fault-call-chain-for-ia64.patch
+notify-page-fault-call-chain-for-powerpc.patch
+notify-page-fault-call-chain-for-sparc64.patch
+kprobes-registers-for-notify-page-fault.patch
+notify-page-fault-call-chain.patch

kprobes updates

-dlm-core-locking.patch
-dlm-core-locking-resend-lookups.patch
-dlm-lockspaces-callbacks-directory.patch
-dlm-communication.patch
-dlm-recovery.patch
-dlm-recovery-clear-new_master-flag.patch
-dlm-recovery-remove-true-false-defines.patch
-dlm-configuration.patch
-dlm-device-interface.patch
-dlm-device-interface-fix-device-refcount.patch
-dlm-device-interface-dlm-force-unlock.patch
-dlm-device-interface-missing-variable.patch
-dlm-device-interface-check-allocation.patch
-dlm-device-interface-fix-unlock-race.patch
-dlm-device-interface-use-kzalloc.patch
-dlm-debug-fs.patch
-dlm-build.patch
-dlm-node-weights.patch
-dlm-rsb-flag-ops-with-inlined-functions.patch
-dlm-rework-recovery-control.patch
-dlm-better-handling-of-first-lock.patch
-dlm-no-directory-option.patch
-dlm-release-list-of-root-rsbs.patch
-dlm-return-error-in-status-reply.patch
-configfs-export-config_group_find_obj.patch
-dlm-use-configfs.patch
-dlm-remove-file.patch
-dlm-use-jhash.patch
-dlm-maintainer.patch
-drivers-dlm-fix-up-schedule_timeout-usage.patch
-dlm-cleanup-unused-functions.patch
-dlm-include-own-headers.patch
-dlm-sem2mutex.patch

Dropped.

+smpnice-dont-consider-sched-groups-which-are-lightly-loaded-for-balancing.patch +smpnice-dont-consider-sched-groups-which-are-lightly-loaded-for-balancing-fix.patch +sched-avoid-unnecessarily-moving-highest-priority-task-move_tasks.patch +sched-avoid-unnecessarily-moving-highest-priority-task-move_tasks-fix-2.patch

CPU scheduler updates

+rtmutex-remove-buggy-bug_on-in-pi-boosting-code.patch +futex-pi-enforce-waiter-bit-when-owner-died-is-detected.patch +rtmutex-debug-printk-correct-task-information.patch +futex-pi-make-use-of-restart_block-when-interrupted.patch

pi-futex updates

+proc-dont-lock-task_structs-indefinitely-task_mmu-small-fixes.patch

Fix proc-dont-lock-task_structs-indefinitely.patch

+ide-pdc202xx_oldc-remove-unneeded-tuneproc-call.patch +ide-hpt3xxn-clocking-fixes.patch +ide-io-increase-timeout-value-to-allow-for-slave-wakeup.patch +ide-actually-honor-drives-minimum-pio-dma-cycle-times.patch

IDE updates

+savagefb-allocate-space-for-current-and-saved-register.patch +savagefb-add-state-save-and_restore-hooks.patch +savagefb-add-state-save-and_restore-hooks-tidy.patch +savagefb-add-state-save-and_restore-hooks-fix.patch +suspend-documentation-update-for-ibm-thinkpad-x30.patch +asiliantfb-add-help-text-in-kconfig.patch +backlight-locomo-backlight-driver-updates.patch +fbdev-cleanup-the-config_video_select-mess.patch +fbdev-remove-duplicate-includes.patch +matroxfb-fix-dvi-setup-to-be-more-compatible.patch

fbdev updates

+drivers-char-ipmi-ipmi_msghandlerc-make-proc_ipmi_root-static.patch +drivers-message-i2o-iopc-unexport-i2o_msg_nop.patch

Little fixes

All 707 patches:

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17-rc2/2.6.17-rc2-mm1/patch-list

#1 lore raw
Quoted 5 lines · Andrew Morton

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

- It took six hours work to get this release building and linking in just a basic fashion on eight-odd architectures. It's getting out of control.

We all appreciate your hard work.

Quoted 7 lines

The acphphp driver is still broken and v4l and memory hotplug are, I suspect, only hanging in there by the skin of their teeth.

Could patch submitters _please_ be a lot more careful about getting the Kconfig correct, testing various Kconfig combinations (yes sometimes people will want to disable your lovely new feature) and just generally think about these things a bit harder? It isn't rocket science.

Is this something that could be automated with some machine power?

e.g. every time a patch is added a small cluster could build the patches with some configurations on various architectures and if it doesn't build autoflame the patch submitter.

We use this in SUSE for the SUSE kernels and it works quite well.

Maybe someone could contribute the build power needed for that. I suppose it could be done by just a few scripts listening to mm-commits?

-Andi

#2 lore raw
Quoted 11 lines · Andi Kleen
Quoted 8 lines

The acphphp driver is still broken and v4l and memory hotplug are, I suspect, only hanging in there by the skin of their teeth.

Could patch submitters _please_ be a lot more careful about getting the Kconfig correct, testing various Kconfig combinations (yes sometimes people will want to disable your lovely new feature) and just generally think about these things a bit harder? It isn't rocket science.

Is this something that could be automated with some machine power?

Quoted 8 lines

e.g. every time a patch is added a small cluster could build the patches with some configurations on various architectures and if it doesn't build autoflame the patch submitter.

We use this in SUSE for the SUSE kernels and it works quite well.

Maybe someone could contribute the build power needed for that. I suppose it could be done by just a few scripts listening to mm-commits?

I suspect something like that would be quite a lot of work to set up - first-up one has to get all the patches to actually apply, and then work
through any compile-time interactions between them. Dunno.

I don't like dropping patches. Because then the thing needs to be fixed up and resent and remerged and re-reviewed and rejects need to re-fixed-up and this adds emailing overhead and 12-24 hour turnaround, etc. I very much prefer to hang onto the patch and get it fixed up. This means that I usually have to do the fixing-up.

And that's OK - it's one of the things I do. But it's striking how silly so many of these problems are - they demonstrate a very basic lack of care and thought.

It's obvious that the originators haven't even compiled their feature with its config option disabled, or they haven't spent the requisite 30 seconds thinking about their Kconfig dependencies, or they haven't verified that all architectures support the architecture functions which they're relying upon or they haven't grepped the tree for symbol clashes, etc.

So at this point in time what I'd like to do is to encourage developers to do these very basic things. That's the low-hanging fruit right now.

#3 lore raw
Quoted 16 lines · Andrew Morton
Quoted 15 lines · Andi Kleen
Quoted 8 lines

The acphphp driver is still broken and v4l and memory hotplug are, I suspect, only hanging in there by the skin of their teeth.

Could patch submitters _please_ be a lot more careful about getting the Kconfig correct, testing various Kconfig combinations (yes sometimes people will want to disable your lovely new feature) and just generally think about these things a bit harder? It isn't rocket science.

Is this something that could be automated with some machine power?

e.g. every time a patch is added a small cluster could build the patches with some configurations on various architectures and if it doesn't build autoflame the patch submitter.

Quoted 8 lines
Quoted 4 lines

We use this in SUSE for the SUSE kernels and it works quite well.

Maybe someone could contribute the build power needed for that. I suppose it could be done by just a few scripts listening to mm-commits?

I suspect something like that would be quite a lot of work to set up - first-up one has to get all the patches to actually apply, and then work
through any compile-time interactions between them. Dunno.

The invariant could be that any single new patch added should still compile. And it should apply of course. If not then warn the submitter. Might generate quite a lot of email though.

Problem is when people add new stuff in multiple pieces that only compile together though. iirc they go to mm-commits as individual pieces, not a bundle right now.

It would probably not catch everything - just a few common configurations and architectures.

Quoted 6 lines

I don't like dropping patches. Because then the thing needs to be fixed up and resent and remerged and re-reviewed and rejects need to re-fixed-up and this adds emailing overhead and 12-24 hour turnaround, etc. I very much prefer to hang onto the patch and get it fixed up. This means that I usually have to do the fixing-up.

If it's caught early enough the submitter can be warned and they might even fix it up themselves and send a new patch.

Quoted 2 lines

So at this point in time what I'd like to do is to encourage developers to do these very basic things. That's the low-hanging fruit right now.

Write a checklist for that?

-Andi

#4 lore raw

checklist (Re: 2.6.17-rc2-mm1)

Quoted 5 lines
Quoted 3 lines

So at this point in time what I'd like to do is to encourage developers to do these very basic things. That's the low-hanging fruit right now.

Write a checklist for that?

I've been meaning to write up one myself, so I'll give it a shot.

This is all above and beyond good patch log descriptions.

1. Build cleanly with applicable or modified CONFIG options =y, =m, and =n. No gcc warnings/errors, no linker warnings/errors.

2. Build on multiple CPU arch-es by using local cross-compile tools or something like PLM at OSDL.

3. Check cleanly with sparse.

4. Make sure that any new or modified CONFIG options don't muck up the config menu.

5. Use 'make checkstack' and 'make namespacecheck' and fix any problems that they find. Note: checkstack does not point out problems explicitly, but any one function that uses more than 512 bytes on the stack is a candidate for change.

6. Include kernel-doc to document global kernel APIs. (Not required for static functions, but OK there also.) Use 'make htmldocs' or 'make mandocs' to check the kernel-doc and fix any issues.

---
~Randy

#5 lore raw

Re: checklist (Re: 2.6.17-rc2-mm1)

Quoted 23 lines · Randy.Dunlap
Quoted 6 lines
Quoted 4 lines

So at this point in time what I'd like to do is to encourage developers to do these very basic things. That's the low-hanging fruit right now.

Write a checklist for that?

I've been meaning to write up one myself, so I'll give it a shot.

This is all above and beyond good patch log descriptions.

1. Build cleanly with applicable or modified CONFIG options =y, =m, and =n. No gcc warnings/errors, no linker warnings/errors.

2. Build on multiple CPU arch-es by using local cross-compile tools or something like PLM at OSDL.

3. Check cleanly with sparse.

4. Make sure that any new or modified CONFIG options don't muck up the config menu.

Quoted 9 lines

5. Use 'make checkstack' and 'make namespacecheck' and fix any problems that they find. Note: checkstack does not point out problems explicitly, but any one function that uses more than 512 bytes on the stack is a candidate for change.

6. Include kernel-doc to document global kernel APIs. (Not required for static functions, but OK there also.) Use 'make htmldocs' or 'make mandocs' to check the kernel-doc and fix any issues.

A lot of these are pretty hard and labor-intensive for people to set up and run. It would be nice, but from a global perspective it's not efficient for every member of the kernel team to do all these things. It's OK I think if a few specialists run these tools against lots of people's patches all at once.

Which is basically what we're doing now, although I suspect we could be more rigorous about it.

I should be doing more of these things myself, but it's plenty enough work getting though the "applies, doesn't-ridicule-coding-style, compiles-without-warnings, boots-on-several-arches" steps. It's good that Adrian does some of the other steps. I'm not aware of anyone who is doing regular sparse and kernel-doc checking on -mm.

That all being said, these are all good things to have in a list.

To your list I'd add

- Passes allnoconfig, allmodconfig

- Has been tested with CONFIG_PREEMPT, CONFIG_DEBUG_SLAB, CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES, CONFIG_DEBUG_SPINLOCK, CONFIG_DEBUG_SPINLOCK_SLEEP all simultaneously enabled.

- Has been build- and runtime tested with and without CONFIG_SMP and CONFIG_PREEMPT.

- If it affects IO/Disk, etc: has been tested with and without CONFIG_LBD.

- ppc64 is a good architecture for cross-compilation checking because it tends to use `unsigned long' for 64-bit quantities.

- Has been carefully reviewed wrt relevant Kconfig combinations. This is very hard to get right with testing - brainpower pays off here.

- Matches kernel coding style(!)

- All new Kconfig options have help text

#6 lore raw

Re: checklist (Re: 2.6.17-rc2-mm1)

Quoted 34 lines · On Thu, 27 Apr 2006 13:11:00 -0700 Andrew Morton wrote:
Quoted 23 lines · Randy.Dunlap
Quoted 6 lines
Quoted 4 lines

So at this point in time what I'd like to do is to encourage developers to do these very basic things. That's the low-hanging fruit right now.

Write a checklist for that?

I've been meaning to write up one myself, so I'll give it a shot.

This is all above and beyond good patch log descriptions.

1. Build cleanly with applicable or modified CONFIG options =y, =m, and =n. No gcc warnings/errors, no linker warnings/errors.

2. Build on multiple CPU arch-es by using local cross-compile tools or something like PLM at OSDL.

3. Check cleanly with sparse.

4. Make sure that any new or modified CONFIG options don't muck up the config menu.

Quoted 9 lines

5. Use 'make checkstack' and 'make namespacecheck' and fix any problems that they find. Note: checkstack does not point out problems explicitly, but any one function that uses more than 512 bytes on the stack is a candidate for change.

6. Include kernel-doc to document global kernel APIs. (Not required for static functions, but OK there also.) Use 'make htmldocs' or 'make mandocs' to check the kernel-doc and fix any issues.

Quoted 5 lines

A lot of these are pretty hard and labor-intensive for people to set up and run. It would be nice, but from a global perspective it's not efficient for every member of the kernel team to do all these things. It's OK I think if a few specialists run these tools against lots of people's patches all at once.

Yes, I know/agree. This is basically what I do (and hope others would do) for larger patches, not smallish ones.

Quoted 27 lines

Which is basically what we're doing now, although I suspect we could be more rigorous about it.

I should be doing more of these things myself, but it's plenty enough work getting though the "applies, doesn't-ridicule-coding-style, compiles-without-warnings, boots-on-several-arches" steps. It's good that Adrian does some of the other steps. I'm not aware of anyone who is doing regular sparse and kernel-doc checking on -mm.

That all being said, these are all good things to have in a list.

To your list I'd add

- Passes allnoconfig, allmodconfig

- Has been tested with CONFIG_PREEMPT, CONFIG_DEBUG_SLAB, CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES, CONFIG_DEBUG_SPINLOCK, CONFIG_DEBUG_SPINLOCK_SLEEP all simultaneously enabled.

- Has been build- and runtime tested with and without CONFIG_SMP and CONFIG_PREEMPT.

- If it affects IO/Disk, etc: has been tested with and without CONFIG_LBD.

- ppc64 is a good architecture for cross-compilation checking because it tends to use `unsigned long' for 64-bit quantities.

Quoted 6 lines

- Has been carefully reviewed wrt relevant Kconfig combinations. This is very hard to get right with testing - brainpower pays off here.

- Matches kernel coding style(!)

- All new Kconfig options have help text

Yep, all good, of course.

---
~Randy

#7 lore raw

Re: checklist (Re: 2.6.17-rc2-mm1)

In reply to Andrew Morton
Quoted 8 lines

A lot of these are pretty hard and labor-intensive for people to set up and run. It would be nice, but from a global perspective it's not efficient for every member of the kernel team to do all these things. It's OK I think if a few specialists run these tools against lots of people's patches all at once.

Which is basically what we're doing now, although I suspect we could be more rigorous about it.

How about if I set up an automated email drop - you email it a patch and it will compile test it on a few different configs and run sparse, will send you back mail when it's done.

I don't want to boot it, as that gets into security nightmares, but I should be able to provide something that does static testing.

Quoted 1 line

- Matches kernel coding style(!)

E_NEEDS_AUTOMATED_FILTER / lint of some form.

The others all look doable.

The intent would not be that you get burdened with this, but that developers send it there before sending it to you. It could even hand out

tokens to people who use it ;-)

M.

#8 lore raw

Re: checklist (Re: 2.6.17-rc2-mm1)

Quoted 4 lines · Martin Bligh
Quoted 2 lines

- Matches kernel coding style(!)

E_NEEDS_AUTOMATED_FILTER / lint of some form.

Some Unixes have a cstyle(1). Maybe there is a free variant of it somewhere. But such a tool might put a lot of people on l-k out of job @)

Quoted 5 lines

The others all look doable.

The intent would not be that you get burdened with this, but that developers send it there before sending it to you. It could even hand out

It would be better to automate this - not require the developers to do lots of manual steps.

-Andi

#9 lore raw

Re: checklist (Re: 2.6.17-rc2-mm1)

Quoted 10 lines · Andi Kleen
Quoted 4 lines · Martin Bligh
Quoted 2 lines

- Matches kernel coding style(!)

E_NEEDS_AUTOMATED_FILTER / lint of some form.

Some Unixes have a cstyle(1). Maybe there is a free variant of it somewhere. But such a tool might put a lot of people on l-k out of job @)

apparently the solaris one is released now as free software. haven't actually looked at it yet, and it'd surely need various changes to enforce the linux rules.

#10 lore raw

Re: checklist (Re: 2.6.17-rc2-mm1)

In reply to Andi Kleen
Quoted 2 lines

Some Unixes have a cstyle(1). Maybe there is a free variant of it somewhere. But such a tool might put a lot of people on l-k out of job @)

heh. we could do some basic stuff at least. run through lindent, and see if it changes ;-)

Quoted 8 lines
Quoted 5 lines

The others all look doable.

The intent would not be that you get burdened with this, but that developers send it there before sending it to you. It could even hand out

It would be better to automate this - not require the developers to do lots of manual steps.

Can't tell whether that was meant to be positive or negative feedback. All this would require is "email patch to [email protected]".

M.

#11 lore raw

Re: checklist (Re: 2.6.17-rc2-mm1)

Quoted 5 lines · Martin Bligh
Quoted 2 lines

Some Unixes have a cstyle(1). Maybe there is a free variant of it somewhere. But such a tool might put a lot of people on l-k out of job @)

heh. we could do some basic stuff at least. run through lindent, and see if it changes ;-)

Good luck weeding out the false positives from that.

Quoted 2 lines

Can't tell whether that was meant to be positive or negative feedback. All this would require is "email patch to [email protected]".

I meant it would be better if it happened automatically when the patch is submitted through the normal channels.

-Andi

#12 lore raw

Re: checklist (Re: 2.6.17-rc2-mm1)

Quoted 9 lines · Andi Kleen
Quoted 5 lines · Martin Bligh
Quoted 2 lines

Some Unixes have a cstyle(1). Maybe there is a free variant of it somewhere. But such a tool might put a lot of people on l-k out of job @)

heh. we could do some basic stuff at least. run through lindent, and see if it changes ;-)

Good luck weeding out the false positives from that.

Yes, I was joking.

Quoted 6 lines
Quoted 2 lines

Can't tell whether that was meant to be positive or negative feedback. All this would require is "email patch to [email protected]".

I meant it would be better if it happened automatically when the patch is submitted through the normal channels.

It would, and it pretty much does right now, in that we test -mm (OK, we don't run sparse, but that's easy to fix). What I was trying to do was take the burden off Andrew for handling the testing of every single patch, which means getting the developer to deal with it. Personally, I don't think "please email your patch in for automated testing" is too much to ask from them.

It'd be easy to make the automated tester forward it to Andrew or whatever, if it passed the tests.

M.

#13 lore raw

Re: checklist (Re: 2.6.17-rc2-mm1)

Hi,

Quoted 27 lines · Martin Bligh
Quoted 9 lines · Andi Kleen
Quoted 5 lines · Martin Bligh
Quoted 2 lines

Some Unixes have a cstyle(1). Maybe there is a free variant of it somewhere. But such a tool might put a lot of people on l-k out of job @)

heh. we could do some basic stuff at least. run through lindent, and see if it changes ;-)

Good luck weeding out the false positives from that.

Yes, I was joking.

Quoted 6 lines
Quoted 2 lines

Can't tell whether that was meant to be positive or negative feedback. All this would require is "email patch to [email protected]".

I meant it would be better if it happened automatically when the patch is submitted through the normal channels.

It would, and it pretty much does right now, in that we test -mm (OK, we don't run sparse, but that's easy to fix). What I was trying to do was take the burden off Andrew for handling the testing of every single patch, which means getting the developer to deal with it. Personally, I don't think "please email your patch in for automated testing" is too much to ask from them.

Quoted 2 lines

It'd be easy to make the automated tester forward it to Andrew or whatever, if it passed the tests.

I think an automated tester would be a good tool for developers if it could email the results back to them. At least I would be using it. :-)

And if you want to make developers use it, you can design it to generate a unique tag for each patch successfully tested and ask the developers to include these tags in the patch headers.

Greetings,
Rafael

Signature · 3 lines
dr Rafał J. Wysocki
Systemy i Sieci Komputerowe
+48 605 05 36 93
#14 lore raw

Re: checklist (Re: 2.6.17-rc2-mm1)

In reply to Martin Bligh
Quoted 2 lines · Martin Bligh
Quoted 1 line

[...]

I don't want to boot it, as that gets into security nightmares, but I should be able to provide something that does static testing.

Actually, booting might not be that bad using a virtual machine with qemu.

You can use a command like:

qemu -nographic -kernel <kernel_image> -append <command line> -initrd <initrd file>

and then set up the <command line> to use the serial console, and the initrd to something simple that just outputs "[SUCCESS]" and powers off.

You can then monitor the standard output of this process. If after a minute (for instance) no "[SUCCESS]" appears on its standard output, it didn't boot and you have the dmesg data to (hopefully) show why it didn't boot.

If it outputs "[SUCCESS]", then it booted fine. You still can append the dmesg output to the test report.

Of course, the kernel configuration must include support for serial console and the initrd filesystem used, at least.

Well, just my 2 cents,

Signature · 4 lines
Paulo Marques - www.grupopie.com

Pointy-Haired Boss: I don't see anything that could stand in our way.
           Dilbert: Sanity? Reality? The laws of physics?
#15 lore raw

Re: checklist (Re: 2.6.17-rc2-mm1)

Quoted 4 lines

and then set up the <command line> to use the serial console, and the initrd to something simple that just outputs "[SUCCESS]" and powers off.

Let it run for 5 minutes or so, to catch silly things like jiffy wraparound and bombs that go off a little later than kernel boot.

Jan Engelhardt

#16 lore raw

Re: checklist (Re: 2.6.17-rc2-mm1)

In reply to Paulo Marques
Quoted 6 lines · Paulo Marques
Quoted 3 lines · Martin Bligh
Quoted 1 line

[...]

I don't want to boot it, as that gets into security nightmares, but I should be able to provide something that does static testing.

Actually, booting might not be that bad using a virtual machine with qemu.

Honestly, the security nightmare begins with the compile. A patch to the build system can result in arbitrarily insecure commands being run during the compile - way easier than doing something that affects the compiled kernel. A machine doing automatic compiles of untrusted patches should be viewed as completely sacrificial from the beginning.

-VAL

#17 lore raw

Re: checklist (Re: 2.6.17-rc2-mm1)

Quoted 8 lines · Valerie Henson
Quoted 6 lines · Paulo Marques
Quoted 3 lines · Martin Bligh
Quoted 1 line

[...]

I don't want to boot it, as that gets into security nightmares, but I should be able to provide something that does static testing.

Quoted 8 lines
Quoted 1 line

Actually, booting might not be that bad using a virtual machine with qemu.

Honestly, the security nightmare begins with the compile. A patch to the build system can result in arbitrarily insecure commands being run during the compile - way easier than doing something that affects the compiled kernel. A machine doing automatic compiles of untrusted patches should be viewed as completely sacrificial from the beginning.

True - good point ... but it's easier to chroot jail. And I'm lazy ;-) If anyone wants to make autotest (http://test.kernel.org/autotest)
support some sort of virtual boot via creating a UML instance or something, that'd be great. But I won't hold my breath ;-)

M.

#18 lore raw

Re: checklist (Re: 2.6.17-rc2-mm1)

Quoted 8 lines · Martin Bligh
Quoted 6 lines · Valerie Henson

Honestly, the security nightmare begins with the compile. A patch to the build system can result in arbitrarily insecure commands being run during the compile - way easier than doing something that affects the compiled kernel. A machine doing automatic compiles of untrusted patches should be viewed as completely sacrificial from the beginning.

Quoted 4 lines

True - good point ... but it's easier to chroot jail. And I'm lazy ;-) If anyone wants to make autotest (http://test.kernel.org/autotest)
support some sort of virtual boot via creating a UML instance or something, that'd be great. But I won't hold my breath ;-)

I think you should do this, security issues be darned. Just wanted to point out where the real concern was. And thanks in advance!

-VAL

#19 lore raw

Re: checklist (Re: 2.6.17-rc2-mm1)

In reply to Andrew Morton
Quoted 2 lines · Andrew Morton

Adrian does some of the other steps. I'm not aware of anyone who is doing regular sparse and kernel-doc checking on -mm.

Sparse checks are in the results at http://l4x.org/k/ . There is just someone missing who looks at the results :(

Jan

#20 lore raw

Re: checklist (Re: 2.6.17-rc2-mm1)

Quoted 6 lines · On Thu, 27 Apr 2006 22:52:00 +0200 Jan Dittmer wrote:
Quoted 2 lines · Andrew Morton

Adrian does some of the other steps. I'm not aware of anyone who is doing regular sparse and kernel-doc checking on -mm.

Sparse checks are in the results at http://l4x.org/k/ . There is just someone missing who looks at the results :(

Thanks for reminding us of the URL.

If someone wants to try to fix those, they still should verify their patches with gcc & sparse, of course.

And we've seen that problem of not looking at the results before. :(

---
~Randy

#21 lore raw
In reply to Andrew Morton
Quoted 5 lines · Andrew Morton

I don't like dropping patches. Because then the thing needs to be fixed up and resent and remerged and re-reviewed and rejects need to re-fixed-up and this adds emailing overhead and 12-24 hour turnaround, etc. I very much prefer to hang onto the patch and get it fixed up. This means that I usually have to do the fixing-up.

Perhaps dropping patches with obvious faults with some feedback to submitter may reduce your workload ;) And is slowing down the merge a little in these cases such a bad thing if it improves patch quality over time?

Grant.

#22 lore raw
Quoted 8 lines · On Fri, 28 Apr 2006 07:41:52 +1000 Grant Coady wrote:
Quoted 5 lines · Andrew Morton

I don't like dropping patches. Because then the thing needs to be fixed up and resent and remerged and re-reviewed and rejects need to re-fixed-up and this adds emailing overhead and 12-24 hour turnaround, etc. I very much prefer to hang onto the patch and get it fixed up. This means that I usually have to do the fixing-up.

Quoted 4 lines

Perhaps dropping patches with obvious faults with some feedback to submitter may reduce your workload ;) And is slowing down the merge a little in these cases such a bad thing if it improves patch quality over time?

True dat. That's what I would do. :)
But I seem to need more sleep than Andrew does.

---
~Randy

#23 lore raw
Quoted 11 lines · Randy.Dunlap
Quoted 8 lines · On Fri, 28 Apr 2006 07:41:52 +1000 Grant Coady wrote:
Quoted 5 lines · Andrew Morton

I don't like dropping patches. Because then the thing needs to be fixed up and resent and remerged and re-reviewed and rejects need to re-fixed-up and this adds emailing overhead and 12-24 hour turnaround, etc. I very much prefer to hang onto the patch and get it fixed up. This means that I usually have to do the fixing-up.

Quoted 6 lines
Quoted 4 lines

Perhaps dropping patches with obvious faults with some feedback to submitter may reduce your workload ;) And is slowing down the merge a little in these cases such a bad thing if it improves patch quality over time?

True dat. That's what I would do. :)

As I say - I prefer to keep moving in the forward direction. So if a patch needs coding-style cleanups, warning fixes, bugfixes, etc it's usually quicker to just fix the thing immediately rather than send it back, wait and then redo everything. The submitter sees the fixes and hence will Never Do That Again (right?)

None of this is a particular burden for me - it'd average an hour a day, tops. My main reason for the big whine is that this defect rate indicates that people just aren't being sufficiently careful in their work. If so many silly trivial things are slipping through, then what does this tell us about the big things, ie: runtime bugs?

Quoted 1 line

But I seem to need more sleep than Andrew does.

There's plenty of time for that in the grave.

#24 lore raw
In reply to Andrew Morton

Hi Andrew,

Quoted 2 lines · Andrew Morton

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

[snip]

Quoted 1 line

+gregkh-devfs-ndevfs.patch

"You don't really want to run this. But if you did, here's a simple hack showing how easy it is to do it.

Note, this patch will NOT be merged into mainline, so don't get your panties into a bind..."
http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-05-devfs/ndevfs.patch

Please drop this patch.

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)

#25 lore raw
Quoted 8 lines · Michal Piotrowski

Hi Andrew,

Quoted 2 lines · Andrew Morton

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

[snip]

Quoted 1 line

+gregkh-devfs-ndevfs.patch

Quoted 8 lines

"You don't really want to run this. But if you did, here's a simple hack showing how easy it is to do it.

Note, this patch will NOT be merged into mainline, so don't get your panties into a bind..."
http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-05-devfs/ndevfs.patch

Please drop this patch.

Here is oops:
http://www.stardust.webpages.pl/files/mm/2.6.17-rc2-mm1/oops1.jpg

Here is config:
http://www.stardust.webpages.pl/files/mm/2.6.17-rc2-mm1/mm-config

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)

#26 lore raw
Quoted 12 lines · Michal Piotrowski
Quoted 11 lines · Michal Piotrowski

Hi Andrew,

Quoted 2 lines · Andrew Morton

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

[snip]

Quoted 1 line

+gregkh-devfs-ndevfs.patch

"You don't really want to run this. But if you did, here's a simple hack showing how easy it is to do it.

Quoted 8 lines
Quoted 5 lines

Note, this patch will NOT be merged into mainline, so don't get your panties into a bind..."
http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-05-devfs/ndevfs.patch

Please drop this patch.

Here is oops:
http://www.stardust.webpages.pl/files/mm/2.6.17-rc2-mm1/oops1.jpg

Ah, I guess it is causing you problems :)

Quoted 2 lines

Here is config:
http://www.stardust.webpages.pl/files/mm/2.6.17-rc2-mm1/mm-config

If you set CONFIG_NDEV_FS=n does the oops go away?

thanks,

greg k-h

#28 lore raw
Quoted 5 lines · Michal Piotrowski

Hi Greg,

On 27/04/06, Greg KH <[email protected]> wrote:
[snip]

Quoted 1 line
Quoted 8 lines
Quoted 6 lines

Ah, I guess it is causing you problems :)

Quoted 2 lines

Here is config:
http://www.stardust.webpages.pl/files/mm/2.6.17-rc2-mm1/mm-config

If you set CONFIG_NDEV_FS=n does the oops go away?

Yes.

Ok, I've spent a bit of time trying to reproduce this and I can't. So I'm just going to drop it from the patch set, because as you point out, it's never going to go to mainline anyway, it was just a fun hack.

Sorry for the noise,

greg k-h

#29 lore raw

On 27/04/06, Greg KH <[email protected]> wrote:
[snip]

Quoted 8 lines

Ok, I've spent a bit of time trying to reproduce this and I can't. So I'm just going to drop it from the patch set, because as you point out, it's never going to go to mainline anyway, it was just a fun hack.

Sorry for the noise,

greg k-h

Thanks.

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)

#30 lore raw
In reply to Michal Piotrowski
Quoted 8 lines · Michal Piotrowski

Hi Andrew,

Quoted 2 lines · Andrew Morton

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

[snip]

Quoted 1 line

+gregkh-devfs-ndevfs.patch

Quoted 8 lines

"You don't really want to run this. But if you did, here's a simple hack showing how easy it is to do it.

Note, this patch will NOT be merged into mainline, so don't get your panties into a bind..."
http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-05-devfs/ndevfs.patch

Please drop this patch.

Why drop it? Is it causing you any problems?

thanks,

greg k-h

#31 lore raw
Quoted 12 lines · Greg KH
Quoted 11 lines · Michal Piotrowski

Hi Andrew,

Quoted 2 lines · Andrew Morton

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

[snip]

Quoted 1 line

+gregkh-devfs-ndevfs.patch

"You don't really want to run this. But if you did, here's a simple hack showing how easy it is to do it.

Quoted 7 lines
Quoted 5 lines

Note, this patch will NOT be merged into mainline, so don't get your panties into a bind..."
http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/gregkh-05-devfs/ndevfs.patch

Please drop this patch.

Why drop it?

As long as it doesn't go to mainline we shouldn't care about it in -mm.

Quoted 5 lines

thanks,

greg k-h

Regards,
Michal

--
Michal K. K. Piotrowski
LTG - Linux Testers Group
(http://www.stardust.webpages.pl/ltg/wiki/)

#32 lore raw

2.6.17-rc2-mm1: ACPI_DOCK=n, HOTPLUG_PCI_ACPI=y compile error

In reply to Andrew Morton

Although not mentioned in the changelog, acpi-dock-driver.patch was updated in 2.6.17-rc2-mm1.

The changes cause the following compile error with CONFIG_ACPI_DOCK=n, CONFIG_HOTPLUG_PCI_ACPI=y:

<-- snip -->

...
LD .tmp_vmlinux1
drivers/built-in.o: In function is_pci_dock_device':acpiphp_glue.c:(.text+0x1a08a): undefined reference to is_dock_device' drivers/built-in.o: In function `cleanup_bridge':
acpiphp_glue.c:(.text+0x1a127): undefined reference to is_dock_device' :acpiphp_glue.c:(.text+0x1a133): undefined reference to unregister_hotplug_dock_device' :acpiphp_glue.c:(.text+0x1a13b): undefined reference to unregister_dock_notifier' drivers/built-in.o: In function register_slot':
acpiphp_glue.c:(.text+0x1b545): undefined reference to is_dock_device' :acpiphp_glue.c:(.text+0x1b742): undefined reference to is_dock_device' :acpiphp_glue.c:(.text+0x1b759): undefined reference to register_hotplug_dock_device' :acpiphp_glue.c:(.text+0x1b786): undefined reference to register_dock_notifier'
make: *** [.tmp_vmlinux1] Error 1

<-- snip -->

cu
Adrian

Signature · 4 lines
       "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
#33 lore raw
In reply to Andrew Morton

Hi Andrew,

Le Thu, 27 Apr 2006 01:41:41 -0700, Andrew Morton a écrit :

Quoted 2 lines

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

64 bit resources core changes in ioport.h break pnp sysfs interface.

A patch like this is needed.

Matthieu

drivers/pnp/interface.c +4 -4
@@ -264,7 +264,7 @@
 			if (pnp_port_flags(dev, i) & IORESOURCE_DISABLED)
 				pnp_printf(buffer," disabled\n");
 			else
-				pnp_printf(buffer," 0x%lx-0x%lx\n",
+				pnp_printf(buffer," 0x%llx-0x%llx\n",
 						pnp_port_start(dev, i),
 						pnp_port_end(dev, i));
 		}
@@ -275,7 +275,7 @@
 			if (pnp_mem_flags(dev, i) & IORESOURCE_DISABLED)
 				pnp_printf(buffer," disabled\n");
 			else
-				pnp_printf(buffer," 0x%lx-0x%lx\n",
+				pnp_printf(buffer," 0x%llx-0x%llx\n",
 						pnp_mem_start(dev, i),
 						pnp_mem_end(dev, i));
 		}
@@ -286,7 +286,7 @@
 			if (pnp_irq_flags(dev, i) & IORESOURCE_DISABLED)
 				pnp_printf(buffer," disabled\n");
 			else
-				pnp_printf(buffer," %ld\n",
+				pnp_printf(buffer," %lld\n",
 						pnp_irq(dev, i));
 		}
 	}
@@ -296,7 +296,7 @@
 			if (pnp_dma_flags(dev, i) & IORESOURCE_DISABLED)
 				pnp_printf(buffer," disabled\n");
 			else
-				pnp_printf(buffer," %ld\n",
+				pnp_printf(buffer," %lld\n",
 						pnp_dma(dev, i));
 		}
 	}
#34 lore raw
Quoted 18 lines · Matthieu CASTET

Hi Andrew,

Le Thu, 27 Apr 2006 01:41:41 -0700, Andrew Morton a écrit :

Quoted 2 lines

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

64 bit resources core changes in ioport.h break pnp sysfs interface.

A patch like this is needed.

Matthieu

drivers/pnp/interface.c line 269

Quoted 7 lines
drivers/pnp/interface.c +1 -1
@@ -264,7 +264,7 @@
 			if (pnp_port_flags(dev, i) & IORESOURCE_DISABLED)
 				pnp_printf(buffer," disabled\n");
 			else
-				pnp_printf(buffer," 0x%lx-0x%lx\n",
+				pnp_printf(buffer," 0x%llx-0x%llx\n",
 						pnp_port_start(dev, i),
 						pnp_port_end(dev, i));

I think it would break on ppc64 as u64 is unsigned long. It should be explicitly typecasted to unsigned long long. Same is true for all the instances.

(unsigned long long) pnp_port_start(dev, i)

-vivek

Quoted 35 lines
drivers/pnp/interface.c +3 -4
 		}
@@ -275,7 +275,7 @@
 			if (pnp_mem_flags(dev, i) & IORESOURCE_DISABLED)
 				pnp_printf(buffer," disabled\n");
 			else
-				pnp_printf(buffer," 0x%lx-0x%lx\n",
+				pnp_printf(buffer," 0x%llx-0x%llx\n",
 						pnp_mem_start(dev, i),
 						pnp_mem_end(dev, i));
 		}
@@ -286,7 +286,7 @@
 			if (pnp_irq_flags(dev, i) & IORESOURCE_DISABLED)
 				pnp_printf(buffer," disabled\n");
 			else
-				pnp_printf(buffer," %ld\n",
+				pnp_printf(buffer," %lld\n",
 						pnp_irq(dev, i));
 		}
 	}
@@ -296,7 +296,7 @@
 			if (pnp_dma_flags(dev, i) & IORESOURCE_DISABLED)
 				pnp_printf(buffer," disabled\n");
 			else
-				pnp_printf(buffer," %ld\n",
+				pnp_printf(buffer," %lld\n",
 						pnp_dma(dev, i));
 		}
 	}
 
-

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

#35 lore raw
Quoted 16 lines · Vivek Goyal
Quoted 15 lines · Matthieu CASTET

Hi Andrew,

Le Thu, 27 Apr 2006 01:41:41 -0700, Andrew Morton a ?crit?:

Quoted 2 lines

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

64 bit resources core changes in ioport.h break pnp sysfs interface.

A patch like this is needed.

Matthieu

Quoted 14 lines

drivers/pnp/interface.c line 269

Quoted 10 lines
drivers/pnp/interface.c +1 -1
@@ -264,7 +264,7 @@
 			if (pnp_port_flags(dev, i) & IORESOURCE_DISABLED)
 				pnp_printf(buffer," disabled\n");
 			else
-				pnp_printf(buffer," 0x%lx-0x%lx\n",
+				pnp_printf(buffer," 0x%llx-0x%llx\n",
 						pnp_port_start(dev, i),
 						pnp_port_end(dev, i));

I think it would break on ppc64 as u64 is unsigned long. It should be explicitly typecasted to unsigned long long. Same is true for all the instances.

Does ppc64 use the PnP code?

thanks,

greg k-h

#36 lore raw
Quoted 32 lines · Greg KH
Quoted 16 lines · Vivek Goyal
Quoted 15 lines · Matthieu CASTET

Hi Andrew,

Le Thu, 27 Apr 2006 01:41:41 -0700, Andrew Morton a ?crit?:

Quoted 2 lines

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

64 bit resources core changes in ioport.h break pnp sysfs interface.

A patch like this is needed.

Matthieu

Quoted 14 lines

drivers/pnp/interface.c line 269

Quoted 10 lines
drivers/pnp/interface.c +1 -1
@@ -264,7 +264,7 @@
 			if (pnp_port_flags(dev, i) & IORESOURCE_DISABLED)
 				pnp_printf(buffer," disabled\n");
 			else
-				pnp_printf(buffer," 0x%lx-0x%lx\n",
+				pnp_printf(buffer," 0x%llx-0x%llx\n",
 						pnp_port_start(dev, i),
 						pnp_port_end(dev, i));

I think it would break on ppc64 as u64 is unsigned long. It should be explicitly typecasted to unsigned long long. Same is true for all the instances.

Quoted 2 lines

Does ppc64 use the PnP code?

I had assumed it. Just now did a allmodconfig on ppc64 and came to know there is no such option as CONFIG_PNP. Sorry for the noise.

Thanks
Vivek

#37 lore raw
In reply to Vivek Goyal
Quoted 6 lines · Vivek Goyal

On Thu, Apr 27, 2006 at 05:47:25PM +0200, Matthieu CASTET wrote:

I think it would break on ppc64 as u64 is unsigned long. It should be explicitly typecasted to unsigned long long. Same is true for all the instances.

On 64 bits platform, unsigned long isn't the same as unsigned long long ?

Do you mean there will be a warning ?
But pnp_printf is a variadic fonction (with no attribute format printf), so gcc can't check the arguments type.

Matthieu

PS : according to arch/ppc/Kconfig, ISA (so PNP that depend on ISA) could be enable on PPC_PREP or PPC_CHRP [1]. But there are others 64 bits architecture like ia64 that have ACPI and use PNP.

[1]
Find out whether you have ISA slots on your motherboard. ISA is the
name of a bus system, i.e. the way the CPU talks to the other
stuff

          inside your box.  If you have an Apple machine, say N here; 

if you
have an IBM RS/6000 or pSeries machine or a PReP machine, say
Y. If
you have an embedded board, consult your board documentation.

#38 lore raw
Quoted 10 lines · matthieu castet
Quoted 6 lines · Vivek Goyal

On Thu, Apr 27, 2006 at 05:47:25PM +0200, Matthieu CASTET wrote:

I think it would break on ppc64 as u64 is unsigned long. It should be explicitly typecasted to unsigned long long. Same is true for all the instances.

On 64 bits platform, unsigned long isn't the same as unsigned long long ?

Do you mean there will be a warning ?

Yes.

Quoted 3 lines

But pnp_printf is a variadic fonction (with no attribute format printf), so gcc can't check the arguments type.

You are right. I did not notice that for pnp_printf(), attribute format printf is not specified. So gcc won't do the type checking on format string arguments.

( __attribute__ ((format (printf, 2, 3)));

Thanks
Vivek

#39 lore raw

PATCH 1/1 fix VIDEO_DEV=m, VIDEO_V4L1_COMPAT=y

In reply to Andrew Morton

Review

Quoted 8 lines · Andrew Morton

...
Changes since 2.6.17-rc1-mm3:
...

(quoted diff) +2 -0
+git-dvb-Kconfig-fix.patch
+git-dvb-Kconfig-fix-2.patch
 
 git-dvb.patch is a bit sick.
...

These patches are completely sick.

Not every compatibility issue is about 32<->64 Bit...

Below is the patch I sent you after I discovered the bug in 2.6.17-rc1-mm3. Is there any reason why you didn't merge my patch?

cu
Adrian

<-- snip -->

If CONFIG_VIDEO_DEV=m and CONFIG_VIDEO_V4L1_COMPAT=y, v4l1-compat should be built as a module (currently, it isn't built at all leading to problems with modules using it).

---

This patch was already sent on:
- 18 Apr 2006

drivers/media/video/Makefile renamed from drivers/media/video/Makefile.old +4 -1
@@ -11,7 +11,10 @@
 msp3400-objs	:=	msp3400-driver.o msp3400-kthreads.o
 
 obj-$(CONFIG_VIDEO_DEV) += videodev.o v4l2-common.o compat_ioctl32.o
-obj-$(CONFIG_VIDEO_V4L1_COMPAT) += v4l1-compat.o
+
+ifeq ($(CONFIG_VIDEO_V4L1_COMPAT),y)
+  obj-$(CONFIG_VIDEO_DEV) += v4l1-compat.o
+endif
 
 obj-$(CONFIG_VIDEO_BT848) += bt8xx/
 obj-$(CONFIG_VIDEO_BT848) += tvaudio.o tda7432.o tda9875.o ir-kbd-i2c.o
#40 lore raw

Re: [-mm patch] fix VIDEO_DEV=m, VIDEO_V4L1_COMPAT=y

Quoted 3 lines · Adrian Bunk

Below is the patch I sent you after I discovered the bug
in 2.6.17-rc1-mm3. Is there any reason why you didn't merge my patch?

I saw you'd cc'ed the maintainer on it.

#41 lore raw

Re: [-mm patch] fix VIDEO_DEV=m, VIDEO_V4L1_COMPAT=y

Adrian,

Em Qui, 2006-04-27 às 11:17 -0700, Andrew Morton escreveu:

Quoted 6 lines
Quoted 3 lines · Adrian Bunk

Below is the patch I sent you after I discovered the bug
in 2.6.17-rc1-mm3. Is there any reason why you didn't merge my patch?

I saw you'd cc'ed the maintainer on it.

I didn't received the patch you sent before. I'm applying it to my tree.

I will update today also devel, so that akpm may retrieve this one (and also a bunch of newer patches...). Let me first test the hole patchset with allyesconfig/allmodconfig to avoid other troubles.

Cheers,
Mauro.

#42 lore raw

PATCH 1/1 fs/nfs/inode.c: make nfs_follow_referral()

In reply to Andrew Morton
Quoted 7 lines · Andrew Morton

...
Changes since 2.6.17-rc1-mm3:
...
git-nfs.patch
...
git trees
...

This patch makes the needlessly global nfs_follow_referral() static.

fs/nfs/inode.c renamed from fs/nfs/inode.c.old +3 -2
@@ -2677,8 +2677,9 @@
  * @addr - host addr of new server
  *
  */
-struct vfsmount *nfs_follow_referral(const struct vfsmount *mnt_parent,
-	     const struct dentry *dentry, struct nfs4_fs_locations *locations)
+static struct vfsmount *nfs_follow_referral(const struct vfsmount *mnt_parent,
+					    const struct dentry *dentry,
+					    struct nfs4_fs_locations *locations)
 {
 	struct vfsmount *mnt = ERR_PTR(-ENOENT);
 	struct nfs_clone_mount mountdata = {
#43 lore raw

PATCH 1/1 mm/vmscan.c: make shrink_all_zones() static

In reply to Andrew Morton
Quoted 7 lines · Andrew Morton

...
Changes since 2.6.17-rc1-mm3:
...
+swsusp-rework-memory-shrinker-rev-2.patch

Memory management updates
...

This patch makes the needlessly global shrink_all_zones() static.

mm/vmscan.c renamed from mm/vmscan.c.old +2 -2
@@ -1291,8 +1291,8 @@
  *
  * For pass > 3 we also try to shrink the LRU lists that contain a few pages
  */
-unsigned long shrink_all_zones(unsigned long nr_pages, int pass, int prio,
-				struct scan_control *sc)
+static unsigned long shrink_all_zones(unsigned long nr_pages, int pass,
+				      int prio, struct scan_control *sc)
 {
 	struct zone *zone;
 	unsigned long nr_to_scan, ret = 0;
#44 lore raw

Re: [-mm patch] mm/vmscan.c: make shrink_all_zones() static

Quoted 11 lines · Adrian Bunk
Quoted 7 lines · Andrew Morton

...
Changes since 2.6.17-rc1-mm3:
...
+swsusp-rework-memory-shrinker-rev-2.patch

Memory management updates
...

This patch makes the needlessly global shrink_all_zones() static.

Thanks for fixing.

Greetings,
Rafael

Quoted 18 lines
mm/vmscan.c renamed from mm/vmscan.c.old +2 -2
@@ -1291,8 +1291,8 @@
  *
  * For pass > 3 we also try to shrink the LRU lists that contain a few pages
  */
-unsigned long shrink_all_zones(unsigned long nr_pages, int pass, int prio,
-				struct scan_control *sc)
+static unsigned long shrink_all_zones(unsigned long nr_pages, int pass,
+				      int prio, struct scan_control *sc)
 {
 	struct zone *zone;
 	unsigned long nr_to_scan, ret = 0;
#45 lore raw

PATCH 1/1 fs/gfs2/: possible cleanups

In reply to Andrew Morton
Quoted 7 lines · Andrew Morton

...
Changes since 2.6.17-rc1-mm3:
...
git-gfs2.patch
...
git trees
...

This patch contains the following possible cleanups:
- make needlessly global code static
- #if 0 unused functions
- remove the following global function that was both unused and unimplemented:
- super.c: gfs2_do_upgrade()

---

BTW: Please add a MAINTAINERS entry.

 fs/gfs2/bmap.c                 |    3 +-
 fs/gfs2/bmap.h                 |    2 -
 fs/gfs2/dir.c                  |    8 +++---
 fs/gfs2/eaops.c                |    2 -
 fs/gfs2/eaops.h                |    1 
 fs/gfs2/eattr.c                |    3 ++
 fs/gfs2/eattr.h                |    2 -
 fs/gfs2/glock.c                |   25 +++++++++++++--------
 fs/gfs2/glock.h                |   12 ----------
 fs/gfs2/lm.c                   |    2 +
 fs/gfs2/lm.h                   |    1 
 fs/gfs2/locking/dlm/lock.c     |   10 ++++----
 fs/gfs2/locking/dlm/lock_dlm.h |    4 ---
 fs/gfs2/locking/dlm/main.c     |    4 +--
 fs/gfs2/locking/nolock/main.c  |    8 +++---
 fs/gfs2/lvb.c                  |    2 +
 fs/gfs2/lvb.h                  |    1 
 fs/gfs2/ondisk.c               |   38 +++++++++++++++++++++++++++++----
 fs/gfs2/quota.c                |    2 +
 fs/gfs2/quota.h                |    2 -
 fs/gfs2/super.c                |    8 +-----
 fs/gfs2/super.h                |    2 -
 include/linux/gfs2_ondisk.h    |   14 ------------
 23 files changed, 79 insertions(+), 77 deletions(-)
fs/gfs2/bmap.h renamed from fs/gfs2/bmap.h.old +0 -2
@@ -13,8 +13,6 @@
 typedef int (*gfs2_unstuffer_t) (struct gfs2_inode * ip,
 				 struct buffer_head * dibh, uint64_t block,
 				 void *private);
-int gfs2_unstuffer_sync(struct gfs2_inode *ip, struct buffer_head *dibh,
-			uint64_t block, void *private);
 int gfs2_unstuff_dinode(struct gfs2_inode *ip, gfs2_unstuffer_t unstuffer,
 			void *private);
 
fs/gfs2/bmap.c renamed from fs/gfs2/bmap.c.old +2 -1
@@ -59,7 +59,7 @@ struct strip_mine {
  *
  * Returns: errno
  */
-
+#if 0
 int gfs2_unstuffer_sync(struct gfs2_inode *ip, struct buffer_head *dibh,
 			uint64_t block, void *private)
 {
@@ -77,6 +77,7 @@ int gfs2_unstuffer_sync(struct gfs2_inod
 
 	return error;
 }
+#endif  /*  0  */
 
 /**
  * gfs2_unstuff_dinode - Unstuff a dinode when the data has grown too big
fs/gfs2/dir.c renamed from fs/gfs2/dir.c.old +4 -4
@@ -669,10 +669,10 @@ static void dirent_del(struct gfs2_inode
  * Takes a dent from which to grab space as an argument. Returns the
  * newly created dent.
  */
-struct gfs2_dirent *gfs2_init_dirent(struct inode *inode,
-				     struct gfs2_dirent *dent,
-				     const struct qstr *name,
-				     struct buffer_head *bh)
+static struct gfs2_dirent *gfs2_init_dirent(struct inode *inode,
+					    struct gfs2_dirent *dent,
+					    const struct qstr *name,
+					    struct buffer_head *bh)
 {
 	struct gfs2_inode *ip = inode->u.generic_ip;
 	struct gfs2_dirent *ndent;
fs/gfs2/eaops.h renamed from fs/gfs2/eaops.h.old +0 -1
@@ -21,7 +21,6 @@ struct gfs2_eattr_operations {
 
 unsigned int gfs2_ea_name2type(const char *name, char **truncated_name);
 
-extern struct gfs2_eattr_operations gfs2_user_eaops;
 extern struct gfs2_eattr_operations gfs2_system_eaops;
 
 extern struct gfs2_eattr_operations *gfs2_ea_ops[];
fs/gfs2/eaops.c renamed from fs/gfs2/eaops.c.old +1 -1
@@ -167,7 +167,7 @@ static int system_eo_remove(struct gfs2_
 	return gfs2_ea_remove_i(ip, er);
 }
 
-struct gfs2_eattr_operations gfs2_user_eaops = {
+static struct gfs2_eattr_operations gfs2_user_eaops = {
 	.eo_get = user_eo_get,
 	.eo_set = user_eo_set,
 	.eo_remove = user_eo_remove,
fs/gfs2/eattr.h renamed from fs/gfs2/eattr.h.old +0 -2
@@ -61,8 +61,6 @@ struct gfs2_ea_location {
 	struct gfs2_ea_header *el_prev;
 };
 
-int gfs2_ea_repack(struct gfs2_inode *ip);
-
 int gfs2_ea_get_i(struct gfs2_inode *ip, struct gfs2_ea_request *er);
 int gfs2_ea_set_i(struct gfs2_inode *ip, struct gfs2_ea_request *er);
 int gfs2_ea_remove_i(struct gfs2_inode *ip, struct gfs2_ea_request *er);
fs/gfs2/eattr.c renamed from fs/gfs2/eattr.c.old +3 -0
@@ -358,6 +358,7 @@ static int ea_remove_unstuffed(struct gf
 	return error;
 }
 
+#if 0
 
 static int gfs2_ea_repack_i(struct gfs2_inode *ip)
 {
@@ -382,6 +383,8 @@ int gfs2_ea_repack(struct gfs2_inode *ip
 	return error;
 }
 
+#endif  /*  0  */
+
 struct ea_list {
 	struct gfs2_ea_request *ei_er;
 	unsigned int ei_size;
fs/gfs2/glock.h renamed from fs/gfs2/glock.h.old +0 -12
@@ -73,8 +73,6 @@ static inline int gfs2_glock_is_blocking
 	return ret;
 }
 
-struct gfs2_glock *gfs2_glock_find(struct gfs2_sbd *sdp,
-				   struct lm_lockname *name);
 int gfs2_glock_get(struct gfs2_sbd *sdp,
 		   uint64_t number, struct gfs2_glock_operations *glops,
 		   int create, struct gfs2_glock **glp);
@@ -85,15 +83,11 @@ void gfs2_holder_init(struct gfs2_glock 
 void gfs2_holder_reinit(unsigned int state, unsigned flags,
 			struct gfs2_holder *gh);
 void gfs2_holder_uninit(struct gfs2_holder *gh);
-struct gfs2_holder *gfs2_holder_get(struct gfs2_glock *gl, unsigned int state,
-				    int flags, gfp_t gfp_flags);
-void gfs2_holder_put(struct gfs2_holder *gh);
 
 void gfs2_glock_xmote_th(struct gfs2_glock *gl, unsigned int state, int flags);
 void gfs2_glock_drop_th(struct gfs2_glock *gl);
 
 void gfs2_glmutex_lock(struct gfs2_glock *gl);
-int gfs2_glmutex_trylock(struct gfs2_glock *gl);
 void gfs2_glmutex_unlock(struct gfs2_glock *gl);
 
 int gfs2_glock_nq(struct gfs2_holder *gh);
@@ -101,9 +95,6 @@ int gfs2_glock_poll(struct gfs2_holder *
 int gfs2_glock_wait(struct gfs2_holder *gh);
 void gfs2_glock_dq(struct gfs2_holder *gh);
 
-void gfs2_glock_prefetch(struct gfs2_glock *gl, unsigned int state, int flags);
-void gfs2_glock_force_drop(struct gfs2_glock *gl);
-
 int gfs2_glock_be_greedy(struct gfs2_glock *gl, unsigned int time);
 
 void gfs2_glock_dq_uninit(struct gfs2_holder *gh);
@@ -148,7 +139,6 @@ static inline int gfs2_glock_nq_init(str
 
 int gfs2_lvb_hold(struct gfs2_glock *gl);
 void gfs2_lvb_unhold(struct gfs2_glock *gl);
-void gfs2_lvb_sync(struct gfs2_glock *gl);
 
 void gfs2_glock_cb(lm_fsdata_t *fsdata, unsigned int type, void *data);
 
@@ -161,6 +151,4 @@ void gfs2_reclaim_glock(struct gfs2_sbd 
 void gfs2_scand_internal(struct gfs2_sbd *sdp);
 void gfs2_gl_hash_clear(struct gfs2_sbd *sdp, int wait);
 
-int gfs2_dump_lockstate(struct gfs2_sbd *sdp);
-
 #endif /* __GLOCK_DOT_H__ */
fs/gfs2/glock.c renamed from fs/gfs2/glock.c.old +16 -9
@@ -47,6 +47,8 @@ struct greedy {
 
 typedef void (*glock_examiner) (struct gfs2_glock * gl);
 
+static int gfs2_dump_lockstate(struct gfs2_sbd *sdp);
+
 /**
  * relaxed_state_ok - is a requested lock compatible with the current lock mode?
  * @actual: the current state of the lock
@@ -228,8 +230,8 @@ static struct gfs2_glock *search_bucket(
  * Returns: NULL, or the struct gfs2_glock with the requested number
  */
 
-struct gfs2_glock *gfs2_glock_find(struct gfs2_sbd *sdp,
-				   struct lm_lockname *name)
+static struct gfs2_glock *gfs2_glock_find(struct gfs2_sbd *sdp,
+					  struct lm_lockname *name)
 {
 	struct gfs2_gl_hash_bucket *bucket = &sdp->sd_gl_hash[gl_hash(name)];
 	struct gfs2_glock *gl;
@@ -421,8 +423,9 @@ void gfs2_holder_uninit(struct gfs2_hold
  * Returns: the holder structure, NULL on ENOMEM
  */
 
-struct gfs2_holder *gfs2_holder_get(struct gfs2_glock *gl, unsigned int state,
-				    int flags, gfp_t gfp_flags)
+static struct gfs2_holder *gfs2_holder_get(struct gfs2_glock *gl,
+					   unsigned int state,
+					   int flags, gfp_t gfp_flags)
 {
 	struct gfs2_holder *gh;
 
@@ -442,7 +445,7 @@ struct gfs2_holder *gfs2_holder_get(stru
  *
  */
 
-void gfs2_holder_put(struct gfs2_holder *gh)
+static void gfs2_holder_put(struct gfs2_holder *gh)
 {
 	gfs2_holder_uninit(gh);
 	kfree(gh);
@@ -674,7 +677,7 @@ void gfs2_glmutex_lock(struct gfs2_glock
  * Returns: 1 if the glock is acquired
  */
 
-int gfs2_glmutex_trylock(struct gfs2_glock *gl)
+static int gfs2_glmutex_trylock(struct gfs2_glock *gl)
 {
 	int acquired = 1;
 
@@ -1301,7 +1304,8 @@ void gfs2_glock_dq(struct gfs2_holder *g
  *
  */
 
-void gfs2_glock_prefetch(struct gfs2_glock *gl, unsigned int state, int flags)
+static void gfs2_glock_prefetch(struct gfs2_glock *gl, unsigned int state,
+				int flags)
 {
 	struct gfs2_glock_operations *glops = gl->gl_ops;
 
@@ -1329,7 +1333,7 @@ void gfs2_glock_prefetch(struct gfs2_glo
  * @gl: the glock
  *
  */
-
+#if 0
 void gfs2_glock_force_drop(struct gfs2_glock *gl)
 {
 	struct gfs2_holder gh;
@@ -1345,6 +1349,7 @@ void gfs2_glock_force_drop(struct gfs2_g
 	wait_for_completion(&gh.gh_wait);
 	gfs2_holder_uninit(&gh);
 }
+#endif  /*  0  */
 
 static void greedy_work(void *data)
 {
@@ -1697,6 +1702,7 @@ void gfs2_lvb_unhold(struct gfs2_glock *
 	gfs2_glock_put(gl);
 }
 
+#if 0
 void gfs2_lvb_sync(struct gfs2_glock *gl)
 {
 	gfs2_glmutex_lock(gl);
@@ -1707,6 +1713,7 @@ void gfs2_lvb_sync(struct gfs2_glock *gl
 
 	gfs2_glmutex_unlock(gl);
 }
+#endif  /*  0  */
 
 static void blocking_cb(struct gfs2_sbd *sdp, struct lm_lockname *name,
 			unsigned int state)
@@ -2308,7 +2315,7 @@ static int dump_glock(struct gfs2_glock 
  *
  */
 
-int gfs2_dump_lockstate(struct gfs2_sbd *sdp)
+static int gfs2_dump_lockstate(struct gfs2_sbd *sdp)
 {
 	struct gfs2_gl_hash_bucket *bucket;
 	struct gfs2_glock *gl;
fs/gfs2/locking/dlm/lock_dlm.h renamed from fs/gfs2/locking/dlm/lock_dlm.h.old +0 -4
@@ -162,12 +162,8 @@ int16_t gdlm_make_lmstate(int16_t);
 void gdlm_queue_delayed(struct gdlm_lock *);
 void gdlm_submit_delayed(struct gdlm_ls *);
 int gdlm_release_all_locks(struct gdlm_ls *);
-int gdlm_create_lp(struct gdlm_ls *, struct lm_lockname *, struct gdlm_lock **);
 void gdlm_delete_lp(struct gdlm_lock *);
-int gdlm_add_lvb(struct gdlm_lock *);
-void gdlm_del_lvb(struct gdlm_lock *);
 unsigned int gdlm_do_lock(struct gdlm_lock *);
-unsigned int gdlm_do_unlock(struct gdlm_lock *);
 
 int gdlm_get_lock(lm_lockspace_t *, struct lm_lockname *, lm_lock_t **);
 void gdlm_put_lock(lm_lock_t *);
fs/gfs2/locking/dlm/lock.c renamed from fs/gfs2/locking/dlm/lock.c.old +5 -5
@@ -158,8 +158,8 @@ static inline void make_strname(struct l
 	str->namelen = GDLM_STRNAME_BYTES;
 }
 
-int gdlm_create_lp(struct gdlm_ls *ls, struct lm_lockname *name,
-		   struct gdlm_lock **lpp)
+static int gdlm_create_lp(struct gdlm_ls *ls, struct lm_lockname *name,
+			  struct gdlm_lock **lpp)
 {
 	struct gdlm_lock *lp;
 
@@ -276,7 +276,7 @@ unsigned int gdlm_do_lock(struct gdlm_lo
 	return LM_OUT_ASYNC;
 }
 
-unsigned int gdlm_do_unlock(struct gdlm_lock *lp)
+static unsigned int gdlm_do_unlock(struct gdlm_lock *lp)
 {
 	struct gdlm_ls *ls = lp->ls;
 	unsigned int lkf = 0;
@@ -378,7 +378,7 @@ void gdlm_cancel(lm_lock_t *lock)
 		clear_bit(LFL_DLM_CANCEL, &lp->flags);
 }
 
-int gdlm_add_lvb(struct gdlm_lock *lp)
+static int gdlm_add_lvb(struct gdlm_lock *lp)
 {
 	char *lvb;
 
@@ -391,7 +391,7 @@ int gdlm_add_lvb(struct gdlm_lock *lp)
 	return 0;
 }
 
-void gdlm_del_lvb(struct gdlm_lock *lp)
+static void gdlm_del_lvb(struct gdlm_lock *lp)
 {
 	kfree(lp->lvb);
 	lp->lvb = NULL;
fs/gfs2/locking/dlm/main.c renamed from fs/gfs2/locking/dlm/main.c.old +2 -2
@@ -16,7 +16,7 @@ extern int gdlm_drop_period;
 
 extern struct lm_lockops gdlm_ops;
 
-int __init init_lock_dlm(void)
+static int __init init_lock_dlm(void)
 {
 	int error;
 
@@ -48,7 +48,7 @@ int __init init_lock_dlm(void)
 	return 0;
 }
 
-void __exit exit_lock_dlm(void)
+static void __exit exit_lock_dlm(void)
 {
 	gdlm_plock_exit();
 	gdlm_sysfs_exit();
fs/gfs2/locking/nolock/main.c renamed from fs/gfs2/locking/nolock/main.c.old +4 -4
@@ -21,7 +21,7 @@ struct nolock_lockspace {
 	unsigned int nl_lvb_size;
 };
 
-struct lm_lockops nolock_ops;
+static struct lm_lockops nolock_ops;
 
 static int nolock_mount(char *table_name, char *host_data,
 			lm_callback_t cb, lm_fsdata_t *fsdata,
@@ -208,7 +208,7 @@ static void nolock_recovery_done(lm_lock
 {
 }
 
-struct lm_lockops nolock_ops = {
+static struct lm_lockops nolock_ops = {
 	.lm_proto_name = "lock_nolock",
 	.lm_mount = nolock_mount,
 	.lm_others_may_mount = nolock_others_may_mount,
@@ -229,7 +229,7 @@ struct lm_lockops nolock_ops = {
 	.lm_owner = THIS_MODULE,
 };
 
-int __init init_nolock(void)
+static int __init init_nolock(void)
 {
 	int error;
 
@@ -245,7 +245,7 @@ int __init init_nolock(void)
 	return 0;
 }
 
-void __exit exit_nolock(void)
+static void __exit exit_nolock(void)
 {
 	gfs_unregister_lockproto(&nolock_ops);
 }
fs/gfs2/lvb.h renamed from fs/gfs2/lvb.h.old +0 -1
@@ -14,7 +14,6 @@
 
 void gfs2_quota_lvb_in(struct gfs2_quota_lvb *qb, char *lvb);
 void gfs2_quota_lvb_out(struct gfs2_quota_lvb *qb, char *lvb);
-void gfs2_quota_lvb_print(struct gfs2_quota_lvb *qb);
 
 #endif /* __LVB_DOT_H__ */
 
fs/gfs2/lvb.c renamed from fs/gfs2/lvb.c.old +2 -0
@@ -43,6 +43,7 @@ void gfs2_quota_lvb_out(struct gfs2_quot
 	str->qb_value = cpu_to_be64(qb->qb_value);
 }
 
+#if 0
 void gfs2_quota_lvb_print(struct gfs2_quota_lvb *qb)
 {
 	pv(qb, qb_magic, "%u");
@@ -50,4 +51,5 @@ void gfs2_quota_lvb_print(struct gfs2_qu
 	pv(qb, qb_warn, "%llu");
 	pv(qb, qb_value, "%lld");
 }
+#endif  /*  0  */
 
include/linux/gfs2_ondisk.h renamed from include/linux/gfs2_ondisk.h.old +0 -14
@@ -450,22 +450,8 @@ extern void gfs2_quota_change_in(struct 
 
 /* Printing functions */
 
-extern void gfs2_inum_print(struct gfs2_inum *no);
-extern void gfs2_meta_header_print(struct gfs2_meta_header *mh);
-extern void gfs2_sb_print(struct gfs2_sb *sb);
 extern void gfs2_rindex_print(struct gfs2_rindex *ri);
-extern void gfs2_rgrp_print(struct gfs2_rgrp *rg);
-extern void gfs2_quota_print(struct gfs2_quota *qu);
 extern void gfs2_dinode_print(struct gfs2_dinode *di);
-extern void gfs2_dirent_print(struct gfs2_dirent *de, char *name);
-extern void gfs2_leaf_print(struct gfs2_leaf *lf);
-extern void gfs2_ea_header_print(struct gfs2_ea_header *ea, char *name);
-extern void gfs2_log_header_print(struct gfs2_log_header *lh);
-extern void gfs2_log_descriptor_print(struct gfs2_log_descriptor *ld);
-extern void gfs2_inum_range_print(struct gfs2_inum_range *ir);
-extern void gfs2_statfs_change_print(struct gfs2_statfs_change *sc);
-extern void gfs2_unlinked_tag_print(struct gfs2_unlinked_tag *ut);
-extern void gfs2_quota_change_print(struct gfs2_quota_change *qc);
 
 #endif /* __KERNEL__ */
 
fs/gfs2/ondisk.c renamed from fs/gfs2/ondisk.c.old +34 -4
@@ -28,7 +28,7 @@
  * @count: the number of bytes
  *
  */
-
+#if 0
 static void print_array(char *title, char *buf, int count)
 {
 	int x;
@@ -42,6 +42,7 @@ static void print_array(char *title, cha
 	if (x % 16)
 		printk("\n");
 }
+#endif  /*  0  */
 
 /*
  * gfs2_xxx_in - read in an xxx struct
@@ -72,7 +73,7 @@ void gfs2_inum_out(const struct gfs2_inu
 	str->no_addr = cpu_to_be64(no->no_addr);
 }
 
-void gfs2_inum_print(struct gfs2_inum *no)
+static void gfs2_inum_print(struct gfs2_inum *no)
 {
 	pv(no, no_formal_ino, "%llu");
 	pv(no, no_addr, "%llu");
@@ -96,7 +97,7 @@ static void gfs2_meta_header_out(struct 
 	str->mh_format = cpu_to_be32(mh->mh_format);
 }
 
-void gfs2_meta_header_print(struct gfs2_meta_header *mh)
+static void gfs2_meta_header_print(struct gfs2_meta_header *mh)
 {
 	pv(mh, mh_magic, "0x%.8X");
 	pv(mh, mh_type, "%u");
@@ -121,6 +122,7 @@ void gfs2_sb_in(struct gfs2_sb *sb, char
 	memcpy(sb->sb_locktable, str->sb_locktable, GFS2_LOCKNAME_LEN);
 }
 
+#if 0
 void gfs2_sb_print(struct gfs2_sb *sb)
 {
 	gfs2_meta_header_print(&sb->sb_header);
@@ -136,6 +138,7 @@ void gfs2_sb_print(struct gfs2_sb *sb)
 	pv(sb, sb_lockproto, "%s");
 	pv(sb, sb_locktable, "%s");
 }
+#endif  /*  0  */
 
 void gfs2_rindex_in(struct gfs2_rindex *ri, char *buf)
 {
@@ -149,6 +152,7 @@ void gfs2_rindex_in(struct gfs2_rindex *
 
 }
 
+#if 0
 void gfs2_rindex_out(struct gfs2_rindex *ri, char *buf)
 {
 	struct gfs2_rindex *str = (struct gfs2_rindex *)buf;
@@ -163,6 +167,8 @@ void gfs2_rindex_out(struct gfs2_rindex 
 	memset(str->ri_reserved, 0, sizeof(str->ri_reserved));
 }
 
+#endif  /*  0  */
+
 void gfs2_rindex_print(struct gfs2_rindex *ri)
 {
 	pv(ri, ri_addr, "%llu");
@@ -196,6 +202,7 @@ void gfs2_rgrp_out(struct gfs2_rgrp *rg,
 	memset(&str->rg_reserved, 0, sizeof(str->rg_reserved));
 }
 
+#if 0
 void gfs2_rgrp_print(struct gfs2_rgrp *rg)
 {
 	gfs2_meta_header_print(&rg->rg_header);
@@ -205,6 +212,7 @@ void gfs2_rgrp_print(struct gfs2_rgrp *r
 
 	pa(rg, rg_reserved, 36);
 }
+#endif  /*  0  */
 
 void gfs2_quota_in(struct gfs2_quota *qu, char *buf)
 {
@@ -215,6 +223,8 @@ void gfs2_quota_in(struct gfs2_quota *qu
 	qu->qu_value = be64_to_cpu(str->qu_value);
 }
 
+#if 0
+
 void gfs2_quota_out(struct gfs2_quota *qu, char *buf)
 {
 	struct gfs2_quota *str = (struct gfs2_quota *)buf;
@@ -231,6 +241,8 @@ void gfs2_quota_print(struct gfs2_quota 
 	pv(qu, qu_value, "%lld");
 }
 
+#endif  /*  0  */
+
 void gfs2_dinode_in(struct gfs2_dinode *di, char *buf)
 {
 	struct gfs2_dinode *str = (struct gfs2_dinode *)buf;
@@ -327,6 +339,8 @@ void gfs2_dinode_print(struct gfs2_dinod
 	pv(di, di_eattr, "%llu");
 }
 
+#if 0
+
 void gfs2_dirent_print(struct gfs2_dirent *de, char *name)
 {
 	char buf[GFS2_FNAMESIZE + 1];
@@ -394,6 +408,8 @@ void gfs2_ea_header_print(struct gfs2_ea
 	printk(KERN_INFO "  name = %s\n", buf);
 }
 
+#endif  /*  0  */
+
 void gfs2_log_header_in(struct gfs2_log_header *lh, char *buf)
 {
 	struct gfs2_log_header *str = (struct gfs2_log_header *)buf;
@@ -406,6 +422,8 @@ void gfs2_log_header_in(struct gfs2_log_
 	lh->lh_hash = be32_to_cpu(str->lh_hash);
 }
 
+#if 0
+
 void gfs2_log_header_print(struct gfs2_log_header *lh)
 {
 	gfs2_meta_header_print(&lh->lh_header);
@@ -427,6 +445,8 @@ void gfs2_log_descriptor_print(struct gf
 	pa(ld, ld_reserved, 32);
 }
 
+#endif  /*  0  */
+
 void gfs2_inum_range_in(struct gfs2_inum_range *ir, char *buf)
 {
 	struct gfs2_inum_range *str = (struct gfs2_inum_range *)buf;
@@ -443,11 +463,13 @@ void gfs2_inum_range_out(struct gfs2_inu
 	str->ir_length = cpu_to_be64(ir->ir_length);
 }
 
+#if 0
 void gfs2_inum_range_print(struct gfs2_inum_range *ir)
 {
 	pv(ir, ir_start, "%llu");
 	pv(ir, ir_length, "%llu");
 }
+#endif  /*  0  */
 
 void gfs2_statfs_change_in(struct gfs2_statfs_change *sc, char *buf)
 {
@@ -467,12 +489,14 @@ void gfs2_statfs_change_out(struct gfs2_
 	str->sc_dinodes = cpu_to_be64(sc->sc_dinodes);
 }
 
+#if 0
 void gfs2_statfs_change_print(struct gfs2_statfs_change *sc)
 {
 	pv(sc, sc_total, "%lld");
 	pv(sc, sc_free, "%lld");
 	pv(sc, sc_dinodes, "%lld");
 }
+#endif  /*  0  */
 
 void gfs2_unlinked_tag_in(struct gfs2_unlinked_tag *ut, char *buf)
 {
@@ -491,12 +515,16 @@ void gfs2_unlinked_tag_out(struct gfs2_u
 	str->__pad = 0;
 }
 
+#if 0
+
 void gfs2_unlinked_tag_print(struct gfs2_unlinked_tag *ut)
 {
 	gfs2_inum_print(&ut->ut_inum);
 	pv(ut, ut_flags, "%u");
 }
 
+#endif  /*  0  */
+
 void gfs2_quota_change_in(struct gfs2_quota_change *qc, char *buf)
 {
 	struct gfs2_quota_change *str = (struct gfs2_quota_change *)buf;
@@ -506,6 +534,8 @@ void gfs2_quota_change_in(struct gfs2_qu
 	qc->qc_id = be32_to_cpu(str->qc_id);
 }
 
+#if 0
+
 void gfs2_quota_change_print(struct gfs2_quota_change *qc)
 {
 	pv(qc, qc_change, "%lld");
@@ -513,5 +543,5 @@ void gfs2_quota_change_print(struct gfs2
 	pv(qc, qc_id, "%u");
 }
 
-
+#endif  /*  0  */
 
fs/gfs2/quota.h renamed from fs/gfs2/quota.h.old +0 -2
@@ -24,8 +24,6 @@ void gfs2_quota_change(struct gfs2_inode
 
 int gfs2_quota_sync(struct gfs2_sbd *sdp);
 int gfs2_quota_refresh(struct gfs2_sbd *sdp, int user, uint32_t id);
-int gfs2_quota_read(struct gfs2_sbd *sdp, int user, uint32_t id,
-		    struct gfs2_quota *q);
 
 int gfs2_quota_init(struct gfs2_sbd *sdp);
 void gfs2_quota_scan(struct gfs2_sbd *sdp);
fs/gfs2/quota.c renamed from fs/gfs2/quota.c.old +2 -0
@@ -1086,6 +1086,7 @@ int gfs2_quota_refresh(struct gfs2_sbd *
 	return error;
 }
 
+#if 0
 int gfs2_quota_read(struct gfs2_sbd *sdp, int user, uint32_t id,
 		    struct gfs2_quota *q)
 {
@@ -1121,6 +1122,7 @@ int gfs2_quota_read(struct gfs2_sbd *sdp
 
 	return error;
 }
+#endif  /*  0  */
 
 int gfs2_quota_init(struct gfs2_sbd *sdp)
 {
fs/gfs2/super.h renamed from fs/gfs2/super.h.old +0 -2
@@ -14,7 +14,6 @@ void gfs2_tune_init(struct gfs2_tune *gt
 
 int gfs2_check_sb(struct gfs2_sbd *sdp, struct gfs2_sb *sb, int silent);
 int gfs2_read_sb(struct gfs2_sbd *sdp, struct gfs2_glock *gl, int silent);
-int gfs2_do_upgrade(struct gfs2_sbd *sdp, struct gfs2_glock *gl_sb);
 
 static inline unsigned int gfs2_jindex_size(struct gfs2_sbd *sdp)
 {
@@ -46,7 +45,6 @@ int gfs2_statfs_sync(struct gfs2_sbd *sd
 int gfs2_statfs_i(struct gfs2_sbd *sdp, struct gfs2_statfs_change *sc);
 int gfs2_statfs_slow(struct gfs2_sbd *sdp, struct gfs2_statfs_change *sc);
 
-int gfs2_lock_fs_check_clean(struct gfs2_sbd *sdp, struct gfs2_holder *t_gh);
 int gfs2_freeze_fs(struct gfs2_sbd *sdp);
 void gfs2_unfreeze_fs(struct gfs2_sbd *sdp);
 
fs/gfs2/super.c renamed from fs/gfs2/super.c.old +2 -6
@@ -264,11 +264,6 @@ int gfs2_read_sb(struct gfs2_sbd *sdp, s
 	return 0;
 }
 
-int gfs2_do_upgrade(struct gfs2_sbd *sdp, struct gfs2_glock *sb_gl)
-{
-	return 0;
-}
-
 /**
  * gfs2_jindex_hold - Grab a lock on the jindex
  * @sdp: The GFS2 superblock
@@ -837,7 +832,8 @@ struct lfcc {
  * Returns: errno
  */
 
-int gfs2_lock_fs_check_clean(struct gfs2_sbd *sdp, struct gfs2_holder *t_gh)
+static int gfs2_lock_fs_check_clean(struct gfs2_sbd *sdp,
+				    struct gfs2_holder *t_gh)
 {
 	struct gfs2_inode *ip;
 	struct gfs2_holder ji_gh;
fs/gfs2/lm.h renamed from fs/gfs2/lm.h.old +0 -1
@@ -26,7 +26,6 @@ unsigned int gfs2_lm_unlock(struct gfs2_
 void gfs2_lm_cancel(struct gfs2_sbd *sdp, lm_lock_t *lock);
 int gfs2_lm_hold_lvb(struct gfs2_sbd *sdp, lm_lock_t *lock, char **lvbp);
 void gfs2_lm_unhold_lvb(struct gfs2_sbd *sdp, lm_lock_t *lock, char *lvb);
-void gfs2_lm_sync_lvb(struct gfs2_sbd *sdp, lm_lock_t *lock, char *lvb);
 int gfs2_lm_plock_get(struct gfs2_sbd *sdp,
 		     struct lm_lockname *name,
 		     struct file *file, struct file_lock *fl);
fs/gfs2/lm.c renamed from fs/gfs2/lm.c.old +2 -0
@@ -188,11 +188,13 @@ void gfs2_lm_unhold_lvb(struct gfs2_sbd 
 		sdp->sd_lockstruct.ls_ops->lm_unhold_lvb(lock, lvb);
 }
 
+#if 0
 void gfs2_lm_sync_lvb(struct gfs2_sbd *sdp, lm_lock_t *lock, char *lvb)
 {
 	if (likely(!test_bit(SDF_SHUTDOWN, &sdp->sd_flags)))
 		sdp->sd_lockstruct.ls_ops->lm_sync_lvb(lock, lvb);
 }
+#endif  /*  0  */
 
 int gfs2_lm_plock_get(struct gfs2_sbd *sdp, struct lm_lockname *name,
 		      struct file *file, struct file_lock *fl)