2007-01-28 07:49:38

by Andrew Morton

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


Temporarily at

http://userweb.kernel.org/~akpm/2.6.20-rc6-mm1/

will appear one day at

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


- Added the "IPWireless 3G PCMCIA Network Driver" tree as
git-ipwireless_cs.patch (Jiri Kosina <[email protected]>)

- Added the IDE development tree. It's a quilt-style tree at
http://kernel.org/pub/linux/kernel/people/bart/pata-2.6/patches/ (Bartlomiej
Zolnierkiewicz <[email protected]>)

- google have a position open for a public kernel bug manager. See

http://www.google.com/support/jobs/bin/answer.py?answer=53317

This will involve working out of the Mountain View offices alongside
myself, keeping track of the status of bugs in Linus's tree. If you're
qualified && interested, feel free to contact me.

- It seems that people have been busy creating the need for this. I had to
apply over sixty patches to this tree to fix post-2.6.20-rc4-mm1 compilation
errors. And a number of patches were dropped due to no-compile or to
runtime errors. Heaven knows how many runtime bugs were added.




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-rc4-mm1:


origin.patch
git-acpi.patch
git-ibm-acpi.patch
git-alsa.patch
git-agpgart.patch
git-arm.patch
git-avr32.patch
git-cpufreq.patch
git-powerpc.patch
git-drm.patch
git-dvb.patch
git-gfs2-nmw.patch
git-hid.patch
git-ieee1394.patch
git-infiniband.patch
git-input.patch
git-jfs.patch
git-libata-all.patch
git-lxdialog.patch
git-mips.patch
git-mmc.patch
git-mtd.patch
git-ubi.patch
git-netdev-all.patch
git-ioat.patch
git-ocfs2.patch
git-pciseg.patch
git-s390.patch
git-sh.patch
git-scsi-misc.patch
git-scsi-rc-fixes.patch
git-block.patch
git-qla3xxx.patch
git-unionfs.patch
git-watchdog.patch
git-ipwireless_cs.patch
git-cryptodev.patch
git-gccbug.patch

git trees.

-sched-tasks-cannot-run-on-cpus-onlined-after-boot.patch
-increment-pos-before-looking-for-the-next-cap-in-__pci_find_next_ht_cap.patch
-fix-sparsemem-on-cell.patch
-qconf-fix-sigsegv-on-empty-menu-items.patch
-rtc-sh-correctly-report-rtc_wkalrmenabled.patch
-change-cpu_up-and-co-from-__devinit-to-__cpuinit.patch
-kdump-documentation-update-for-2620.patch
-i386-sched_clock-using-init-data-tsc_disable-fix.patch
-md-pass-down-bio_rw_sync-in-raid110.patch
-kvm-add-vm-exit-profiling.patch
-nfs-fix-race-in-nfs_release_page.patch
-really-fix-funsoft-driver.patch
-revert-bd_mount_mutex-back-to-a-semaphore.patch
-intel-rng-workarounds.patch
-fix-hwrng-built-in-initcalls-priority.patch
-fix-typo-in-geode_configre-cyrixc.patch
-fd_zero-build-fix.patch
-revert-nmi_known_cpu-check-during-boot-option-parsing.patch
-blockdev-direct_io-fix-signedness-bug.patch
-submitchecklist-update.patch
-paravirt-mark-the-paravirt_ops-export-internal.patch
-kvm-make-sure-there-is-a-vcpu-context-loaded-when.patch
-kvm-fix-race-between-mmio-reads-and-injected-interrupts.patch
-kvm-x86-emulator-fix-bit-string-instructions.patch
-kvm-fix-asm-constraints-with-config_frame_pointer=n.patch
-kvm-fix-bogus-pagefault-on-writable-pages.patch
-rtc-sh-act-on-rtc_wkalrmenabled-when-setting-an-alarm.patch
-fix-blk_direct_io-bio-preparation.patch
-tlclk-bug-fix-misc-fixes.patch
-tlclk-bug-fix-misc-fixes-tidy.patch
-reiserfs-avoid-tail-packing-if-an-inode-was-ever-mmapped.patch
-cifs-sprintf-fix.patch
-cifs-remove-2-unneeded-kzalloc-casts.patch
-powerpc-use-is_init.patch
-fix-gregkh-driver-driver-core-fix-race-in-sysfs-between-sysfs_remove_file-and-read-write.patch
-fix2-gregkh-driver-driver-core-fix-race-in-sysfs-between-sysfs_remove_file-and-read-write.patch
-driver-core-remove-device_is_registered-in.patch
-driver-core-allow-device_movedev-null.patch
-cpiac-buffer-overflow.patch
-fix-bttv-and-friends-on-64bit-machines-with-lots-of-memory.patch
-jdelvare-i2c-i2c-ali1563-fix-initialization.patch
-jdelvare-i2c-i2c-i801-document-unhiding-quirk.patch
-jdelvare-i2c-i2c-update-bus-id-list.patch
-jdelvare-i2c-i2c-add-ids-to-bus-drivers.patch
-jdelvare-hwmon-hwmon-w83793-datasheet-refresh.patch
-jdelvare-hwmon-hwmon-vid-fix-vrm11.patch
-input-atlas-button-driver.patch
-add-suport-for-marvell-88se6121-in-pata_marvell.patch
-sata_promise-atapi-cleanup.patch
-libata-piix3-support.patch
-libata-piix3-support-warning-fix.patch
-ubi-missing-include.patch
-drivers-mtd-ubi-vtblc-make-2-functions-static.patch
-ubi-printk-fix.patch
-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
-sis190-mac-address-setting-fix.patch
-forcedeth-dma-access.patch
-forcedeth-ring-access.patch
-forcedeth-tx-locking.patch
-forcedeth-rx-skb-recycle.patch
-forcedeth-optimized-routines.patch
-forcedeth-tx-limiting.patch
-forcedeth-tx-data-path-optimization.patch
-forcedeth-rx-data-path-optimization.patch
-forcedeth-irq-data-path-optimization.patch
-forcedeth-tx-max-work.patch
-forcedeth-statistics-supported.patch
-forcedeth-statistics-optimization.patch
-net-use-bitrev8.patch
-x25-add-missing-sock_put-in-x25_receive_data.patch
-gregkh-pci-add-emi-support-to-pciehp.patch
-update-documentation-pcitxt.patch
-make-isa_bridge-alpha-only.patch
-scsi-megaraid_mmmbox-init-fix-for-kdump.patch
-megaraid-fix-kernel-doc.patch
-scsi-scan-fix-logging-message-for-pq3-devices.patch
-megaraid-more-kernel-doc-fixes.patch
-gregkh-usb-usb-usbtouchscreen-make-itm-screens-report-btn_touch-as-zero-when-not-touched.patch
-fix-for-bugzilla-7544-keyspan-usb-to-serial-converter.patch
-pci-mmconfig-support-for-intel-915-bridges.patch
-seq_file-conversion-apm-on-i386.patch
-mbind-restrict-nodes-to-the-currently-allowed-cpuset.patch
-toshiba-tc86c001-ide-driver-take-2.patch
-toshiba-tc86c001-ide-driver-take-2-fix.patch
-toshiba-tc86c001-ide-driver-take-2-fix-2.patch
-make-hdlc_setup-static-again.patch
-more-ftape-removal.patch
-hpt3xx-rework-rate-filtering.patch
-hpt3xx-rework-rate-filtering-tidy.patch
-hpt3xx-print-the-real-chip-name-at-startup.patch
-hpt3xx-switch-to-using-pci_get_slot.patch
-hpt3xx-cache-channels-mcr-address.patch
-hpt3x7-merge-speedproc-handlers.patch
-hpt370-clean-up-dma-timeout-handling.patch
-hpt3xx-init-code-rewrite.patch
-piix-fix-82371mx-enablebits.patch
-pdc202xx_new-remove-useless-code.patch
-pdc202xx_-remove-check_in_drive_lists-abomination.patch
-piix-tuneproc-fixes-cleanups.patch
-slc90e66-carry-over-fixes-from-piix-driver.patch
-hpt36x-pci-clock-detection-fix.patch
-atiixpc-remove-unused-code.patch
-atiixpc-sb600-ide-only-has-one-channel.patch
-atiixpc-add-cable-detection-support-for-ati-ide.patch
-ide-generic-jmicron-has-its-own-drivers-now.patch
-jmicron-warning-fix.patch

Merged into mainline or a subsystem tree.

+namespaces-fix-exit-race-by-splitting-exit.patch
+uml-fix-mknod.patch
+fix-sys-device-power-state-regression.patch
+bonding-arp-monitoring-broken-on-x86_64.patch
+dont-allow-the-stack-to-grow-into-hugetlb-reserved-regions.patch
+powerpc-fix-sys_pciconfig_iobase-bus-matching.patch
+x86-fix-vdso-mapping-for-aout-executables.patch
+x86-fix-vdso-mapping-for-aout-executables-fixes.patch
+x86-fix-vdso-mapping-for-aout-executables-fixes-2.patch
+x86-fix-vdso-mapping-for-aout-executables-cleanups.patch
+x86-fix-vdso-mapping-for-aout-executables-doh.patch
+x86-fix-vdso-mapping-for-aout-executables-sh-fix.patch

2.6.20 queue.

+mm-show-bounce-pages-in-oom-killer-output.patch
+fix-config_x86_64_-typo-in-drivers-kvm-svmc.patch
+add-install_special_mapping.patch
+i386-vdso-use-install_special_mapping.patch
+x86_64-ia32-vdso-use-install_special_mapping.patch
+powerpc-vdso-use-install_special_mapping.patch
+sh-vdso-use-install_special_mappingpatch.patch
+ufs-alloc-metadata-null-page-fix.patch
+ufs-truncate-negative-to-unsigned-fix.patch
+ufs-rellocation-fix.patch
+ufs-rellocation-fix-fix.patch

Probable 2.6.20 queue.

+acpi-updates-rtc-cmos-device-platform_data.patch
+acpi-correct-apparent-typo-config_acpi_debug_output.patch

ACPI things.

+sony_acpi-add-lanpower-and-audiopower-controls.patch
+sony_acpi-allow-multiple-sony_acpi_values-for-the-same-name.patch
+sony_acpi-fix-sony_acpi-backlight-registration-and-unregistration.patch

sony acpi driver updates

+remove-useless-reference-to-obsolete-kerneld.patch

ALSA cleanup

+agpgart-allow-drm-populated-agp-memory-types-update.patch

AGP tweak.

+amba-pl010-add-reference-to-ep93xx-to-kconfig-help-entry.patch

ARM fix

+avr32-fix-build-breakage.patch

Fix git-avr32.patch

+fix-ppc64s-writing-to-struct-file_operations.patch
+fix-apparent-typo-config_serial_cpm_smc.patch

powerpc fixes

+gregkh-driver-kobject_robust.patch
+gregkh-driver-pcmcia-device.patch
+gregkh-driver-driver-core-remove-device_is_registered-in-device_move.patch
+gregkh-driver-driver-core-allow-device_move.patch
+gregkh-driver-built-in-drivers-in-sys-modules.patch
+gregkh-driver-modules-drivers-dir-only-if-needed.patch
+gregkh-driver-pci-kbuild-modname.patch
+gregkh-driver-serio-kbuild-modname.patch
+gregkh-driver-usb-kbuild-modname.patch
+gregkh-driver-sys-modules-holders.patch
+gregkh-driver-sysfs-suppress-lockdep-warnings.patch
+gregkh-driver-howto-add-a-reference-to-harbison-and-steele.patch
+gregkh-driver-sysfs-fix-missing-include-of-listh-in-sysfsh.patch
+gregkh-driver-add-uevent-vars-for-devices-with-a-class.patch
+gregkh-driver-add-device_type-to-device.patch
+gregkh-driver-allow-to-supress-uevent-for-devices.patch
+gregkh-driver-increase-firmware-loader-timeout.patch
+gregkh-driver-sysfs-shadow-directory-support.patch

driver tree updates

+powerpc-make-it-compile.patch

Fix driver tree

+remove-the-unused-kernel-config-option-video_videobuf.patch
+drivers-media-dvb-frontends-make-4-functions-static.patch
+dvb-video_buf-depends-on-pci.patch

DVB fixes

+jdelvare-i2c-i2c-driver-suspend-resume-shutdown-support.patch
+jdelvare-i2c-i2c-ali1563-fix-initialization.patch
+jdelvare-i2c-i2c-i801-document-unhiding-quirk.patch
+jdelvare-i2c-i2c-update-bus-id-list.patch
+jdelvare-i2c-i2c-add-ids-to-bus-drivers.patch
+jdelvare-i2c-i2c-ibm_iic-add-parent-device.patch
+jdelvare-i2c-i2c-viapro-add-cx700-support.patch

I2C tree updates

+jdelvare-hwmon-hwmon-unchecked-return-status-fixes-abituguru.patch
+jdelvare-hwmon-hwmon-f71805f-remove-redundant-kfree.patch

hwmon tree updates.

-altix-acpi-ssdt-pci-device-support.patch
-altix-add-acpi-ssdt-pci-device-support-hotplug.patch

Dropped - changes in the ACPi tree broke these. But then I reverted the
changes in the acpi tree because they broke the x86 tree.

+ia64-register-memory-ranges-in-a-consistent-manner.patch
+ia64-clean-up-sparsemem-memory_present-calls.patch

ia64 fixes

+git-ieee1494-build-fix.patch

Fix git-ieee1394.patch

-ehca-fix-do_mmap-error-check.patch

Unneeded

+change-incorrect-config_input_atixl-to-config_mouse_atixl.patch

Input fix

+qconf-fix-showing-help-info-on-failed-search.patch
+qconf-back-button-behaviour-normalization.patch

qconfig fixes

+pata_platform-set_mode-fix.patch

PATA fix

+sata_nv-cleanup-adma-error-handling-v2.patch
+sata_nv-cleanup-adma-error-handling-v2-cleanup.patch

SATA fixes

+ide-toshiba-tc86c001-ide-driver-take-2.patch
+ide-toshiba-tc86c001-ide-driver-take-2-fix.patch
+ide-toshiba-tc86c001-ide-driver-take-2-fix-2.patch
+ide-hpt3xx-rework-rate-filtering.patch
+ide-hpt3xx-rework-rate-filtering-tidy.patch
+ide-hpt3xx-print-the-real-chip-name-at-startup.patch
+ide-hpt3xx-switch-to-using-pci_get_slot.patch
+ide-hpt3xx-cache-channels-mcr-address.patch
+ide-hpt3x7-merge-speedproc-handlers.patch
+ide-hpt370-clean-up-dma-timeout-handling.patch
+ide-hpt3xx-init-code-rewrite.patch
+ide-piix-fix-82371mx-enablebits.patch
+ide-piix-tuneproc-fixes-cleanups.patch
+ide-slc90e66-carry-over-fixes-from-piix-driver.patch
+ide-hpt36x-pci-clock-detection-fix.patch
+ide-jmicron-warning-fix.patch
+ide-pdc202xx_new-remove-useless-code.patch
+ide-pdc202xx_-remove-check_in_drive_lists-abomination.patch
+ide-atiixpc-remove-unused-code.patch
+ide-atiixpc-sb600-ide-only-has-one-channel.patch
+ide-atiixpc-add-cable-detection-support-for-ati-ide.patch
+ide-ide-generic-jmicron-has-its-own-drivers-now.patch
+ide-ide-maintainers-entry.patch
+ide-it8213-ide-driver.patch
+ide-it8213-ide-driver-update.patch
+ide-ide-pci-init-tags.patch
+ide-pdc202xx_old-dead-code.patch
+ide-au1xxx-dead-code.patch
+ide-ide-pio-blacklisted.patch
+ide-ide-no-dsc-flag.patch
+ide-trm290-dma-ifdefs.patch
+ide-ide-pci-device-tables.patch
+ide-ide-dev-openers.patch
+ide-hpt366-init-dma.patch
+ide-cs5530-cleanup.patch
+ide-svwks-cleanup.patch
+ide-sis5513-config-xfer-rate.patch
+ide-ide-set-xfer-rate.patch
+ide-ide-use-fast-pio-v2.patch
+ide-ide-io-cleanup.patch
+ide-delkin_cb-ide-driver.patch
+ide-ide-acpi-support.patch
+ide-ide-pnp-exit-fix.patch
+ide-via-ide-update.patch
+ide-it8213-ide-driver-update-fixes.patch
+ide-ide-mmio-flag.patch
+ide-hpt34x-tune-chipset-fix.patch
+ide-ide-fix-pio-fallback.patch
+ide-piix-cleanup.patch
+ide-ide-dma-check-disable-dma-fix.patch
+ide-sgiioc4-ide-dma-check-fix.patch
+ide-ide-set-dma-helper.patch
+ide-ide-dma-off-void.patch
+ide-ide-dma-host-on-void.patch
+ide-ide-fix-dma-masks.patch
+ide-ide-max-dma-mode.patch
+ide-ide-tune-dma-helper.patch

IDE tree.

+mm-ide-ide-acpi-support-warning-fix.patch

Fix it.

+git-mips-kconfig-fix.patch
+git-mips-prom_free_prom_memory-borkage.patch

Fix git-mips.patch

+git-mmc-fixup.patch

Fix rejects in git-mmc.patch

+mmc-au1xmmc-return-errors-for-unknown-response-types.patch
+mmc-au1xmmc-implement-proper-ro-switch-detection.patch

mmc updates

+mtd_ck804xrom-must-depend-on-pci.patch

MTD fix

+git-netdev-all-fixup.patch
+git-netdev-all-atl1-build-fix.patch
+git-netdev-all-atl1-pm-fix.patch

Fix git-netdev-all.patch

+remove-one-remaining-define-bcm_tso-1.patch
+fs_enet-of-related-fixup-for-fec-and-scc-macs.patch
+82596-warning-fix.patch

netdev fixes

+remove-tcp-header-from-tcp_v4_check-take-2.patch
+slip-replace-kmalloc-memset-pairs-with-the.patch
+remove-unused-kernel-config-option-dlci_count.patch
+dccp-warning-fixes.patch

net fixes

+nfs-fix-congestion-control-v4.patch
+nfs-fix-congestion-control-v4-tweaks.patch

Fix NFS request throttling.

+gregkh-pci-pciehp-add-electro-mechanical-interlock-support-to-the-pcie-hotplug-driver.patch
+gregkh-pci-shpchp-remove-config_hotplug_pci_shpc_poll_event_mode.patch
+gregkh-pci-shpchp-remove-dbg_xxx_routine.patch
+gregkh-pci-shpchp-delete-trailing-whitespace.patch
+gregkh-pci-pci-speed-up-the-intel-smbus-unhiding-quirk.patch
+gregkh-pci-pci-remove-quirk_sis_96x_compatible.patch
+gregkh-pci-pci-make-isa_bridge-alpha-only.patch
+gregkh-pci-pci-cleanup-msi-code.patch
+gregkh-pci-pci-power-management-remove-noise-on-non-manageable-hw.patch
+gregkh-pci-pci-duplicate-ids-ata_piix.patch
+gregkh-pci-pci-duplicate-ids-ipr.patch
+gregkh-pci-msi-replace-pci_msi_quirk-with-calls-to-pci_no_msi.patch
+gregkh-pci-msi-remove-pci_scan_msi_device.patch
+gregkh-pci-msi-combine-pci__msi-msix_state.patch
+gregkh-pci-msi-abstract-msi-suspend.patch

PCI tree updates

+make-cardbus_mem_size-and-cardbus_io_size-boot-options.patch
+make-cardbus_mem_size-and-cardbus_io_size-boot-options-fix.patch

Add a boot option to set the cardbus window sizes

+bugfixes-pci-devices-get-assigned-redundant-irqs.patch

PCI fix. Might break things.

+sh-add-kconfig-default.patch

Fix git-sh.patch

+scsi-handle-bad-inquiry-responses.patch
+drivers-scsi-qla4xxx-possible-cleanups.patch
+drivers-scsi-buslogic-replace-boolean-by-bool.patch
+make-seagate_st0x_detect-static.patch
+remove-some-unused-scsi-related-kernel-config-variables.patch

SCSI fixes

+git-block-borkage.patch

Fix git-block.patch some more.

-git-sas.patch
-git-sas-kconfig-fix.patch

The git-sas tree appears to be unmaintained and is full of conflicts.
Dropped.

+gregkh-usb-usb-unusual_devsh-for-sony-floppy.patch
+gregkh-usb-usb-add-epic-support-to-the-io_edgeport-driver.patch
+gregkh-usb-usb-move-usb_device_class-class-devices-to-be-real-devices.patch
+gregkh-usb-usb-convert-usb-class-devices-to-real-devices.patch
+gregkh-usb-usb-race-on-disconnect-in-mdc800.patch
+gregkh-usb-uhci-improved-debugging-checks-for-the-frame-list.patch
+gregkh-usb-uhci-no-dummy-tds-for-iso-qhs.patch
+gregkh-usb-usb-storage-scsi-level-fixes.patch
+gregkh-usb-usb-ohci-at91-refcount-fix-for-irq-wake-enables.patch
+gregkh-usb-usb-gadgetfs-whitespace-cleanup.patch
+gregkh-usb-usb-gadgetfs-remove-delayed-init-mode.patch
+gregkh-usb-usb-power-management-for-kaweth.patch
+gregkh-usb-usb-better-ethtool-support-for-kaweth.patch
+gregkh-usb-usb-ps3-ehci-bus-glue.patch
+gregkh-usb-usb-ps3-controller-hid-quirk.patch
+gregkh-usb-usb-ohci-error-handling-cleanup.patch
+gregkh-usb-usb-ps3-ohci-bus-glue.patch
+gregkh-usb-uhci-fix-bandwidth-allocation.patch
+gregkh-usb-usbcore-remove-unused-bandwith-related-code.patch
+gregkh-usb-ehci-local-variable-for-port-status-register.patch
+gregkh-usb-ehci-don-t-hide-ports-owned-by-the-companion.patch
+gregkh-usb-ehci-force-high-speed-devices-to-run-at-full-speed.patch
+gregkh-usb-usb-at91_udc-wakeup-event-updates.patch
+gregkh-usb-usb-total-removal-of-multithreaded-probing-in-usb.patch
+gregkh-usb-fix-for-bugzilla-7544.patch
+gregkh-usb-usb-race-fixes-for-usb-serial-step-1.patch
+gregkh-usb-usb-race-fixes-for-usb-serial-step-2.patch
+gregkh-usb-usb-race-fixes-for-usb-serial-step-3.patch
+gregkh-usb-usb-gadgetfs-cleanups.patch
+gregkh-usb-usb-gadgetfs-simplifications.patch
+gregkh-usb-usb-gadgetfs-race-fix.patch
+gregkh-usb-usb-gadgetfs-behaves-better-on-userspace-init-bug.patch
+gregkh-usb-usb-gadgetfs-aio-tweaks.patch
+gregkh-usb-usb-list-atmel-husb2_udc-gadget-controller.patch
+gregkh-usb-usb-usb-ethernet-gadget-recognizes-husb2dev.patch
+gregkh-usb-usb-sierra-wireless-auto-set-d0.patch
+gregkh-usb-usb-input-added-kernel-module-to-support-all-gtco-calcomp-usb-interwrite-school-products.patch
+gregkh-usb-usb-autosuspend-for-usb-printer-driver.patch
+gregkh-usb-usb-switch-ehci-hcd-to-new-polling-scheme.patch
+gregkh-usb-ehci-fix-interrupt-driven-remote-wakeup.patch
+gregkh-usb-usb-storage-use-first-bulk-endpoints-not-last.patch
+gregkh-usb-usbcore-trivial-whitespace-fixes.patch
+gregkh-usb-usb-a-bit-more-coding-style-cleanup.patch
+gregkh-usb-usb-duplicate-ids-visor.patch
+gregkh-usb-usb-duplicate-ids-ftdi_sio.patch
+gregkh-usb-usb-duplicate-ids-keyspan.patch
+gregkh-usb-usb-duplicate-ids-usb_storage.patch
+gregkh-usb-berry_charge.patch

USB tree updates

+fix-gregkh-usb-usbcore-remove-unused-bandwith-related-code.patch

Fix it.

+fix-misspelled-usbnet_mii-kernel-config-option.patch
+usb-in-init_endpoint_class-use-ptr_err-to-obtain-an-errno-value-not-is_err.patch
+fix-apparent-typo-config_usb_cdcether.patch

USB things.

+fix-unaligned-exception-in-drivers-net-wireless-orinococ.patch

wireless fix.

+x86_64-mm-defconfig-update.patch
+x86_64-mm-i386-defconfig-update.patch
+x86_64-mm-remove-get_pmd.patch
+x86_64-mm-blink-driver.patch
+x86_64-mm-fix-tlbflush-comment.patch
+x86_64-mm-msr-on-cpu.patch
+x86_64-mm-reject-a-broken-mcfg-tables-on-asus-etc.patch
+x86_64-mm-kconfig-typos.patch
+x86_64-mm-msr-scf-single.patch
+x86_64-mm-mtrr-scf-single.patch
+x86_64-mm-fix-preprocessor-condition.patch
+x86_64-mm-mtrr-compat.patch
+x86_64-mm-apm-seqfile.patch
+x86_64-mm-update-disable_io_apic-to-use-8-bit-destination-field.patch
+x86_64-mm-readd-fadt-physflat.patch
+x86_64-mm-fix-size_or_mask-and-size_and_mask.patch
+x86_64-mm-ignore-long-smi-interrupts-in-clock-calibration-code-update-1.patch
+x86_64-mm-putreg-check.patch

x86 tree updates

+revert-x86_64-mm-msr-on-cpu.patch
+fix-x86_64-mm-convert-i386-pda-code-to-use-%fs.patch

Fix it.

-i386-adjustments-to-page-table-dump-during-oops.patch
+i386-adjustments-to-page-table-dump-during-oops-v2.patch

Updated.

+i386-modpost-apic-related-warning-fixes.patch
+geode-support-classic-mediagxm.patch
+arch-i386-kernel-ptracec-trivial-whitespace-cleanup.patch
+i386-kwatch-kernel-watchpoints-using-cpu-debug-registers.patch
+i386-kwatch-kernel-watchpoints-using-cpu-debug-registers-fix.patch
+i386-entrys-end-endproc-annotations.patch
+x86_64-clean-up-sparsemem-memory_present-call.patch
+arch-i386-kernel-alternativec-should-include-asm-bugsh.patch
+kexec-update-io-apic-dest-field-to-8-bit-for.patch
+remove-unused-kernel-config-option-x86_xadd.patch
+hpet-avoid-warning-message-livelock.patch
+minor-patch-for-compilation-warning-in-x86_64-signal-code.patch
+x86_64-fix-fs-gs-registers-for-vt-execution.patch
+arch-i386-kernel-alternativec-dont-include-bugsh.patch

x86 updates.

+typeof-__page_to_pfn-with-sparsemem=y.patch

MM sparse fix

+use-zvc-for-inactive-and-active-counts.patch
+use-zvc-for-inactive-and-active-counts-up-fix.patch
+use-zvc-for-free_pages.patch
+use-zvc-for-free_pages-fix.patch
+use-zvc-for-free_pages-fix-2.patch
+use-zvc-for-free_pages-fix-3.patch
+use-zvc-for-free_pages-fix-4.patch
+reorder-zvcs-according-to-cacheline.patch
+drop-free_pages.patch
+drop-free_pages-fix.patch
+drop-free_pages-sparc64-fix.patch
+drop-nr_free_pages_pgdat.patch
+drop-__get_zone_counts.patch
+drop-get_zone_counts.patch
+get_dirty_limits-accurately-calculate-the-available-memory-that-can-be-dirtied.patch
+get_dirty_limits-accurately-calculate-the-available-memory-that-can-be-dirtied-fix.patch

Rework the pagecache accounting pertaining to writeback, use it in the
writeback code.

+optional-zone_dma-in-the-vm-tidy.patch

Cleanup

+swsusp-change-code-order-in-diskc-fix.patch

Fix swsusp-change-code-ordering-in-diskc.patch

-m68k-work-around-binutils-tokenizer-change.patch

Needs updating.

+m68k-uaccessh-needs-schedh.patch

m68k build fix.

+uml-add-per-device-queues-and-locks-to-ubd-driver.patch
+uml-locking-fixes-in-the-ubd-driver.patch
+uml-locking-comments-in-memory-and-tempfile-code.patch
+uml-locking-comments-in-startup-code.patch
+uml-style-fixes-in-startup-code.patch
+uml-libc-dependent-code-should-call-libc-directly.patch
+uml-fix-style-violations.patch
+uml-fix-apparent-config_64_bit-typo.patch

UML updates.

+char-mxser_new-upgrade-to-1915-fix.patch
+char-mxser_new-do-not-null-driver_data.patch
+char-mxser_new-lock-count-and-flags.patch
+char-mxser_new-fix-sparse-warning.patch

serial driver updates.


+rtc-framework-driver-for-cmos-rtcs-fix.patch
+rtc-framework-driver-for-cmos-rtcs-fix-2.patch

Fix rtc-framework-driver-for-cmos-rtcs.patch

+audit-fix-audit_filter_user_rules-initialization-bug.patch
+raw-dont-allow-the-creation-of-a-raw-device-with-minor-number-0.patch
+fix-rmmod-read-write-races-in-proc-entries.patch
+sed-s-gawk-awk-scripts-gen_init_ramfssh.patch
+seq_file-conversion-coda.patch
+fix-umask-when-noacl-kernel-meets-extn-tuned-for-acls.patch
+seq_file-conversion-toshibac.patch
+return-enoent-from-ext3_link-when-racing-with-unlink.patch
+return-enoent-from-ext3_link-when-racing-with-unlink-fix.patch
+remove-ext_inc_count-and-_dec_count.patch
+remove-the-last-reference-to-rwlock_is_locked-macro.patch
+consolidate-bust_spinlocks.patch
+extract-and-use-wake_up_klogd.patch
+extend-the-set-of-__attribute__-shortcut-macros.patch
+documentation-rbtreetxt-updated.patch
+replace-highest_possible_node_id-with-nr_node_ids.patch
+docbook-html-correction-of-recursive-a-tags-in-html-output.patch
+pnpacpi-remove-experimental-dependency.patch
+cdevh-forward-declarations.patch
+buffer-memorder-fix.patch
+mm-search_binary_handler-mem-limit-fix.patch
+remove-final-reference-to-superfluous-smp_commence.patch
+cleanup-include-linux-xattrh.patch
+cleanup-include-linux-reiserfs_xattrh.patch
+replace-regular-code-with-appropriate-calls-to-container_of.patch
+remove-dead-kernel-config-option-aedsp16_mpu401.patch
+remove-references-to-obsolete-kernel-config-option-debug_rwsems.patch
+remove-unused-kernel-config-option-zisofs_fs.patch
+remove-unused-kernel-config-option-lcd_device.patch
+remove-unused-kernel-config-option-paride_parport.patch
+order-of-lockdep-off-on-in-vprintk-should-be-changed.patch
+minimize-lockdep_on-off-side-effect.patch
+kprobes-replace-magic-numbers-with-enum.patch
+some-rtc-documentation-updates.patch
+drivers-block-dac960-converted-boolean-to-bool.patch
+mxser-remove-useless-fields.patch
+fix-apparent-typo-config_lockdep_debug.patch

Misc patches.

+spi-kconfig-fix.patch
+spi-controller-driver-for-omap-microwire.patch
+spi-controller-driver-for-omap-microwire-tidy.patch
+spi-controller-driver-for-omap-microwire-update.patch
+spi-controller-driver-for-omap-microwire-update-fix.patch
+spi-freescale-imx-spi-controller-driver-bis.patch
+spi-add-spi_set_drvdata-and-spi_get_drvdata.patch
+spi-documentation-does-not-need-to-set-drivers-bus_type-field.patch
+spi-remove-return-in-spi_unregister_driver.patch
+spi_bitbang-use-overridable-setup_transfer-method.patch
+spi-cleanup-method-param-becomes-non-const.patch

SPI udpates.

+add-shared-version-of-apm-emulation.patch
+arm-convert-to-use-shared-apm-emulation.patch
+mips-convert-to-use-shared-apm-emulation.patch
+mips-convert-to-use-shared-apm-emulation-fix.patch
+sh-convert-to-use-shared-apm-emulation.patch

Consolidate APM emulation on several architectures.

+make-static-counters-in-new_inode-and-iunique-be-32-bits.patch
+change-libfs-sb-creation-routines-to-avoid-collisions-with-their-root-inodes.patch
+have-pipefs-ensure-i_ino-uniqueness-by-calling-iunique-and-hashing-the-inode.patch
+have-pipefs-ensure-i_ino-uniqueness-by-calling-iunique-and-hashing-the-inode-update.patch

Better support for large inode numbers.

-gtod-uninline-jiffiesh.patch
-gtod-fix-multiple-conversion-bugs-in-msecs_to_jiffies.patch
-gtod-fix-timeout-overflow.patch
-gtod-persistent-clock-support-core.patch
-gtod-persistent-clock-support-i386.patch
-dynticks-uninline-irq_enter.patch
-dynticks-extend-next_timer_interrupt-to-use-a-reference-jiffie.patch
-hrtimers-namespace-and-enum-cleanup.patch
-hrtimers-namespace-and-enum-cleanup-vs-git-input.patch
-hrtimers-clean-up-locking.patch
-hrtimers-add-state-tracking.patch
-hrtimers-clean-up-callback-tracking.patch
-hrtimers-move-and-add-documentation.patch
-acpi-include-fix.patch
-acpi-keep-track-of-timer-broadcast.patch
-acpi-add-state-propagation-for-dynamic-broadcasting.patch
-acpi-cleanups-allow-early-access-to-pmtimer.patch
-i386-apic-clean-up-the-apic-code.patch
-clockevents-core.patch
-clockevents-i386-drivers.patch
-clockevents-i386-drivers-high-res-timers-fix-apic-event-broadcasting-code.patch
-clockevents-i386-hpet-driver.patch
-i386-apic-rework-and-fix-local-apic-calibration.patch
-high-res-timers-core.patch
-high-res-timers-core-do-itimer-rearming-in-process-context.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
-high-res-timers-allow-tsc-clocksource-if-pmtimer-present.patch
-dynticks-core.patch
-dynticks-add-nohz-stats-to-proc-stat.patch
-dynticks-i386-support-idle-handler-callbacks.patch
-dynticks-i386-prepare-nmi-watchdog.patch
-high-res-timers-dynticks-i386-support-enable-in-kconfig.patch
-debugging-feature-add-proc-timer_stat.patch
-debugging-feature-proc-timer_list.patch
-debugging-feature-proc-timer_list-warning-fix.patch
-debugging-feature-sysrq-q-to-print-timers.patch

A new version of the hrtimers&dynticks patch series was received, and it
failed.

-hpet-avoid-warning-message-livelock.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
-revert-x86_64-mm-ignore-long-smi-interrupts-in-clock-calibration.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
-reapply-x86_64-mm-ignore-long-smi-interrupts-in-clock-calibration.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

And these got dropped as a result, too.

+extend-notifier_call_chain-to-count-nr_calls-made-fixes-3.patch

Fix extend-notifier_call_chain-to-count-nr_calls-made-fixes.patch some more.

-handle-cpu_lock_acquire-and-cpu_lock_release-in-workqueue_cpu_callback.patch

Dropped

+workqueue-rework-threads-hotplug-management.patch

Update workqueue fixes

+drivers-isdn-sc-proper-prototypes.patch
+isdn-capi-use-array_size-when-appropriate.patch
+isdn-fix-typo-config_hisax_quadro-config_hisax_sct_quadro.patch

ISDN updates.

+ecryptfs-public-key-transport-mechanism.patch
+ecryptfs-public-key-transport-mechanism-fix.patch
+ecryptfs-public-key-packet-management.patch
+ecryptfs-public-key-packet-management-slab-fix.patch
+ecryptfs-xattr-flags-and-mount-options.patch
+ecryptfs-generalize-metadata-read-write.patch
+ecryptfs-generalize-metadata-read-write-fix.patch
+ecryptfs-encrypted-passthrough.patch
+ecryptfs-convert-f_op-write-to-vfs_write.patch
+ecryptfs-convert-kmap-to-kmap_atomic.patch
+ecryptfs-open-code-flag-checking-and-manipulation.patch
+ecryptfs-add-flush_dcache_page-calls.patch
+ecryptfs-convert-lookup_one_len-to-lookup_one_len_nd.patch

ecryptfs queue.

+fsaio-add-a-wait-queue-arg-to-the-wait_bit-action-routine-gfs2-fix.patch

Fix fsaio-add-a-wait-queue-arg-to-the-wait_bit-action-routine.patch

+fsaio-enable-wait-bit-based-filtered-wakeups-to-work-for-aio-fix-sparse-fix.patch

Fix fsaio-enable-wait-bit-based-filtered-wakeups-to-work-for-aio.patch

+sched-avoid-div-in-rebalance_tick.patch

CPU scheduler speedup.

+mm-implement-swap-prefetching-vs-zvc-stuff.patch
+mm-implement-swap-prefetching-vs-zvc-stuff-2.patch

Fix mm-implement-swap-prefetching.patch

+introduce-and-use-get_task_mnt_ns.patch
+introduce-and-use-get_task_mnt_ns-tweaks.patch
+nsproxy-externalizes-exit_task_namespaces-fix.patch
+user_ns-handle-file-sigio-fix.patch
+user_ns-handle-file-sigio-fix-2.patch
-user-ns-always-on.patch

More work on the user-namespace patches in -mm.

+remove-find_attach_pid.patch
+statically-initialize-struct-pid-for-swapper.patch
+explicitly-set-pgid-sid-of-init.patch

More work on the PID management patches in -mm.

+uts-namespace-remove-config_uts_ns.patch
+ipc-namespace-remove-config_ipc_ns.patch
+ipc-namespace-remove-config_ipc_ns-linkage-fix.patch
+ipc-namespace-remove-config_ipc_ns-linkage-fix-fix.patch

More work on the namespace patches in -mm.

+dynamic-kernel-command-line-common.patch
+dynamic-kernel-command-line-alpha.patch
+dynamic-kernel-command-line-arm.patch
+dynamic-kernel-command-line-arm26.patch
+dynamic-kernel-command-line-avr32.patch
+dynamic-kernel-command-line-cris.patch
+dynamic-kernel-command-line-frv.patch
+dynamic-kernel-command-line-h8300.patch
+dynamic-kernel-command-line-i386.patch
+dynamic-kernel-command-line-ia64.patch
+dynamic-kernel-command-line-ia64-fix.patch
+dynamic-kernel-command-line-m32r.patch
+dynamic-kernel-command-line-m68k.patch
+dynamic-kernel-command-line-m68knommu.patch
+dynamic-kernel-command-line-mips.patch
+dynamic-kernel-command-line-parisc.patch
+dynamic-kernel-command-line-powerpc.patch
+dynamic-kernel-command-line-ppc.patch
+dynamic-kernel-command-line-s390.patch
+dynamic-kernel-command-line-sh.patch
+dynamic-kernel-command-line-sh64.patch
+dynamic-kernel-command-line-sparc.patch
+dynamic-kernel-command-line-sparc64.patch
+dynamic-kernel-command-line-um.patch
+dynamic-kernel-command-line-v850.patch
+dynamic-kernel-command-line-x86_64.patch
+dynamic-kernel-command-line-xtensa.patch
+dynamic-kernel-command-line-fixups.patch

Remove static limitation on kernel command line size.

+i386-2048-byte-command-line.patch
+x86_64-2048-byte-command-line.patch
+ia64-2048-byte-command-line.patch

Support longer command lines on some architectures.

+rcu-split-classic-rcu.patch
+rcu-softirq-for-rcu.patch
+rcu-fix-barriers.patch
+rcu-preemptible-rcu.patch
+rcu-preemptible-rcu-fix.patch
+rcu-debug-trace-for-rcu.patch
+rcu-trivial-fixes.patch

Preemptible RCU.

+lutimesat-simplify-utime2.patch
+lutimesat-extend-do_utimes-with-flags.patch
+lutimesat-actual-syscall-and-wire-up-on-i386.patch

Implement lutimesat() syscall.

+readahead-state-based-method-aging-accounting-vs-zvc-changes.patch

Fix readahead-state-based-method-aging-accounting.patch

+reiser4-fix-readpage_cryptcompress.patch
+reiser4-improve-estimation-for-number-of-nodes-occupied.patch
+reiser4-drop-check_cryptcompress.patch
+reiser4-fix-freeze-and-corruption.patch

reiser4 updates.

+proper-prototype-for-tosh_smm.patch
+recognize-video=gx1fb-option.patch
+correct-apparent-typo-config_aty_ct-in-aty-video.patch

fbdev updates

+mark-struct-file_operations-const-1.patch
+mark-struct-file_operations-const-2.patch
+mark-struct-file_operations-const-2-fix.patch
+mark-struct-file_operations-const-3.patch
+mark-struct-file_operations-const-4.patch
+mark-struct-file_operations-const-4-fix.patch
+mark-struct-file_operations-const-5.patch
+mark-struct-file_operations-const-6.patch
+mark-struct-file_operations-const-7.patch
+mark-struct-file_operations-const-8.patch
+mark-struct-file_operations-const-9.patch
+mark-struct-inode_operations-const-1.patch
+mark-struct-inode_operations-const-2.patch
+mark-struct-inode_operations-const-3.patch
+mark-struct-super_operations-const.patch

constifications.

+scheduled-removal-of-sa_xxx-interrupt-flags-fixups.patch
+scheduled-removal-of-sa_xxx-interrupt-flags-fixups-2.patch
+scheduled-removal-of-sa_xxx-interrupt-flags.patch
+scheduled-removal-of-sa_xxx-interrupt-flags-ata-fix.patch

Remove the SA_* interrupt defines.

+sysctl-x25-remove-unnecessary-insert_at_head-from-register_sysctl_table.patch
+sysctl-move-ctl_sunrpc-to-sysctlh-where-it-belongs.patch
+sysctl-sunrpc-remove-unnecessary-insert_at_head-flag.patch
+sysctl-sunrpc-dont-unnecessarily-set-ctl_table-de.patch
+sysctl-rose-remove-unnecessary-insert_at_head-flag.patch
+sysctl-netrom-remove-unnecessary-insert_at_head-flag.patch
+sysctl-llc-remove-unnecessary-insert_at_head-flag.patch
+sysctl-ipx-remove-unnecessary-insert_at_head-flag.patch
+sysctl-decnet-remove-unnecessary-insert_at_head-flag.patch
+sysctl-dccp-remove-unnecessary-insert_at_head-flag.patch
+sysctl-ax25-remove-unnecessary-insert_at_head-flag.patch
+sysctl-atalk-remove-unnecessary-insert_at_head-flag.patch
+sysctl-xfs-remove-unnecessary-insert_at_head-flag.patch
+sysctl-c99-convert-xfs-ctl_tables.patch
+sysctl-c99-convert-xfs-ctl_tables-fixes.patch
+sysctl-scsi-remove-unnecessary-insert_at_head-flag.patch
+sysctl-md-remove-unnecessary-insert_at_head-flag.patch
+sysctl-mac_hid-remove-unnecessary-insert_at_head-flag.patch
+sysctl-ipmi-remove-unnecessary-insert_at_head-flag.patch
+sysctl-cdrom-remove-unnecessary-insert_at_head-flag.patch
+sysctl-cdrom-dont-set-de-owner.patch
+sysctl-move-ctl_pm-into-sysctlh-where-it-belongs.patch
+sysctl-frv-pm-remove-unnecessary-insert_at_head-flag.patch
+sysctl-move-ctl_frv-into-sysctlh-where-it-belongs.patch
+sysctl-frv-remove-unnecessary-insert_at_head-flag.patch
+sysctl-c99-convert-arch-frv-kernel-pmc.patch
+sysctl-c99-convert-arch-frv-kernel-sysctlc.patch
+sysctl-sn-remove-sysctl-abi-breakage.patch
+sysctl-c99-convert-arch-ia64-sn-kernel-xpc_mainc.patch
+sysctl-c99-convert-arch-ia64-kernel-perfmon-and-remove-abi-breakage.patch
+sysctl-mips-au1000-remove-sys_sysctl-support.patch
+sysctl-c99-convert-the-ctl_tables-in-arch-mips-au1000-common-powerc.patch
+sysctl-c99-convert-arch-mips-lasat-sysctlc-and-remove-abi-breakage.patch
+sysctl-s390-move-sysctl-definitions-to-sysctlh.patch
+sysctl-s390-move-sysctl-definitions-to-sysctlh-fix.patch
+sysctl-s390-remove-unnecessary-use-of-insert_at_head.patch
+sysctl-c99-convert-ctl_tables-in-arch-powerpc-kernel-idlec.patch
+sysctl-c99-convert-ctl_tables-entries-in-arch-ppc-kernel-ppc_htabc.patch
+sysctl-c99-convert-arch-sh64-kernel-trapsc-and-remove-abi-breakage.patch
+sysctl-x86_64-remove-unnecessary-use-of-insert_at_head.patch
+sysctl-c99-convert-ctl_tables-in-arch-x86_64-ia32-ia32_binfmtc.patch
+sysctl-c99-convert-ctl_tables-in-arch-x86_64-kernel-vsyscallc.patch
+sysctl-c99-convert-ctl_tables-in-arch-x86_64-mm-initc.patch
+sysctl-remove-sys_sysctl-support-from-the-hpet-timer-driver.patch
+sysctl-remove-sys_sysctl-support-from-drivers-char-rtcc.patch
+sysctl-register-the-sysctl-number-used-by-the-arlan-driver.patch
+sysctl-c99-convert-ctl_tables-in-drivers-parport-procfsc.patch
+sysctl-c99-convert-ctl_tables-in-drivers-parport-procfsc-fix.patch
+sysctl-c99-convert-coda-ctl_tables-and-remove-binary-sysctls.patch
+sysctl-c99-convert-ctl_tables-in-ntfs-and-remove-sys_sysctl-support.patch
+sysctl-c99-convert-ctl_tables-in-ntfs-and-remove-sys_sysctl-support-fix.patch
+sysctl-register-the-ocfs2-sysctl-numbers.patch
+sysctl-move-init_irq_proc-into-init-main-where-it-belongs.patch
+sysctl-move-utsname-sysctls-to-their-own-file.patch
+sysctl-move-sysv-ipc-sysctls-to-their-own-file.patch
+sysctl-move-sysv-ipc-sysctls-to-their-own-file-fix.patch
+sysctl-create-sys-fs-binfmt_misc-as-an-ordinary-sysctl-entry.patch
+sysctl-create-sys-fs-binfmt_misc-as-an-ordinary-sysctl-entry-warning-fix.patch
+sysctl-remove-support-for-ctl_any.patch
+sysctl-remove-support-for-directory-strategy-routines.patch
+sysctl-remove-insert_at_head-from-register_sysctl.patch
+sysctl-remove-insert_at_head-from-register_sysctl-fix.patch
+sysctl-factor-out-sysctl_head_next-from-do_sysctl.patch
+sysctl-factor-out-sysctl_head_next-from-do_sysctl-warning-fix.patch
+sysctl-allow-sysctl_perm-to-be-called-from-outside-of-sysctlc.patch
+sysctl-reimplement-the-sysctl-proc-support.patch
+sysctl-reimplement-the-sysctl-proc-support-fix.patch
+sysctl-reimplement-the-sysctl-proc-support-warning-fix.patch
+sysctl-reimplement-the-sysctl-proc-support-fix-2.patch
+sysctl-remove-the-proc_dir_entry-member-for-the-sysctl-tables.patch
+sysctl-remove-the-proc_dir_entry-member-for-the-sysctl-tables-hack.patch
+sysctl-remove-the-proc_dir_entry-member-for-the-sysctl-tables-ntfs-fix.patch

A few sysctl patches.

+#profile-likely-unlikely-macros-x86_64-fix.patch

Unneeded due to time patch droppage.


All 1376 patches:

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




2007-01-28 10:08:24

by Jiri Slaby

[permalink] [raw]
Subject: Unable to select IPV6 [Was: 2.6.20-rc6-mm1]

Andrew Morton napsal(a):
> Temporarily at
>
> http://userweb.kernel.org/~akpm/2.6.20-rc6-mm1/

Unable to select IPV6. Menuconfig doesn't offer it when INET is selected. When
it's not it appears in the menu, but after state change it gets away. The same
behaviour in xconfig, gconfig.

$ mkdir ../a/tst
$ make O=../a/tst menuconfig
HOSTCC scripts/basic/fixdep
[...]
HOSTLD scripts/kconfig/mconf
scripts/kconfig/mconf arch/i386/Kconfig
Warning! Found recursive dependency: INET GFS2_FS_LOCKING_DLM SYSFS OCFS2_FS INET

Maybe this is the problem?

regards,
--
http://www.fi.muni.cz/~xslaby/ Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8 22A0 32CC 55C3 39D4 7A7E

2007-01-28 10:25:44

by Jiri Slaby

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

Andrew Morton napsal(a):
> Temporarily at
>
> http://userweb.kernel.org/~akpm/2.6.20-rc6-mm1/

I'm still seeing this during bootup:
BUG: at /home/l/latest/xxx/arch/i386/mm/highmem.c:52 kmap_atomic()
[<c0104ffb>] show_trace_log_lvl+0x1a/0x30
[<c01056b5>] show_trace+0x12/0x14
[<c010573c>] dump_stack+0x16/0x18
[<c011b24f>] kmap_atomic+0x16c/0x20e
[<c01b279e>] ntfs_end_buffer_async_read+0x18e/0x2ed
[<c0183352>] end_bio_bh_io_sync+0x26/0x3f
[<c0184dd4>] bio_endio+0x37/0x62
[<c01cda43>] __end_that_request_first+0x224/0x444
[<c01cdc6b>] end_that_request_chunk+0x8/0xa
[<c024507d>] scsi_end_request+0x1f/0xc7
[<c02451e6>] scsi_io_completion+0x7b/0x33a
[<c024aa5d>] sd_rw_intr+0x23/0x1ab
[<c02415ed>] scsi_finish_command+0x42/0x47
[<c0245a38>] scsi_softirq_done+0x64/0xcf
[<c01cf9e6>] blk_done_softirq+0x54/0x62
[<c0127bc5>] __do_softirq+0x75/0xde
[<c0127c69>] do_softirq+0x3b/0x3d
[<c0127ee6>] irq_exit+0x3b/0x3d
[<c0106804>] do_IRQ+0x51/0x8d
[<c0104a5f>] common_interrupt+0x23/0x28
[<c010241a>] cpu_idle+0x80/0xc3
[<c010140d>] rest_init+0x23/0x36
[<c045ea59>] start_kernel+0x3a5/0x43c
[<00000000>] 0x0
=======================

I.e. KM_BIO_SRC_IRQ through softirq path.

reagrds,
--
http://www.fi.muni.cz/~xslaby/ Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8 22A0 32CC 55C3 39D4 7A7E

2007-01-28 11:01:59

by Jiri Slaby

[permalink] [raw]
Subject: elevator oops [Was: 2.6.20-rc6-mm1]

Andrew Morton napsal(a):
> Temporarily at
>
> http://userweb.kernel.org/~akpm/2.6.20-rc6-mm1/

Under disk load I get disk:
------------[ cut here ]------------
kernel BUG at /home/l/latest/xxx/block/cfq-iosched.c:1026!
invalid opcode: 0000 [#1]
SMP
last sysfs file: /devices/platform/i2c-9191/9191-0290/cpu0_vid
Modules linked in: nfsd exportfs lockd sunrpc cifs ipv6 floppy eth1394 ide_cd
ohci1394 cdrom usb_storage ehci_hcd ieee1394
CPU: 0
EIP: 0060:[<c01d4186>] Not tainted VLI
EFLAGS: 00010002 (2.6.20-rc6-mm1 #228)
EIP is at cfq_dispatch_requests+0x497/0x49b
eax: 00000000 ebx: 00000000 ecx: 00000001 edx: 00000000
esi: 00000000 edi: f7e739c0 ebp: f7e9bcf0 esp: f7e9bca0
ds: 007b es: 007b fs: 00d8 gs: 0000 ss: 0068
Process md3_raid1 (pid: 415, ti=f7e9a000 task=c1961570 task.ti=f7e9a000)
Stack: 00000000 c1961570 00000001 00000001 0000019f f7e72d5c c01d2fd1 f7e74574
00000000 f7e7180c 00000000 00000000 c01cb837 f7e7180c 00000001 f7e9bd04
c01ce7a4 f7e7180c f7e7180c f7e7180c f7e9bd08 c01cb99b f7e74574 f7e7180c
Call Trace:
[<c0104ffb>] show_trace_log_lvl+0x1a/0x30
[<c01050b6>] show_stack_log_lvl+0xa5/0xca
[<c01052ae>] show_registers+0x1d3/0x2b8
[<c01054b4>] die+0x121/0x243
[<c010564c>] do_trap+0x76/0x9c
[<c0105eb1>] do_invalid_op+0x97/0xa1
[<c034df3c>] error_code+0x7c/0x84
[<c01cb99b>] elv_drain_elevator+0x18/0x62
[<c01cbf53>] elv_insert+0xa2/0x111
[<c01cc035>] __elv_add_request+0x73/0x76
[<c01cfdff>] __make_request+0xd9/0x2f5
[<c01cde61>] generic_make_request+0x158/0x1f9
[<c01d0161>] submit_bio+0x53/0xd6
[<c02859a8>] md_super_write+0x87/0xa3
[<c0285c39>] md_update_sb+0x275/0x3f4
[<c02899fe>] md_check_recovery+0x17f/0x466
[<c0281380>] raid1d+0x2e/0xf9c
[<c028b47f>] md_thread+0x32/0x113
[<c0134c5b>] kthread+0xb4/0xd9
[<c0104c9f>] kernel_thread_helper+0x7/0x18
=======================
Code: 10 c7 04 24 00 00 00 00 31 c9 89 f8 e8 e4 f1 ff ff 8b 4f 5c 85 c9 75 13 8b
55 d8 8d 04 13 01 f0 03 45 dc 89 45 d0 e9 86 fb ff ff <0f> 0b eb fe 55 89 e5 57
56 53 83 ec 04 89 c3 8b 40 54 89 45 f0
EIP: [<c01d4186>] cfq_dispatch_requests+0x497/0x49b SS:ESP 0068:f7e9bca0

and the kernel (totally) hangs (no sysrq).

regards,
--
http://www.fi.muni.cz/~xslaby/ Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8 22A0 32CC 55C3 39D4 7A7E

2007-01-28 14:59:38

by jurriaan

[permalink] [raw]
Subject: 2.6.20-rc6-mm1: linker error with arch_setup_additional_pages

From: Andrew Morton <[email protected]>
Date: Sat, Jan 27, 2007 at 11:49:28PM -0800
>
LD init/built-in.o
LD .tmp_vmlinux1
fs/built-in.o: In function `load_elf_binary':
fs/binfmt_elf.c:978: undefined reference to `arch_setup_additional_pages'
make: *** [.tmp_vmlinux1] Error 1

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.20-rc6-mm1
# Sun Jan 28 14:44:26 2007
#
CONFIG_X86_64=y
CONFIG_64BIT=y
CONFIG_X86=y
CONFIG_ZONE_DMA32=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_X86_CMPXCHG=y
CONFIG_EARLY_PRINTK=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_DMI=y
CONFIG_AUDIT_ARCH=y
CONFIG_GENERIC_BUG=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32

#
# General setup
#
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SWAP_PREFETCH=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
# CONFIG_TASKSTATS is not set
# CONFIG_USER_NS is not set
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
# CONFIG_CPUSETS is not set
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
CONFIG_EMBEDDED=y
# CONFIG_SYSCTL_SYSCALL is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_SLAB=y
# CONFIG_VM_EVENT_COUNTERS is not set
CONFIG_CLASSIC_RCU=y
# CONFIG_PREEMPT_RCU is not set
# CONFIG_RCU_TRACE is not set
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
# CONFIG_SLOB is not set

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y

#
# Block layer
#
CONFIG_BLOCK=y
# CONFIG_BLK_DEV_IO_TRACE is not set

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"

#
# Processor type and features
#
CONFIG_X86_PC=y
# CONFIG_X86_VSMP is not set
CONFIG_MK8=y
# CONFIG_MPSC is not set
# CONFIG_MCORE2 is not set
# CONFIG_GENERIC_CPU is not set
CONFIG_X86_L1_CACHE_BYTES=64
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_INTERNODE_CACHE_BYTES=64
CONFIG_X86_TSC=y
CONFIG_X86_GOOD_APIC=y
# CONFIG_MICROCODE is not set
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_MTRR=y
CONFIG_SMP=y
# CONFIG_SCHED_SMT is not set
CONFIG_SCHED_MC=y
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_BKL=y
# CONFIG_NUMA is not set
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_RESOURCES_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_ADAPTIVE_READAHEAD=y
CONFIG_ARCH_HAS_SETUP_ADDITIONAL_PAGES=y
CONFIG_NR_CPUS=2
# CONFIG_HOTPLUG_CPU is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_IOMMU=y
# CONFIG_CALGARY_IOMMU is not set
CONFIG_SWIOTLB=y
CONFIG_X86_MCE=y
# CONFIG_X86_MCE_INTEL is not set
CONFIG_X86_MCE_AMD=y
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set
CONFIG_PHYSICAL_START=0x100000
CONFIG_SECCOMP=y
# CONFIG_CC_STACKPROTECTOR is not set
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_REORDER=y
CONFIG_K8_NB=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_ISA_DMA_API=y
CONFIG_GENERIC_PENDING_IRQ=y

#
# Power management options
#
CONFIG_PM=y
# CONFIG_PM_LEGACY is not set
# CONFIG_PM_DEBUG is not set
# CONFIG_PM_SYSFS_DEPRECATED is not set

#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=y
CONFIG_ACPI_AC=y
# CONFIG_ACPI_BATTERY is not set
CONFIG_ACPI_BUTTON=y
# CONFIG_ACPI_VIDEO is not set
# CONFIG_ACPI_HOTKEY is not set
CONFIG_ACPI_FAN=y
# CONFIG_ACPI_DOCK is not set
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_THERMAL=y
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_IBM is not set
# CONFIG_ACPI_TOSHIBA is not set
# CONFIG_ACPI_SONY is not set
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
# CONFIG_ACPI_CONTAINER is not set
# CONFIG_ACPI_SBS is not set

#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
# CONFIG_CPU_FREQ_DEBUG is not set
CONFIG_CPU_FREQ_STAT=y
# CONFIG_CPU_FREQ_STAT_DETAILS is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set

#
# CPUFreq processor drivers
#
CONFIG_X86_POWERNOW_K8=y
CONFIG_X86_POWERNOW_K8_ACPI=y
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
CONFIG_X86_ACPI_CPUFREQ=m

#
# shared options
#
# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
# CONFIG_X86_P4_CLOCKMOD is not set
# CONFIG_X86_SPEEDSTEP_LIB is not set

#
# Bus options (PCI etc.)
#
CONFIG_PCI=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
# CONFIG_PCI_DOMAINS is not set
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
CONFIG_HT_IRQ=y

#
# PCCARD (PCMCIA/CardBus) support
#
# CONFIG_PCCARD is not set

#
# PCI Hotplug Support
#
# CONFIG_HOTPLUG_PCI is not set

#
# Executable file formats / Emulations
#
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_IA32_EMULATION is not set

#
# Networking
#
CONFIG_NET=y

#
# Networking options
#
# CONFIG_NETDEBUG is not set
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
CONFIG_NET_KEY=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_ASK_IP_FIB_HASH=y
# CONFIG_IP_FIB_TRIE is not set
CONFIG_IP_FIB_HASH=y
# CONFIG_IP_MULTIPLE_TABLES is not set
# CONFIG_IP_ROUTE_MULTIPATH is not set
CONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=y
CONFIG_NET_IPGRE=y
CONFIG_NET_IPGRE_BROADCAST=y
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
CONFIG_INET_AH=y
CONFIG_INET_ESP=y
CONFIG_INET_IPCOMP=y
CONFIG_INET_XFRM_TUNNEL=y
CONFIG_INET_TUNNEL=y
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set

#
# IP: Virtual Server Configuration
#
CONFIG_IP_VS=m
# CONFIG_IP_VS_DEBUG is not set
CONFIG_IP_VS_TAB_BITS=12

#
# IPVS transport protocol load balancing support
#
CONFIG_IP_VS_PROTO_TCP=y
CONFIG_IP_VS_PROTO_UDP=y
CONFIG_IP_VS_PROTO_ESP=y
CONFIG_IP_VS_PROTO_AH=y

#
# IPVS scheduler
#
CONFIG_IP_VS_RR=m
CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m

#
# IPVS application helper
#
CONFIG_IP_VS_FTP=m
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set

#
# Core Netfilter Configuration
#
# CONFIG_NETFILTER_NETLINK is not set
CONFIG_NF_CONNTRACK_ENABLED=y
CONFIG_NF_CONNTRACK_SUPPORT=y
# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
CONFIG_NF_CONNTRACK=y
CONFIG_NF_CT_ACCT=y
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CT_PROTO_GRE=m
CONFIG_NF_CT_PROTO_SCTP=m
CONFIG_NF_CONNTRACK_AMANDA=m
CONFIG_NF_CONNTRACK_FTP=m
CONFIG_NF_CONNTRACK_H323=m
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
CONFIG_NF_CONNTRACK_PPTP=m
CONFIG_NF_CONNTRACK_SIP=m
CONFIG_NF_CONNTRACK_TFTP=m
CONFIG_NETFILTER_XTABLES=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DSCP=m
CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_NETFILTER_XT_MATCH_HELPER=m
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
CONFIG_NETFILTER_XT_MATCH_MAC=m
CONFIG_NETFILTER_XT_MATCH_MARK=m
CONFIG_NETFILTER_XT_MATCH_POLICY=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_NETFILTER_XT_MATCH_REALM=m
CONFIG_NETFILTER_XT_MATCH_SCTP=m
CONFIG_NETFILTER_XT_MATCH_STATE=m
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m

#
# IP: Netfilter Configuration
#
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_NF_CONNTRACK_PROC_COMPAT=y
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_IPRANGE=m
CONFIG_IP_NF_MATCH_TOS=m
CONFIG_IP_NF_MATCH_RECENT=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_OWNER=m
CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_IP_NF_TARGET_TCPMSS=m
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_SAME=m
CONFIG_NF_NAT_SNMP_BASIC=m
CONFIG_NF_NAT_PROTO_GRE=m
CONFIG_NF_NAT_FTP=m
CONFIG_NF_NAT_IRC=m
CONFIG_NF_NAT_TFTP=m
CONFIG_NF_NAT_AMANDA=m
CONFIG_NF_NAT_PPTP=m
CONFIG_NF_NAT_H323=m
CONFIG_NF_NAT_SIP=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_TOS=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m

#
# DCCP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_DCCP is not set

#
# SCTP Configuration (EXPERIMENTAL)
#
CONFIG_IP_SCTP=m
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
# CONFIG_SCTP_HMAC_NONE is not set
# CONFIG_SCTP_HMAC_SHA1 is not set
CONFIG_SCTP_HMAC_MD5=y

#
# TIPC Configuration (EXPERIMENTAL)
#
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set

#
# QoS and/or fair queueing
#
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_FIFO=y
CONFIG_NET_SCH_CLK_JIFFIES=y
# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
# CONFIG_NET_SCH_CLK_CPU is not set

#
# Queueing/Scheduling
#
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_INGRESS=m

#
# Classification
#
CONFIG_NET_CLS=y
# CONFIG_NET_CLS_BASIC is not set
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
# CONFIG_CLS_U32_PERF is not set
# CONFIG_CLS_U32_MARK is not set
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
# CONFIG_NET_EMATCH is not set
# CONFIG_NET_CLS_ACT is not set
CONFIG_NET_CLS_POLICE=y
# CONFIG_NET_CLS_IND is not set
CONFIG_NET_ESTIMATOR=y

#
# Network testing
#
CONFIG_NET_PKTGEN=m
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_IEEE80211 is not set

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_SYS_HYPERVISOR is not set

#
# Connector - unified userspace <-> kernelspace linker
#
# CONFIG_CONNECTOR is not set

#
# Memory Technology Devices (MTD)
#
# CONFIG_MTD is not set

#
# Parallel port support
#
# CONFIG_PARPORT is not set

#
# Plug and Play support
#
# CONFIG_PNP is not set

#
# Block devices
#
CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_UB is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_BLK_DEV_INITRD is not set
CONFIG_CDROM_PKTCDVD=y
CONFIG_CDROM_PKTCDVD_BUFFERS=32
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
# CONFIG_ATA_OVER_ETH is not set

#
# Misc devices
#
# CONFIG_IBM_ASM is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_MSI_LAPTOP is not set
# CONFIG_BLINK is not set

#
# ATA/ATAPI/MFM/RLL support
#
CONFIG_IDE=y
CONFIG_IDE_MAX_HWIFS=12
CONFIG_BLK_DEV_IDE=y

#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
CONFIG_BLK_DEV_IDESCSI=y
# CONFIG_BLK_DEV_IDEACPI is not set
# CONFIG_IDE_TASK_IOCTL is not set

#
# IDE chipset support/bugfixes
#
# CONFIG_IDE_GENERIC is not set
# CONFIG_BLK_DEV_CMD640 is not set
CONFIG_BLK_DEV_IDEPCI=y
# CONFIG_IDEPCI_SHARE_IRQ is not set
# CONFIG_BLK_DEV_OFFBOARD is not set
# CONFIG_BLK_DEV_GENERIC is not set
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_RZ1000 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
CONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not set
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
CONFIG_BLK_DEV_AMD74XX=y
# CONFIG_BLK_DEV_ATIIXP is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_HPT34X is not set
CONFIG_BLK_DEV_HPT366=y
# CONFIG_BLK_DEV_JMICRON is not set
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_IT8213 is not set
# CONFIG_BLK_DEV_IT821X is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SIS5513 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_BLK_DEV_TC86C001 is not set
# CONFIG_IDE_ARM is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
CONFIG_IDEDMA_AUTO=y
# CONFIG_BLK_DEV_HD is not set

#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
CONFIG_SCSI_PROC_FS=y

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=y
# CONFIG_BLK_DEV_SR_VENDOR is not set
CONFIG_CHR_DEV_SG=y
# CONFIG_CHR_DEV_SCH is not set

#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_LOGGING=y
# CONFIG_SCSI_SCAN_ASYNC is not set

#
# SCSI Transports
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set

#
# SCSI low-level drivers
#
# CONFIG_ISCSI_TCP is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
CONFIG_SCSI_HPTIOP=y
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_STEX is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_SRP is not set

#
# Serial ATA (prod) and Parallel ATA (experimental) drivers
#
CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_SATA_AHCI=y
# CONFIG_SATA_SVW is not set
# CONFIG_ATA_PIIX is not set
# CONFIG_SATA_MV is not set
CONFIG_SATA_NV=y
# CONFIG_PDC_ADMA is not set
# CONFIG_SATA_QSTOR is not set
# CONFIG_SATA_PROMISE is not set
# CONFIG_SATA_SX4 is not set
CONFIG_SATA_SIL=y
CONFIG_SATA_SIL24=y
# CONFIG_SATA_SIS is not set
# CONFIG_SATA_ULI is not set
# CONFIG_SATA_VIA is not set
# CONFIG_SATA_VITESSE is not set
# CONFIG_SATA_INIC162X is not set
CONFIG_SATA_INTEL_COMBINED=y
CONFIG_SATA_ACPI=y
# CONFIG_PATA_ALI is not set
# CONFIG_PATA_AMD is not set
# CONFIG_PATA_ARTOP is not set
# CONFIG_PATA_ATIIXP is not set
# CONFIG_PATA_CMD64X is not set
# CONFIG_PATA_CS5520 is not set
# CONFIG_PATA_CS5530 is not set
# CONFIG_PATA_CYPRESS is not set
# CONFIG_PATA_EFAR is not set
# CONFIG_ATA_GENERIC is not set
# CONFIG_PATA_HPT366 is not set
# CONFIG_PATA_HPT37X is not set
# CONFIG_PATA_HPT3X2N is not set
# CONFIG_PATA_HPT3X3 is not set
# CONFIG_PATA_IT821X is not set
# CONFIG_PATA_IT8213 is not set
# CONFIG_PATA_JMICRON is not set
# CONFIG_PATA_TRIFLEX is not set
# CONFIG_PATA_MARVELL is not set
# CONFIG_PATA_MPIIX is not set
# CONFIG_PATA_OLDPIIX is not set
# CONFIG_PATA_NETCELL is not set
# CONFIG_PATA_NS87410 is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_OPTIDMA is not set
# CONFIG_PATA_PDC_OLD is not set
# CONFIG_PATA_RADISYS is not set
# CONFIG_PATA_RZ1000 is not set
# CONFIG_PATA_SC1200 is not set
# CONFIG_PATA_SERVERWORKS is not set
# CONFIG_PATA_PDC2027X is not set
# CONFIG_PATA_SIL680 is not set
# CONFIG_PATA_SIS is not set
# CONFIG_PATA_VIA is not set
# CONFIG_PATA_WINBOND is not set
# CONFIG_PATA_PLATFORM is not set

#
# Multi-device support (RAID and LVM)
#
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
CONFIG_MD_LINEAR=y
CONFIG_MD_RAID0=y
CONFIG_MD_RAID1=y
CONFIG_MD_RAID10=y
CONFIG_MD_RAID456=y
CONFIG_MD_RAID5_RESHAPE=y
# CONFIG_MD_MULTIPATH is not set
# CONFIG_MD_FAULTY is not set
# CONFIG_BLK_DEV_DM is not set

#
# Fusion MPT device support
#
# CONFIG_FUSION is not set
# CONFIG_FUSION_SPI is not set
# CONFIG_FUSION_FC is not set
# CONFIG_FUSION_SAS is not set

#
# IEEE 1394 (FireWire) support
#
# CONFIG_FW is not set
CONFIG_IEEE1394=y

#
# Subsystem Options
#
# CONFIG_IEEE1394_VERBOSEDEBUG is not set
CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y
CONFIG_IEEE1394_CONFIG_ROM_IP1394=y

#
# Device Drivers
#
# CONFIG_IEEE1394_PCILYNX is not set
CONFIG_IEEE1394_OHCI1394=y

#
# Protocol Drivers
#
CONFIG_IEEE1394_VIDEO1394=y
CONFIG_IEEE1394_SBP2=y
# CONFIG_IEEE1394_ETH1394 is not set
CONFIG_IEEE1394_DV1394=y
CONFIG_IEEE1394_RAWIO=y

#
# I2O device support
#
# CONFIG_I2O is not set

#
# Network device support
#
CONFIG_NETDEVICES=y
CONFIG_DUMMY=y
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set

#
# ARCnet devices
#
CONFIG_ARCNET=m
CONFIG_ARCNET_1201=m
CONFIG_ARCNET_1051=m
CONFIG_ARCNET_RAW=m
# CONFIG_ARCNET_CAP is not set
CONFIG_ARCNET_COM90xx=m
CONFIG_ARCNET_COM90xxIO=m
CONFIG_ARCNET_RIM_I=m
CONFIG_ARCNET_COM20020=m
CONFIG_ARCNET_COM20020_PCI=m

#
# PHY device support
#
CONFIG_PHYLIB=y

#
# MII PHY device drivers
#
CONFIG_MARVELL_PHY=y
CONFIG_DAVICOM_PHY=y
CONFIG_QSEMI_PHY=y
CONFIG_LXT_PHY=y
CONFIG_CICADA_PHY=y
# CONFIG_VITESSE_PHY is not set
# CONFIG_SMSC_PHY is not set
# CONFIG_BROADCOM_PHY is not set
# CONFIG_FIXED_PHY is not set

#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set

#
# Tulip family network device support
#
CONFIG_NET_TULIP=y
# CONFIG_DE2104X is not set
CONFIG_TULIP=y
# CONFIG_TULIP_MWI is not set
# CONFIG_TULIP_MMIO is not set
# CONFIG_TULIP_NAPI is not set
# CONFIG_DE4X5 is not set
# CONFIG_WINBOND_840 is not set
# CONFIG_DM9102 is not set
# CONFIG_ULI526X is not set
# CONFIG_HP100 is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set
CONFIG_FORCEDETH=y
CONFIG_FORCEDETH_NAPI=y
# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
# CONFIG_8139TOO is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_SC92031 is not set

#
# Ethernet (1000 Mbit)
#
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
CONFIG_SKGE=y
# CONFIG_SKY2 is not set
# CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_TIGON3 is not set
# CONFIG_BNX2 is not set
# CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set

#
# Ethernet (10000 Mbit)
#
# CONFIG_CHELSIO_T1 is not set
# CONFIG_CHELSIO_T3 is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
# CONFIG_MYRI10GE is not set
# CONFIG_NETXEN_NIC is not set

#
# Token Ring devices
#
# CONFIG_TR is not set

#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set

#
# Wan interfaces
#
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set

#
# ISDN subsystem
#
# CONFIG_ISDN is not set

#
# Telephony Support
#
# CONFIG_PHONE is not set

#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1600
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1200
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=y
# CONFIG_INPUT_ATLAS_BTNS is not set
# CONFIG_INPUT_UINPUT is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_GAMEPORT is not set

#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set

#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
# CONFIG_SERIAL_8250_DONT_TEST_BUG_TXEN is not set
CONFIG_SERIAL_8250_RSA=y

#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256

#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set

#
# Watchdog Cards
#
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set

#
# Watchdog Device Drivers
#
CONFIG_SOFT_WATCHDOG=m
CONFIG_ACQUIRE_WDT=m
CONFIG_ADVANTECH_WDT=m
CONFIG_ALIM1535_WDT=m
CONFIG_ALIM7101_WDT=m
CONFIG_SC520_WDT=m
CONFIG_EUROTECH_WDT=m
CONFIG_IB700_WDT=m
# CONFIG_IBMASR is not set
CONFIG_WAFER_WDT=m
# CONFIG_I6300ESB_WDT is not set
CONFIG_I8XX_TCO=m
# CONFIG_ITCO_WDT is not set
CONFIG_SC1200_WDT=m
# CONFIG_PC87413_WDT is not set
CONFIG_60XX_WDT=m
# CONFIG_SBC8360_WDT is not set
CONFIG_CPU5_WDT=m
# CONFIG_SMSC37B787_WDT is not set
CONFIG_W83627HF_WDT=m
# CONFIG_W83697HF_WDT is not set
CONFIG_W83877F_WDT=m
# CONFIG_W83977F_WDT is not set
CONFIG_MACHZ_WDT=m
# CONFIG_SBC_EPX_C3_WATCHDOG is not set

#
# PCI-based Watchdog Cards
#
CONFIG_PCIPCWATCHDOG=m
CONFIG_WDTPCI=m
CONFIG_WDT_501_PCI=y

#
# USB-based Watchdog Cards
#
CONFIG_USBPCWATCHDOG=m
CONFIG_HW_RANDOM=y
# CONFIG_HW_RANDOM_INTEL is not set
CONFIG_HW_RANDOM_AMD=y
# CONFIG_HW_RANDOM_GEODE is not set
CONFIG_NVRAM=y
CONFIG_RTC=y
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
CONFIG_AGP=y
CONFIG_AGP_AMD64=y
# CONFIG_AGP_INTEL is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_VIA is not set
# CONFIG_DRM is not set
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_RAW_DRIVER is not set
CONFIG_HPET=y
# CONFIG_HPET_RTC_IRQ is not set
CONFIG_HPET_MMAP=y
CONFIG_HANGCHECK_TIMER=y

#
# TPM devices
#
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set

#
# I2C support
#
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y

#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=y
# CONFIG_I2C_ALGOPCF is not set
# CONFIG_I2C_ALGOPCA is not set

#
# I2C Hardware Bus support
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_I810 is not set
# CONFIG_I2C_PIIX4 is not set
CONFIG_I2C_NFORCE2=m
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_PROSAVAGE is not set
# CONFIG_I2C_SAVAGE4 is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
# CONFIG_I2C_VOODOO3 is not set
# CONFIG_I2C_PCA_ISA is not set

#
# Miscellaneous I2C Chip support
#
# CONFIG_SENSORS_DS1337 is not set
# CONFIG_SENSORS_DS1374 is not set
CONFIG_SENSORS_EEPROM=m
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set

#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set

#
# Dallas's 1-wire bus
#
# CONFIG_W1 is not set

#
# Hardware Monitoring support
#
# CONFIG_HWMON is not set
# CONFIG_HWMON_VID is not set

#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set

#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
# CONFIG_USB_DABUSB is not set

#
# Graphics support
#
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_DEVICE=y
CONFIG_LCD_CLASS_DEVICE=m
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
# CONFIG_FB_DDC is not set
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
CONFIG_FB_BACKLIGHT=y
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set

#
# Frambuffer hardware drivers
#
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
# CONFIG_FB_VESA is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
CONFIG_FB_NVIDIA=y
CONFIG_FB_NVIDIA_I2C=y
CONFIG_FB_NVIDIA_BACKLIGHT=y
# CONFIG_FB_RIVA is not set
# CONFIG_FB_INTEL is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_GEODE is not set
# CONFIG_FB_VIRTUAL is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_VGACON_SOFT_SCROLLBACK is not set
CONFIG_VIDEO_SELECT=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
CONFIG_FONTS=y
# CONFIG_FONT_8x8 is not set
# CONFIG_FONT_8x16 is not set
# CONFIG_FONT_6x11 is not set
# CONFIG_FONT_7x14 is not set
# CONFIG_FONT_PEARL_8x8 is not set
# CONFIG_FONT_ACORN_8x8 is not set
# CONFIG_FONT_MINI_4x6 is not set
# CONFIG_FONT_SUN8x16 is not set
# CONFIG_FONT_SUN12x22 is not set
CONFIG_FONT_10x18=y

#
# Logo configuration
#
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=y

#
# Sound
#
CONFIG_SOUND=m

#
# Advanced Linux Sound Architecture
#
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=m
CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_RTCTIMER=m
CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
# CONFIG_SND_DYNAMIC_MINORS is not set
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set

#
# Generic devices
#
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_DUMMY=m
CONFIG_SND_VIRMIDI=m
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set

#
# PCI devices
#
# CONFIG_SND_AD1889 is not set
# CONFIG_SND_ALS300 is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_BT87X is not set
# CONFIG_SND_CA0106 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_DARLA20 is not set
# CONFIG_SND_GINA20 is not set
# CONFIG_SND_LAYLA20 is not set
# CONFIG_SND_DARLA24 is not set
# CONFIG_SND_GINA24 is not set
# CONFIG_SND_LAYLA24 is not set
# CONFIG_SND_MONA is not set
# CONFIG_SND_MIA is not set
# CONFIG_SND_ECHO3G is not set
# CONFIG_SND_INDIGO is not set
# CONFIG_SND_INDIGOIO is not set
# CONFIG_SND_INDIGODJ is not set
CONFIG_SND_EMU10K1=m
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_HDA_INTEL is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_HDSPM is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
# CONFIG_SND_INTEL8X0 is not set
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_PCXHR is not set
# CONFIG_SND_RIPTIDE is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_YMFPCI is not set
# CONFIG_SND_AC97_POWER_SAVE is not set

#
# USB devices
#
# CONFIG_SND_USB_AUDIO is not set
# CONFIG_SND_USB_USX2Y is not set

#
# SoC audio support
#
# CONFIG_SND_SOC is not set

#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set
CONFIG_AC97_BUS=m

#
# HID Devices
#
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set

#
# USB support
#
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set

#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_SUSPEND is not set
# CONFIG_USB_OTG is not set

#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=y
# CONFIG_USB_EHCI_SPLIT_ISO is not set
CONFIG_USB_EHCI_ROOT_HUB_TT=y
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
# CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set
# CONFIG_USB_ISP116X_HCD is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
# CONFIG_USB_UHCI_HCD is not set
# CONFIG_USB_SL811_HCD is not set

#
# USB Device Class drivers
#
# CONFIG_USB_ACM is not set
CONFIG_USB_PRINTER=y

#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#

#
# may also be needed; see USB_STORAGE Help for more information
#
# CONFIG_USB_STORAGE is not set
# CONFIG_USB_LIBUSUAL is not set

#
# USB Input Devices
#
# CONFIG_USB_HID is not set

#
# USB HID Boot Protocol drivers
#
CONFIG_USB_KBD=m
CONFIG_USB_MOUSE=m
# CONFIG_USB_AIPTEK is not set
# CONFIG_USB_WACOM is not set
# CONFIG_USB_ACECAD is not set
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set
# CONFIG_USB_TOUCHSCREEN is not set
# CONFIG_USB_YEALINK is not set
# CONFIG_USB_XPAD is not set
# CONFIG_USB_ATI_REMOTE is not set
# CONFIG_USB_ATI_REMOTE2 is not set
# CONFIG_USB_KEYSPAN_REMOTE is not set
# CONFIG_USB_APPLETOUCH is not set
# CONFIG_USB_GTCO is not set

#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set

#
# USB Network Adapters
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET_MII is not set
# CONFIG_USB_USBNET is not set
# CONFIG_USB_MON is not set

#
# USB port drivers
#

#
# USB Serial Converter support
#
# CONFIG_USB_SERIAL is not set

#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_BERRY_CHARGE is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGET is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_TEST is not set
# CONFIG_USB_GOTEMP is not set

#
# USB DSL modem support
#

#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set

#
# MMC/SD Card support
#
# CONFIG_MMC is not set

#
# LED devices
#
# CONFIG_NEW_LEDS is not set

#
# LED drivers
#

#
# LED Triggers
#

#
# InfiniBand support
#
# CONFIG_INFINIBAND is not set

#
# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
#
CONFIG_EDAC=y

#
# Reporting subsystems
#
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_MM_EDAC=y
# CONFIG_EDAC_E752X is not set
CONFIG_EDAC_K8=y
CONFIG_EDAC_POLL=y

#
# Real Time Clock
#
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set

#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set

#
# RTC drivers
#
CONFIG_RTC_DRV_CMOS=m
CONFIG_RTC_DRV_X1205=m
CONFIG_RTC_DRV_DS1307=m
CONFIG_RTC_DRV_DS1553=m
CONFIG_RTC_DRV_ISL1208=m
CONFIG_RTC_DRV_DS1672=m
CONFIG_RTC_DRV_DS1742=m
CONFIG_RTC_DRV_PCF8563=m
CONFIG_RTC_DRV_PCF8583=m
CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_M48T86=m
# CONFIG_RTC_DRV_TEST is not set
CONFIG_RTC_DRV_V3020=m

#
# DMA Engine support
#
# CONFIG_DMA_ENGINE is not set

#
# DMA Clients
#

#
# DMA Devices
#

#
# Auxiliary Display support
#

#
# Virtualization
#
# CONFIG_KVM is not set

#
# Userspace I/O
#
# CONFIG_UIO is not set

#
# Firmware Drivers
#
# CONFIG_EDD is not set
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set

#
# File systems
#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
# CONFIG_EXT4DEV_FS is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISER4_FS is not set
CONFIG_REISERFS_FS=y
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
# CONFIG_REISERFS_FS_XATTR is not set
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
CONFIG_MINIX_FS=y
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
# CONFIG_DNOTIFY is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set

#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_UDF_FS=y
CONFIG_UDF_NLS=y

#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_NTFS_FS=y
# CONFIG_NTFS_DEBUG is not set
# CONFIG_NTFS_RW is not set

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
# CONFIG_CONFIGFS_FS is not set

#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
# CONFIG_UNION_FS is not set

#
# Network File Systems
#
# CONFIG_NFS_FS is not set
# CONFIG_NFSD is not set
# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_9P_FS is not set

#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y

#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="cp437"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=y
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
CONFIG_NLS_ISO8859_15=y
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set

#
# Distributed Lock Manager
#

#
# Instrumentation Support
#
# CONFIG_PROFILING is not set
# CONFIG_KPROBES is not set

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_PAGE_OWNER is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_LOG_BUF_SHIFT=18
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_LIST is not set
CONFIG_FRAME_POINTER=y
# CONFIG_PROFILE_LIKELY is not set
# CONFIG_FORCED_INLINING is not set
# CONFIG_DEBUG_SYNCHRO_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_DEBUG_RODATA is not set
# CONFIG_IOMMU_DEBUG is not set
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_STACK_USAGE is not set

#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_INTEGRITY is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITY_FS_CAPABILITIES is not set

#
# Cryptographic options
#
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_HMAC=y
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=y
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_GF128MUL is not set
# CONFIG_CRYPTO_ECB is not set
CONFIG_CRYPTO_CBC=y
# CONFIG_CRYPTO_PCBC is not set
# CONFIG_CRYPTO_LRW is not set
CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_TWOFISH_X86_64 is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_AES is not set
# CONFIG_CRYPTO_AES_X86_64 is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_TEA is not set
# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
CONFIG_CRYPTO_DEFLATE=y
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_TEST is not set

#
# Hardware crypto devices
#

#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
CONFIG_LIBCRC32C=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_PLIST=y
CONFIG_IOMAP_COPY=y

--
There was an uncomfortable silence. When Fisher finally spoke again, her
voice was calm and cold and very deadly. "When this is all over, there's
going to be an accounting between me and Commander bloody Glen."
Simon R Green - Guard against Dishonour
Debian (Unstable) GNU/Linux 2.6.20-rc5 2x2011 bogomips load 1.25
the Jack Vance Integral Edition: http://www.integralarchive.org

2007-01-28 16:19:47

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] fix GFS2 circular dependency

On Sun, Jan 28, 2007 at 11:08:18AM +0100, Jiri Slaby wrote:
> Andrew Morton napsal(a):
> >Temporarily at
> >
> > http://userweb.kernel.org/~akpm/2.6.20-rc6-mm1/
>
> Unable to select IPV6. Menuconfig doesn't offer it when INET is selected.
> When it's not it appears in the menu, but after state change it gets away.
> The same behaviour in xconfig, gconfig.
>
> $ mkdir ../a/tst
> $ make O=../a/tst menuconfig
> HOSTCC scripts/basic/fixdep
> [...]
> HOSTLD scripts/kconfig/mconf
> scripts/kconfig/mconf arch/i386/Kconfig
> Warning! Found recursive dependency: INET GFS2_FS_LOCKING_DLM SYSFS
> OCFS2_FS INET
>
> Maybe this is the problem?

Yes, patch below.

> regards,

cu
Adrian


<-- snip -->


This patch fixes a circular dependency by letting GFS2_FS_LOCKING_DLM
and DLM depend on instead of select SYSFS.

Since SYSFS depends on EMBEDDED this change shouldn't cause any problems
for users.

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

---

fs/dlm/Kconfig | 3 +--
fs/gfs2/Kconfig | 3 +--
2 files changed, 2 insertions(+), 4 deletions(-)

--- linux-2.6.20-rc6-mm1/fs/gfs2/Kconfig.old 2007-01-28 16:44:17.000000000 +0100
+++ linux-2.6.20-rc6-mm1/fs/gfs2/Kconfig 2007-01-28 16:44:59.000000000 +0100
@@ -34,11 +34,10 @@

config GFS2_FS_LOCKING_DLM
tristate "GFS2 DLM locking module"
- depends on GFS2_FS && NET && INET && (IPV6 || IPV6=n)
+ depends on GFS2_FS && SYSFS && NET && INET && (IPV6 || IPV6=n)
select IP_SCTP if DLM_SCTP
select CONFIGFS_FS
select DLM
- select SYSFS
help
Multiple node locking module for GFS2

--- linux-2.6.20-rc6-mm1/fs/dlm/Kconfig.old 2007-01-28 16:56:57.000000000 +0100
+++ linux-2.6.20-rc6-mm1/fs/dlm/Kconfig 2007-01-28 16:57:16.000000000 +0100
@@ -3,9 +3,8 @@

config DLM
tristate "Distributed Lock Manager (DLM)"
- depends on IPV6 || IPV6=n
+ depends on SYSFS && (IPV6 || IPV6=n)
select CONFIGFS_FS
- select SYSFS
select IP_SCTP if DLM_SCTP
help
A general purpose distributed lock manager for kernel or userspace

2007-01-28 16:34:21

by Parag Warudkar

[permalink] [raw]
Subject: RE: 2.6.20-rc6-mm1: linker error with arch_setup_additional_pages

>CONFIG_BINFMT_ELF=y
># CONFIG_BINFMT_MISC is not set
># CONFIG_IA32_EMULATION is not set

Hm Ok. That's explainable. You don't have CONFIG_IA32_EMULATION set
and arch_setup_additional pages is only defined/exported in
syscall32.c which won't be built in your case. (It should go away if
you set CONFIG_IA32_EMULATION).

Andi - Is arch_setup_additional_pages required for x86_64 without
IA32? If so what should it call (like it calls syscall32_setup_pages
in IA32 case)? If it is not needed I guess we can make it a no-op in
case IA32_EMULATION=n?

linux/interp.h -
#ifdef CONFIG_X86_64 && !defined CONFIG_IA32_EMULATION
static inline int arch_setup_additional_pages(struct linux_binprm *bprm,
int executable_stack)
{
return 0;
}


Perhaps we need an arch-specific override for interp.h?

Parag

2007-01-28 16:56:29

by Martin Bligh

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1


> - It seems that people have been busy creating the need for this. I had to
> apply over sixty patches to this tree to fix post-2.6.20-rc4-mm1 compilation
> errors. And a number of patches were dropped due to no-compile or to
> runtime errors. Heaven knows how many runtime bugs were added.

dbench seems to panic on xfs / cfq ?

http://test.kernel.org/abat/68498/debug/console.log

Pid: 30381, comm: dbench Not tainted 2.6.20-rc6-mm1-autokern1 #1
RIP: 0010:[<ffffffff8039b19a>] [<ffffffff8039b19a>]
cfq_dispatch_requests+0xa9/0x4a2
RSP: 0000:ffff8100e3231418 EFLAGS: 00010002
RAX: 0000000000000000 RBX: ffff81007db97600 RCX: 0000000000010410
RDX: 0000000000000002 RSI: 0000000000000000 RDI: ffff81007db976a8
RBP: ffff8100e3231458 R08: 0000000000000000 R09: 00000000ffffa23e
R10: ffff8101ebf5c9c0 R11: ffff8101ed8d0298 R12: ffff81007db97688
R13: 00000000ffffffff R14: 0000000000000000 R15: 0000000000000000
FS: 0000000000000000(0000) GS:ffff8101fe003740(0063) knlGS:00000000f7de9460
CS: 0010 DS: 002b ES: 002b CR0: 0000000080050033
CR2: 00000000f7eb6050 CR3: 00000000e251d000 CR4: 00000000000006e0
Process dbench (pid: 30381, threadinfo ffff8100e3230000, task
ffff8100e3855800)
Stack: ffff8100e3231478 000000008039296a 00000000e32314b8 ffff81007dba4c48
ffff81007dba4c48 ffff81007dba4c48 ffff8100e36e0c38 0000000000000000
ffff8100e3231478 ffffffff803910c2 000000000218abe9 ffff8101ed8d0298
Call Trace:
[<ffffffff803910c2>] elv_drain_elevator+0x1b/0x63
[<ffffffff80391155>] elv_insert+0x4b/0x144
[<ffffffff8039130f>] __elv_add_request+0x6e/0x70
[<ffffffff80395b84>] __make_request+0x255/0x32e
[<ffffffff80394c14>] generic_make_request+0x1c5/0x1fc
[<ffffffff80394d09>] submit_bio+0xbe/0xc7
[<ffffffff80383a80>] xfs_buf_iorequest+0x37e/0x3db
[<ffffffff802243c5>] default_wake_function+0x0/0xf
[<ffffffff802243c5>] default_wake_function+0x0/0xf
[<ffffffff80382a67>] xfs_buf_associate_memory+0x100/0x220
[<ffffffff8036b0a0>] xlog_bdstrat_cb+0x1c/0x45
[<ffffffff8036bcd9>] xlog_state_release_iclog+0x2f2/0x4b1
[<ffffffff8036cb37>] xlog_state_sync_all+0xce/0x21c
[<ffffffff803500b3>] xfs_btree_del_cursor+0x59/0x61
[<ffffffff8036d467>] _xfs_log_force+0x93/0x2fe
[<ffffffff8038917e>] xfs_fs_alloc_inode+0x15/0x27
[<ffffffff80282921>] iget_locked+0x6a/0x147
[<ffffffff80361eb3>] xfs_iget+0x360/0x783
[<ffffffff8037765f>] xfs_trans_iget+0xa3/0x10f
[<ffffffff80363125>] xfs_ialloc+0x8e/0x44a
[<ffffffff80377f16>] xfs_dir_ialloc+0x74/0x283
[<ffffffff8037cc87>] xfs_create+0x347/0x626
[<ffffffff804dcae9>] __up+0x19/0x1b
[<ffffffff80386be0>] xfs_vn_mknod+0x14b/0x2b7
[<ffffffff8036bead>] xfs_log_release_iclog+0x15/0x44
[<ffffffff80280f7e>] __d_lookup+0xd7/0x114
[<ffffffff80280f7e>] __d_lookup+0xd7/0x114
[<ffffffff80277666>] do_lookup+0x63/0x1ba
[<ffffffff8027fe46>] dput+0x22/0x151
[<ffffffff80277fbb>] __link_path_walk+0x6b2/0xd16
[<ffffffff80284991>] mntput_no_expire+0x1e/0x81
[<ffffffff802786f5>] link_path_walk+0xd6/0xe7
[<ffffffff80386d57>] xfs_vn_create+0xb/0xd
[<ffffffff80278f63>] vfs_create+0x7e/0xc2
[<ffffffff80279300>] open_namei+0x18d/0x600
[<ffffffff8026fe9f>] do_filp_open+0x28/0x4b
[<ffffffff80270038>] get_unused_fd+0x78/0x106
[<ffffffff802701ec>] do_sys_open+0x4d/0xd4
[<ffffffff8029ae0c>] compat_sys_open+0x15/0x17
[<ffffffff8021b0e2>] ia32_sysret+0x0/0xa

2007-01-28 17:02:30

by Martin Bligh

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

> - It seems that people have been busy creating the need for this. I had to
> apply over sixty patches to this tree to fix post-2.6.20-rc4-mm1 compilation
> errors. And a number of patches were dropped due to no-compile or to
> runtime errors. Heaven knows how many runtime bugs were added.

Build failure:

fs/built-in.o: In function `load_elf_binary':
binfmt_elf.c:(.text+0x32cc0): undefined reference to
`arch_setup_additional_pages'

config:
http://test.kernel.org/abat/68517/build/dotconfig

2007-01-28 17:04:52

by Martin Bligh

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

> - It seems that people have been busy creating the need for this. I had to
> apply over sixty patches to this tree to fix post-2.6.20-rc4-mm1 compilation
> errors. And a number of patches were dropped due to no-compile or to
> runtime errors. Heaven knows how many runtime bugs were added.

What looks to me like it might be another cfq problem? Not confied to
XFS this time.

http://test.kernel.org/abat/68514/debug/console.log


RIP: 0010:[<ffffffff80321d34>] [<ffffffff80321d34>]
cfq_dispatch_requests+0xaf/0x48c
RSP: 0018:ffff81003465d9e8 EFLAGS: 00010002
RAX: ffff81003ebac200 RBX: 0000000000000000 RCX: ffff81003eed5200
RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffffffffffffff
RBP: ffff81003eed5200 R08: ffffffff8031a363 R09: 0000000000002000
R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
FS: 00002affc43a86f0(0000) GS:ffff81003ee37cc0(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 000055555556d026 CR3: 00000000346c7000 CR4: 00000000000006e0
Process smartd (pid: 1943, threadinfo ffff81003465c000, task
ffff81003bccc040)
Stack: 0000000000000044 ffff81003e1cb4c0 ffff81003e1ea5e0 ffff81003e1cb4c0
0000000000000000 ffff81003eed5800 ffff81003e1cb4c0 ffffffff803174ed
ffff81003e1ea5e0 ffffffff80317e3d 00000000000000d0 0000000000000002
Call Trace:
[<ffffffff803174ed>] elv_drain_elevator+0x16/0x5d
[<ffffffff80317e3d>] elv_insert+0x4b/0x158
[<ffffffff8031a43d>] blk_execute_rq_nowait+0x6d/0x89
[<ffffffff8031a512>] blk_execute_rq+0xb9/0xe1
[<ffffffff802aa72f>] bio_phys_segments+0xf/0x15
[<ffffffff8031e4db>] sg_io+0x217/0x328
[<ffffffff8045eeb8>] sock_def_readable+0x18/0x6c
[<ffffffff8031ea68>] scsi_cmd_ioctl+0x1bd/0x391
[<ffffffff803df122>] sd_ioctl+0x93/0xc1
[<ffffffff8031c9d8>] blkdev_driver_ioctl+0x5d/0x72
[<ffffffff8031d025>] blkdev_ioctl+0x638/0x693
[<ffffffff804c65f3>] _spin_lock_irqsave+0x9/0xe
[<ffffffff8032707c>] __up_read+0x13/0x8a
[<ffffffff804c863d>] do_page_fault+0x45e/0x7b3
[<ffffffff8045fdaf>] skb_dequeue+0x48/0x50
[<ffffffff802ab382>] block_ioctl+0x1b/0x1f
[<ffffffff80294105>] do_ioctl+0x21/0x6b
[<ffffffff802943b5>] vfs_ioctl+0x266/0x27f
[<ffffffff80294427>] sys_ioctl+0x59/0x7a
[<ffffffff80209bae>] system_call+0x7e/0x83

2007-01-28 17:42:07

by Jiri Slaby

[permalink] [raw]
Subject: Re: elevator oops [Was: 2.6.20-rc6-mm1]

Jiri Slaby napsal(a):
> Andrew Morton napsal(a):
>> Temporarily at
>>
>> http://userweb.kernel.org/~akpm/2.6.20-rc6-mm1/
>
> Under disk load I get disk:
> ------------[ cut here ]------------
> kernel BUG at /home/l/latest/xxx/block/cfq-iosched.c:1026!
> invalid opcode: 0000 [#1]
> SMP
> last sysfs file: /devices/platform/i2c-9191/9191-0290/cpu0_vid
> Modules linked in: nfsd exportfs lockd sunrpc cifs ipv6 floppy eth1394
> ide_cd ohci1394 cdrom usb_storage ehci_hcd ieee1394
> CPU: 0
> EIP: 0060:[<c01d4186>] Not tainted VLI
> EFLAGS: 00010002 (2.6.20-rc6-mm1 #228)
> EIP is at cfq_dispatch_requests+0x497/0x49b
> eax: 00000000 ebx: 00000000 ecx: 00000001 edx: 00000000
> esi: 00000000 edi: f7e739c0 ebp: f7e9bcf0 esp: f7e9bca0
> ds: 007b es: 007b fs: 00d8 gs: 0000 ss: 0068
> Process md3_raid1 (pid: 415, ti=f7e9a000 task=c1961570 task.ti=f7e9a000)
> Stack: 00000000 c1961570 00000001 00000001 0000019f f7e72d5c c01d2fd1
> f7e74574
> 00000000 f7e7180c 00000000 00000000 c01cb837 f7e7180c 00000001
> f7e9bd04
> c01ce7a4 f7e7180c f7e7180c f7e7180c f7e9bd08 c01cb99b f7e74574
> f7e7180c
> Call Trace:
> [<c0104ffb>] show_trace_log_lvl+0x1a/0x30
> [<c01050b6>] show_stack_log_lvl+0xa5/0xca
> [<c01052ae>] show_registers+0x1d3/0x2b8
> [<c01054b4>] die+0x121/0x243
> [<c010564c>] do_trap+0x76/0x9c
> [<c0105eb1>] do_invalid_op+0x97/0xa1
> [<c034df3c>] error_code+0x7c/0x84
> [<c01cb99b>] elv_drain_elevator+0x18/0x62
> [<c01cbf53>] elv_insert+0xa2/0x111
> [<c01cc035>] __elv_add_request+0x73/0x76
> [<c01cfdff>] __make_request+0xd9/0x2f5
> [<c01cde61>] generic_make_request+0x158/0x1f9
> [<c01d0161>] submit_bio+0x53/0xd6
> [<c02859a8>] md_super_write+0x87/0xa3
> [<c0285c39>] md_update_sb+0x275/0x3f4
> [<c02899fe>] md_check_recovery+0x17f/0x466
> [<c0281380>] raid1d+0x2e/0xf9c
> [<c028b47f>] md_thread+0x32/0x113
> [<c0134c5b>] kthread+0xb4/0xd9
> [<c0104c9f>] kernel_thread_helper+0x7/0x18
> =======================
> Code: 10 c7 04 24 00 00 00 00 31 c9 89 f8 e8 e4 f1 ff ff 8b 4f 5c 85 c9
> 75 13 8b 55 d8 8d 04 13 01 f0 03 45 dc 89 45 d0 e9 86 fb ff ff <0f> 0b
> eb fe 55 89 e5 57 56 53 83 ec 04 89 c3 8b 40 54 89 45 f0
> EIP: [<c01d4186>] cfq_dispatch_requests+0x497/0x49b SS:ESP 0068:f7e9bca0
>
> and the kernel (totally) hangs (no sysrq).

noop scheluder seems to be stable altogether.

regards,
--
http://www.fi.muni.cz/~xslaby/ Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8 22A0 32CC 55C3 39D4 7A7E

2007-01-28 19:04:21

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] fix CONFIG_SATA_SIS=y compile error

On Sat, Jan 27, 2007 at 11:49:28PM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.20-rc4-mm1:
>...
> git-libata-all.patch
>...
> git trees.
>...

Static code shouldn't be used from other modules.

This patch fixes the following compile error:

<-- snip -->

...
LD .tmp_vmlinux1
drivers/built-in.o: In function `sis_init_one':
sata_sis.c:(.text+0x7634cd): undefined reference to `sis_info133'
sata_sis.c:(.text+0x7634d6): undefined reference to `sis_info133'
make[1]: *** [.tmp_vmlinux1] Error 1

<-- snip -->

While I was at it, I also moved the prototype of this struct to a header
file.

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

---

drivers/ata/libata.h | 3 +++
drivers/ata/pata_sis.c | 3 ++-
drivers/ata/sata_sis.c | 4 +---
3 files changed, 6 insertions(+), 4 deletions(-)

--- linux-2.6.20-rc6-mm1/drivers/ata/libata.h.old 2007-01-28 16:01:41.000000000 +0100
+++ linux-2.6.20-rc6-mm1/drivers/ata/libata.h 2007-01-28 16:02:10.000000000 +0100
@@ -151,4 +151,7 @@
/* libata-sff.c */
extern u8 ata_irq_on(struct ata_port *ap);

+/* pata_sis.c */
+extern struct ata_port_info sis_info133;
+
#endif /* __LIBATA_H__ */
--- linux-2.6.20-rc6-mm1/drivers/ata/pata_sis.c.old 2007-01-28 16:08:26.000000000 +0100
+++ linux-2.6.20-rc6-mm1/drivers/ata/pata_sis.c 2007-01-28 16:02:51.000000000 +0100
@@ -32,6 +32,7 @@
#include <scsi/scsi_host.h>
#include <linux/libata.h>
#include <linux/ata.h>
+#include "libata.h"

#define DRV_NAME "pata_sis"
#define DRV_VERSION "0.4.5"
@@ -781,7 +782,7 @@
.pio_mask = 0x1f, /* pio0-4 */
.port_ops = &sis_66_ops,
};
-static struct ata_port_info sis_info133 = {
+struct ata_port_info sis_info133 = {
.sht = &sis_sht,
.flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SRST,
.pio_mask = 0x1f, /* pio0-4 */
--- linux-2.6.20-rc6-mm1/drivers/ata/sata_sis.c.old 2007-01-28 16:05:31.000000000 +0100
+++ linux-2.6.20-rc6-mm1/drivers/ata/sata_sis.c 2007-01-28 16:05:49.000000000 +0100
@@ -40,6 +40,7 @@
#include <linux/device.h>
#include <scsi/scsi_host.h>
#include <linux/libata.h>
+#include "libata.h"

#define DRV_NAME "sata_sis"
#define DRV_VERSION "0.7"
@@ -254,9 +255,6 @@

static int sis_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
{
- /* Provided by the PATA driver */
- extern struct ata_port_info sis_info133;
-
static int printed_version;
struct ata_probe_ent *probe_ent = NULL;
int rc;

2007-01-28 19:46:13

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1 (build)

On Sat, 27 Jan 2007 23:49:28 -0800 Andrew Morton wrote:

>
> Temporarily at
>
> http://userweb.kernel.org/~akpm/2.6.20-rc6-mm1/
>
> will appear one day at
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc6/2.6.20-rc6-mm1/


allyesconfig on x86_64 does not build for me:

drivers/built-in.o: In function `sis_init_one':
sata_sis.c:(.text.sis_init_one+0x1a1): undefined reference to `sis_info133'
sata_sis.c:(.text.sis_init_one+0x1ab): undefined reference to `sis_info133'
net/built-in.o: In function `q931_help':
nf_conntrack_h323_main.c:(.text.q931_help+0x6ad): undefined reference to `ip6_route_output'
nf_conntrack_h323_main.c:(.text.q931_help+0x6c3): undefined reference to `ip6_route_output'

Adrian Bunk has sent a patch for the sis_info133 problem.

---
~Randy

2007-01-28 22:21:30

by Adrian Bunk

[permalink] [raw]
Subject: [2.6 patch] NF_CONNTRACK_H323 must depend on (IPV6 || IPV6=n)

On Sun, Jan 28, 2007 at 11:41:48AM -0800, Randy Dunlap wrote:
>...
> net/built-in.o: In function `q931_help':
> nf_conntrack_h323_main.c:(.text.q931_help+0x6ad): undefined reference to `ip6_route_output'
> nf_conntrack_h323_main.c:(.text.q931_help+0x6c3): undefined reference to `ip6_route_output'
>...

You didn't send your .config, but it seems you had CONFIG_IPV6=m and
CONFIG_NF_CONNTRACK_H323=y.

In this case, the untested patch below should fix it.

> ~Randy

cu
Adrian


<-- snip -->


CONFIG_IPV6=m, CONFIG_NF_CONNTRACK_H323=y results in a compile error.

Fix this by letting NF_CONNTRACK_H323 depend on (IPV6 || IPV6=n).

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

--- linux-2.6.20-rc6-mm1/net/netfilter/Kconfig.old 2007-01-28 23:06:37.000000000 +0100
+++ linux-2.6.20-rc6-mm1/net/netfilter/Kconfig 2007-01-28 23:06:49.000000000 +0100
@@ -165,7 +165,7 @@

config NF_CONNTRACK_H323
tristate "H.323 protocol support (EXPERIMENTAL)"
- depends on EXPERIMENTAL && NF_CONNTRACK
+ depends on EXPERIMENTAL && NF_CONNTRACK && (IPV6 || IPV6=n)
help
H.323 is a VoIP signalling protocol from ITU-T. As one of the most
important VoIP protocols, it is widely used by voice hardware and

2007-01-28 22:31:15

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

Andrew Morton napisał(a):
> Temporarily at
>
> http://userweb.kernel.org/~akpm/2.6.20-rc6-mm1/
>
> will appear one day at
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc6/2.6.20-rc6-mm1/
>
>

Jan 28 22:58:29 euridica kernel: BUG: using smp_processor_id() in preemptible [00000001] code: yum-updatesd/2846
Jan 28 22:58:29 euridica kernel: caller is nf_conntrack_in+0x363/0x47f [nf_conntrack]
Jan 28 22:58:29 euridica kernel: [<c01053c6>] show_trace_log_lvl+0x1a/0x2f
Jan 28 22:58:29 euridica kernel: [<c0105ad6>] show_trace+0x12/0x14
Jan 28 22:58:29 euridica kernel: [<c0105b98>] dump_stack+0x16/0x18
Jan 28 22:58:29 euridica kernel: [<c0207803>] debug_smp_processor_id+0xb3/0xc8
Jan 28 22:58:29 euridica kernel: [<fdbf8ad0>] nf_conntrack_in+0x363/0x47f [nf_conntrack]
Jan 28 22:58:29 euridica kernel: [<fd9c32c4>] ipv4_conntrack_local+0x53/0x5b [nf_conntrack_ipv4]
Jan 28 22:58:29 euridica kernel: [<c02f2286>] nf_iterate+0x36/0x67
Jan 28 22:58:29 euridica kernel: [<c02f241b>] nf_hook_slow+0x52/0xbe
Jan 28 22:58:29 euridica kernel: [<c02fd280>] ip_queue_xmit+0x3d1/0x420
Jan 28 22:58:29 euridica kernel: [<c030b9b9>] tcp_transmit_skb+0x78b/0x7ca
Jan 28 22:58:29 euridica kernel: [<c030d452>] __tcp_push_pending_frames+0x732/0x811
Jan 28 22:58:29 euridica kernel: [<c030e3de>] tcp_send_fin+0x146/0x150
Jan 28 22:58:29 euridica kernel: [<c03042c9>] tcp_close+0x22b/0x556
Jan 28 22:58:29 euridica kernel: [<c031d595>] inet_release+0x43/0x49
Jan 28 22:58:29 euridica kernel: [<c02d74c8>] sock_release+0x17/0x9d
Jan 28 22:58:29 euridica kernel: [<c02d7843>] sock_close+0x2d/0x33
Jan 28 22:58:29 euridica kernel: [<c0178a0a>] __fput+0xca/0x198
Jan 28 22:58:29 euridica kernel: [<c0178c44>] fput+0x32/0x36
Jan 28 22:58:29 euridica kernel: [<c017606a>] filp_close+0x54/0x5c
Jan 28 22:58:29 euridica kernel: [<c0124e72>] put_files_struct+0x7d/0xba
Jan 28 22:58:29 euridica kernel: [<c012625e>] do_exit+0x30d/0x8e6
Jan 28 22:58:29 euridica kernel: [<c01268b9>] sys_exit_group+0x0/0x11
Jan 28 22:58:29 euridica kernel: [<c012f177>] get_signal_to_deliver+0x734/0x760
Jan 28 22:58:29 euridica kernel: [<c010391e>] do_notify_resume+0x94/0x749
Jan 28 22:58:29 euridica kernel: [<c01044a1>] work_notifysig+0x13/0x1a
Jan 28 22:58:29 euridica kernel: =======================

http://www.stardust.webpages.pl/files/tbf/euridica/2.6.20-rc6-mm1/mm-config

Regards,
Michal

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

2007-01-28 22:44:27

by Parag Warudkar

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1: linker error with arch_setup_additional_pages

On 1/28/07, Parag Warudkar <[email protected]> wrote:
> >CONFIG_BINFMT_ELF=y
> ># CONFIG_BINFMT_MISC is not set
> ># CONFIG_IA32_EMULATION is not set
>
> Hm Ok. That's explainable. You don't have CONFIG_IA32_EMULATION set
> and arch_setup_additional pages is only defined/exported in
> syscall32.c which won't be built in your case. (It should go away if
> you set CONFIG_IA32_EMULATION).
>

I think the easy and correct fix for this situation is defining
CONFIG_ARCH_HAS_SETUP_ADDITIONAL_PAGES on x86_64 only if
IA32_EMULATION is defined. (Because x86_64 proper doesn't seem to
require arch_setup_additional_pages() only IA32 emulation requires
it.)

The patch below should fix it. (Please use attachment - less chance of
whitespace issues. Sorry no control over mail client atm)

Signed-off-by: Parag Warudkar <[email protected]>

--- linux-2.6.20-rc6-mm1/arch/x86_64/Kconfig.orig 2007-01-28
17:32:09.000000000 -0500
+++ linux-2.6.20-rc6-mm1/arch/x86_64/Kconfig 2007-01-28 17:32:48.000000000 -0500
@@ -405,7 +405,7 @@
config ARCH_HAS_SETUP_ADDITIONAL_PAGES
bool
default y
- depends on X86_64
+ depends on X86_64 && IA32_EMULATION

config OUT_OF_LINE_PFN_TO_PAGE
def_bool y


Attachments:
(No filename) (1.17 kB)
x86_64-Kconfig-fix-setup_additional_pages.patch (351.00 B)
Download all attachments

2007-01-28 23:01:55

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

On Sun, 28 Jan 2007 08:56:08 -0800
"Martin J. Bligh" <[email protected]> wrote:

> > - It seems that people have been busy creating the need for this. I had to
> > apply over sixty patches to this tree to fix post-2.6.20-rc4-mm1 compilation
> > errors. And a number of patches were dropped due to no-compile or to
> > runtime errors. Heaven knows how many runtime bugs were added.
>
> dbench seems to panic on xfs / cfq ?

OK, I'll dump git-block.patch. That means that the fsaio patches get
temporarily dropped as well as they depend on git-block changes somewhat.

btw, I didn't actually include the list-aio patches in rc6-mm1 due to
various discouraging-looking review comments - I'll be awaiting version 2
there.

2007-01-28 23:10:47

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

On Sun, 28 Jan 2007 23:31:00 +0100
Michal Piotrowski <[email protected]> wrote:

> Jan 28 22:58:29 euridica kernel: BUG: using smp_processor_id() in preemptible [00000001] code: yum-updatesd/2846
> Jan 28 22:58:29 euridica kernel: caller is nf_conntrack_in+0x363/0x47f [nf_conntrack]

I'll plug that with this:


diff -puN include/net/netfilter/nf_conntrack.h~netfilter-warning-fix include/net/netfilter/nf_conntrack.h
--- a/include/net/netfilter/nf_conntrack.h~netfilter-warning-fix
+++ a/include/net/netfilter/nf_conntrack.h
@@ -254,7 +254,12 @@ extern atomic_t nf_conntrack_count;
extern int nf_conntrack_max;

DECLARE_PER_CPU(struct ip_conntrack_stat, nf_conntrack_stat);
-#define NF_CT_STAT_INC(count) (__get_cpu_var(nf_conntrack_stat).count++)
+#define NF_CT_STAT_INC(count) \
+ do { \
+ preempt_disable(); \
+ __get_cpu_var(nf_conntrack_stat).count++; \
+ preempt_enable(); \
+ } while (0);

/* no helper, no nat */
#define NF_CT_F_BASIC 0
_

and will let others worry about what the real fix (for 2.6.20, please) is.

2007-01-28 23:24:07

by Martin Bligh

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

Andrew Morton wrote:
> On Sun, 28 Jan 2007 08:56:08 -0800
> "Martin J. Bligh" <[email protected]> wrote:
>
>>> - It seems that people have been busy creating the need for this. I had to
>>> apply over sixty patches to this tree to fix post-2.6.20-rc4-mm1 compilation
>>> errors. And a number of patches were dropped due to no-compile or to
>>> runtime errors. Heaven knows how many runtime bugs were added.
>> dbench seems to panic on xfs / cfq ?
>
> OK, I'll dump git-block.patch. That means that the fsaio patches get
> temporarily dropped as well as they depend on git-block changes somewhat.


OK ... if you can dump something in hotfixes, it should hopefully
auto-trigger another run. But OTOH, xfs on dbench seemed to do it
reliably on a bunch of machines, so maybe it's easy to reproduce.

M.

2007-01-28 23:39:01

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

On Sun, 28 Jan 2007 15:23:43 -0800
"Martin J. Bligh" <[email protected]> wrote:

> Andrew Morton wrote:
> > On Sun, 28 Jan 2007 08:56:08 -0800
> > "Martin J. Bligh" <[email protected]> wrote:
> >
> >>> - It seems that people have been busy creating the need for this. I had to
> >>> apply over sixty patches to this tree to fix post-2.6.20-rc4-mm1 compilation
> >>> errors. And a number of patches were dropped due to no-compile or to
> >>> runtime errors. Heaven knows how many runtime bugs were added.
> >> dbench seems to panic on xfs / cfq ?
> >
> > OK, I'll dump git-block.patch. That means that the fsaio patches get
> > temporarily dropped as well as they depend on git-block changes somewhat.
>
>
> OK ... if you can dump something in hotfixes, it should hopefully
> auto-trigger another run. But OTOH, xfs on dbench seemed to do it
> reliably on a bunch of machines, so maybe it's easy to reproduce.
>

I think I'll go for a quick rc6-mm2.

2007-01-28 23:53:51

by David Miller

[permalink] [raw]
Subject: Re: [2.6 patch] NF_CONNTRACK_H323 must depend on (IPV6 || IPV6=n)

From: Adrian Bunk <[email protected]>
Date: Sun, 28 Jan 2007 23:21:37 +0100

> On Sun, Jan 28, 2007 at 11:41:48AM -0800, Randy Dunlap wrote:
> >...
> > net/built-in.o: In function `q931_help':
> > nf_conntrack_h323_main.c:(.text.q931_help+0x6ad): undefined reference to `ip6_route_output'
> > nf_conntrack_h323_main.c:(.text.q931_help+0x6c3): undefined reference to `ip6_route_output'
> >...
>
> You didn't send your .config, but it seems you had CONFIG_IPV6=m and
> CONFIG_NF_CONNTRACK_H323=y.
>
> In this case, the untested patch below should fix it.
>
> > ~Randy
>
> cu
> Adrian
>
>
> <-- snip -->
>
>
> CONFIG_IPV6=m, CONFIG_NF_CONNTRACK_H323=y results in a compile error.
>
> Fix this by letting NF_CONNTRACK_H323 depend on (IPV6 || IPV6=n).
>
> Signed-off-by: Adrian Bunk <[email protected]>

Adrian is this the correct way to constrain the selection between
"n" and "m" in this kind of situation? I thought doing something
like "depends on IPV6" is sufficient to achieve that?

2007-01-29 00:00:06

by Adrian Bunk

[permalink] [raw]
Subject: Re: [2.6 patch] NF_CONNTRACK_H323 must depend on (IPV6 || IPV6=n)

On Sun, Jan 28, 2007 at 03:53:48PM -0800, David Miller wrote:
> From: Adrian Bunk <[email protected]>
> Date: Sun, 28 Jan 2007 23:21:37 +0100
>
> > On Sun, Jan 28, 2007 at 11:41:48AM -0800, Randy Dunlap wrote:
> > >...
> > > net/built-in.o: In function `q931_help':
> > > nf_conntrack_h323_main.c:(.text.q931_help+0x6ad): undefined reference to `ip6_route_output'
> > > nf_conntrack_h323_main.c:(.text.q931_help+0x6c3): undefined reference to `ip6_route_output'
> > >...
> >
> > You didn't send your .config, but it seems you had CONFIG_IPV6=m and
> > CONFIG_NF_CONNTRACK_H323=y.
> >
> > In this case, the untested patch below should fix it.
> >
> > > ~Randy
> >
> > cu
> > Adrian
> >
> >
> > <-- snip -->
> >
> >
> > CONFIG_IPV6=m, CONFIG_NF_CONNTRACK_H323=y results in a compile error.
> >
> > Fix this by letting NF_CONNTRACK_H323 depend on (IPV6 || IPV6=n).
> >
> > Signed-off-by: Adrian Bunk <[email protected]>
>
> Adrian is this the correct way to constrain the selection between
> "n" and "m" in this kind of situation? I thought doing something
> like "depends on IPV6" is sufficient to achieve that?

"depends on IPV6" would fix the bug - but it would also make
NF_CONNTRACK_H323 unavailable for all people without IPV6 support in
their kernel.

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

2007-01-29 00:04:44

by David Miller

[permalink] [raw]
Subject: Re: [2.6 patch] NF_CONNTRACK_H323 must depend on (IPV6 || IPV6=n)

From: Adrian Bunk <[email protected]>
Date: Mon, 29 Jan 2007 01:00:11 +0100

> On Sun, Jan 28, 2007 at 03:53:48PM -0800, David Miller wrote:
> > Adrian is this the correct way to constrain the selection between
> > "n" and "m" in this kind of situation? I thought doing something
> > like "depends on IPV6" is sufficient to achieve that?
>
> "depends on IPV6" would fix the bug - but it would also make
> NF_CONNTRACK_H323 unavailable for all people without IPV6 support in
> their kernel.

Yes, that is an issue.

I guess with some slightly ugly ifdefs we could support the
whole matrix of possibilities. But perhaps that's undesirable
for another reason.

Patrick?

2007-01-29 00:21:01

by Adrian Bunk

[permalink] [raw]
Subject: Re: [2.6 patch] NF_CONNTRACK_H323 must depend on (IPV6 || IPV6=n)

On Sun, Jan 28, 2007 at 04:04:42PM -0800, David Miller wrote:
> From: Adrian Bunk <[email protected]>
> Date: Mon, 29 Jan 2007 01:00:11 +0100
>
> > On Sun, Jan 28, 2007 at 03:53:48PM -0800, David Miller wrote:
> > > Adrian is this the correct way to constrain the selection between
> > > "n" and "m" in this kind of situation? I thought doing something
> > > like "depends on IPV6" is sufficient to achieve that?
> >
> > "depends on IPV6" would fix the bug - but it would also make
> > NF_CONNTRACK_H323 unavailable for all people without IPV6 support in
> > their kernel.
>
> Yes, that is an issue.
>
> I guess with some slightly ugly ifdefs we could support the
> whole matrix of possibilities. But perhaps that's undesirable
> for another reason.
>...

This depends on what NF_CONNTRACK_H323=y, IPV6=m is supposed to be:
- not allowed (NF_CONNTRACK_H323 must be modular) or
- NF_CONNTRACK_H323 can only be used for IPV4

My patch implements the first case.

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

2007-01-29 01:31:01

by Randy Dunlap

[permalink] [raw]
Subject: Re: [2.6 patch] NF_CONNTRACK_H323 must depend on (IPV6 || IPV6=n)

Adrian Bunk wrote:
> On Sun, Jan 28, 2007 at 04:04:42PM -0800, David Miller wrote:
>> From: Adrian Bunk <[email protected]>
>> Date: Mon, 29 Jan 2007 01:00:11 +0100
>>
>>> On Sun, Jan 28, 2007 at 03:53:48PM -0800, David Miller wrote:
>>>> Adrian is this the correct way to constrain the selection between
>>>> "n" and "m" in this kind of situation? I thought doing something
>>>> like "depends on IPV6" is sufficient to achieve that?
>>> "depends on IPV6" would fix the bug - but it would also make
>>> NF_CONNTRACK_H323 unavailable for all people without IPV6 support in
>>> their kernel.
>> Yes, that is an issue.
>>
>> I guess with some slightly ugly ifdefs we could support the
>> whole matrix of possibilities. But perhaps that's undesirable
>> for another reason.
>> ...
>
> This depends on what NF_CONNTRACK_H323=y, IPV6=m is supposed to be:
> - not allowed (NF_CONNTRACK_H323 must be modular) or
> - NF_CONNTRACK_H323 can only be used for IPV4
>
> My patch implements the first case.

Sorry for the slow reponse. This bug only came up due to my
bad gfs2/dlm patch, which Adrian has now corrected, so I think
you can just drop this patch. It now builds for me with only
Adrian's gfs2/dlm patch applied.

--
~Randy

2007-01-29 02:06:22

by Randy Dunlap

[permalink] [raw]
Subject: Re: [-mm patch] fix GFS2 circular dependency

On Sun, 28 Jan 2007 17:19:50 +0100 Adrian Bunk wrote:

> <-- snip -->
>
>
> This patch fixes a circular dependency by letting GFS2_FS_LOCKING_DLM
> and DLM depend on instead of select SYSFS.
>
> Since SYSFS depends on EMBEDDED this change shouldn't cause any problems
> for users.
>
> Signed-off-by: Adrian Bunk <[email protected]>

Acked-by: Randy Dunlap <[email protected]>

Thanks. Sorry about that.


> ---
>
> fs/dlm/Kconfig | 3 +--
> fs/gfs2/Kconfig | 3 +--
> 2 files changed, 2 insertions(+), 4 deletions(-)
>
> --- linux-2.6.20-rc6-mm1/fs/gfs2/Kconfig.old 2007-01-28 16:44:17.000000000 +0100
> +++ linux-2.6.20-rc6-mm1/fs/gfs2/Kconfig 2007-01-28 16:44:59.000000000 +0100
> @@ -34,11 +34,10 @@
>
> config GFS2_FS_LOCKING_DLM
> tristate "GFS2 DLM locking module"
> - depends on GFS2_FS && NET && INET && (IPV6 || IPV6=n)
> + depends on GFS2_FS && SYSFS && NET && INET && (IPV6 || IPV6=n)
> select IP_SCTP if DLM_SCTP
> select CONFIGFS_FS
> select DLM
> - select SYSFS
> help
> Multiple node locking module for GFS2
>
> --- linux-2.6.20-rc6-mm1/fs/dlm/Kconfig.old 2007-01-28 16:56:57.000000000 +0100
> +++ linux-2.6.20-rc6-mm1/fs/dlm/Kconfig 2007-01-28 16:57:16.000000000 +0100
> @@ -3,9 +3,8 @@
>
> config DLM
> tristate "Distributed Lock Manager (DLM)"
> - depends on IPV6 || IPV6=n
> + depends on SYSFS && (IPV6 || IPV6=n)
> select CONFIGFS_FS
> - select SYSFS
> select IP_SCTP if DLM_SCTP
> help
> A general purpose distributed lock manager for kernel or userspace
>
> -

2007-01-29 02:50:43

by Don Mullis

[permalink] [raw]
Subject: [PATCH -mm] fix DocBook build

Fix DocBook build.
Regression was introduced by
gregkh-usb-usb-linux-usb_ch9h-becomes-linux-usb-ch9h.patch

Tested by `make htmldocs`.

Signed-off-by: Don Mullis <[email protected]>
Cc: [email protected]
---
Documentation/DocBook/gadget.tmpl | 4 ++--
Documentation/DocBook/usb.tmpl | 6 +++---
2 files changed, 5 insertions(+), 5 deletions(-)

Index: linux-2.6.19/Documentation/DocBook/gadget.tmpl
===================================================================
--- linux-2.6.19.orig/Documentation/DocBook/gadget.tmpl
+++ linux-2.6.19/Documentation/DocBook/gadget.tmpl
@@ -482,13 +482,13 @@ slightly.
<para>Gadget drivers
rely on common USB structures and constants
defined in the
-<filename>&lt;linux/usb_ch9.h&gt;</filename>
+<filename>&lt;linux/usb/ch9.h&gt;</filename>
header file, which is standard in Linux 2.6 kernels.
These are the same types and constants used by host
side drivers (and usbcore).
</para>

-!Iinclude/linux/usb_ch9.h
+!Iinclude/linux/usb/ch9.h
</sect1>

<sect1 id="core"><title>Core Objects and Methods</title>
Index: linux-2.6.19/Documentation/DocBook/usb.tmpl
===================================================================
--- linux-2.6.19.orig/Documentation/DocBook/usb.tmpl
+++ linux-2.6.19/Documentation/DocBook/usb.tmpl
@@ -187,13 +187,13 @@

<chapter><title>USB-Standard Types</title>

- <para>In <filename>&lt;linux/usb_ch9.h&gt;</filename> you will find
+ <para>In <filename>&lt;linux/usb/ch9.h&gt;</filename> you will find
the USB data types defined in chapter 9 of the USB specification.
These data types are used throughout USB, and in APIs including
this host side API, gadget APIs, and usbfs.
</para>

-!Iinclude/linux/usb_ch9.h
+!Iinclude/linux/usb/ch9.h

</chapter>

@@ -574,7 +574,7 @@ for (;;) {
#include &lt;asm/byteorder.h&gt;</programlisting>
The standard USB device model requests, from "Chapter 9" of
the USB 2.0 specification, are automatically included from
- the <filename>&lt;linux/usb_ch9.h&gt;</filename> header.
+ the <filename>&lt;linux/usb/ch9.h&gt;</filename> header.
</para>

<para>Unless noted otherwise, the ioctl requests

2007-01-29 05:17:52

by Herbert Xu

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

Michal Piotrowski <[email protected]> wrote:

> Jan 28 22:58:29 euridica kernel: BUG: using smp_processor_id() in preemptible [00000001] code: yum-updatesd/2846
> Jan 28 22:58:29 euridica kernel: caller is nf_conntrack_in+0x363/0x47f [nf_conntrack]
> Jan 28 22:58:29 euridica kernel: [<c01053c6>] show_trace_log_lvl+0x1a/0x2f
> Jan 28 22:58:29 euridica kernel: [<c0105ad6>] show_trace+0x12/0x14
> Jan 28 22:58:29 euridica kernel: [<c0105b98>] dump_stack+0x16/0x18
> Jan 28 22:58:29 euridica kernel: [<c0207803>] debug_smp_processor_id+0xb3/0xc8
> Jan 28 22:58:29 euridica kernel: [<fdbf8ad0>] nf_conntrack_in+0x363/0x47f [nf_conntrack]
> Jan 28 22:58:29 euridica kernel: [<fd9c32c4>] ipv4_conntrack_local+0x53/0x5b [nf_conntrack_ipv4]
> Jan 28 22:58:29 euridica kernel: [<c02f2286>] nf_iterate+0x36/0x67
> Jan 28 22:58:29 euridica kernel: [<c02f241b>] nf_hook_slow+0x52/0xbe

This shouldn't have happened. nf_hook_slow calls nf_iterate and
therefore everything under it with preemption disabled. So something
must've reenabled it before hitting nf_conntrack_in.

Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2007-01-29 05:29:36

by Herbert Xu

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

On Mon, Jan 29, 2007 at 04:17:44PM +1100, Herbert Xu wrote:
> Michal Piotrowski <[email protected]> wrote:
>
> > Jan 28 22:58:29 euridica kernel: BUG: using smp_processor_id() in preemptible [00000001] code: yum-updatesd/2846
> > Jan 28 22:58:29 euridica kernel: caller is nf_conntrack_in+0x363/0x47f [nf_conntrack]
> > Jan 28 22:58:29 euridica kernel: [<c01053c6>] show_trace_log_lvl+0x1a/0x2f
> > Jan 28 22:58:29 euridica kernel: [<c0105ad6>] show_trace+0x12/0x14
> > Jan 28 22:58:29 euridica kernel: [<c0105b98>] dump_stack+0x16/0x18
> > Jan 28 22:58:29 euridica kernel: [<c0207803>] debug_smp_processor_id+0xb3/0xc8
> > Jan 28 22:58:29 euridica kernel: [<fdbf8ad0>] nf_conntrack_in+0x363/0x47f [nf_conntrack]
> > Jan 28 22:58:29 euridica kernel: [<fd9c32c4>] ipv4_conntrack_local+0x53/0x5b [nf_conntrack_ipv4]
> > Jan 28 22:58:29 euridica kernel: [<c02f2286>] nf_iterate+0x36/0x67
> > Jan 28 22:58:29 euridica kernel: [<c02f241b>] nf_hook_slow+0x52/0xbe
>
> This shouldn't have happened. nf_hook_slow calls nf_iterate and
> therefore everything under it with preemption disabled. So something
> must've reenabled it before hitting nf_conntrack_in.

Does mm now have the preemptible RCU stuff? If so that would certainly
explain this.

IIRC Ingo had made fixes for the networking stack in his rt tree since
the networking code assumes in lots of places that rcu_read_lock
disables preemption.

Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2007-01-29 06:53:00

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

On Mon, 29 Jan 2007 16:29:29 +1100
Herbert Xu <[email protected]> wrote:

> On Mon, Jan 29, 2007 at 04:17:44PM +1100, Herbert Xu wrote:
> > Michal Piotrowski <[email protected]> wrote:
> >
> > > Jan 28 22:58:29 euridica kernel: BUG: using smp_processor_id() in preemptible [00000001] code: yum-updatesd/2846
> > > Jan 28 22:58:29 euridica kernel: caller is nf_conntrack_in+0x363/0x47f [nf_conntrack]
> > > Jan 28 22:58:29 euridica kernel: [<c01053c6>] show_trace_log_lvl+0x1a/0x2f
> > > Jan 28 22:58:29 euridica kernel: [<c0105ad6>] show_trace+0x12/0x14
> > > Jan 28 22:58:29 euridica kernel: [<c0105b98>] dump_stack+0x16/0x18
> > > Jan 28 22:58:29 euridica kernel: [<c0207803>] debug_smp_processor_id+0xb3/0xc8
> > > Jan 28 22:58:29 euridica kernel: [<fdbf8ad0>] nf_conntrack_in+0x363/0x47f [nf_conntrack]
> > > Jan 28 22:58:29 euridica kernel: [<fd9c32c4>] ipv4_conntrack_local+0x53/0x5b [nf_conntrack_ipv4]
> > > Jan 28 22:58:29 euridica kernel: [<c02f2286>] nf_iterate+0x36/0x67
> > > Jan 28 22:58:29 euridica kernel: [<c02f241b>] nf_hook_slow+0x52/0xbe
> >
> > This shouldn't have happened. nf_hook_slow calls nf_iterate and
> > therefore everything under it with preemption disabled. So something
> > must've reenabled it before hitting nf_conntrack_in.
>
> Does mm now have the preemptible RCU stuff? If so that would certainly
> explain this.

It does,

> IIRC Ingo had made fixes for the networking stack in his rt tree since
> the networking code assumes in lots of places that rcu_read_lock
> disables preemption.

oh. We'd better find those fixes then. I wonder what other code made that
(rather hacky) assumption? I guess we have enough debug stuff in there to
find out..

2007-01-29 07:22:48

by Herbert Xu

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

On Sun, Jan 28, 2007 at 10:43:12PM -0800, Andrew Morton wrote:
>
> > IIRC Ingo had made fixes for the networking stack in his rt tree since
> > the networking code assumes in lots of places that rcu_read_lock
> > disables preemption.
>
> oh. We'd better find those fixes then. I wonder what other code made that
> (rather hacky) assumption? I guess we have enough debug stuff in there to
> find out..

Actually, maybe I was confusing this with the fixes Ingo had for
local_bh_disable vs. preemption in the -rt tree. Ingo, do you
have preemptible RCU support in your -rt tree and if so did you
have to fix the networking stack to behave correctly with it?

It could also be that the fixes for local_bh_disable also masked
any problems that would trigger under preemptible RCU.

Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2007-01-29 08:37:36

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1


* Herbert Xu <[email protected]> wrote:

> Actually, maybe I was confusing this with the fixes Ingo had for
> local_bh_disable vs. preemption in the -rt tree. Ingo, do you have
> preemptible RCU support in your -rt tree and if so did you have to fix
> the networking stack to behave correctly with it?

yeah, -rt is the main prototyping tree for PREEMPT_RCU, and it has been
included in -rt for 1.5 years or so. There were only some small things
here and there, but with Paul's latest design i dont remember anything
but the occasional place that needs to be marked raw_smp_processor_id().
CONFIG_DEBUG_PREEMPT ought to catch those. I dont remember any big
breakage.

i've just reviewed all changes to net/* in -rt, and the changes below
are the ones that seem to be upstream-relevant.

Ingo

Index: linux/net/ipv4/multipath_wrandom.c
===================================================================
--- linux.orig/net/ipv4/multipath_wrandom.c
+++ linux/net/ipv4/multipath_wrandom.c
@@ -301,6 +301,7 @@ static void wrandom_flush(void)
for (i = 0; i < MULTIPATH_STATE_SIZE; ++i) {
struct multipath_route *r;

+ rcu_read_lock();
spin_lock_bh(&state[i].lock);
list_for_each_entry_rcu(r, &state[i].head, list) {
struct multipath_dest *d;
@@ -315,6 +316,7 @@ static void wrandom_flush(void)
}

spin_unlock_bh(&state[i].lock);
+ rcu_read_unlock();
}
}

Index: linux/net/ipv4/netfilter/arp_tables.c
===================================================================
--- linux.orig/net/ipv4/netfilter/arp_tables.c
+++ linux/net/ipv4/netfilter/arp_tables.c
@@ -245,7 +245,7 @@ unsigned int arpt_do_table(struct sk_buf

read_lock_bh(&table->lock);
private = table->private;
- table_base = (void *)private->entries[smp_processor_id()];
+ table_base = (void *)private->entries[raw_smp_processor_id()];
e = get_entry(table_base, private->hook_entry[hook]);
back = get_entry(table_base, private->underflow[hook]);

@@ -955,7 +955,7 @@ static int do_add_counters(void __user *

i = 0;
/* Choose the copy that is on our node */
- loc_cpu_entry = private->entries[smp_processor_id()];
+ loc_cpu_entry = private->entries[raw_smp_processor_id()];
ARPT_ENTRY_ITERATE(loc_cpu_entry,
private->size,
add_counter_to_entry,
Index: linux/net/ipv4/netfilter/ip_tables.c
===================================================================
--- linux.orig/net/ipv4/netfilter/ip_tables.c
+++ linux/net/ipv4/netfilter/ip_tables.c
@@ -246,7 +246,7 @@ ipt_do_table(struct sk_buff **pskb,
read_lock_bh(&table->lock);
IP_NF_ASSERT(table->valid_hooks & (1 << hook));
private = table->private;
- table_base = (void *)private->entries[smp_processor_id()];
+ table_base = (void *)private->entries[raw_smp_processor_id()];
e = get_entry(table_base, private->hook_entry[hook]);

/* For return from builtin chain */
Index: linux/net/ipv4/tcp.c
===================================================================
--- linux.orig/net/ipv4/tcp.c
+++ linux/net/ipv4/tcp.c
@@ -1138,10 +1138,10 @@ int tcp_recvmsg(struct kiocb *iocb, stru
preempt_disable();
if ((len > sysctl_tcp_dma_copybreak) && !(flags & MSG_PEEK) &&
!sysctl_tcp_low_latency && __get_cpu_var(softnet_data).net_dma) {
- preempt_enable_no_resched();
+ preempt_enable();
tp->ucopy.pinned_list = dma_pin_iovec_pages(msg->msg_iov, len);
} else
- preempt_enable_no_resched();
+ preempt_enable();
#endif

do {
Index: linux/net/ipv6/netfilter/ip6_tables.c
===================================================================
--- linux.orig/net/ipv6/netfilter/ip6_tables.c
+++ linux/net/ipv6/netfilter/ip6_tables.c
@@ -282,7 +282,7 @@ ip6t_do_table(struct sk_buff **pskb,
read_lock_bh(&table->lock);
private = table->private;
IP_NF_ASSERT(table->valid_hooks & (1 << hook));
- table_base = (void *)private->entries[smp_processor_id()];
+ table_base = (void *)private->entries[raw_smp_processor_id()];
e = get_entry(table_base, private->hook_entry[hook]);

/* For return from builtin chain */
@@ -1097,7 +1097,7 @@ do_add_counters(void __user *user, unsig

i = 0;
/* Choose the copy that is on our node */
- loc_cpu_entry = private->entries[smp_processor_id()];
+ loc_cpu_entry = private->entries[raw_smp_processor_id()];
IP6T_ENTRY_ITERATE(loc_cpu_entry,
private->size,
add_counter_to_entry,
Index: linux/net/xfrm/xfrm_user.c
===================================================================
--- linux.orig/net/xfrm/xfrm_user.c
+++ linux/net/xfrm/xfrm_user.c
@@ -1273,13 +1273,12 @@ static int xfrm_get_policy(struct sk_buf
xp = xfrm_policy_bysel_ctx(type, p->dir, &p->sel, tmp.security, delete);
security_xfrm_policy_free(&tmp);
}
- if (delete)
- xfrm_audit_log(NETLINK_CB(skb).loginuid, NETLINK_CB(skb).sid,
- AUDIT_MAC_IPSEC_DELSPD, (xp) ? 1 : 0, xp, NULL);
-
if (xp == NULL)
return -ENOENT;

+ xfrm_audit_log(NETLINK_CB(skb).loginuid, NETLINK_CB(skb).sid,
+ AUDIT_MAC_IPSEC_DELSPD, delete, xp, NULL);
+
if (!delete) {
struct sk_buff *resp_skb;

2007-01-29 08:47:15

by Andi Kleen

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1: linker error with arch_setup_additional_pages


> I think the easy and correct fix for this situation is defining
> CONFIG_ARCH_HAS_SETUP_ADDITIONAL_PAGES on x86_64 only if
> IA32_EMULATION is defined. (Because x86_64 proper doesn't seem to
> require arch_setup_additional_pages() only IA32 emulation requires
> it.)
>
> The patch below should fix it. (Please use attachment - less chance of
> whitespace issues. Sorry no control over mail client atm)

A more elegant solution would be to do away with the CONFIG
and switch to a weak function in the caller.

-Andi

2007-01-29 08:59:52

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1: linker error with arch_setup_additional_pages

On Mon, 29 Jan 2007 03:51:54 +0100
Andi Kleen <[email protected]> wrote:

>
> > I think the easy and correct fix for this situation is defining
> > CONFIG_ARCH_HAS_SETUP_ADDITIONAL_PAGES on x86_64 only if
> > IA32_EMULATION is defined. (Because x86_64 proper doesn't seem to
> > require arch_setup_additional_pages() only IA32 emulation requires
> > it.)
> >
> > The patch below should fix it. (Please use attachment - less chance of
> > whitespace issues. Sorry no control over mail client atm)
>
> A more elegant solution would be to do away with the CONFIG
> and switch to a weak function in the caller.
>

Now why didn't I think of that?

2007-01-29 09:09:18

by Steven Whitehouse

[permalink] [raw]
Subject: Re: [-mm patch] fix GFS2 circular dependency

Hi,

Now applied to the GFS2 -nmw git tree. Thanks,

Steve.

On Sun, 2007-01-28 at 17:19 +0100, Adrian Bunk wrote:
> On Sun, Jan 28, 2007 at 11:08:18AM +0100, Jiri Slaby wrote:
> > Andrew Morton napsal(a):
> > >Temporarily at
> > >
> > > http://userweb.kernel.org/~akpm/2.6.20-rc6-mm1/
> >
> > Unable to select IPV6. Menuconfig doesn't offer it when INET is selected.
> > When it's not it appears in the menu, but after state change it gets away.
> > The same behaviour in xconfig, gconfig.
> >
> > $ mkdir ../a/tst
> > $ make O=../a/tst menuconfig
> > HOSTCC scripts/basic/fixdep
> > [...]
> > HOSTLD scripts/kconfig/mconf
> > scripts/kconfig/mconf arch/i386/Kconfig
> > Warning! Found recursive dependency: INET GFS2_FS_LOCKING_DLM SYSFS
> > OCFS2_FS INET
> >
> > Maybe this is the problem?
>
> Yes, patch below.
>
> > regards,
>
> cu
> Adrian
>
>
> <-- snip -->
>
>
> This patch fixes a circular dependency by letting GFS2_FS_LOCKING_DLM
> and DLM depend on instead of select SYSFS.
>
> Since SYSFS depends on EMBEDDED this change shouldn't cause any problems
> for users.
>
> Signed-off-by: Adrian Bunk <[email protected]>
>
> ---
>
> fs/dlm/Kconfig | 3 +--
> fs/gfs2/Kconfig | 3 +--
> 2 files changed, 2 insertions(+), 4 deletions(-)
>
> --- linux-2.6.20-rc6-mm1/fs/gfs2/Kconfig.old 2007-01-28 16:44:17.000000000 +0100
> +++ linux-2.6.20-rc6-mm1/fs/gfs2/Kconfig 2007-01-28 16:44:59.000000000 +0100
> @@ -34,11 +34,10 @@
>
> config GFS2_FS_LOCKING_DLM
> tristate "GFS2 DLM locking module"
> - depends on GFS2_FS && NET && INET && (IPV6 || IPV6=n)
> + depends on GFS2_FS && SYSFS && NET && INET && (IPV6 || IPV6=n)
> select IP_SCTP if DLM_SCTP
> select CONFIGFS_FS
> select DLM
> - select SYSFS
> help
> Multiple node locking module for GFS2
>
> --- linux-2.6.20-rc6-mm1/fs/dlm/Kconfig.old 2007-01-28 16:56:57.000000000 +0100
> +++ linux-2.6.20-rc6-mm1/fs/dlm/Kconfig 2007-01-28 16:57:16.000000000 +0100
> @@ -3,9 +3,8 @@
>
> config DLM
> tristate "Distributed Lock Manager (DLM)"
> - depends on IPV6 || IPV6=n
> + depends on SYSFS && (IPV6 || IPV6=n)
> select CONFIGFS_FS
> - select SYSFS
> select IP_SCTP if DLM_SCTP
> help
> A general purpose distributed lock manager for kernel or userspace
>

2007-01-30 01:11:48

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] vmi: cleanups

This patch contains the following cleanups:
- make needlessly global code static
- remove pointless fastcall annotations
- don't mark functions in C files as inline
- #if 0 the following unused function:
- arch/i386/kernel/vmitime.c: read_stolen_cycles()

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

---

arch/i386/kernel/vmi.c | 89 ++++++++++++++++++------------------
arch/i386/kernel/vmitime.c | 39 ++++++++-------
include/asm-i386/vmi_time.h | 14 ++---
3 files changed, 72 insertions(+), 70 deletions(-)

--- linux-2.6.20-rc6-mm1/include/asm-i386/vmi_time.h.old 2007-01-28 20:27:42.000000000 +0100
+++ linux-2.6.20-rc6-mm1/include/asm-i386/vmi_time.h 2007-01-28 20:27:48.000000000 +0100
@@ -37,12 +37,12 @@

/* Cached VMI timer operations */
extern struct vmi_timer_ops {
- u64 (fastcall *get_cycle_frequency)(void);
- u64 (fastcall *get_cycle_counter)(int);
- u64 (fastcall *get_wallclock)(void);
- int (fastcall *wallclock_updated)(void);
- void (fastcall *set_alarm)(u32 flags, u64 expiry, u64 period);
- void (fastcall *cancel_alarm)(u32 flags);
+ u64 (*get_cycle_frequency)(void);
+ u64 (*get_cycle_counter)(int);
+ u64 (*get_wallclock)(void);
+ int (*wallclock_updated)(void);
+ void (*set_alarm)(u32 flags, u64 expiry, u64 period);
+ void (*cancel_alarm)(u32 flags);
} vmi_timer_ops;

/* Prototypes */
@@ -54,7 +54,7 @@
#ifdef CONFIG_X86_LOCAL_APIC
extern void __init vmi_timer_setup_boot_alarm(void);
extern void __init vmi_timer_setup_secondary_alarm(void);
-extern fastcall void apic_vmi_timer_interrupt(void);
+extern void apic_vmi_timer_interrupt(void);
#endif

#ifdef CONFIG_NO_IDLE_HZ
--- linux-2.6.20-rc6-mm1/arch/i386/kernel/vmi.c.old 2007-01-28 20:15:42.000000000 +0100
+++ linux-2.6.20-rc6-mm1/arch/i386/kernel/vmi.c 2007-01-28 20:22:15.000000000 +0100
@@ -56,19 +56,19 @@
static int disable_mtrr;

/* Cached VMI operations */
-struct {
- void (fastcall *cpuid)(void /* non-c */);
- void (fastcall *_set_ldt)(u32 selector);
- void (fastcall *set_tr)(u32 selector);
- void (fastcall *set_kernel_stack)(u32 selector, u32 esp0);
- void (fastcall *allocate_page)(u32, u32, u32, u32, u32);
- void (fastcall *release_page)(u32, u32);
- void (fastcall *set_pte)(pte_t, pte_t *, unsigned);
- void (fastcall *update_pte)(pte_t *, unsigned);
- void (fastcall *set_linear_mapping)(int, u32, u32, u32);
- void (fastcall *flush_tlb)(int);
- void (fastcall *set_initial_ap_state)(int, int);
- void (fastcall *halt)(void);
+static struct {
+ void (*cpuid)(void /* non-c */);
+ void (*_set_ldt)(u32 selector);
+ void (*set_tr)(u32 selector);
+ void (*set_kernel_stack)(u32 selector, u32 esp0);
+ void (*allocate_page)(u32, u32, u32, u32, u32);
+ void (*release_page)(u32, u32);
+ void (*set_pte)(pte_t, pte_t *, unsigned);
+ void (*update_pte)(pte_t *, unsigned);
+ void (*set_linear_mapping)(int, u32, u32, u32);
+ void (*flush_tlb)(int);
+ void (*set_initial_ap_state)(int, int);
+ void (*halt)(void);
} vmi_ops;

/* XXX move this to alternative.h */
@@ -90,7 +90,7 @@
#define IRQ_PATCH_INT_MASK 0
#define IRQ_PATCH_DISABLE 5

-static inline void patch_offset(unsigned char *eip, unsigned char *dest)
+static void patch_offset(unsigned char *eip, unsigned char *dest)
{
*(unsigned long *)(eip+1) = dest-eip-5;
}
@@ -169,8 +169,8 @@
}

/* CPUID has non-C semantics, and paravirt-ops API doesn't match hardware ISA */
-static fastcall void vmi_cpuid(unsigned int *eax, unsigned int *ebx,
- unsigned int *ecx, unsigned int *edx)
+static void vmi_cpuid(unsigned int *eax, unsigned int *ebx,
+ unsigned int *ecx, unsigned int *edx)
{
int override = 0;
if (*eax == 1)
@@ -195,13 +195,14 @@
}
}

-static inline void vmi_maybe_load_tls(struct desc_struct *gdt, int nr, struct desc_struct *new)
+static void vmi_maybe_load_tls(struct desc_struct *gdt, int nr,
+ struct desc_struct *new)
{
if (gdt[nr].a != new->a || gdt[nr].b != new->b)
write_gdt_entry(gdt, nr, new->a, new->b);
}

-static fastcall void vmi_load_tls(struct thread_struct *t, unsigned int cpu)
+static void vmi_load_tls(struct thread_struct *t, unsigned int cpu)
{
struct desc_struct *gdt = get_cpu_gdt_table(cpu);
vmi_maybe_load_tls(gdt, GDT_ENTRY_TLS_MIN + 0, &t->tls_array[0]);
@@ -209,7 +210,7 @@
vmi_maybe_load_tls(gdt, GDT_ENTRY_TLS_MIN + 2, &t->tls_array[2]);
}

-static fastcall void vmi_set_ldt(const void *addr, unsigned entries)
+static void vmi_set_ldt(const void *addr, unsigned entries)
{
unsigned cpu = smp_processor_id();
u32 low, high;
@@ -221,13 +222,13 @@
vmi_ops._set_ldt(entries ? GDT_ENTRY_LDT*sizeof(struct desc_struct) : 0);
}

-static fastcall void vmi_set_tr(void)
+static void vmi_set_tr(void)
{
vmi_ops.set_tr(GDT_ENTRY_TSS*sizeof(struct desc_struct));
}

-static fastcall void vmi_load_esp0(struct tss_struct *tss,
- struct thread_struct *thread)
+static void vmi_load_esp0(struct tss_struct *tss,
+ struct thread_struct *thread)
{
tss->esp0 = thread->esp0;

@@ -239,12 +240,12 @@
vmi_ops.set_kernel_stack(__KERNEL_DS, tss->esp0);
}

-static fastcall void vmi_flush_tlb_user(void)
+static void vmi_flush_tlb_user(void)
{
vmi_ops.flush_tlb(VMI_FLUSH_TLB);
}

-static fastcall void vmi_flush_tlb_kernel(void)
+static void vmi_flush_tlb_kernel(void)
{
vmi_ops.flush_tlb(VMI_FLUSH_TLB | VMI_FLUSH_GLOBAL);
}
@@ -256,7 +257,7 @@

/* For NO_IDLE_HZ, we stop the clock when halting the kernel */
#ifdef CONFIG_NO_IDLE_HZ
-static fastcall void vmi_safe_halt(void)
+static void vmi_safe_halt(void)
{
int idle = vmi_stop_hz_timer();
vmi_ops.halt();
@@ -371,13 +372,13 @@
#define vmi_check_page_type(p,t) do { } while (0)
#endif

-static fastcall void vmi_allocate_pt(u32 pfn)
+static void vmi_allocate_pt(u32 pfn)
{
vmi_set_page_type(pfn, VMI_PAGE_L1);
vmi_ops.allocate_page(pfn, VMI_PAGE_L1, 0, 0, 0);
}

-static fastcall void vmi_allocate_pd(u32 pfn)
+static void vmi_allocate_pd(u32 pfn)
{
/*
* This call comes in very early, before mem_map is setup.
@@ -388,20 +389,20 @@
vmi_ops.allocate_page(pfn, VMI_PAGE_L2, 0, 0, 0);
}

-static fastcall void vmi_allocate_pd_clone(u32 pfn, u32 clonepfn, u32 start, u32 count)
+static void vmi_allocate_pd_clone(u32 pfn, u32 clonepfn, u32 start, u32 count)
{
vmi_set_page_type(pfn, VMI_PAGE_L2 | VMI_PAGE_CLONE);
vmi_check_page_type(clonepfn, VMI_PAGE_L2);
vmi_ops.allocate_page(pfn, VMI_PAGE_L2 | VMI_PAGE_CLONE, clonepfn, start, count);
}

-static fastcall void vmi_release_pt(u32 pfn)
+static void vmi_release_pt(u32 pfn)
{
vmi_ops.release_page(pfn, VMI_PAGE_L1);
vmi_set_page_type(pfn, VMI_PAGE_NORMAL);
}

-static fastcall void vmi_release_pd(u32 pfn)
+static void vmi_release_pd(u32 pfn)
{
vmi_ops.release_page(pfn, VMI_PAGE_L2);
vmi_set_page_type(pfn, VMI_PAGE_NORMAL);
@@ -426,32 +427,32 @@
((level) | (is_current_as(mm, user) ? \
(VMI_PAGE_DEFER | VMI_PAGE_CURRENT_AS | ((addr) & VMI_PAGE_VA_MASK)) : 0))

-static fastcall void vmi_update_pte(struct mm_struct *mm, u32 addr, pte_t *ptep)
+static void vmi_update_pte(struct mm_struct *mm, u32 addr, pte_t *ptep)
{
vmi_check_page_type(__pa(ptep) >> PAGE_SHIFT, VMI_PAGE_PTE);
vmi_ops.update_pte(ptep, vmi_flags_addr(mm, addr, VMI_PAGE_PT, 0));
}

-static fastcall void vmi_update_pte_defer(struct mm_struct *mm, u32 addr, pte_t *ptep)
+static void vmi_update_pte_defer(struct mm_struct *mm, u32 addr, pte_t *ptep)
{
vmi_check_page_type(__pa(ptep) >> PAGE_SHIFT, VMI_PAGE_PTE);
vmi_ops.update_pte(ptep, vmi_flags_addr_defer(mm, addr, VMI_PAGE_PT, 0));
}

-static fastcall void vmi_set_pte(pte_t *ptep, pte_t pte)
+static void vmi_set_pte(pte_t *ptep, pte_t pte)
{
/* XXX because of set_pmd_pte, this can be called on PT or PD layers */
vmi_check_page_type(__pa(ptep) >> PAGE_SHIFT, VMI_PAGE_PTE | VMI_PAGE_PD);
vmi_ops.set_pte(pte, ptep, VMI_PAGE_PT);
}

-static fastcall void vmi_set_pte_at(struct mm_struct *mm, u32 addr, pte_t *ptep, pte_t pte)
+static void vmi_set_pte_at(struct mm_struct *mm, u32 addr, pte_t *ptep, pte_t pte)
{
vmi_check_page_type(__pa(ptep) >> PAGE_SHIFT, VMI_PAGE_PTE);
vmi_ops.set_pte(pte, ptep, vmi_flags_addr(mm, addr, VMI_PAGE_PT, 0));
}

-static fastcall void vmi_set_pmd(pmd_t *pmdp, pmd_t pmdval)
+static void vmi_set_pmd(pmd_t *pmdp, pmd_t pmdval)
{
#ifdef CONFIG_X86_PAE
const pte_t pte = { pmdval.pmd, pmdval.pmd >> 32 };
@@ -465,7 +466,7 @@

#ifdef CONFIG_X86_PAE

-static fastcall void vmi_set_pte_atomic(pte_t *ptep, pte_t pteval)
+static void vmi_set_pte_atomic(pte_t *ptep, pte_t pteval)
{
/*
* XXX This is called from set_pmd_pte, but at both PT
@@ -478,13 +479,13 @@
vmi_ops.update_pte(ptep, VMI_PAGE_PT);
}

-static fastcall void vmi_set_pte_present(struct mm_struct *mm, unsigned long addr, pte_t *ptep, pte_t pte)
+static void vmi_set_pte_present(struct mm_struct *mm, unsigned long addr, pte_t *ptep, pte_t pte)
{
vmi_check_page_type(__pa(ptep) >> PAGE_SHIFT, VMI_PAGE_PTE);
vmi_ops.set_pte(pte, ptep, vmi_flags_addr_defer(mm, addr, VMI_PAGE_PT, 1));
}

-static fastcall void vmi_set_pud(pud_t *pudp, pud_t pudval)
+static void vmi_set_pud(pud_t *pudp, pud_t pudval)
{
/* Um, eww */
const pte_t pte = { pudval.pgd.pgd, pudval.pgd.pgd >> 32 };
@@ -492,14 +493,14 @@
vmi_ops.set_pte(pte, (pte_t *)pudp, VMI_PAGE_PDP);
}

-static fastcall void vmi_pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
+static void vmi_pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
{
const pte_t pte = { 0 };
vmi_check_page_type(__pa(ptep) >> PAGE_SHIFT, VMI_PAGE_PTE);
vmi_ops.set_pte(pte, ptep, vmi_flags_addr(mm, addr, VMI_PAGE_PT, 0));
}

-fastcall void vmi_pmd_clear(pmd_t *pmd)
+static void vmi_pmd_clear(pmd_t *pmd)
{
const pte_t pte = { 0 };
vmi_check_page_type(__pa(pmd) >> PAGE_SHIFT, VMI_PAGE_PMD);
@@ -511,7 +512,7 @@
struct vmi_ap_state ap;
extern void setup_pda(void);

-static fastcall void __init /* XXX cpu hotplug */
+static void __init /* XXX cpu hotplug */
vmi_startup_ipi_hook(int phys_apicid, unsigned long start_eip,
unsigned long start_esp)
{
@@ -557,7 +558,7 @@
}
#endif

-static inline int __init check_vmi_rom(struct vrom_header *rom)
+static int __init check_vmi_rom(struct vrom_header *rom)
{
struct pci_header *pci;
struct pnp_header *pnp;
@@ -623,7 +624,7 @@
/*
* Probe for the VMI option ROM
*/
-static inline int __init probe_vmi_rom(void)
+static int __init probe_vmi_rom(void)
{
unsigned long base;

@@ -681,7 +682,7 @@
/*
* Activate the VMI interface and switch into paravirtualized mode
*/
-static inline int __init activate_vmi(void)
+static int __init activate_vmi(void)
{
short kernel_cs;
u64 reloc;
--- linux-2.6.20-rc6-mm1/arch/i386/kernel/vmitime.c.old 2007-01-28 20:18:02.000000000 +0100
+++ linux-2.6.20-rc6-mm1/arch/i386/kernel/vmitime.c 2007-01-28 23:28:50.000000000 +0100
@@ -65,8 +65,8 @@
int sysctl_hz_timer;

/* Some stats */
-DEFINE_PER_CPU(unsigned long, vmi_idle_no_hz_irqs);
-DEFINE_PER_CPU(unsigned long, vmi_idle_no_hz_jiffies);
+static DEFINE_PER_CPU(unsigned long, vmi_idle_no_hz_irqs);
+static DEFINE_PER_CPU(unsigned long, vmi_idle_no_hz_jiffies);
static DEFINE_PER_CPU(unsigned long, idle_start_jiffies);

#endif /* CONFIG_NO_IDLE_HZ */
@@ -91,20 +91,22 @@
static DEFINE_PER_CPU(unsigned long long, stolen_cycles_accounted_cpu);

/* Clock source. */
-static inline cycle_t read_real_cycles(void)
+static cycle_t read_real_cycles(void)
{
return vmi_timer_ops.get_cycle_counter(VMI_CYCLES_REAL);
}

-static inline cycle_t read_available_cycles(void)
+static cycle_t read_available_cycles(void)
{
return vmi_timer_ops.get_cycle_counter(VMI_CYCLES_AVAILABLE);
}

-static inline cycle_t read_stolen_cycles(void)
+#if 0
+static cycle_t read_stolen_cycles(void)
{
return vmi_timer_ops.get_cycle_counter(VMI_CYCLES_STOLEN);
}
+#endif /* 0 */

static struct clocksource clocksource_vmi = {
.name = "vmi-timer",
@@ -120,7 +122,7 @@
/* Timer interrupt handler. */
static irqreturn_t vmi_timer_interrupt(int irq, void *dev_id);

-struct irqaction vmi_timer_irq = {
+static struct irqaction vmi_timer_irq = {
.handler = vmi_timer_interrupt,
.flags = IRQF_DISABLED,
.mask = CPU_MASK_NONE,
@@ -141,7 +143,7 @@


/* Initialization */
-static inline void vmi_get_wallclock_ts(struct timespec *ts)
+static void vmi_get_wallclock_ts(struct timespec *ts)
{
unsigned long long wallclock;
wallclock = vmi_timer_ops.get_wallclock(); // nsec units
@@ -149,7 +151,7 @@
ts->tv_sec = wallclock;
}

-static inline void update_xtime_from_wallclock(void)
+static void update_xtime_from_wallclock(void)
{
struct timespec ts;
vmi_get_wallclock_ts(&ts);
@@ -260,7 +262,7 @@
#endif

/* Update system wide (real) time accounting (e.g. jiffies, xtime). */
-static inline void vmi_account_real_cycles(unsigned long long cur_real_cycles)
+static void vmi_account_real_cycles(unsigned long long cur_real_cycles)
{
long long cycles_not_accounted;

@@ -282,9 +284,8 @@
}

/* Update per-cpu process times. */
-static inline void vmi_account_process_times_cycles(struct pt_regs *regs,
- int cpu,
- unsigned long long cur_process_times_cycles)
+static void vmi_account_process_times_cycles(struct pt_regs *regs, int cpu,
+ unsigned long long cur_process_times_cycles)
{
long long cycles_not_accounted;
cycles_not_accounted = cur_process_times_cycles -
@@ -305,8 +306,8 @@

#ifdef CONFIG_NO_IDLE_HZ
/* Update per-cpu idle times. Used when a no-hz halt is ended. */
-static inline void vmi_account_no_hz_idle_cycles(int cpu,
- unsigned long long cur_process_times_cycles)
+static void vmi_account_no_hz_idle_cycles(int cpu,
+ unsigned long long cur_process_times_cycles)
{
long long cycles_not_accounted;
unsigned long no_idle_hz_jiffies = 0;
@@ -325,9 +326,9 @@
#endif

/* Update per-cpu stolen time. */
-static inline void vmi_account_stolen_cycles(int cpu,
- unsigned long long cur_real_cycles,
- unsigned long long cur_avail_cycles)
+static void vmi_account_stolen_cycles(int cpu,
+ unsigned long long cur_real_cycles,
+ unsigned long long cur_avail_cycles)
{
long long stolen_cycles_not_accounted;
unsigned long stolen_jiffies = 0;
@@ -410,7 +411,7 @@
return idle;
}

-static inline void vmi_reenable_hz_timer(int cpu)
+static void vmi_reenable_hz_timer(int cpu)
{
/* For /proc/vmi/info idle_hz stat. */
per_cpu(vmi_idle_no_hz_jiffies, cpu) += jiffies - per_cpu(idle_start_jiffies, cpu);
@@ -462,7 +463,7 @@
/* SMP VMI-timer alarm interrupt handler. Handler for LVTT vector.
* Also used in UP when CONFIG_X86_LOCAL_APIC.
* The wrapper code is from arch/i386/kernel/apic.c#smp_apic_timer_interrupt. */
-fastcall void smp_apic_vmi_timer_interrupt(struct pt_regs *regs)
+void smp_apic_vmi_timer_interrupt(struct pt_regs *regs)
{
struct pt_regs *old_regs = set_irq_regs(regs);
int cpu = smp_processor_id();

2007-01-30 01:12:14

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] cx88-video.c: remove struct radionorms

On Sat, Jan 27, 2007 at 11:49:28PM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.20-rc4-mm1:
>...
> git-dvb.patch
>...
> git trees.
>...

This patch removes the unused struct radionorms.

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

--- linux-2.6.20-rc6-mm1/drivers/media/video/cx88/cx88-video.c.old 2007-01-28 23:59:19.000000000 +0100
+++ linux-2.6.20-rc6-mm1/drivers/media/video/cx88/cx88-video.c 2007-01-28 23:59:28.000000000 +0100
@@ -86,8 +86,6 @@
/* ------------------------------------------------------------------- */
/* static data */

-v4l2_std_id radionorms[] = { 0 };
-
static struct cx8800_fmt formats[] = {
{
.name = "8 bpp, gray",


2007-01-30 01:12:16

by Adrian Bunk

[permalink] [raw]
Subject: [RFC: -mm patch] CONFIG_INPUT_DEBUG improvements

On Sat, Jan 27, 2007 at 11:49:28PM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.20-rc4-mm1:
>...
> git-hid.patch
>...
> git trees.
>...

This patch contains the following CONFIG_INPUT_DEBUG improvements:
- remove Makefile code for the nonexisting CONFIG_INPUT_DEBUG
- simpler Makefile for hid-debug.o
- replace all HID debug #define's with CONFIG_INPUT_DEBUG

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

---

drivers/hid/Makefile | 15 ++-------------
drivers/hid/hid-core.c | 6 ++----
drivers/hid/hid-input.c | 6 ++----
3 files changed, 6 insertions(+), 21 deletions(-)

--- linux-2.6.20-rc6-mm1/drivers/hid/Makefile.old 2007-01-28 23:50:41.000000000 +0100
+++ linux-2.6.20-rc6-mm1/drivers/hid/Makefile 2007-01-29 00:13:22.000000000 +0100
@@ -2,18 +2,7 @@
# Makefile for the HID driver
#

-# Multipart objects.
-hid-objs := hid-core.o hid-input.o
-
-# Optional parts of multipart objects.
-ifeq ($(CONFIG_HID_DEBUG),y)
-hid-objs += hid-debug.o
-endif
-
-ifeq ($(CONFIG_INPUT_DEBUG),y)
-EXTRA_CFLAGS += -DDEBUG
-endif
-
-
obj-$(CONFIG_HID) += hid.o
+hid-objs := hid-core.o hid-input.o
+hid-$(CONFIG_HID_DEBUG) += hid-debug.o

--- linux-2.6.20-rc6-mm1/drivers/hid/hid-core.c.old 2007-01-28 23:52:34.000000000 +0100
+++ linux-2.6.20-rc6-mm1/drivers/hid/hid-core.c 2007-01-28 23:53:47.000000000 +0100
@@ -27,8 +27,6 @@
#include <linux/input.h>
#include <linux/wait.h>

-#undef DEBUG_DATA
-
#include <linux/hid.h>
#include <linux/hiddev.h>
#include <linux/hid-debug.h>
@@ -950,7 +948,7 @@
return -1;
}

-#ifdef DEBUG_DATA
+#ifdef CONFIG_INPUT_DEBUG
printk(KERN_DEBUG __FILE__ ": report (size %u) (%snumbered)\n", size, report_enum->numbered ? "" : "un");
#endif

@@ -960,7 +958,7 @@
size--;
}

-#ifdef DEBUG_DATA
+#ifdef CONFIG_INPUT_DEBUG
{
int i;
printk(KERN_DEBUG __FILE__ ": report %d (size %u) = ", n, size);
--- linux-2.6.20-rc6-mm1/drivers/hid/hid-input.c.old 2007-01-28 23:53:56.000000000 +0100
+++ linux-2.6.20-rc6-mm1/drivers/hid/hid-input.c 2007-01-28 23:54:21.000000000 +0100
@@ -31,8 +31,6 @@
#include <linux/slab.h>
#include <linux/kernel.h>

-#undef DEBUG
-
#include <linux/hid.h>
#include <linux/hid-debug.h>

@@ -248,7 +246,7 @@

field->hidinput = hidinput;

-#ifdef DEBUG
+#ifdef CONFIG_HID_DEBUG
printk(KERN_DEBUG "Mapping: ");
hid_resolv_usage(usage->hid);
printk(" ---> ");
@@ -685,7 +683,7 @@
return;

ignore:
-#ifdef DEBUG
+#ifdef CONFIG_HID_DEBUG
printk("IGNORED\n");
#endif
return;

2007-01-30 01:12:53

by Adrian Bunk

[permalink] [raw]
Subject: [RFC: -mm patch] #if 0 v4l_printk_ioctl_arg()

On Sat, Jan 27, 2007 at 11:49:28PM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.20-rc4-mm1:
>...
> git-dvb.patch
>...
> git trees.
>...

v4l_printk_ioctl_arg() is no longer used.

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

---

drivers/media/video/v4l2-common.c | 7 ++++++-
include/media/v4l2-common.h | 3 ---
2 files changed, 6 insertions(+), 4 deletions(-)

--- linux-2.6.20-rc6-mm1/include/media/v4l2-common.h.old 2007-01-29 00:02:58.000000000 +0100
+++ linux-2.6.20-rc6-mm1/include/media/v4l2-common.h 2007-01-29 00:03:10.000000000 +0100
@@ -64,9 +64,6 @@
/* Prints the ioctl in a human-readable format */
extern void v4l_printk_ioctl(unsigned int cmd);

-/* Prints the ioctl and arg in a human-readable format */
-extern void v4l_printk_ioctl_arg(char *s,unsigned int cmd, void *arg);
-
/* Use this macro for non-I2C drivers. Pass the driver name as the first arg. */
#define v4l_print_ioctl(name, cmd) \
do { \
--- linux-2.6.20-rc6-mm1/drivers/media/video/v4l2-common.c.old 2007-01-29 00:21:54.000000000 +0100
+++ linux-2.6.20-rc6-mm1/drivers/media/video/v4l2-common.c 2007-01-29 00:45:55.000000000 +0100
@@ -271,11 +271,13 @@
[V4L2_BUF_TYPE_SLICED_VBI_OUTPUT] = "slicec-vbi-out",
};

+#if 0
static char *v4l2_memory_names[] = {
[V4L2_MEMORY_MMAP] = "mmap",
[V4L2_MEMORY_USERPTR] = "userptr",
[V4L2_MEMORY_OVERLAY] = "overlay",
};
+#endif /* 0 */

#define prt_names(a,arr) (((a)>=0)&&((a)<ARRAY_SIZE(arr)))?arr[a]:"unknown"

@@ -419,6 +421,7 @@
};
#define V4L2_INT_IOCTLS ARRAY_SIZE(v4l2_int_ioctls)

+#if 0
static void v4l_print_pix_fmt (char *s, struct v4l2_pix_format *fmt)
{
printk ("%s: width=%d, height=%d, format=%d, field=%s, "
@@ -427,6 +430,7 @@
prt_names(fmt->field,v4l2_field_names),
fmt->bytesperline,fmt->sizeimage,fmt->colorspace);
};
+#endif /* 0 */

/* Common ioctl debug function. This function can be used by
external ioctl messages as well as internal V4L ioctl */
@@ -466,6 +470,7 @@
}
}

+#if 0
/* Common ioctl debug function. This function can be used by
external ioctl messages as well as internal V4L ioctl and its
arguments */
@@ -1036,6 +1041,7 @@
}
}
}
+#endif /* 0 */

/* ----------------------------------------------------------------- */

@@ -1544,7 +1550,6 @@
EXPORT_SYMBOL(v4l2_field_names);
EXPORT_SYMBOL(v4l2_type_names);
EXPORT_SYMBOL(v4l_printk_ioctl);
-EXPORT_SYMBOL(v4l_printk_ioctl_arg);

EXPORT_SYMBOL(v4l2_ctrl_next);
EXPORT_SYMBOL(v4l2_ctrl_check);

2007-01-30 01:13:29

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] drivers/char/pcmcia/ipwireless_cs_*: possible cleanups

On Sat, Jan 27, 2007 at 11:49:28PM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.20-rc4-mm1:
>...
> git-ipwireless_cs.patch
>...
> git trees.
>...

This patch contains the following possible cleanups:
- proper prototypes for global functions in header files
- make the following needlessly global function static:
- ipwireless_cs_hardware.c: data_type()
- make the following needlessly global struct static:
- ipwireless_cs_tty.c: ipw_tty_driver
- #if 0 the following unused global functions:
- ipwireless_cs_hardware.c: ipwireless_get_config()
- ipwireless_cs_tty.c: ipw_flush_buffer()

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

---

drivers/char/pcmcia/ipwireless_cs_hardware.c | 4 +++-
drivers/char/pcmcia/ipwireless_cs_hardware.h | 5 ++---
drivers/char/pcmcia/ipwireless_cs_network.h | 2 ++
drivers/char/pcmcia/ipwireless_cs_tty.c | 10 +++-------
4 files changed, 10 insertions(+), 11 deletions(-)

--- linux-2.6.20-rc6-mm1/drivers/char/pcmcia/ipwireless_cs_network.h.old 2007-01-29 00:17:28.000000000 +0100
+++ linux-2.6.20-rc6-mm1/drivers/char/pcmcia/ipwireless_cs_network.h 2007-01-29 00:17:56.000000000 +0100
@@ -43,4 +43,6 @@
int ipwireless_ppp_channel_index(struct ipw_network_t *);
int ipwireless_ppp_unit_number(struct ipw_network_t *);

+int ipwireless_dump_network_state(char *p, struct ipw_network_t *network);
+
#endif
--- linux-2.6.20-rc6-mm1/drivers/char/pcmcia/ipwireless_cs_hardware.h.old 2007-01-29 00:20:14.000000000 +0100
+++ linux-2.6.20-rc6-mm1/drivers/char/pcmcia/ipwireless_cs_hardware.h 2007-01-29 00:16:54.000000000 +0100
@@ -43,9 +43,6 @@
unsigned int, ipw_packet_sent_callback_t,
void *);

-/* Get the configuration settings for this modem instance. */
-struct ipw_config_t *ipwireless_get_config(struct ipw_hardware_t *);
-
/* Associate the specified network with this hardware */
void ipwireless_associate_network(struct ipw_hardware_t *, struct ipw_network_t *);

@@ -64,4 +61,6 @@

void ipwireless_sleep(u_int tenths);

+int ipwireless_dump_hardware_state(char *p, struct ipw_hardware_t *hw);
+
#endif
--- linux-2.6.20-rc6-mm1/drivers/char/pcmcia/ipwireless_cs_hardware.c.old 2007-01-28 23:34:55.000000000 +0100
+++ linux-2.6.20-rc6-mm1/drivers/char/pcmcia/ipwireless_cs_hardware.c 2007-01-28 23:36:26.000000000 +0100
@@ -375,7 +375,7 @@



-char *data_type(const u_char * buf, unsigned length)
+static char *data_type(const u_char * buf, unsigned length)
{
NLPacketHeader *hdr = (NLPacketHeader *) buf;
if (length == 0)
@@ -1592,10 +1592,12 @@
kfree(hw);
}

+#if 0
ipw_config_t *ipwireless_get_config(struct ipw_hardware_t *hw)
{
return &hw->config;
}
+#endif /* 0 */

/* Associate the specified network with this hardware, so it will receive events
* from it. */
--- linux-2.6.20-rc6-mm1/drivers/char/pcmcia/ipwireless_cs_tty.c.old 2007-01-28 23:36:46.000000000 +0100
+++ linux-2.6.20-rc6-mm1/drivers/char/pcmcia/ipwireless_cs_tty.c 2007-01-29 00:18:02.000000000 +0100
@@ -463,10 +463,12 @@
return ppp_ioctl(linux_tty, file, cmd, arg);
}

+#if 0
void ipw_flush_buffer(struct tty_struct *tty)
{
wake_up_interruptible(&tty->write_wait);
}
+#endif /* 0 */

static void add_tty(int first, int *j, dev_node_t ** nodesp,
struct pcmcia_device *link,
@@ -578,7 +580,7 @@
.tiocmset = ipw_tiocmset,
};

-struct tty_driver *ipw_tty_driver;
+static struct tty_driver *ipw_tty_driver;

static int proc_read(char *page, char **start, off_t off, int count,
int *eof, void *data)
@@ -586,12 +588,6 @@
int i, j;
char *p = page;
int len;
-#ifdef IPWIRELESS_STATE_DEBUG
- int ipwireless_dump_hardware_state(char *p,
- struct ipw_hardware_t *hw);
- int ipwireless_dump_network_state(char *p,
- struct ipw_network_t *network);
-#endif

if (off == 0) {
p += sprintf(p, "driver: %s\nversion: %s\n\n",

2007-01-30 02:37:26

by Suparna Bhattacharya

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

On Sun, Jan 28, 2007 at 03:01:33PM -0800, Andrew Morton wrote:
> On Sun, 28 Jan 2007 08:56:08 -0800
> "Martin J. Bligh" <[email protected]> wrote:
>
> > > - It seems that people have been busy creating the need for this. I had to
> > > apply over sixty patches to this tree to fix post-2.6.20-rc4-mm1 compilation
> > > errors. And a number of patches were dropped due to no-compile or to
> > > runtime errors. Heaven knows how many runtime bugs were added.
> >
> > dbench seems to panic on xfs / cfq ?
>
> OK, I'll dump git-block.patch. That means that the fsaio patches get
> temporarily dropped as well as they depend on git-block changes somewhat.

Would you like me to rework these back again to not depend on git-block ?

>
> btw, I didn't actually include the list-aio patches in rc6-mm1 due to
> various discouraging-looking review comments - I'll be awaiting version 2
> there.

Regards
Suparna

--
Suparna Bhattacharya ([email protected])
Linux Technology Center
IBM Software Lab, India

2007-01-30 02:42:42

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

On Tue, 30 Jan 2007 08:12:31 +0530
Suparna Bhattacharya <[email protected]> wrote:

> On Sun, Jan 28, 2007 at 03:01:33PM -0800, Andrew Morton wrote:
> > On Sun, 28 Jan 2007 08:56:08 -0800
> > "Martin J. Bligh" <[email protected]> wrote:
> >
> > > > - It seems that people have been busy creating the need for this. I had to
> > > > apply over sixty patches to this tree to fix post-2.6.20-rc4-mm1 compilation
> > > > errors. And a number of patches were dropped due to no-compile or to
> > > > runtime errors. Heaven knows how many runtime bugs were added.
> > >
> > > dbench seems to panic on xfs / cfq ?
> >
> > OK, I'll dump git-block.patch. That means that the fsaio patches get
> > temporarily dropped as well as they depend on git-block changes somewhat.
>
> Would you like me to rework these back again to not depend on git-block ?

Is OK thanks, I now have a git-block minus CFQ changes, so I have restored the fsaio
patches.

2007-01-30 03:26:06

by Martin Bligh

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

Andrew Morton wrote:
> On Tue, 30 Jan 2007 08:12:31 +0530
> Suparna Bhattacharya <[email protected]> wrote:
>
>> On Sun, Jan 28, 2007 at 03:01:33PM -0800, Andrew Morton wrote:
>>> On Sun, 28 Jan 2007 08:56:08 -0800
>>> "Martin J. Bligh" <[email protected]> wrote:
>>>
>>>>> - It seems that people have been busy creating the need for this. I had to
>>>>> apply over sixty patches to this tree to fix post-2.6.20-rc4-mm1 compilation
>>>>> errors. And a number of patches were dropped due to no-compile or to
>>>>> runtime errors. Heaven knows how many runtime bugs were added.
>>>> dbench seems to panic on xfs / cfq ?
>>> OK, I'll dump git-block.patch. That means that the fsaio patches get
>>> temporarily dropped as well as they depend on git-block changes somewhat.
>> Would you like me to rework these back again to not depend on git-block ?
>
> Is OK thanks, I now have a git-block minus CFQ changes, so I have restored the fsaio
> patches.

On a happy note - mm2 seems to pass testing much better ;-)

M.

2007-01-30 04:56:26

by Zachary Amsden

[permalink] [raw]
Subject: Re: [-mm patch] vmi: cleanups

Adrian Bunk wrote:
> This patch contains the following cleanups:
> - make needlessly global code static
> - remove pointless fastcall annotations
> - don't mark functions in C files as inline
> - #if 0 the following unused function:
> - arch/i386/kernel/vmitime.c: read_stolen_cycles()
>
> Signed-off-by: Adrian Bunk <[email protected]>
>

Acked-by: Zachary Amsden <[email protected]>

Thanks Adrian! I have some more bugfix / cleanup patches queued up, but
somehow I think you magically avoided creating conflicts with them.

Zach

2007-01-30 07:28:01

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

On Sun, 28 Jan 2007 11:25:42 +0100
Jiri Slaby <[email protected]> wrote:

> Andrew Morton napsal(a):
> > Temporarily at
> >
> > http://userweb.kernel.org/~akpm/2.6.20-rc6-mm1/
>
> I'm still seeing this during bootup:
> BUG: at /home/l/latest/xxx/arch/i386/mm/highmem.c:52 kmap_atomic()
> [<c0104ffb>] show_trace_log_lvl+0x1a/0x30
> [<c01056b5>] show_trace+0x12/0x14
> [<c010573c>] dump_stack+0x16/0x18
> [<c011b24f>] kmap_atomic+0x16c/0x20e
> [<c01b279e>] ntfs_end_buffer_async_read+0x18e/0x2ed
> [<c0183352>] end_bio_bh_io_sync+0x26/0x3f
> [<c0184dd4>] bio_endio+0x37/0x62
> [<c01cda43>] __end_that_request_first+0x224/0x444
> [<c01cdc6b>] end_that_request_chunk+0x8/0xa
> [<c024507d>] scsi_end_request+0x1f/0xc7
> [<c02451e6>] scsi_io_completion+0x7b/0x33a
> [<c024aa5d>] sd_rw_intr+0x23/0x1ab
> [<c02415ed>] scsi_finish_command+0x42/0x47
> [<c0245a38>] scsi_softirq_done+0x64/0xcf
> [<c01cf9e6>] blk_done_softirq+0x54/0x62
> [<c0127bc5>] __do_softirq+0x75/0xde
> [<c0127c69>] do_softirq+0x3b/0x3d
> [<c0127ee6>] irq_exit+0x3b/0x3d
> [<c0106804>] do_IRQ+0x51/0x8d
> [<c0104a5f>] common_interrupt+0x23/0x28
> [<c010241a>] cpu_idle+0x80/0xc3
> [<c010140d>] rest_init+0x23/0x36
> [<c045ea59>] start_kernel+0x3a5/0x43c
> [<00000000>] 0x0
> =======================
>
> I.e. KM_BIO_SRC_IRQ through softirq path.
>

argh.

ntfs_end_buffer_async_read() doesn't know whether it will be called from
hardirq or from softirq context: it depends upon the underlying driver.

In this case, if the CPU running ntfs_end_buffer_async_read() is
interrupted by IO completion against a different disk controller and that
completion handler uses KM_BIO_SRC_IRQ (as it is allowed to do), it will
trash ntfs_end_buffer_async_read()'s atomic kmap and unpleasing things will
ensue.

I guess a suitable fix here is to protect that kmap with
local_irq_save/restore.

I wonder where else we have that bug?

2007-01-30 15:08:16

by Jiri Kosina

[permalink] [raw]
Subject: Re: [RFC: -mm patch] CONFIG_INPUT_DEBUG improvements

On Tue, 30 Jan 2007, Adrian Bunk wrote:

> This patch contains the following CONFIG_INPUT_DEBUG improvements:
> - remove Makefile code for the nonexisting CONFIG_INPUT_DEBUG
> - simpler Makefile for hid-debug.o
> - replace all HID debug #define's with CONFIG_INPUT_DEBUG

Adrian,

thanks for the patch. In seems broken to me though (as I have written
accidentaly in different mail, so resending for mailinglists to get it) -
the option that should replace the legacy DEBUG macro should be
CONFIG_HID_DEBUG, not CONFIG_INPUT_DEBUG - your patch gets it right only
on some places.

I applied the patch below to hid tree. Thanks.


HID: move away from DEBUG defines in favor of CONFIG_HID_DEBUG

CONFIG_INPUT_DEBUG is non-existent option, so remove anything depending
on it.

Also, as we have new CONFIG_HID_DEBUG, this should be used on places
where ifdef DEBUG was used before.

Suggested by Adrian Bunk.

Signed-off-by: Jiri Kosina <[email protected]>

---
commit c6bc8f433a5a6aec13b4d1aa64c980e8f5c0badc
tree 291a94074fea15b714ce66eacad2827c80eae28f
parent 6015269d31d8d07b80ef22000ba1d21feed1e537
author Jiri Kosina <[email protected]> Tue, 30 Jan 2007 16:02:24 +0100
committer Jiri Kosina <[email protected]> Tue, 30 Jan 2007 16:02:24 +0100

drivers/hid/Makefile | 15 ++-------------
drivers/hid/hid-core.c | 6 ++----
drivers/hid/hid-debug.c | 1 -
drivers/hid/hid-input.c | 6 ++----
4 files changed, 6 insertions(+), 22 deletions(-)

diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
index 84c823e..52e97d8 100644
--- a/drivers/hid/Makefile
+++ b/drivers/hid/Makefile
@@ -1,19 +1,8 @@
#
# Makefile for the HID driver
#
-
-# Multipart objects.
-hid-objs := hid-core.o hid-input.o
-
-# Optional parts of multipart objects.
-ifeq ($(CONFIG_HID_DEBUG),y)
-hid-objs += hid-debug.o
-endif
-
-ifeq ($(CONFIG_INPUT_DEBUG),y)
-EXTRA_CFLAGS += -DDEBUG
-endif
-
+hid-objs := hid-core.o hid-input.o

obj-$(CONFIG_HID) += hid.o
+hid-$(CONFIG_HID_DEBUG) += hid-debug.o

diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 4648733..d848db6 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -28,8 +28,6 @@
#include <linux/input.h>
#include <linux/wait.h>

-#undef DEBUG_DATA
-
#include <linux/hid.h>
#include <linux/hiddev.h>
#include <linux/hid-debug.h>
@@ -950,7 +948,7 @@ int hid_input_report(struct hid_device *hid, int type, u8 *data, int size, int i
return -1;
}

-#ifdef DEBUG_DATA
+#ifdef CONFIG_HID_DEBUG
printk(KERN_DEBUG __FILE__ ": report (size %u) (%snumbered)\n", size, report_enum->numbered ? "" : "un");
#endif

@@ -960,7 +958,7 @@ int hid_input_report(struct hid_device *hid, int type, u8 *data, int size, int i
size--;
}

-#ifdef DEBUG_DATA
+#ifdef CONFIG_HID_DEBUG
{
int i;
printk(KERN_DEBUG __FILE__ ": report %d (size %u) = ", n, size);
diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c
index d6abe34..89241be 100644
--- a/drivers/hid/hid-debug.c
+++ b/drivers/hid/hid-debug.c
@@ -28,7 +28,6 @@
* Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
*/

-//#include <linux/input.h>
#include <linux/hid.h>

struct hid_usage_entry {
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index 2301f98..1c7376a 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -31,8 +31,6 @@
#include <linux/slab.h>
#include <linux/kernel.h>

-#undef DEBUG
-
#include <linux/hid.h>
#include <linux/hid-debug.h>

@@ -248,7 +246,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel

field->hidinput = hidinput;

-#ifdef DEBUG
+#ifdef CONFIG_HID_DEBUG
printk(KERN_DEBUG "Mapping: ");
hid_resolv_usage(usage->hid);
printk(" ---> ");
@@ -683,7 +681,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
return;

ignore:
-#ifdef DEBUG
+#ifdef CONFIG_HID_DEBUG
printk("IGNORED\n");
#endif
return;

--
Jiri Kosina

2007-01-30 15:13:34

by Adrian Bunk

[permalink] [raw]
Subject: Re: [RFC: -mm patch] CONFIG_INPUT_DEBUG improvements

On Tue, Jan 30, 2007 at 04:07:04PM +0100, Jiri Kosina wrote:
> On Tue, 30 Jan 2007, Adrian Bunk wrote:
>
> > This patch contains the following CONFIG_INPUT_DEBUG improvements:
> > - remove Makefile code for the nonexisting CONFIG_INPUT_DEBUG
> > - simpler Makefile for hid-debug.o
> > - replace all HID debug #define's with CONFIG_INPUT_DEBUG
>
> Adrian,
>
> thanks for the patch. In seems broken to me though (as I have written
> accidentaly in different mail, so resending for mailinglists to get it) -
> the option that should replace the legacy DEBUG macro should be
> CONFIG_HID_DEBUG, not CONFIG_INPUT_DEBUG - your patch gets it right only
> on some places.
>...

Thanks for the correction, these were copy'n'paste errors in my patch.

> Jiri Kosina

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

2007-01-30 17:13:54

by Patrick McHardy

[permalink] [raw]
Subject: Re: [2.6 patch] NF_CONNTRACK_H323 must depend on (IPV6 || IPV6=n)

Adrian Bunk wrote:
> On Sun, Jan 28, 2007 at 04:04:42PM -0800, David Miller wrote:
>
>>From: Adrian Bunk <[email protected]>
>>Date: Mon, 29 Jan 2007 01:00:11 +0100
>>
>>>"depends on IPV6" would fix the bug - but it would also make
>>>NF_CONNTRACK_H323 unavailable for all people without IPV6 support in
>>>their kernel.
>>
>>Yes, that is an issue.
>>
>>I guess with some slightly ugly ifdefs we could support the
>>whole matrix of possibilities. But perhaps that's undesirable
>>for another reason.
>>...
>
>
> This depends on what NF_CONNTRACK_H323=y, IPV6=m is supposed to be:
> - not allowed (NF_CONNTRACK_H323 must be modular) or
> - NF_CONNTRACK_H323 can only be used for IPV4
>
> My patch implements the first case.


Unfortunately a few ifdefs aren't enough to support IPV6=m,
NF_CONNTRACK_H323=y. For now I think Adrian's patch is the
best solution (IPV6=m isn't that useful anyway since it will
normally get loaded automatically when the first program
attempts to open an AF_INET6 socket and can't be unloaded),
but I'll look into moving the route lookup to the netfilter
AF ops in 2.6.21 so we can also support that configuration.


Acked-by: Patrick McHardy <[email protected]>

2007-01-30 19:32:06

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

On Mon, 29 Jan 2007 23:27:27 -0800
Andrew Morton <[email protected]> wrote:

> On Sun, 28 Jan 2007 11:25:42 +0100
> Jiri Slaby <[email protected]> wrote:
>
> > Andrew Morton napsal(a):
> > > Temporarily at
> > >
> > > http://userweb.kernel.org/~akpm/2.6.20-rc6-mm1/
> >
> > I'm still seeing this during bootup:
> > BUG: at /home/l/latest/xxx/arch/i386/mm/highmem.c:52 kmap_atomic()
> > [<c0104ffb>] show_trace_log_lvl+0x1a/0x30
> > [<c01056b5>] show_trace+0x12/0x14
> > [<c010573c>] dump_stack+0x16/0x18
> > [<c011b24f>] kmap_atomic+0x16c/0x20e
> > [<c01b279e>] ntfs_end_buffer_async_read+0x18e/0x2ed
> > [<c0183352>] end_bio_bh_io_sync+0x26/0x3f
> > [<c0184dd4>] bio_endio+0x37/0x62
> > [<c01cda43>] __end_that_request_first+0x224/0x444
> > [<c01cdc6b>] end_that_request_chunk+0x8/0xa
> > [<c024507d>] scsi_end_request+0x1f/0xc7
> > [<c02451e6>] scsi_io_completion+0x7b/0x33a
> > [<c024aa5d>] sd_rw_intr+0x23/0x1ab
> > [<c02415ed>] scsi_finish_command+0x42/0x47
> > [<c0245a38>] scsi_softirq_done+0x64/0xcf
> > [<c01cf9e6>] blk_done_softirq+0x54/0x62
> > [<c0127bc5>] __do_softirq+0x75/0xde
> > [<c0127c69>] do_softirq+0x3b/0x3d
> > [<c0127ee6>] irq_exit+0x3b/0x3d
> > [<c0106804>] do_IRQ+0x51/0x8d
> > [<c0104a5f>] common_interrupt+0x23/0x28
> > [<c010241a>] cpu_idle+0x80/0xc3
> > [<c010140d>] rest_init+0x23/0x36
> > [<c045ea59>] start_kernel+0x3a5/0x43c
> > [<00000000>] 0x0
> > =======================
> >
> > I.e. KM_BIO_SRC_IRQ through softirq path.
> >
>
> argh.
>
> ntfs_end_buffer_async_read() doesn't know whether it will be called from
> hardirq or from softirq context: it depends upon the underlying driver.
>
> In this case, if the CPU running ntfs_end_buffer_async_read() is
> interrupted by IO completion against a different disk controller and that
> completion handler uses KM_BIO_SRC_IRQ (as it is allowed to do), it will
> trash ntfs_end_buffer_async_read()'s atomic kmap and unpleasing things will
> ensue.
>
> I guess a suitable fix here is to protect that kmap with
> local_irq_save/restore.
>
> I wonder where else we have that bug?

Actually, this isn't related to softirq-vs-hardirq. Most interrupt
handlers are interruptible, so the rule is simply that KM_BIO_SRC_IRQ must
always be taken under local_irq_disable().

A quick scan indicates that the following files might be buggy in this
regard:

drivers/mmc/wbsd.c
drivers/mmc/at91_mci.c
drivers/mmc/sdhci.c
drivers/scsi/scsi_lib.c when called from stex.c
fs/ntfs/aops.c

Happily, KM_BIO_DST_IRQ has no users and can presumably be removed.


Fixes for stex and ntfs follow.


From: Andrew Morton <[email protected]>

The KM_BIO_SRC_IRQ kmap slot requires local irq protection.

Cc: James Bottomley <[email protected]>
Cc: Ed Lin <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
---

drivers/scsi/stex.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

diff -puN drivers/scsi/stex.c~stex-kmap_atomic-atomicity-fix drivers/scsi/stex.c
--- a/drivers/scsi/stex.c~stex-kmap_atomic-atomicity-fix
+++ a/drivers/scsi/stex.c
@@ -459,15 +459,19 @@ static void stex_internal_copy(struct sc
*count = cmd->request_bufflen;
lcount = *count;
while (lcount) {
+ unsigned long flags = flags; /* Suppress uninit warning */
+
len = lcount;
s = (void *)src;
if (cmd->use_sg) {
size_t offset = *count - lcount;
s += offset;
+ local_irq_save(flags);
base = scsi_kmap_atomic_sg(cmd->request_buffer,
sg_count, &offset, &len);
if (base == NULL) {
*count -= lcount;
+ local_irq_restore(flags);
return;
}
d = base + offset;
@@ -480,8 +484,10 @@ static void stex_internal_copy(struct sc
memcpy(s, d, len);

lcount -= len;
- if (cmd->use_sg)
+ if (cmd->use_sg) {
scsi_kunmap_atomic_sg(base);
+ local_irq_restore(flags);
+ }
}
}

_



From: Andrew Morton <[email protected]>

The KM_BIO_SRC_IRQ kmap slot requires local irq protection.

Cc: Anton Altaparmakov <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
---

fs/ntfs/aops.c | 6 ++++++
1 file changed, 6 insertions(+)

diff -puN fs/ntfs/aops.c~ntfs-kmap_atomic-atomicity-fix fs/ntfs/aops.c
--- a/fs/ntfs/aops.c~ntfs-kmap_atomic-atomicity-fix
+++ a/fs/ntfs/aops.c
@@ -88,14 +88,17 @@ static void ntfs_end_buffer_async_read(s
if (unlikely(file_ofs + bh->b_size > init_size)) {
u8 *kaddr;
int ofs;
+ unsigned long flags;

ofs = 0;
if (file_ofs < init_size)
ofs = init_size - file_ofs;
+ local_irq_save(flags);
kaddr = kmap_atomic(page, KM_BIO_SRC_IRQ);
memset(kaddr + bh_offset(bh) + ofs, 0,
bh->b_size - ofs);
kunmap_atomic(kaddr, KM_BIO_SRC_IRQ);
+ local_irq_restore(flags);
flush_dcache_page(page);
}
} else {
@@ -138,16 +141,19 @@ static void ntfs_end_buffer_async_read(s
u8 *kaddr;
unsigned int i, recs;
u32 rec_size;
+ unsigned long flags;

rec_size = ni->itype.index.block_size;
recs = PAGE_CACHE_SIZE / rec_size;
/* Should have been verified before we got here... */
BUG_ON(!recs);
+ local_irq_save(flags);
kaddr = kmap_atomic(page, KM_BIO_SRC_IRQ);
for (i = 0; i < recs; i++)
post_read_mst_fixup((NTFS_RECORD*)(kaddr +
i * rec_size), rec_size);
kunmap_atomic(kaddr, KM_BIO_SRC_IRQ);
+ local_irq_restore(flags);
flush_dcache_page(page);
if (likely(page_uptodate && !PageError(page)))
SetPageUptodate(page);
_

2007-01-30 20:10:18

by Jiri Slaby

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

Andrew Morton napsal(a):
> On Mon, 29 Jan 2007 23:27:27 -0800
> Andrew Morton <[email protected]> wrote:
>
>> On Sun, 28 Jan 2007 11:25:42 +0100
>> Jiri Slaby <[email protected]> wrote:
>>
>>> Andrew Morton napsal(a):
>>>> Temporarily at
>>>>
>>>> http://userweb.kernel.org/~akpm/2.6.20-rc6-mm1/
>>> I'm still seeing this during bootup:
>>> BUG: at /home/l/latest/xxx/arch/i386/mm/highmem.c:52 kmap_atomic()
>>> [<c0104ffb>] show_trace_log_lvl+0x1a/0x30
>>> [<c01056b5>] show_trace+0x12/0x14
>>> [<c010573c>] dump_stack+0x16/0x18
>>> [<c011b24f>] kmap_atomic+0x16c/0x20e
>>> [<c01b279e>] ntfs_end_buffer_async_read+0x18e/0x2ed
>>> [<c0183352>] end_bio_bh_io_sync+0x26/0x3f
>>> [<c0184dd4>] bio_endio+0x37/0x62
>>> [<c01cda43>] __end_that_request_first+0x224/0x444
>>> [<c01cdc6b>] end_that_request_chunk+0x8/0xa
>>> [<c024507d>] scsi_end_request+0x1f/0xc7
>>> [<c02451e6>] scsi_io_completion+0x7b/0x33a
>>> [<c024aa5d>] sd_rw_intr+0x23/0x1ab
>>> [<c02415ed>] scsi_finish_command+0x42/0x47
>>> [<c0245a38>] scsi_softirq_done+0x64/0xcf
>>> [<c01cf9e6>] blk_done_softirq+0x54/0x62
>>> [<c0127bc5>] __do_softirq+0x75/0xde
>>> [<c0127c69>] do_softirq+0x3b/0x3d
>>> [<c0127ee6>] irq_exit+0x3b/0x3d
>>> [<c0106804>] do_IRQ+0x51/0x8d
>>> [<c0104a5f>] common_interrupt+0x23/0x28
>>> [<c010241a>] cpu_idle+0x80/0xc3
>>> [<c010140d>] rest_init+0x23/0x36
>>> [<c045ea59>] start_kernel+0x3a5/0x43c
>>> [<00000000>] 0x0
>>> =======================
>>>
>>> I.e. KM_BIO_SRC_IRQ through softirq path.
[...]
> Actually, this isn't related to softirq-vs-hardirq. Most interrupt

I meant that hardirq path was fixed (by adding KM_BIO_SRC_IRQ to kmap_atomic
"type !=" test in arch/i386/mm/highmem.c) and softirq was not yet.

> handlers are interruptible, so the rule is simply that KM_BIO_SRC_IRQ must
> always be taken under local_irq_disable().
>
> A quick scan indicates that the following files might be buggy in this
> regard:
>
> drivers/mmc/wbsd.c
> drivers/mmc/at91_mci.c
> drivers/mmc/sdhci.c
> drivers/scsi/scsi_lib.c when called from stex.c
> fs/ntfs/aops.c
>
> Happily, KM_BIO_DST_IRQ has no users and can presumably be removed.
>
>
> Fixes for stex and ntfs follow.

Clean boot now.

thanks,
--
http://www.fi.muni.cz/~xslaby/ Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8 22A0 32CC 55C3 39D4 7A7E

2007-01-30 20:22:40

by Pierre Ossman

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

Andrew Morton wrote:
>
> A quick scan indicates that the following files might be buggy in this
> regard:
>
> drivers/mmc/wbsd.c
> drivers/mmc/sdhci.c

This are probably even buggier than so. They really should be using
page_address(), it seems that kmap_atomic() gives the same result when
not using highmem (which they are carful to avoid).

I'll put on the paper bag and whip up a patch.

Rgds
Pierre


Attachments:
signature.asc (251.00 B)
OpenPGP digital signature

2007-01-30 20:50:21

by Anton Altaparmakov

[permalink] [raw]
Subject: Re: 2.6.20-rc6-mm1

Hi Andrew,

Looks good for NTFS thanks! The only thing is that I think we
already have a variable "unsigned long flags" in the function
ntfs_end_buffer_async_read() so that could be used instead of
redefining it more locally in the if statements.

Could you send the patch to Linus?

Feel free to add my Acked-by or Signed-off-by "Anton Altaparmakov
<[email protected]> line if you wish (I am not bothered either way)...

Thanks a lot for fixing it!

Best regards,

Anton

On Tue, 30 Jan 2007, Andrew Morton wrote:

> On Mon, 29 Jan 2007 23:27:27 -0800
> Andrew Morton <[email protected]> wrote:
>
> > On Sun, 28 Jan 2007 11:25:42 +0100
> > Jiri Slaby <[email protected]> wrote:
> >
> > > Andrew Morton napsal(a):
> > > > Temporarily at
> > > >
> > > > http://userweb.kernel.org/~akpm/2.6.20-rc6-mm1/
> > >
> > > I'm still seeing this during bootup:
> > > BUG: at /home/l/latest/xxx/arch/i386/mm/highmem.c:52 kmap_atomic()
> > > [<c0104ffb>] show_trace_log_lvl+0x1a/0x30
> > > [<c01056b5>] show_trace+0x12/0x14
> > > [<c010573c>] dump_stack+0x16/0x18
> > > [<c011b24f>] kmap_atomic+0x16c/0x20e
> > > [<c01b279e>] ntfs_end_buffer_async_read+0x18e/0x2ed
> > > [<c0183352>] end_bio_bh_io_sync+0x26/0x3f
> > > [<c0184dd4>] bio_endio+0x37/0x62
> > > [<c01cda43>] __end_that_request_first+0x224/0x444
> > > [<c01cdc6b>] end_that_request_chunk+0x8/0xa
> > > [<c024507d>] scsi_end_request+0x1f/0xc7
> > > [<c02451e6>] scsi_io_completion+0x7b/0x33a
> > > [<c024aa5d>] sd_rw_intr+0x23/0x1ab
> > > [<c02415ed>] scsi_finish_command+0x42/0x47
> > > [<c0245a38>] scsi_softirq_done+0x64/0xcf
> > > [<c01cf9e6>] blk_done_softirq+0x54/0x62
> > > [<c0127bc5>] __do_softirq+0x75/0xde
> > > [<c0127c69>] do_softirq+0x3b/0x3d
> > > [<c0127ee6>] irq_exit+0x3b/0x3d
> > > [<c0106804>] do_IRQ+0x51/0x8d
> > > [<c0104a5f>] common_interrupt+0x23/0x28
> > > [<c010241a>] cpu_idle+0x80/0xc3
> > > [<c010140d>] rest_init+0x23/0x36
> > > [<c045ea59>] start_kernel+0x3a5/0x43c
> > > [<00000000>] 0x0
> > > =======================
> > >
> > > I.e. KM_BIO_SRC_IRQ through softirq path.
> > >
> >
> > argh.
> >
> > ntfs_end_buffer_async_read() doesn't know whether it will be called from
> > hardirq or from softirq context: it depends upon the underlying driver.
> >
> > In this case, if the CPU running ntfs_end_buffer_async_read() is
> > interrupted by IO completion against a different disk controller and that
> > completion handler uses KM_BIO_SRC_IRQ (as it is allowed to do), it will
> > trash ntfs_end_buffer_async_read()'s atomic kmap and unpleasing things will
> > ensue.
> >
> > I guess a suitable fix here is to protect that kmap with
> > local_irq_save/restore.
> >
> > I wonder where else we have that bug?
>
> Actually, this isn't related to softirq-vs-hardirq. Most interrupt
> handlers are interruptible, so the rule is simply that KM_BIO_SRC_IRQ must
> always be taken under local_irq_disable().
>
> A quick scan indicates that the following files might be buggy in this
> regard:
>
> drivers/mmc/wbsd.c
> drivers/mmc/at91_mci.c
> drivers/mmc/sdhci.c
> drivers/scsi/scsi_lib.c when called from stex.c
> fs/ntfs/aops.c
>
> Happily, KM_BIO_DST_IRQ has no users and can presumably be removed.
>
>
> Fixes for stex and ntfs follow.
>
>
> From: Andrew Morton <[email protected]>
>
> The KM_BIO_SRC_IRQ kmap slot requires local irq protection.
>
> Cc: James Bottomley <[email protected]>
> Cc: Ed Lin <[email protected]>
> Signed-off-by: Andrew Morton <[email protected]>
> ---
>
> drivers/scsi/stex.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff -puN drivers/scsi/stex.c~stex-kmap_atomic-atomicity-fix drivers/scsi/stex.c
> --- a/drivers/scsi/stex.c~stex-kmap_atomic-atomicity-fix
> +++ a/drivers/scsi/stex.c
> @@ -459,15 +459,19 @@ static void stex_internal_copy(struct sc
> *count = cmd->request_bufflen;
> lcount = *count;
> while (lcount) {
> + unsigned long flags = flags; /* Suppress uninit warning */
> +
> len = lcount;
> s = (void *)src;
> if (cmd->use_sg) {
> size_t offset = *count - lcount;
> s += offset;
> + local_irq_save(flags);
> base = scsi_kmap_atomic_sg(cmd->request_buffer,
> sg_count, &offset, &len);
> if (base == NULL) {
> *count -= lcount;
> + local_irq_restore(flags);
> return;
> }
> d = base + offset;
> @@ -480,8 +484,10 @@ static void stex_internal_copy(struct sc
> memcpy(s, d, len);
>
> lcount -= len;
> - if (cmd->use_sg)
> + if (cmd->use_sg) {
> scsi_kunmap_atomic_sg(base);
> + local_irq_restore(flags);
> + }
> }
> }
>
> _
>
>
>
> From: Andrew Morton <[email protected]>
>
> The KM_BIO_SRC_IRQ kmap slot requires local irq protection.
>
> Cc: Anton Altaparmakov <[email protected]>
> Signed-off-by: Andrew Morton <[email protected]>
> ---
>
> fs/ntfs/aops.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff -puN fs/ntfs/aops.c~ntfs-kmap_atomic-atomicity-fix fs/ntfs/aops.c
> --- a/fs/ntfs/aops.c~ntfs-kmap_atomic-atomicity-fix
> +++ a/fs/ntfs/aops.c
> @@ -88,14 +88,17 @@ static void ntfs_end_buffer_async_read(s
> if (unlikely(file_ofs + bh->b_size > init_size)) {
> u8 *kaddr;
> int ofs;
> + unsigned long flags;
>
> ofs = 0;
> if (file_ofs < init_size)
> ofs = init_size - file_ofs;
> + local_irq_save(flags);
> kaddr = kmap_atomic(page, KM_BIO_SRC_IRQ);
> memset(kaddr + bh_offset(bh) + ofs, 0,
> bh->b_size - ofs);
> kunmap_atomic(kaddr, KM_BIO_SRC_IRQ);
> + local_irq_restore(flags);
> flush_dcache_page(page);
> }
> } else {
> @@ -138,16 +141,19 @@ static void ntfs_end_buffer_async_read(s
> u8 *kaddr;
> unsigned int i, recs;
> u32 rec_size;
> + unsigned long flags;
>
> rec_size = ni->itype.index.block_size;
> recs = PAGE_CACHE_SIZE / rec_size;
> /* Should have been verified before we got here... */
> BUG_ON(!recs);
> + local_irq_save(flags);
> kaddr = kmap_atomic(page, KM_BIO_SRC_IRQ);
> for (i = 0; i < recs; i++)
> post_read_mst_fixup((NTFS_RECORD*)(kaddr +
> i * rec_size), rec_size);
> kunmap_atomic(kaddr, KM_BIO_SRC_IRQ);
> + local_irq_restore(flags);
> flush_dcache_page(page);
> if (likely(page_uptodate && !PageError(page)))
> SetPageUptodate(page);
> _
>
>

Best regards,

Anton
--
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer, http://www.linux-ntfs.org/

2007-02-05 11:51:57

by Jens Axboe

[permalink] [raw]
Subject: Re: elevator oops [Was: 2.6.20-rc6-mm1]

On Sun, Jan 28 2007, Jiri Slaby wrote:
> Andrew Morton napsal(a):
> >Temporarily at
> >
> > http://userweb.kernel.org/~akpm/2.6.20-rc6-mm1/
>
> Under disk load I get disk:
> ------------[ cut here ]------------
> kernel BUG at /home/l/latest/xxx/block/cfq-iosched.c:1026!

I fixed this one today, it was a typo on my part. I'll push the cfq
updates to #for-akpm again for more testing.

--
Jens Axboe

2007-02-06 22:14:08

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] fs/proc/: make code static

On Sat, Jan 27, 2007 at 11:49:28PM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.20-rc4-mm1:
>...
> +sysctl-reimplement-the-sysctl-proc-support.patch
>...
> A few sysctl patches.
>...


proc_match() and struct proc_sys_root can now become static.

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

---

fs/proc/generic.c | 2 +-
fs/proc/proc_sysctl.c | 2 +-
include/linux/proc_fs.h | 2 --
3 files changed, 2 insertions(+), 4 deletions(-)

--- linux-2.6.20-rc6-mm3/include/linux/proc_fs.h.old 2007-02-06 08:34:02.000000000 +0100
+++ linux-2.6.20-rc6-mm3/include/linux/proc_fs.h 2007-02-06 08:34:09.000000000 +0100
@@ -128,8 +128,6 @@
extern int proc_fill_super(struct super_block *,void *,int);
extern struct inode *proc_get_inode(struct super_block *, unsigned int, struct proc_dir_entry *);

-extern int proc_match(int, const char *,struct proc_dir_entry *);
-
/*
* These are generic /proc routines that use the internal
* "struct proc_dir_entry" tree to traverse the filesystem.
--- linux-2.6.20-rc6-mm3/fs/proc/generic.c.old 2007-02-06 08:34:17.000000000 +0100
+++ linux-2.6.20-rc6-mm3/fs/proc/generic.c 2007-02-06 08:34:25.000000000 +0100
@@ -33,7 +33,7 @@

DEFINE_SPINLOCK(proc_subdir_lock);

-int proc_match(int len, const char *name, struct proc_dir_entry *de)
+static int proc_match(int len, const char *name, struct proc_dir_entry *de)
{
if (de->namelen != len)
return 0;
--- linux-2.6.20-rc6-mm3/fs/proc/proc_sysctl.c.old 2007-02-06 08:34:33.000000000 +0100
+++ linux-2.6.20-rc6-mm3/fs/proc/proc_sysctl.c 2007-02-06 08:34:42.000000000 +0100
@@ -466,7 +466,7 @@
.d_revalidate = proc_sys_revalidate,
};

-struct proc_dir_entry *proc_sys_root;
+static struct proc_dir_entry *proc_sys_root;

int proc_sys_init(void)
{