2007-12-23 07:32:21

by Andrew Morton

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


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

- This kernel doesn't work on i386!

It oopses late in boot due to an unrevertable change (e3c1b141) in git-x86
which I stared at for a while then I ran out of time and gave up.

I would have just abandoned this release until it was fixed but I'll be
largely offline for ten days starting tomorrow.

The culprits have been notified and hopefully we'll have a patch for
hot-fixes/ tomorrow.

x86_64 and powerpc work OK though.

- git-block is dropped due to more conflicts that I'm prepared to repair
with git-scsi-misc

- git-perfmon is dropped due to conflicts with git-x86

- git-kgdb is dropped due to conflicts with git-x86

- git-newsetup is dropped due to conflicts with git-x86

- Andi's x86 quilt tree is dropped due to conflicts with git-x86

- Someone broke suspend-to-RAM on the t61p again. It just instantly resumes
itself.



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.

- Occasional 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. These probably are at least compilable.

- More-than-daily -mm snapshots may be found at
http://userweb.kernel.org/~akpm/mmotm/. These are almost certainly not
compileable.



Changes since 2.6.24-rc5-mm1:


origin.patch
git-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-hwmon.patch
git-gfs2-nmw.patch
git-hid.patch
git-hrt.patch
git-ieee1394.patch
git-infiniband.patch
git-input.patch
git-jfs.patch
git-kbuild.patch
git-kvm.patch
git-lblnet.patch
git-leds.patch
git-libata-all.patch
git-md-accel.patch
git-mips.patch
git-mmc.patch
git-mtd.patch
git-ubi.patch
git-net.patch
git-net-fixup.patch
git-netdev-all.patch
git-battery.patch
git-nfsd.patch
git-ocfs2.patch
git-selinux.patch
git-s390.patch
git-sched.patch
git-sched-fixup.patch
git-sh.patch
git-scsi-misc.patch
git-unionfs.patch
git-v9fs.patch
git-watchdog.patch
git-watchdog-fixup.patch
git-wireless.patch
git-ipwireless_cs.patch
git-x86.patch
git-x86-fixup.patch
git-xfs.patch
git-cryptodev.patch
git-cryptodev-fixup.patch
git-xtensa.patch

git trees

-revert-hibernation-use-temporary-page-tables-for-kernel-text-mapping-on-x86_64.patch
-uml-stop-gdb-from-deleting-breakpoints-when-running-uml.patch
-alpha-strncpy-strncat-fixes.patch
-rtc-at32ap700x-fix-irq-init-oops.patch
-parport-dev-timeslice-is-an-unsigned-long-not-an-int.patch
-ecryptfs-initialize-new-auth_tokens-before-teardown.patch
-knfsd-change-mailing-list-for-nfsd-in-maintainers.patch
-fix-lguest-documentation.patch
-sparsemem-make-sparsemem_vmemmap-selectable.patch
-fs-kconfig-grammar-fix.patch
-ext3-ext4-avoid-divide-by-zero.patch
-alpha-build-fixes.patch
-git-acpi-ia64-build-fix.patch
-git-acpi-build-fix.patch
-acpi-add-reboot-mechanism.patch
-acpi-cleanup-linux-acpih.patch
-alsa-nopage.patch
-alsa-usx2y-nopage.patch
-drivers-char-remove-unnecessary-pci_dev_put.patch
-git-cpufreq-query_current_values_with_pending_wait-build-fix.patch
-agk-dm-dm-table-detect-io-beyond-device.patch
-agk-dm-dm-mpath-hp-requires-scsi.patch
-agk-dm-dm-crypt-fix-write-endio.patch
-agk-dm-dm-trigger-change-uevent-on-rename.patch
-agk-dm-dm-merge-max_hw_sector.patch
-agk-dm-dm-crypt-use-bio_add_page.patch
-agk-dm-dm-ioctl-move-compat-code-fix.patch
-dm-persistent_read_metadata-warning-fix.patch
-arch-powerpc-remove-duplicate-includes.patch
-arch-ppc-remove-duplicate-includes.patch
-arch-ppc-remove-an-unnecessary-pci_dev_put.patch
-powerpc-kill-non-existent-symbols-from-ksyms-and-commproch.patch
-powerpc-fix-typo-ifdef-ifndef.patch
-powerpc-add-support-for-porta-and-portb-odr-registers.patch
-powerpc-stop-the-toc-overflowing-for-large-builds.patch
-ppc-fix-missed-increment-on-device-interface-counter.patch
-ppc-chrp-fix-possible-null-pointer-dereference.patch
-ppc-chrp-fix-possible-null-pointer-dereference-checkpatch-fixes.patch
-powerpc-dont-cast-a-pointer-to-pointer-of-list_head.patch
-arch-powerpc-add-missing-of_node_put.patch
-arch-powerpc-platforms-cell-cbe_regsc-add-missing-of_node_put.patch
-gregkh-driver-kobject-fix-the-documentation-of-how-kobject_set_name-works.patch
-revert-gregkh-driver-pm-acquire-device-locks-prior-to-suspending.patch
-gregkh-driver-kset-convert-acpi-to-use-kset_create.patch
-gregkh-driver-kobject-remove-old-outdated-documentation.patch
-gregkh-driver-kobject-update-the-kobject-kset-documentation.patch
-gregkh-driver-kobject-add-sample-code-for-how-to-use-kobjects-in-a-simple-manner.patch
-gregkh-driver-kobject-add-sample-code-for-how-to-use-ksets-ktypes-kobjects.patch
-gregkh-driver-kobject-warn.patch
-mga_dma-return-err-not-just-zero-from-mga_do_cleanup_dma.patch
-drm-dont-cast-a-pointer-to-pointer-of-list_head.patch
-git-dvb-fix-build-in-drivers-media-dvb-frontends-tda18271h.patch
-git-dvb-one-videobuf_read_start-is-enough.patch
-git-dvb-drivers-media-dvb-frontends-zl10353c-avoid-64-bit-divide.patch
-git-dvb-drivers-media-video-et61x251-et61x251_corec-fix-warnings.patch
-media-video-usbvision-add-mutex_unlock-to-error-paths.patch
-media-video-usbvision-add-mutex_unlock-to-error-paths-fix.patch
-media-video-usbvision-remove-ctrlurblock.patch
-i2c-fix-drivers-media-video-bt866c.patch
-gfs2-avoid-64-bit-divide.patch
-ia64-slim-down-__clear_bit_unlock.patch
-ia64-signal-remove-redundant-code-in-setup_sigcontext.patch
-ia64-ia32-nopage.patch
-ieee1394-nopage.patch
-ib-nopage.patch
-fix-build-failure-when-config_infiniband_ipoib_cm-is-not-defined.patch
-fujitsu-application-panel-driver.patch
-apanel-free-input-device-on-close.patch
-apanel-change-name-of-led.patch
-apanel-detach-on-shutdown.patch
-apanel-use-generic-keycode-routines.patch
-fujitsu-application-panel-led-value.patch
-ads7846-stop-updating-dev-powerpower_state.patch
-drivers-ata-libata-ehc-fix-printk-warning.patch
-pata_hpt37x-fix-outstanding-bug-reports-on-the-hpt374-and-37x-cable-detect-checkpatch-fixes.patch
-pata_pcmcia-minor-cleanups-and-support-for-dual-channel-cards.patch
-ata-ahci-enclosure-management-via-led.patch
-pata_legacy-restructure-and-revamp.patch
-ide-mm-ide-scsi-add-ide_scsi_hex_dump-helper.patch
-ide-mm-ide-add-missing-checks-for-control-register-existence.patch
-ide-mm-ide-deprecate-config_blk_dev_offboard.patch
-ide-mm-ide-fix-ide_scan_pcibus-error-message.patch
-ide-mm-ide-coding-style-fixes-for-drivers-ide-setup-pci-c.patch
-ide-mm-ide-add-sys-bus-ide-devices-model-firmware-serial-sysfs-entries.patch
-ide-mm-ide-dma-reporting-and-validity-checking-fixes-take-3.patch
-ide-mm-ide-cd-remove-dead-post_transform_command.patch
-ide-mm-pdc202xx_new-fix-promise-tx4-support.patch
-ide-mm-hpt366-fix-hpt37x-pio-mode-timings-take-2.patch
-ide-mm-ide-remove-dead-code-from-__ide_dma_test_irq.patch
-ide-mm-ide-remove-stale-changelog-from-ide-disk-c.patch
-ide-mm-ide-remove-stale-changelog-from-ide-probe-c.patch
-md-balance-braces-in-raid5-debug-code.patch
-mips-fix-makefile-borkage.patch
-mips-remove-dead-config-symbols-from-mips-code.patch
-ipsec-fix-reversed-icmp6-policy-check.patch
-ipsec-do-not-let-packets-pass-when-icmp-flag-is-off.patch
-git-net-fix-drivers-net-ns83820c-build.patch
-updates-to-nfsroot-documentation-take-3.patch
-net-use-mutex_is_locked-for-assert_rtnl.patch
-tipc-fix-semaphore-handling.patch
-ppp-synchronous-tty-convert-dead_sem-to-completion.patch
-ucc_geth-fix-build-break-introduced-by-commit-09f75cd7bf13720738e6a196cc0107ce9a5bd5a0-checkpatch-fixes.patch
-pcmcia-net-use-roundup_pow_of_two-macro-instead-of-grotesque-loop.patch
-net-ibm_newemac-remove-spin_lock_unlocked.patch
-e100-free-irq-to-remove-warning-when-rebooting.patch
-net-smc911x-shut-up-compiler-warnings.patch
-bnx2x-depends-on-zlib_inflate.patch
-plip-driver-convert-killed_timer_sem-to-completion.patch
-pcie-fix-double-initialization-bug.patch
-pci-dont-load-acpi_php-when-acpi-is-disabled.patch
-pci-dont-load-acpi_php-when-acpi-is-disabled-fix.patch
-track-accurate-idle-time-with-tick_schedidle_sleeptime.patch
-merge-multiple-error-paths-in-alloc_uid-into-one.patch
-kernel-time-make-tick_do_broadcast-static.patch
-git-scsi-misc-fix-build-in-drivers-scsi-scsi_tgt_libc.patch
-initio-fix-conflict-when-loading-driver.patch
-ips-remove-ips_ha-members-that-duplicate-struct-pci_dev-members.patch
-ips-trim-trailing-whitespace.patch
-ips-pci-api-cleanups.patch
-ips-handle-scsi_add_host-failure-and-other-err-cleanups.patch
-scsi-gdth-kill-unneeded-irq-argument.patch
-scsi-sym53c416-kill-pointless-irq-handler-loop-and-test.patch
-scsi-ncr5380-minor-irq-handler-cleanups.patch
-advansys-fix-section-mismatch-warning.patch
-aic94-fix-section-mismatches.patch
-sym2-fix-section-mismatch-warning.patch
-aacraid-driver-fails-with-dell-poweredge-expandable-raid-controller-3-di.patch
-drivers-scsi-sgiwd93c-export-sgiwd93_reset.patch
-hptiop-add-more-adapter-models-and-other-fixes.patch
-hptiop-add-more-adapter-models-and-other-fixes-update.patch
-hptiop-add-more-adapter-models-and-other-fixes-fix-2.patch
-drivers-scsi-iprc-use-list_head-instead-of-list_head_init.patch
-libsas-convert-ata-bridge-to-use-new-eh-checkpatch-fixes.patch
-belkin_sa-clean-up-for-new-style-termios-and-speed.patch
-keyspan_pda-clean-up-speed-handling.patch
-mct232-speed-new-termios-and-compliance-cleanups.patch
-mct232-speed-new-termios-and-compliance-cleanups-fix.patch
-ohci-hcdcohci_irq-locking-fix.patch
-edgeport-usb-serial-converter-convert-es_sem-to-mutex.patch
-usb-testing-driver-convert-dev-sem-to-mutex.patch
-usb-testing-driver-dont-free-a-locked-mutex.patch
-usb-mon-nopage.patch
-txx9-watchdog-driver.patch
-net-mac80211-fix-inappropriate-memory-freeing.patch
-wireless-libertas-dont-cast-a-pointer-to-pointer-of-list_head.patch
-git-x86-__vdso_getcpu-warning-fix.patch
-git-x86-fix-allnoconfig-build.patch
-uml-add-asm-um-asmh.patch
-x86_64-add-acpi-reboot-option.patch
-clocksource-make-clocksource_mask-bullet-proof.patch
-time-fold-__get_realtime_clock_ts-into-getnstimeofday.patch
-mcheck-mce_64-mce_read_sem-to-mutex.patch
-x86_64-efi-runtime-service-support-efi-basic-runtime-service-support.patch
-x86_64-efi-runtime-service-support-efi-basic-runtime-service-support-fixes.patch
-x86_64-efi-runtime-service-support-efi-basic-runtime-service-support-calling-convention-fix.patch
-x86_64-efi-runtime-service-support-efi-runtime-services.patch
-x86_64-efi-runtime-service-support-document-for-efi-runtime-services.patch
-x86_64-efi-runtime-service-support-remove-duplicated-code-from-efi_32c.patch
-x86-boot-use-e820-memory-map-on-efi-32-platform.patch
-ieee80211_rate-missed-unlock.patch
-drivers-cpufreq-cpufreq_statsc-section-fix.patch
bonding-locking-fix.patch
-bridge-assign-random-address.patch
-nfs-fix-an-oops-in-nfs-unmount.patch
-acpi-sbs-reset-alarm-bit.patch
-acpi-sbs-ignore-alarms-coming-from-unknown-devices.patch
-acpi-sbs-return-rate-in-mw-if-capacity-in-mwh.patch
-usb-use-irqf_disabled-for-hcd-interrupt-handlers.patch
-usb-at91_udc-correct-hanging-while-disconnecting-usb-cable.patch
-iwlwifi3945-4965-fix-rate-control-algo-reference-leak.patch
-iwlwifi3945-4965-fix-rate-control-algo-reference-leak-fix.patch
-mm-sparsec-check-the-return-value-of-sparse_index_alloc.patch
-mm-sparsec-improve-the-error-handling-for-sparse_add_one_section.patch
-mm-sparsec-improve-the-error-handling-for-sparse_add_one_section-fix.patch
-pktcdvd-add-kobject_put-when-kobject-register-fails.patch
-libertas-select-wireless_ext.patch
-bcm43xx_debugfs-sscanf-fix.patch
-apm_eventinfo_t-are-userspace-types.patch
-drivers-macintosh-via-pmuc-added-a-missing-iounmap.patch
-tmpfs-fix-mounts-when-size-is-less-than-the-page-size.patch
-shmem-factor-out-sbi-free_inodes-manipulations.patch
-shmem-factor-out-sbi-free_inodes-manipulations-fix.patch
-i-oat-fixups-from-code-comments.patch
-rcu-move-three-variables-to-__read_mostly-to-save-space.patch
-ext4-fix-mb_debug-format-warnings.patch
-jbd2-remove-printk-from-j_assert-macros.patch
-64-bit-i_version-afs-fixes.patch
-ext4-fix-freespace-accounting-with-mballoc-on-32bit-machines.patch
-ext4-fix-oops-with-jbd-stats-through-procfs-and-external.patch
-ext4-superc-fix-ifdefs.patch
-ext4-add-block-bitmap-validation.patch
-ext4-fix-up-ext4fs_debug-builds.patch
-jbd2-fix-assertion-failure-in-fs-jbd2-checkpointc.patch
-ext4-check-for-the-correct-error-return-from-ext4_ext_get_blocks.patch
-ext4-check-for-the-correct-error-return-from-ext4_ext_get_blocks-fix.patch
-drivers-dma-iop-admac-use-list_head-instead-of-list_head_init.patch

Merged into mainline or a subsystem tree

+quicklists-do-not-release-off-node-pages-early.patch
+ecryptfs-fix-string-overflow-on-long-cipher-names.patch
+fix-computation-of-skb-size-for-quota-messages.patch
+dont-send-quota-messages-repeatedly-when-hardlimit-reached.patch
+ecryptfs-fix-unlocking-in-error-paths.patch
+ecryptfs-redo-dgetmntget-on-dentry_open-failure.patch
+maintainers-mailing-list-archives-are-web-links.patch
+ps3-vuart-fix-error-path-locking.patch
+lib-proportion-fix-underflow-in-prop_norm_percpu.patch
+pcmcia-remove-pxa2xx_lubbock-build-warning.patch
+kconfig-obey-kconfig_allconfig-choices-with-randconfig.patch

2.6.24 queue

+fix-crash-with-flat_memory-and-arch_pfn_offset-=-0.patch
+hfs-handle-more-on-disk-corruptions-without-oopsing.patch
+hfs-handle-more-on-disk-corruptions-without-oopsing-fix.patch
+tty-fix-logic-change-introduced-by-wait_event_interruptible_timeout.patch

Maybe 2.6.24 queue

+timerfd-v3-new-timerfd-api-make-hrtimer_forward-to-return-a-u64.patch
+timerfd-v3-new-timerfd-api-make-the-returned-time-to-be-the-remaining-time-till-the-next-expiration.patch
+timerfd-v3-new-timerfd-api-make-the-returned-time-to-be-the-remaining-time-till-the-next-expiration-checkpatch-fixes.patch

update timerfd patches

+git-alsa-fixup.patch
+sound-usb-usbaudioc-fix-build-with-config_pm=n.patch

Fix git-alsa

+git-agpgart-intel-agp-dont-zero-an-already-registered-resource-during-resume.patch

Fix crash in git-agpgart.patch

-arm-remove-dead-config-symbols-from-arm-code.patch

Dropped

+agk-dm-dm-snapshot-use-uninitialized_var.patch
+agk-dm-dm-raid1-handle-write-failures.patch
+agk-dm-dm-raid1-report-fault-status.patch
+agk-dm-dm-raid1-fix-eio-after-log-failure.patch
+agk-dm-dm-raid1-handle-read-failures.patch
+agk-dm-dm-raid1-mark-and-clear-nosync-writes.patch

device-mapper tree updates

+powerpc-add-fixed-phy-support-for-fs_enet.patch

pwerpc net driver fix

+gregkh-driver-kref-add-kref_set.patch
+gregkh-driver-kobject-convert-sys-firmware-acpi-to-use-kobject_create.patch
+gregkh-driver-kobject-change-net-bridge-to-use-kobject_create_and_add.patch
+gregkh-driver-kobject-change-gfs2-to-use-kobject_init_and_add.patch
+gregkh-driver-kobject-change-drivers-infiniband-to-use-kobject_init_and_add.patch
+gregkh-driver-kobject-change-drivers-firmware-eddc-to-use-kobject_init_and_add.patch
+gregkh-driver-kobject-change-drivers-firmware-efivarsc-to-use-kobject_init_and_add.patch
+gregkh-driver-kobject-change-drivers-cpufreq-cpufreqc-to-use-kobject_init_and_add.patch
+gregkh-driver-kobject-change-drivers-edac-to-use-kobject_init_and_add.patch
+gregkh-driver-kobject-change-drivers-cpuidle-sysfsc-to-use-kobject_init_and_add.patch
+gregkh-driver-kobject-change-drivers-pci-hotplug-pci_hotplug_corec-to-use-kobject_init_and_add.patch
+gregkh-driver-kobject-change-drivers-base-sysc-to-use-kobject_init_and_add.patch
+gregkh-driver-kobject-change-arch-x86-kernel-cpu-intel_cacheinfoc-to-use-kobject_init_and_add.patch
+gregkh-driver-kobject-change-drivers-acpi-systemc-to-use-kobject_create_and_add.patch
+gregkh-driver-kobject-change-drivers-block-pktcdvdc-to-use-kobject_init_and_add.patch
+gregkh-driver-kobject-change-arch-sh-kernel-cpu-sh4-sqc-to-use-kobject_init_and_add.patch
+gregkh-driver-kobject-change-drivers-net-ibmvethc-to-use-kobject_init_and_add.patch
+gregkh-driver-kobject-change-drivers-parisc-pdc_stablec-to-use-kobject_init_and_add.patch
+gregkh-driver-kobject-change-arch-ia64-kernel-topologyc-to-use-kobject_init_and_add.patch
+gregkh-driver-kobject-change-drivers-md-mdc-to-use-kobject_init_and_add.patch
+gregkh-driver-kobject-change-arch-x86-kernel-cpu-mcheck-mce_amd_64c-to-use-kobject_create_and_add.patch
+gregkh-driver-kobject-change-arch-x86-kernel-cpu-mcheck-mce_amd_64c-to-use-kobject_init_and_add.patch
+gregkh-driver-kobject-the-cris-iop_fw_loadc-code-is-broken.patch
+gregkh-driver-kobject-convert-drivers-base-classc-to-use-kobject_init-add_ng.patch
+gregkh-driver-kobject-convert-drivers-base-corec-to-use-kobject_init-add_ng.patch
+gregkh-driver-kobject-convert-drivers-net-iseries_vethc-to-use-kobject_init-add_ng.patch
+gregkh-driver-kobject-convert-fs-char_devc-to-use-kobject_init-add_ng.patch
+gregkh-driver-kobject-convert-kernel-paramsc-to-use-kobject_init-add_ng.patch
+gregkh-driver-kobject-convert-kernel-userc-to-use-kobject_init-add_ng.patch
+gregkh-driver-kobject-convert-mm-slubc-to-use-kobject_init-add_ng.patch
+gregkh-driver-kobject-convert-net-bridge-br_ifc-to-use-kobject_init-add_ng.patch
+gregkh-driver-driver-add-driver_add_kobj-for-looney-iseries_veth-driver.patch
+gregkh-driver-kobject-change-drivers-base-bus-to-use-kobject_init_and_add.patch
+gregkh-driver-kobject-convert-block-elevatorc-to-use-kobject_init-add_ng.patch
+gregkh-driver-kobject-convert-block-ll_rw_blkc-to-use-kobject_init-add_ng.patch
+gregkh-driver-kobject-convert-drivers-md-mdc-to-use-kobject_init-add_ng.patch
+gregkh-driver-kobject-convert-kernel-modulec-to-use-kobject_init-add_ng.patch
+gregkh-driver-kobject-remove-kobject_add-as-no-one-uses-it-anymore.patch
+gregkh-driver-kobject-rename-kobject_add_ng-to-kobject_add.patch
+gregkh-driver-kobject-remove-kobject_init-as-no-one-uses-it-anymore.patch
+gregkh-driver-kobject-rename-kobject_init_ng-to-kobject_init.patch
+gregkh-driver-kobject-remove-kobject_register.patch
+gregkh-driver-kset-remove-kset_add-function.patch
+gregkh-driver-kobject-auto-cleanup-on-final-unref.patch
+gregkh-driver-kobject-convert-arch-from-kobject_unregister-to-kobject_put.patch
+gregkh-driver-kobject-convert-drivers-from-kobject_unregister-to-kobject_put.patch
+gregkh-driver-kobject-convert-fs-from-kobject_unregister-to-kobject_put.patch
+gregkh-driver-kobject-convert-remaining-kobject_unregister-to-kobject_put.patch
+gregkh-driver-kobject-remove-kobject_unregister-as-no-one-uses-it-anymore.patch
+gregkh-driver-driver-core-change-sysdev-classes-to-use-dynamic-kobject-names.patch
+gregkh-driver-kobject-remove-old-outdated-documentation.patch
+gregkh-driver-kobject-update-the-kobject-kset-documentation.patch
+gregkh-driver-kobject-add-sample-code-for-how-to-use-kobjects-in-a-simple-manner.patch
+gregkh-driver-kobject-add-sample-code-for-how-to-use-ksets-ktypes-kobjects.patch
+gregkh-driver-driver-core-use-list_head-instead-of-call-to-init_list_head-in-__init.patch

driver tree updates

+revert-gregkh-driver-pm-acquire-device-locks-prior-to-suspending.patch
+drivers-pcmcia-i82092c-fix-up-after-pci_bus_region-changes.patch

Fix it

+driver-base-memory-semaphore-to-mutex.patch

mutex conversion

-git-drm-oops-fix.patch

Now unneeded

+jdelvare-i2c-i2c-omap-fix-reset-on-error.patch
+jdelvare-i2c-i2c-spelling-fixes.patch
+jdelvare-i2c-i2c-tps65010-move-header.patch
+jdelvare-i2c-i2c-i801-01-document-features.patch
+jdelvare-i2c-i2c-i801-02-features-as-a-bitfield.patch
+jdelvare-i2c-i2c-i801-03-clear-block-buffer-mode.patch
+jdelvare-i2c-i2c-i801-04-add-support-for-i2c-block-read.patch
+jdelvare-i2c-i2c-id-document-optional.patch
+jdelvare-i2c-i2c-id-delete-unused.patch

I2C tree updates

+ia64-remove-dead-code.patch
+ia64-honor-notify_die-returning-notify_stop.patch

ia64 updates

+git-infiniband-versus-driver-tree.patch

+input-handle-ev_pwr-in-input_set_capability.patch

Input fix

+kvm-ist-kaput.patch

Disable KVM due to large clashes with git-x86

+git-lblnet-fixup.patch

Fix rejects in git-lblnet.patch

+git-libata-all-fix-pata_winbond-borkage.patch
+git-libata-all-wtf.patch

Fix git-libata-all.

-libata-xfer_mask-is-unsigned-int-not-unsigned-long-fix.patch

Fiolded into libata-xfer_mask-is-unsigned-int-not-unsigned-long.patch

+ide-mm-ide-spelling-fixes.patch
+ide-mm-hpt366-merge-set_dma_mode-methods.patch
+ide-mm-ide-fix-build-break-caused-by-ide-remove-ideprobe_init.patch
+ide-mm-ide-fix-io_32bit-race-in-ide_taskfile_ioctl.patch
+ide-mm-ide-clear-hob-bit-for-req_type_ata_cmd-requests-in-ide_end_drive_cmd.patch
+ide-mm-ide-fix-final-status-check-in-task_in_intr.patch
+ide-mm-ide-tape-fix-handling-of-non-special-requests-in-end_request-method.patch
+ide-mm-ide-set-ide_tflag_in-flags-before-queuing-executing-command.patch
+ide-mm-ide-remove-needless-cursg-clearing-from-task_end_request.patch
+ide-mm-ide-use-rq-nr_sectors-in-task_end_request.patch
+ide-mm-ide-task_end_request-fix.patch
+ide-mm-ide-kill-data_ready-define.patch
+ide-mm-ide-use-wait_drive_not_busy-in-drive_cmd_intr-take-2.patch
+ide-mm-ide-initialize-rq-cmd_type-in-ide_init_drive_cmd-callers.patch
+ide-mm-ide-convert-empty-req_type_ata_cmd-requests-to-use-req_type_ata_taskfile.patch
+ide-mm-ide-dont-enable-local-irqs-for-pio-in-in-driver_cmd_intr-take-2.patch
+ide-mm-ide-check-busy-and-error-status-bits-before-reading-data-in-drive_cmd_intr.patch
+ide-mm-ide-fix-final-status-check-in-drive_cmd_intr.patch
+ide-mm-ide-switch-set_xfer_rate-to-use-req_type_ata_taskfile-requests.patch
+ide-mm-ide-switch-ide_cmd_ioctl-to-use-req_type_ata_taskfile-requests.patch
+ide-mm-ide-remove-req_type_ata_cmd.patch
+ide-mm-ide-cd-fix-samsung-cd-rom-scr-3231-quirk.patch
+ide-mm-ide-cd-fix-acer-aopen-24x-cdrom-speed-reporting-on-big-endian-machines.patch
+ide-mm-ide-cd-use-ide_cd_release-in-ide_cd_probe.patch
+ide-mm-ide-cd-fix-error-messages-in-cdrom_read-write_check_ireason.patch
+ide-mm-ide-cd-add-missing-ireason-masking-to-cdrom_write_intr.patch
+ide-mm-ide-cd-fix-error-messages-in-cdrom_write_intr.patch
+ide-mm-ide-cd-add-error-message-for-dma-error-to-cdrom_read_intr.patch
+ide-mm-ide-cd-fix-error-message-in-cdrom_pc_intr.patch
+ide-mm-ide-cd-fix-ireason-reporting-in-cdrom_pc_intr.patch
+ide-mm-ide-cd-use-xfer_func_t-in-cdrom_pc_intr.patch
+ide-mm-ide-cd-add-ide_cd_pad_transfer-helper.patch
+ide-mm-ide-cd-fix-missing-data-handling-in-cdrom_pc_intr.patch
+ide-mm-ide-cd-fix-dma-error-handling-in-cdrom_newpc_intr.patch
+ide-mm-ide-cd-fix-trailing-whitespaces-in-changelog.patch
+ide-mm-ide-cd-move-historical-changelog-to-documentation-ide-changelog-ide-cd-1994-2004.patch
+ide-mm-ide-cd-remove-stale-cdrom_transfer_packet_command-comment.patch
+ide-mm-ide-cd-remove-unused-defines-from-ide-cd-h.patch
+ide-mm-ide-cd-remove-dead-code-from-cdrom_pc_intr.patch
+ide-mm-ide-cd-remove-unused-struct-atapi_cdrom_subchnl.patch
+ide-mm-ide-cd-remove-needless-zeroing-of-info-fields-from-ide_cdrom_setup.patch
+ide-mm-ide-cd-remove-unused-and-write-only-struct-ide_cd_config_flags-fields.patch
+ide-mm-ide-cd-remove-struct-atapi_mechstat_header-changer_info-slot.patch
+ide-mm-ide-cd-cleanup-ide_cdrom_update_speed.patch
+ide-mm-ide-cd-add-ide_cd_capabilities-define.patch
+ide-mm-ide-cd-remove-redundant-config-flags.patch
+ide-mm-ide-cd-kill-cdrom_config_flags-macro.patch
+ide-mm-ide-cd-kill-cdrom_state_flags-macro.patch
+ide-mm-ide-cd-remove-struct-atapi_capabilities_page.patch
+ide-mm-ide-cd-remove-struct-ide_cd_config-state_flags.patch
+ide-mm-ide-cd-remove-no_door_locking-define.patch
+ide-mm-ide-cd-remove-standard_atapi-define.patch
+ide-mm-ide-cd-use-bcd2bin-bin2bcd-macros-from-linux-bcd-h.patch
+ide-mm-ide-cd-re-organize-handling-of-quirky-devices.patch
+ide-mm-ide-cd-remove-duplicate-sense-keys-definitions-from-ide-cd-h.patch
+ide-mm-ide-cd-coding-style-fixes-for-verbose_ide_cd_errors-code.patch
+ide-mm-ide-cd-move-verbose_ide_cd_errors-code-to-ide-cd_verbose-c.patch
+ide-mm-ide-cd-factor-out-ioctl-handlers-from-ide_cdrom_audio_ioctl.patch
+ide-mm-ide-cd-merge-cdrom_play_audio-into-ide_cd_fake_play_trkind.patch
+ide-mm-ide-cd-merge-cdrom_read_subchannel-into-ide_cdrom_get_mcn.patch
+ide-mm-ide-cd-merge-cdrom_select_speed-into-ide_cdrom_select_speed.patch
+ide-mm-ide-cd-move-lba_to_msf-and-msf_to_lba-to-linux-cdrom-h.patch
+ide-mm-ide-cd-coding-style-fixes-for-cdrom_get_toc_entry.patch
+ide-mm-ide-cd-rename-cdrom_-functions-to-ide_cd_.patch
+ide-mm-ide-cd-move-code-handling-cdrom-c-ioctls-to-ide-cd_ioctl-c.patch
+ide-mm-ide-cd-remove-bug_on-from-cdrom_newpc_intr.patch
+ide-mm-ide-cd-call-blk_dump_rq_flags-on-missing-data-in-cdrom_newpc_intr.patch
+ide-mm-ide-cd-factor-out-request-sense-fixup-from-cdrom_pc_intr.patch
+ide-mm-ide-cd-unify-request-end-exit-path-in-cdrom_pc_intr.patch
+ide-mm-ide-cd-merge-cdrom_pc_intr-and-cdrom_newpc_intr.patch
+ide-mm-ide-cd-remove-cdrom_do_pc_continuation.patch
+ide-mm-ide-cd-merge-cdrom_do_packet_command-and-cdrom_do_block_pc.patch
+ide-mm-ide-cd-add-ide_cd_drain_data-helper.patch
+ide-mm-ide-cd-factor-out-transfer-size-checking-from-cdrom_read_intr.patch
+ide-mm-ide-cd-merge-cdrom_read_intr-and-cdrom_write_intr.patch
+ide-mm-ide-cd-merge-cdrom_start_read_continuation-and-cdrom_start_write_cont.patch
+ide-mm-ide-cd-merge-cdrom_start_read-and-cdrom_start_write.patch
+ide-mm-ide-cd-unify-moving-to-the-next-buffer-in-cdrom_rw_intr.patch
+ide-mm-ide-cd-prepare-cdrom_rw_intr-and-cdrom_newpc_intr-to-be-merged.patch
+ide-mm-ide-cd-call-blk_dump_rq_flags-on-missing-data-in-cdrom_rw_intr.patch
+ide-mm-ide-cd-merge-cdrom_rw_intr-and-cdrom_newpc_intr.patch
+ide-mm-ide-cd-merge-cdrom_write_check_ireason-and-cdrom_read_check_ireason.patch
+ide-mm-ide-cd-unify-request-end-exit-path-in-cdrom_decode_status.patch
+ide-mm-ide-cd-update-driver-version-comments-and-copyrights.patch

IDE tree updates

+git-net-fixup.patch

Fix rejects in git-net.patch

+git-net-vs-git-lblnet-2.patch

Fix disagreement between git-lblnet and git-net.

+git-net-vs-git-netdev-all.patch

Fix disagreement between git-netdev-all and git-net.

-backlight-omap1-backlight-driver-fix.patch

Fix backlight-omap1-backlight-driver.patch

+pcmcia-3c574_cs-fix-dubious-bitfield-warning.patch
+pcmcia-3c574_cs-fix-shadow-variable-warning.patch
+pcmcia-axnet_cs-make-functions-static.patch
+pcmcia-axnet_cs-make-use-of-max-instead-of-handcrafted-one.patch
+pcmcia-fmvj18x_cs-fix-shadow-variable-warning.patch
+pcmcia-pcnet_cs-fix-shadow-variable-warning.patch

pcmcia fixes

+serial-add-addi-data-gmbh-communication-cardsin8250_pcic-and-pci_idsh.patch
+serial-add-addi-data-gmbh-communication-cardsin8250_pcic-and-pci_idsh-checkpatch-fixes.patch

Serial device support

+gregkh-pci-pcie-fix-pcie-hotplug-so-that-it-works-with-expresscard-slots-on-dell-notebooks-in-conjunction-with-modparam-of-pciehp_force-1.patch
+gregkh-pci-pci-more-fixes-for-pcie-hotplug-so-that-it-works-with-expresscard-slots-on-dell-notebooks-in-conjunction-with-modparam-of-pciehp_force-1.patch
+gregkh-pci-pcie-make-use-of-the-previously-split-out-pcie_init_enable_events-function.patch
+gregkh-pci-pcie-fix-double-initialization-bug.patch
+gregkh-pci-pci-hotplug-acpiphp-fix-trivial-typos.patch
+gregkh-pci-pci-hotplug-acpiphp-remove-unneeded-acpi_get_name-function-call.patch
+gregkh-pci-pci-hotplug-pciehp-remove-needless-members-from-struct-controller.patch
+gregkh-pci-pci-hotplug-pciehp-remove-needless-hp_slot-calculation.patch
+gregkh-pci-pci-hotplug-pciehp-use-generic-function-to-find-ext-capability.patch
+gregkh-pci-pci-hotplug-pciehp-fix-some-whitespace-damage.patch
+gregkh-pci-pci-fix-bus-resource-assignment-on-32-bits-with-64b-resources.patch
+gregkh-pci-pci-fix-warning-in-setup-resc-on-32-bit-platforms-with-64-bit-resources.patch
+gregkh-pci-pci-remove-default-pci-expansion-rom-memory-allocation.patch
+gregkh-pci-pci-quirk-enable-msi-mapping-on-ht1000.patch
+gregkh-pci-pci-drivers-pci-msic-move-arch-hooks-to-the-top.patch
+gregkh-pci-pci-kconfig-help-don-t-refer-to-the-pci-howto.patch
+gregkh-pci-pci-spelling-fixes.patch
+gregkh-pci-pci-fix-for-quirk_e100_interrupt.patch
+gregkh-pci-pci-print-quirk-name-in-debug-messages.patch
+gregkh-pci-pci-use-dev_printk-in-quirk-messages.patch
+gregkh-pci-pci-use-dev_printk-in-x86-quirk-messages.patch
+gregkh-pci-pci-fix-typo-in-pci_save_pcix_state.patch
+gregkh-pci-pci-correctly-initialize-a-structure-for-pcie_save_pcix_state.patch
+gregkh-pci-pci-avoid-save-the-same-type-of-cap-multiple-times.patch
+gregkh-pci-pci-add-pci_enable_device_-io-mem-intefaces.patch
+gregkh-pci-pci-remove-users-of-pci_enable_device_bars.patch
+gregkh-pci-pci-remove-pci_enable_device_bars.patch

PCI tree updates

-quirk-enable-msi-mapping-on-ht1000.patch
-quirk-enable-msi-mapping-on-ht1000-v2.patch


Dropped

+if-0-pci_cleanup_aer_correct_error_status.patch
+cleanup-gregkh-pci-pci-fix-bus-resource-assignment-on-32-bits-with-64b-resources.patch

PCI cleanups

-pci-hotplug-mm-pci-hotplug-pciehp-deal-with-pre-inserted-expresscards.patch
-pci-hotplug-mm-pci-hotplug-pciehp-split-out-hardware-init-from-pcie_init.patch
-pci-hotplug-mm-pci-hotplug-pciehp-reinit-hotplug-h-w-on-resume-from-suspend.patch

Not sure what happened to these - they don't apply by a mile and don't seem
to have been merged.

+git-sched-fixup.patch
+git-sched-fix-preempt-rcu-on-non-preemptible-architectures.patch

Repair git-sched.patch

+scsi-megaraidc-__devexit-annotation.patch
+scsi-aic94xx-cleanups.patch
+scsi-aic94xx-cleanups-checkpatch-fixes.patch
+scsi-aic94xx-cleanups-checkpatch-fixes-checkpatch-fixes.patch
+small-cleanups-for-scsi_hosth.patch

scsi stuff

+scsi-scsi_data_buffer.patch
+scsi-pending-arm-convert-to-accessors.patch
+scsi-bidi-support.patch

More scsi stuff

+gregkh-usb-usb-unbreak-fsl_usb2_udc.patch
+gregkh-usb-usb-vid-pid-update-for-sierra.patch
+gregkh-usb-usb-new-device-id-for-the-cp2101-driver.patch
+gregkh-usb-usb-convert-ohci-debug-files-to-use-debugfs-instead-of-sysfs.patch
+gregkh-usb-usb-convert-ehci-debug-files-to-use-debugfs-instead-of-sysfs.patch
+gregkh-usb-usb-remove-ohci-useless-masking-unmasking-of-wdh-interrupt.patch
+gregkh-usb-usb-repair-usbdevfs_connect-ioctl.patch
+gregkh-usb-usb-updates-to-usb_reset_composite_device.patch
+gregkh-usb-usb-edgeport-usb-serial-converter-convert-es_sem-to-mutex.patch
+gregkh-usb-usb-add-usbfs-stubs-for-suspend-and-resume.patch
+gregkh-usb-usb-ehci-add-separate-iaa-watchdog-timer.patch
+gregkh-usb-usb-dummy_hcd-change-the-default-power-budget.patch
+gregkh-usb-usb-pl2303-cleanup-fish-and-soup-macros-in-pl2303-driver.patch
+gregkh-usb-usb-pl2303-move-pl2303-vendor-specific-init-to-probe-function.patch
+gregkh-usb-usb-pl2303-add-autosuspend-support-to-pl2303-usb-serial-converter.patch
+gregkh-usb-usb-update-pxa27x-ohci-driver-to-use-clk-support.patch
+gregkh-usb-usb-belkin_sa-clean-up-for-new-style-termios-and-speed-handling-plus-style.patch
+gregkh-usb-usb-keyspan_pda-clean-up-speed-handling.patch
+gregkh-usb-usb-mct232-speed-new-termios-and-compliance-cleanups.patch
+gregkh-usb-usb-mon-nopage.patch
+gregkh-usb-usb-testing-driver-convert-dev-sem-to-mutex.patch
+gregkh-usb-usb-testing-driver-don-t-free-a-locked-mutex.patch
+gregkh-usb-usb-gadget-pxa2xx_udc-supports-inverted-vbus.patch
+gregkh-usb-usb-spelling-fixes.patch
+gregkh-usb-usb-ps3-fix-ehci-iso-transfer-bug.patch
+gregkh-usb-usb-usb-storage-initializersc-fix-signedness-difference.patch
+gregkh-usb-usb-usbdevfs_urb-__user-annotation.patch
+gregkh-usb-usb-ehci-hcd-fix-sparse-warning-about-shadowing-status-symbol.patch
+gregkh-usb-usb-add-marvell-orion-usb-host-support.patch
+gregkh-usb-usb-ehci-potential-oops-fix-on-arc-tdi-cores.patch
+gregkh-usb-usb-gadget-ethernet-error-path-potential-oops-fix.patch
+gregkh-usb-usb-fix-null-pointer-dereference-on-drivers-usb-serial-whiteheatc.patch
+gregkh-usb-usb-gadget-at91_udc-minor-fix.patch
+gregkh-usb-usb-fix-hcd-kconfig-goofage.patch
+gregkh-usb-usb-tosa_udc_use_gpio_vbuspatch.patch

USB tree updates

+ehci-hcd-fix-sparse-warning-about-shadowing-status-symbol-checkpatch-fixes.patch
+usb-microtek-remove-unused-semaphore.patch
+usb-libusual-locking-cleanup.patch

USB things

+git-watchdog-fixup.patch

Fix rejects in git-watchdog

-add-support-for-sb1-hardware-watchdog-fix.patch

Folded into add-support-for-sb1-hardware-watchdog.patch

+prism54-remove-questionable-down_interruptible-usage.patch

wireless fix

+git-x86-fixup.patch
+git-x86-arch-x86-math-emu-errorsc-fix-printk-warnings.patch
+git-x86-drivers-pnp-pnpbios-bioscallsc-build-fix.patch
+git-x86-fix-doubly-merged-patch.patch
+git-x86-export-leave_mm.patch

Partially repair git-x86

+pci-dont-load-acpi_php-when-acpi-is-disabled.patch
+arch-x86-kernel-cpu-mcheck-p4c-kernel-2624-rc5.patch
+arch-x86-kernel-cpu-mcheck-p4c-kernel-2624-rc5-checkpatch-fixes.patch
+arch-x86-kernel-cpu-mcheck-p4c-kernel-2624-rc5-checkpatch-fixes-checkpatch-fixes.patch

x86 stuff

+drm-i915-fix-oops-after-killing-x.patch
+usbtouchscreen-fix-buffer-overflow-make-more-egalax-work.patch
+usbtouchscreen-fix-buffer-overflow-make-more-egalax-work-checkpatch-fixes.patch
+fix-rtc_aie-with-config_hpet_emulate_rtc.patch
+cpufreq-initialise-default-governor-before-use.patch

Probably for 2.6.24, via subsystem trees

-slub-optimise-the-clearing-of-__gfp_zero.patch

Unneeded

+shmem-factor-out-sbi-free_inodes-manipulations.patch
+shmem-factor-out-sbi-free_inodes-manipulations-fix.patch
+tmpfs-fix-mounts-when-size-is-less-than-the-page-size.patch
+tmpfs-move-swap_state-stats-update.patch
+tmpfs-shuffle-add_to_swap_caches.patch
+tmpfs-move-swap-swizzling-into-shmem.patch
+tmpfs-allow-filepage-alongside-swappage.patch
+tmpfs-allocate-on-read-when-stacked.patch
+tmpfs-make-shmem_unuse-more-preemptible.patch
+tmpfs-open-a-window-in-shmem_unuse_inode.patch
+tmpfs-radix_tree_preloading.patch
+tmpfs-fix-shmem_swaplist-races.patch

MM things

+maps4-add-proc-kpagecount-interface-fix.patch
+maps4-add-proc-kpageflags-interface-fix.patch
+maps4-add-proc-kpageflags-interface-fix-2.patch
+maps4-add-proc-kpageflags-interface-fix-2-fix.patch

maps4 fixes

+page-allocator-clean-up-pcp-draining-functions-swsusp-fix.patch
+page-allocator-clean-up-pcp-draining-functions-swsusp-fix-fix.patch

Fix page-allocator-clean-up-pcp-draining-functions.patch

+mm-remove-fastcall-from-mm.patch
+mm-remove-fastcall-from-mm-checkpatch-fixes.patch
+set_page_refcounted-vm_bug_on-fix.patch
+fix-dirty-page-accounting-leak-with-ext3-data=journal.patch
+oom_kill-remove-uid==0-checks.patch

More mm things

+m68knommu-remove-duplicate-exports.patch

m68knommu cleanup

+arch-cris-arch-v10-vmlinuxldss-fix-boot-problem.patch
+cris-remove-unused-__dummy-const_addr-and-addr-from-bitopsh.patch

cris updates

+uml-header-untangling-fix.patch

Fix uml-header-untangling.patch

+ik8-add-dell-uk-6400-inspiron-model-mm061.patch
+parport_pc-detection-for-superio-it87xx-post.patch
+lib-extablec-removes-an-expensive-integer-divide-in-search_extable.patch
+kernel-paramsc-remove-sparse-warning-different-signedness.patch
+fix-missing-n-in-checkpatchpl.patch
+xen-fiddle_vdso-must-be-__init.patch
+calibrate_delay-must-be-__cpuinit.patch
+idle_regs-must-be-__cpuinit.patch
+kernel-sysc-get-rid-of-expensive-divides-in-groups_sort.patch
+debug_smp_processor_id-fixlets.patch
+use-ilog2-in-fs-namespacec.patch
+use-ilog2-in-fs-namespacec-fix.patch
+printk_ratelimit-functions-should-use-config_printk.patch
+w1-gpio-add-gpio-w1-bus-master-driver.patch
+docs-convert-kref-semaphore-to-mutex.patch
+fix-ixany-and-restart-after-signal-eg-ctrl-c-in-n_tty-line-discipline.patch
+maintainers-remove-adam-fritzler-update-his-email-address-in-other-sources.patch
+avoid-overflows-in-kernel-timec.patch
+avoid-overflows-in-kernel-timec-fix.patch
+export-iov_shorten-for-ext4s-use.patch
+export-iov_shorten-for-ext4s-use-fix.patch

Misc

+ser_gigaset-convert-mutex-to-completion.patch

gigaset cleanup

+ecryptfs-remove-debug-as-mount-option-and-warn-if-set-via-modprobe.patch
+ecryptfs-minor-fixes-to-printk-messages.patch
+ecryptfs-change-the-type-of-cipher_code-from-u16-to-u8.patch
+ecryptfs-load-each-file-decryption-key-only-once.patch

ecryptfs work

-logo-move-declarations-of-logos-to-linux_logoh.patch
-logo-move-declarations-of-logos-to-linux_logoh-fix.patch

Dropped these - it was too much work trying to make them work.

+drivers-video-pm3fbc-section-fix.patch
+neofb-avoid-overwriting-fb_info-fields.patch

fbdev things

+md-support-external-metadata-for-md-arrays.patch
+md-give-userspace-control-over-removing-failed-devices-when-external-metdata-in-use.patch
+md-allow-a-maximum-extent-to-be-set-for-resyncing.patch
+md-allow-devices-to-be-shared-between-md-arrays.patch
+md-lock-address-when-changing-attributes-of-component-devices.patch
+md-allow-an-md-array-to-appear-with-0-drives-if-it-has-external-metadata.patch

RAID updates

-ext4-mm-ext4_grpnum_t.patch
-ext4-mm-ext4_grpnum_t_int_fix.patch
-ext4-mm-ext4-cleanup.patch
-ext4-mm-ext4-cleanup-2.patch
-ext4-mm-ext4-cleanup-3.patch
-ext4-mm-ext4-cleanup-4.patch
+ext4-mm-ext4_extents_use_ext4_lblk_t_fix.patch
+ext4-mm-ext4_extents_remove_unneeded_casts.patch
+ext4-mm-ext4_grp_t.patch
+ext4-mm-ext4_grp_t_int_fix.patch
+ext4-mm-ext4_add_update_incompat_feature.patch
+ext4-mm-ext4-sparse-warning-fix.patch
+ext4-mm-ext4-rename-i_file_acl-to-i_file_acl_lo.patch
+ext4-mm-ext4-rename-i_dir_acl-to-i_size_high.patch
+ext4-mm-ext4_different_maxbytes_funcs_for_bitmap_and_extent_files.patch
+ext4-mm-ext4_store_maxbytes_for_bitmaped_files.patch
+ext4-mm-ext4_ifdef_fix.patch
+ext4-mm-ext4_fix_oops_on_corrupted_mount.patch
+ext4-mm-change-default-ext4-error.patch
+ext4-mm-ext4_add_block_bitmap_validation.patch
+ext4-mm-ext4-add-block-bitmap-validation-fix.patch
+ext4-mm-jbd2-remove-printk-from-j_assert-macros.patch
+ext4-mm-jbd2-fix-assertion-failure-in-fs-jbd2-checkpointc.patch
+ext4-mm-ext4-check-for-the-correct-error-return-from-ext4_ext_get_blocks.patch
+ext4-mm-ext4-check-for-the-correct-error-return-from-ext4_ext_get_blocks-fix.patch
+ext4-mm-remove-unused-code-from-ext4_find_entry.patch
+ext4-mm-jbd-stats-through-procfs-with-external-journal-oops-fix.patch
+ext4-mm-ext4_jbd2_stats_kmalloc_failure_fix.patch
+ext4-mm-ext4_jbd2_stats_comments_fix.patch
+ext4-mm-ext4_accumulated_jbd2_stats_in_jiffies.patch
+ext4-mm-ext4_open-code-jbd2_stats-union-references.patch
-ext4-mm-64-bit-i_version.patch
-ext4-mm-i_version_hi.patch
-ext4-mm-ext4_i_version_hi_2.patch
-ext4-mm-i_version_update_ext4.patch
+ext4-mm-ext4_journal_chksum_highmem_fix.patch
+ext4-mm-inode-version-vfs.patch
+ext4-mm-inode-version-ext4.patch
+ext4-mm-64-bit-i_version-afs-fixes.patch
-ext4-mm-mballoc-bug-workaround.patch
-ext4-mm-ext4_grpnumt-mballoc-fix.patch
-ext4-mm-mballoc-compilebench-fix.patch
+ext4-mm-ext4-fix-mb_debug-format-warnings.patch
+ext4-mm-ext4_mballoc_freespace_accounting_fix.patch
+ext4-mm-enable-delalloc-and-mballoc.patch
+ext4-mm-show-mballoc-delalloc-option.patch
+ext4-mm-fix-show-options.patch
+ext4-mm-ext4_fix_up_ext4fs_debug_builds.patch

Changes in the ext4 tree

+ext4-mm-ext4_store_maxbytes_for_bitmaped_files-warning-fix.patch

ext4 fix

+ext3-remove-unused-code-from-ext3_find_entry.patch

ext3 cleanup

+memory-controller-memory-accounting-v7-move-page_assign_page_cgroup-to-vm_bug_on-in-free_hot_cold_page.patch
+memory-controller-use-rcu_read_lock-in-mem_cgroup_cache_charge.patch
+memcgroup-tidy-up-mem_cgroup_charge_common.patch
+memcgroup-fix-hang-with-shmem-tmpfs.patch
+memory-controller-remove-control_type-feature.patch

Memory controller updates

+iget-stop-isofs-from-using-read_inode-fix-2.patch
+iget-stop-isofs-from-using-read_inode-fix-2-update.patch

Fix iget-stop-isofs-from-using-read_inode.patch

+pid-namespaces-vs-locks-interaction.patch

namespaces fix

+pid-fix-mips-irix-emulation-pid-usage-fix.patch

Fix pid-fix-mips-irix-emulation-pid-usage.patch

+aout-move-stack_top-to-asm-processorh-fix.patch

Fix aout-move-stack_top-to-asm-processorh.patch against git-x86 changes

+fs-remove-fastcall-it-is-always-empty.patch
+fs-remove-fastcall-it-is-always-empty-checkpatch-fixes.patch
+kernel-remove-fastcall-in-kernel.patch
+kernel-remove-fastcall-in-kernel-checkpatch-fixes.patch
+lib-remove-fastcall-from-lib.patch
+lib-remove-fastcall-from-lib-checkpatch-fixes.patch
+remove-fastcall-from-linux-include.patch
+remove-fastcall-from-linux-include-checkpatch-fixes.patch
+asm-generic-remove-fastcall.patch
+misc-removal-of-final-callers-using-fastcall.patch

Start removal of fastcall

+udf-remove-wrong-prototype-of-udf_readdir.patch
+udf-improve-readability-of-do_udf_readdir.patch
+udf-fix-coding-style-of-dirc.patch
+udf-fix-3-signedness-1-unitialized-variable-warnings.patch
+udf-fix-signedness-issue.patch

UDF fixlets

+constify-tables-in-kernel-sysctl_checkc.patch
+constify-tables-in-kernel-sysctl_checkc-fix.patch

Cleanups

+aoe-bring-driver-version-number-to-47.patch
+aoe-handle-multiple-network-paths-to-aoe-device.patch
+aoe-mac_addr-avoid-64-bit-arch-compiler-warnings.patch
+aoe-clean-up-udev-configuration-example.patch
+aoe-eliminate-goto-and-improve-readability.patch
+aoe-user-can-ask-driver-to-forget-previously-detected-devices.patch
+aoe-dynamically-allocate-a-capped-number-of-skbs-when-necessary.patch
+aoe-only-install-new-aoe-device-once.patch
+aoe-add-module-parameter-for-users-who-need-more-outstanding-i-o.patch
+aoe-the-aoeminor-doesnt-need-a-long-format.patch
+aoe-make-error-messages-more-specific.patch
+aoe-update-copyright-date.patch
+aoe-statically-initialise-devlist_lock.patch

AOE driver update

+use-pgoff_t-instead-of-unsigned-long.patch

MM cleanup

+ipc-convert-handmade-min-to-min.patch

IPC cleanup

+reiser4-replace-uid==0-check-with-capability.patch

reiser4 fix



6223 commits in 1825 patch files

All patches:

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


2007-12-23 11:06:46

by Ingo Molnar

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


* Andrew Morton <[email protected]> wrote:

>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
>
> - This kernel doesn't work on i386!
>
> It oopses late in boot due to an unrevertable change (e3c1b141) in
> git-x86 which I stared at for a while then I ran out of time and
> gave up.

hm, the fix for that is in x86.git already - perhaps you got an older
copy?

Ingo

2007-12-23 11:12:39

by Ingo Molnar

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


* Ingo Molnar <[email protected]> wrote:

> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
> >
> > - This kernel doesn't work on i386!
> >
> > It oopses late in boot due to an unrevertable change (e3c1b141) in
> > git-x86 which I stared at for a while then I ran out of time and
> > gave up.
>
> hm, the fix for that is in x86.git already - perhaps you got an older
> copy?

hm, e3c1b141 is already the latest one.

Ingo

2007-12-23 11:37:25

by Andrew Morton

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

On Sun, 23 Dec 2007 12:10:04 +0100 Ingo Molnar <[email protected]> wrote:

>
> * Ingo Molnar <[email protected]> wrote:
>
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
> > >
> > > - This kernel doesn't work on i386!
> > >
> > > It oopses late in boot due to an unrevertable change (e3c1b141) in
> > > git-x86 which I stared at for a while then I ran out of time and
> > > gave up.
> >
> > hm, the fix for that is in x86.git already - perhaps you got an older
> > copy?
>
> hm, e3c1b141 is already the latest one.

"already in", I assume.


You can always tell what I have by looking at the patch:

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/broken-out/git-x86.patch

It includes the head commit ID at the first line (it's in a
machine-readable form - Matthias's scripts which prepare the mm git tree
actually get the git-foo.patch info direct from the original repo rather
than by applying the diff from broken-out/)

Still. The crash is 100% repeatable and is the same every time. Happens
on both my i386 test boxes.

http://userweb.kernel.org/~akpm/config-sony.txt
http://userweb.kernel.org/~akpm/config-vmm.txt

and I bisected it down to e3c1b141.

2007-12-23 11:58:11

by Ingo Molnar

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


* Andrew Morton <[email protected]> wrote:

> Still. The crash is 100% repeatable and is the same every time.
> Happens on both my i386 test boxes.
>
> http://userweb.kernel.org/~akpm/config-sony.txt
> http://userweb.kernel.org/~akpm/config-vmm.txt
>
> and I bisected it down to e3c1b141.

ok, can reproduce it - the patch below fixes it for me.

Ingo

------------------------->
Subject: x86: fix system gate related crash
From: Ingo Molnar <[email protected]>

on 32-bit, system gates are traps.

on 64-bit, they are interrupts (which disable hardirqs).

Signed-off-by: Ingo Molnar <[email protected]>
---
include/asm-x86/desc.h | 4 ++++
1 file changed, 4 insertions(+)

Index: linux-x86.q/include/asm-x86/desc.h
===================================================================
--- linux-x86.q.orig/include/asm-x86/desc.h
+++ linux-x86.q/include/asm-x86/desc.h
@@ -310,7 +310,11 @@ static inline void set_trap_gate(unsigne
static inline void set_system_gate(unsigned int n, void *addr)
{
BUG_ON((unsigned)n > 0xFF);
+#ifdef CONFIG_X86_32
+ _set_gate(n, GATE_TRAP, addr, 0x3, 0, __KERNEL_CS);
+#else
_set_gate(n, GATE_INTERRUPT, addr, 0x3, 0, __KERNEL_CS);
+#endif
}

static inline void set_task_gate(unsigned int n, unsigned int gdt_entry)

2007-12-23 12:12:29

by Christoph Hellwig

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

On Sun, Dec 23, 2007 at 12:57:35PM +0100, Ingo Molnar wrote:
>
> * Andrew Morton <[email protected]> wrote:
>
> > Still. The crash is 100% repeatable and is the same every time.
> > Happens on both my i386 test boxes.
> >
> > http://userweb.kernel.org/~akpm/config-sony.txt
> > http://userweb.kernel.org/~akpm/config-vmm.txt
> >
> > and I bisected it down to e3c1b141.
>
> ok, can reproduce it - the patch below fixes it for me.
>
> Ingo
>
> ------------------------->
> Subject: x86: fix system gate related crash
> From: Ingo Molnar <[email protected]>
>
> on 32-bit, system gates are traps.
>
> on 64-bit, they are interrupts (which disable hardirqs).
>
> Signed-off-by: Ingo Molnar <[email protected]>
> ---
> include/asm-x86/desc.h | 4 ++++
> 1 file changed, 4 insertions(+)
>
> Index: linux-x86.q/include/asm-x86/desc.h
> ===================================================================
> --- linux-x86.q.orig/include/asm-x86/desc.h
> +++ linux-x86.q/include/asm-x86/desc.h
> @@ -310,7 +310,11 @@ static inline void set_trap_gate(unsigne
> static inline void set_system_gate(unsigned int n, void *addr)
> {
> BUG_ON((unsigned)n > 0xFF);
> +#ifdef CONFIG_X86_32
> + _set_gate(n, GATE_TRAP, addr, 0x3, 0, __KERNEL_CS);
> +#else
> _set_gate(n, GATE_INTERRUPT, addr, 0x3, 0, __KERNEL_CS);
> +#endif
> }
>
This would be a lot cleaner with entirely separate implementations
of set_system_gate for 32 vs 64 bit. Especially if the file already
has a large ifdef block for 32 vs 64 already.

2007-12-23 12:17:04

by Rafael J. Wysocki

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

On Sunday, 23 of December 2007, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
>
> - This kernel doesn't work on i386!
>
> It oopses late in boot due to an unrevertable change (e3c1b141) in git-x86
> which I stared at for a while then I ran out of time and gave up.
>
> I would have just abandoned this release until it was fixed but I'll be
> largely offline for ten days starting tomorrow.
>
> The culprits have been notified and hopefully we'll have a patch for
> hot-fixes/ tomorrow.
>
> x86_64 and powerpc work OK though.

Well it doesn't build on x86-64 for me:

CHK include/linux/compile.h
CC arch/x86/ia32/../../../fs/compat_binfmt_elf.o
Assembler messages:
Fatal error: can't create arch/x86/ia32/../../../fs/.tmp_compat_binfmt_elf.o: No such file or directory
make[2]: *** [arch/x86/ia32/../../../fs/compat_binfmt_elf.o] Error 2

I will post the .config if anyone is interested.

Thanks,
Rafael

2007-12-23 13:00:58

by Ingo Molnar

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


* Rafael J. Wysocki <[email protected]> wrote:

> Well it doesn't build on x86-64 for me:
>
> CHK include/linux/compile.h
> CC arch/x86/ia32/../../../fs/compat_binfmt_elf.o
> Assembler messages:
> Fatal error: can't create arch/x86/ia32/../../../fs/.tmp_compat_binfmt_elf.o: No such file or directory
> make[2]: *** [arch/x86/ia32/../../../fs/compat_binfmt_elf.o] Error 2
>
> I will post the .config if anyone is interested.

yes, please send the .config.

Ingo

2007-12-23 13:29:55

by Rafael J. Wysocki

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

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.24-rc6-mm1
# Sun Dec 23 13:30:48 2007
#
CONFIG_64BIT=y
# CONFIG_X86_32 is not set
CONFIG_X86_64=y
CONFIG_X86=y
# CONFIG_GENERIC_LOCKBREAK is not set
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_FAST_CMPXCHG_LOCAL=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
# CONFIG_QUICKLIST is not set
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
# CONFIG_GENERIC_GPIO is not set
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_DMI=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_ARCH_SUPPORTS_OPROFILE=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ZONE_DMA32=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_AUDIT_ARCH=y
CONFIG_ARCH_SUPPORTS_AOUT=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_PENDING_IRQ=y
# CONFIG_KTIME_SCALAR is not set
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
# CONFIG_TASK_XACCT is not set
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_TREE=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=18
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not set
# CONFIG_CGROUP_NS is not set
CONFIG_CPUSETS=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_FAIR_USER_SCHED=y
# CONFIG_FAIR_CGROUP_SCHED is not set
# CONFIG_CGROUP_CPUACCT is not set
# CONFIG_RESOURCE_COUNTERS is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_PROC_PID_CPUSET=y
# CONFIG_RELAY is not set
CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set
# CONFIG_IPC_NS is not set
# CONFIG_USER_NS is not set
# CONFIG_PID_NS is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
# 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_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
CONFIG_PROC_PAGE_MONITOR=y
# CONFIG_PROFILING is not set
# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_BLK_DEV_BSG is not set
CONFIG_BLOCK_COMPAT=y

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

#
# Processor type and features
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_SMP=y
CONFIG_X86_PC=y
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
# CONFIG_X86_GENERICARCH is not set
# CONFIG_X86_ES7000 is not set
# CONFIG_X86_RDC321X is not set
# CONFIG_X86_VSMP is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
CONFIG_MK8=y
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
# CONFIG_MPSC is not set
# CONFIG_MCORE2 is not set
# CONFIG_GENERIC_CPU is not set
CONFIG_X86_L1_CACHE_BYTES=64
CONFIG_X86_INTERNODE_CACHE_BYTES=64
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
CONFIG_X86_MINIMUM_CPU_FAMILY=64
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_HPET_TIMER=y
CONFIG_GART_IOMMU=y
# CONFIG_CALGARY_IOMMU is not set
CONFIG_IOMMU_HELPER=y
CONFIG_SWIOTLB=y
CONFIG_ARCH_SUPPORTS_KVM=y
CONFIG_NR_CPUS=128
# 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_RCU_TRACE=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_MCE=y
# CONFIG_X86_MCE_INTEL is not set
CONFIG_X86_MCE_AMD=y
# CONFIG_I8K is not set
# CONFIG_MICROCODE is not set
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
# CONFIG_NUMA is not set
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_SELECT_MEMORY_MODEL=y
# CONFIG_FLATMEM_MANUAL is not set
# CONFIG_DISCONTIGMEM_MANUAL is not set
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM=y
CONFIG_HAVE_MEMORY_PRESENT=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
CONFIG_SPARSEMEM_VMEMMAP=y

#
# Memory hotplug is currently incompatible with Software Suspend
#
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_RESOURCES_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_MTRR=y
# CONFIG_EFI is not set
CONFIG_SECCOMP=y
# CONFIG_CC_STACKPROTECTOR is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_KEXEC=y
# CONFIG_CRASH_DUMP is not set
CONFIG_PHYSICAL_START=0x200000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=0x200000
CONFIG_HOTPLUG_CPU=y
CONFIG_COMPAT_VDSO=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y

#
# Power management options
#
CONFIG_ARCH_HIBERNATION_HEADER=y
CONFIG_PM=y
CONFIG_PM_LEGACY=y
CONFIG_PM_DEBUG=y
# CONFIG_PM_VERBOSE is not set
CONFIG_CAN_PM_TRACE=y
CONFIG_PM_TRACE=y
CONFIG_PM_TRACE_RTC=y
CONFIG_PM_SLEEP_SMP=y
CONFIG_PM_SLEEP=y
CONFIG_SUSPEND=y
CONFIG_HIBERNATION=y
CONFIG_PM_STD_PARTITION=""
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_PROCFS=y
CONFIG_ACPI_PROCFS_POWER=y
CONFIG_ACPI_PROC_EVENT=y
CONFIG_ACPI_AC=m
CONFIG_ACPI_BATTERY=m
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_FAN=m
# CONFIG_ACPI_DOCK is not set
CONFIG_ACPI_PROCESSOR=m
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_THERMAL=m
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_TOSHIBA is not set
# CONFIG_ACPI_CUSTOM_DSDT is not set
CONFIG_ACPI_BLACKLIST_YEAR=0
CONFIG_ACPI_DEBUG=y
# CONFIG_ACPI_DEBUG_FUNC_TRACE is not set
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=y
# CONFIG_ACPI_SBS is not set

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

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

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

#
# Bus options (PCI etc.)
#
CONFIG_PCI=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_DOMAINS=y
CONFIG_DMAR=y
CONFIG_DMAR_GFX_WA=y
CONFIG_DMAR_FLOPPY_WA=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=m
CONFIG_PCIEAER=y
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
CONFIG_PCI_LEGACY=y
# CONFIG_PCI_DEBUG is not set
CONFIG_HT_IRQ=y
CONFIG_ISA_DMA_API=y
CONFIG_K8_NB=y
CONFIG_PCCARD=m
# CONFIG_PCMCIA_DEBUG is not set
CONFIG_PCMCIA=m
CONFIG_PCMCIA_LOAD_CIS=y
CONFIG_CARDBUS=y

#
# PC-card bridges
#
CONFIG_YENTA=m
CONFIG_YENTA_O2=y
CONFIG_YENTA_RICOH=y
CONFIG_YENTA_TI=y
CONFIG_YENTA_ENE_TUNE=y
CONFIG_YENTA_TOSHIBA=y
CONFIG_PD6729=m
CONFIG_I82092=m
CONFIG_PCCARD_NONSTATIC=m
CONFIG_HOTPLUG_PCI=m
CONFIG_HOTPLUG_PCI_FAKE=m
CONFIG_HOTPLUG_PCI_ACPI=m
CONFIG_HOTPLUG_PCI_ACPI_IBM=m
CONFIG_HOTPLUG_PCI_CPCI=y
CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
CONFIG_HOTPLUG_PCI_SHPC=m

#
# Executable file formats / Emulations
#
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=m
CONFIG_IA32_EMULATION=y
CONFIG_IA32_AOUT=y
CONFIG_COMPAT=y
CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
CONFIG_SYSVIPC_COMPAT=y

#
# Networking
#
CONFIG_NET=y

#
# Networking options
#
CONFIG_PACKET=m
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=m
# CONFIG_INET_LRO is not set
CONFIG_INET_DIAG=m
CONFIG_INET_TCP_DIAG=m
CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_BIC=m
CONFIG_TCP_CONG_CUBIC=m
CONFIG_TCP_CONG_WESTWOOD=m
CONFIG_TCP_CONG_HTCP=m
CONFIG_TCP_CONG_HSTCP=m
CONFIG_TCP_CONG_HYBLA=m
CONFIG_TCP_CONG_VEGAS=m
CONFIG_TCP_CONG_SCALABLE=m
# CONFIG_TCP_CONG_LP is not set
# CONFIG_TCP_CONG_VENO is not set
CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_CONG_ILLINOIS=m
# CONFIG_DEFAULT_BIC is not set
# CONFIG_DEFAULT_CUBIC is not set
# CONFIG_DEFAULT_HTCP is not set
# CONFIG_DEFAULT_VEGAS is not set
# CONFIG_DEFAULT_WESTWOOD is not set
CONFIG_DEFAULT_RENO=y
CONFIG_DEFAULT_TCP_CONG="reno"
CONFIG_TCP_MD5SIG=y
# CONFIG_IP_VS is not set
CONFIG_IPV6=m
CONFIG_IPV6_PRIVACY=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_ROUTE_INFO=y
CONFIG_IPV6_OPTIMISTIC_DAD=y
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
CONFIG_IPV6_MIP6=m
CONFIG_INET6_XFRM_TUNNEL=m
CONFIG_INET6_TUNNEL=m
CONFIG_INET6_XFRM_MODE_TRANSPORT=m
CONFIG_INET6_XFRM_MODE_TUNNEL=m
CONFIG_INET6_XFRM_MODE_BEET=m
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
CONFIG_IPV6_SIT=m
CONFIG_IPV6_TUNNEL=m
CONFIG_IPV6_MULTIPLE_TABLES=y
CONFIG_IPV6_SUBTREES=y
CONFIG_NETLABEL=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_NETFILTER_ADVANCED=y

#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CT_ACCT=y
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_SECMARK=y
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CT_PROTO_GRE=m
# CONFIG_NF_CT_PROTO_SCTP is not set
# CONFIG_NF_CT_PROTO_UDPLITE is not set
# CONFIG_NF_CONNTRACK_AMANDA is not set
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_SANE=m
CONFIG_NF_CONNTRACK_SIP=m
CONFIG_NF_CONNTRACK_TFTP=m
CONFIG_NF_CT_NETLINK=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_TARGET_RATEEST is not set
CONFIG_NETFILTER_XT_TARGET_TRACE=m
CONFIG_NETFILTER_XT_TARGET_SECMARK=m
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=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_OWNER is not set
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_RATEEST is not set
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_TIME=m
CONFIG_NETFILTER_XT_MATCH_U32=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_RECENT=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_TTL=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_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_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 is not set
CONFIG_NF_NAT_PPTP=m
CONFIG_NF_NAT_H323=m
CONFIG_NF_NAT_SIP=m
CONFIG_IP_NF_MANGLE=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

#
# IPv6: Netfilter Configuration (EXPERIMENTAL)
#
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_IP6_NF_QUEUE=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_FRAG=m
CONFIG_IP6_NF_MATCH_HL=m
CONFIG_IP6_NF_MATCH_IPV6HEADER=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_EUI64=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_LOG=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_RAW=m
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# 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
# CONFIG_NET_SCHED is not set
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_SCH_FIFO=y

#
# Network testing
#
CONFIG_NET_PKTGEN=m
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=m

#
# Bluetooth device drivers
#
CONFIG_BT_HCIUSB=m
CONFIG_BT_HCIUSB_SCO=y
CONFIG_BT_HCIBTSDIO=m
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_BCSP=y
CONFIG_BT_HCIUART_LL=y
CONFIG_BT_HCIBCM203X=m
CONFIG_BT_HCIBPA10X=m
CONFIG_BT_HCIBFUSB=m
CONFIG_BT_HCIDTL1=m
CONFIG_BT_HCIBT3C=m
CONFIG_BT_HCIBLUECARD=m
CONFIG_BT_HCIBTUART=m
CONFIG_BT_HCIVHCI=m
# CONFIG_AF_RXRPC is not set
CONFIG_FIB_RULES=y

#
# Wireless
#
CONFIG_CFG80211=m
CONFIG_NL80211=y
CONFIG_WIRELESS_EXT=y
CONFIG_MAC80211=m
CONFIG_MAC80211_RCSIMPLE=y
CONFIG_MAC80211_LEDS=y
CONFIG_MAC80211_DEBUGFS=y
CONFIG_MAC80211_DEBUG=y
# CONFIG_MAC80211_HT_DEBUG is not set
# CONFIG_MAC80211_VERBOSE_DEBUG is not set
# CONFIG_MAC80211_LOWTX_FRAME_DUMP is not set
# CONFIG_TKIP_DEBUG is not set
# CONFIG_MAC80211_DEBUG_COUNTERS is not set
CONFIG_MAC80211_IBSS_DEBUG=y
# CONFIG_MAC80211_VERBOSE_PS_DEBUG is not set
CONFIG_IEEE80211=m
# CONFIG_IEEE80211_DEBUG is not set
CONFIG_IEEE80211_CRYPT_WEP=m
CONFIG_IEEE80211_CRYPT_CCMP=m
CONFIG_IEEE80211_CRYPT_TKIP=m
CONFIG_IEEE80211_SOFTMAC=m
CONFIG_IEEE80211_SOFTMAC_DEBUG=y
CONFIG_RFKILL=m
CONFIG_RFKILL_INPUT=m
CONFIG_RFKILL_LEDS=y
# CONFIG_NET_9P is not set

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
# CONFIG_STANDALONE is not set
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=m
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y
CONFIG_MTD=m
# CONFIG_MTD_DEBUG is not set
CONFIG_MTD_CONCAT=m
CONFIG_MTD_PARTITIONS=y
CONFIG_MTD_REDBOOT_PARTS=m
CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set

#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
CONFIG_MTD_BLKDEVS=m
CONFIG_MTD_BLOCK=m
# CONFIG_MTD_BLOCK_RO is not set
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
CONFIG_RFD_FTL=m
CONFIG_SSFDC=m
# CONFIG_MTD_OOPS is not set

#
# RAM/ROM/Flash chip drivers
#
CONFIG_MTD_CFI=m
CONFIG_MTD_JEDECPROBE=m
CONFIG_MTD_GEN_PROBE=m
CONFIG_MTD_CFI_ADV_OPTIONS=y
CONFIG_MTD_CFI_NOSWAP=y
# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
# CONFIG_MTD_CFI_GEOMETRY is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
# CONFIG_MTD_OTP is not set
CONFIG_MTD_CFI_INTELEXT=m
CONFIG_MTD_CFI_AMDSTD=m
CONFIG_MTD_CFI_STAA=m
CONFIG_MTD_CFI_UTIL=m
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
CONFIG_MTD_ABSENT=m

#
# Mapping drivers for chip access
#
CONFIG_MTD_COMPLEX_MAPPINGS=y
CONFIG_MTD_PHYSMAP=m
CONFIG_MTD_PHYSMAP_START=0x8000000
CONFIG_MTD_PHYSMAP_LEN=0x4000000
CONFIG_MTD_PHYSMAP_BANKWIDTH=2
# CONFIG_MTD_PNC2000 is not set
# CONFIG_MTD_SC520CDP is not set
# CONFIG_MTD_NETSC520 is not set
CONFIG_MTD_TS5500=m
# CONFIG_MTD_SBC_GXX is not set
CONFIG_MTD_AMD76XROM=m
CONFIG_MTD_ICHXROM=m
# CONFIG_MTD_ESB2ROM is not set
# CONFIG_MTD_CK804XROM is not set
CONFIG_MTD_SCB2_FLASH=m
# CONFIG_MTD_NETtel is not set
# CONFIG_MTD_DILNETPC is not set
# CONFIG_MTD_L440GX is not set
CONFIG_MTD_PCI=m
CONFIG_MTD_INTEL_VR_NOR=m
# CONFIG_MTD_PLATRAM is not set

#
# Self-contained MTD device drivers
#
CONFIG_MTD_PMC551=m
CONFIG_MTD_PMC551_BUGFIX=y
# CONFIG_MTD_PMC551_DEBUG is not set
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_M25P80 is not set
CONFIG_MTD_SLRAM=m
CONFIG_MTD_PHRAM=m
CONFIG_MTD_MTDRAM=m
CONFIG_MTDRAM_TOTAL_SIZE=4096
CONFIG_MTDRAM_ERASE_SIZE=128
CONFIG_MTD_BLOCK2MTD=m

#
# Disk-On-Chip Device Drivers
#
CONFIG_MTD_DOC2000=m
CONFIG_MTD_DOC2001=m
CONFIG_MTD_DOC2001PLUS=m
CONFIG_MTD_DOCPROBE=m
CONFIG_MTD_DOCECC=m
CONFIG_MTD_DOCPROBE_ADVANCED=y
CONFIG_MTD_DOCPROBE_ADDRESS=0x0000
CONFIG_MTD_DOCPROBE_HIGH=y
CONFIG_MTD_DOCPROBE_55AA=y
CONFIG_MTD_NAND=m
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
# CONFIG_MTD_NAND_ECC_SMC is not set
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
CONFIG_MTD_NAND_IDS=m
CONFIG_MTD_NAND_DISKONCHIP=m
# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE=y
CONFIG_MTD_NAND_CAFE=m
CONFIG_MTD_NAND_NANDSIM=m
# CONFIG_MTD_NAND_PLATFORM is not set
CONFIG_MTD_ALAUDA=m
CONFIG_MTD_ONENAND=m
# CONFIG_MTD_ONENAND_VERIFY_WRITE is not set
# CONFIG_MTD_ONENAND_OTP is not set
# CONFIG_MTD_ONENAND_2X_PROGRAM is not set
# CONFIG_MTD_ONENAND_SIM is not set

#
# UBI - Unsorted block images
#
# CONFIG_MTD_UBI is not set
# CONFIG_PARPORT is not set
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set

#
# Protocols
#
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_FD=m
# 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=m
CONFIG_BLK_DEV_CRYPTOLOOP=m
# 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=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=128000
# CONFIG_BLK_DEV_XIP is not set
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD_WCACHE=y
# CONFIG_ATA_OVER_ETH is not set
CONFIG_MISC_DEVICES=y
# CONFIG_IBM_ASM is not set
CONFIG_PHANTOM=m
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_SGI_IOC4 is not set
CONFIG_TIFM_CORE=m
CONFIG_TIFM_7XX1=m
# CONFIG_ASUS_LAPTOP is not set
# CONFIG_FUJITSU_LAPTOP is not set
# CONFIG_MSI_LAPTOP is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_THINKPAD_ACPI is not set
# CONFIG_FJKEYINF is not set
CONFIG_IDE=m
CONFIG_BLK_DEV_IDE=m

#
# 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=m
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_IDECS=m
# CONFIG_BLK_DEV_DELKIN is not set
CONFIG_BLK_DEV_IDECD=m
CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=m
CONFIG_BLK_DEV_IDESCSI=m
CONFIG_BLK_DEV_IDEACPI=y
# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_PROC_FS=y

#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=m
CONFIG_BLK_DEV_PLATFORM=m
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_IDEPNP is not set

#
# PCI IDE chipsets support
#
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_BLK_DEV_OFFBOARD=y
CONFIG_BLK_DEV_GENERIC=m
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_RZ1000 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
CONFIG_BLK_DEV_ATIIXP=m
# 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 is not set
# 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_BLK_DEV_IDEDMA=y
CONFIG_IDE_ARCH_OBSOLETE_INIT=y
# CONFIG_BLK_DEV_HD is not set

#
# SCSI device support
#
CONFIG_RAID_ATTRS=m
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_TGT=m
CONFIG_SCSI_NETLINK=y
CONFIG_SCSI_PROC_FS=y

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

#
# 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
CONFIG_SCSI_WAIT_SCAN=m

#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=m
CONFIG_SCSI_FC_ATTRS=m
# CONFIG_SCSI_FC_TGT_ATTRS is not set
CONFIG_SCSI_ISCSI_ATTRS=m
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
CONFIG_SCSI_LOWLEVEL=y
# 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_ADVANSYS 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 is not set
# 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=m
CONFIG_SCSI_SRP=m
# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_ATA_ACPI=y
# CONFIG_SATA_AHCI is not set
# CONFIG_SATA_SVW is not set
# CONFIG_ATA_PIIX is not set
# CONFIG_SATA_MV is not set
# CONFIG_SATA_NV is not set
# 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 is not set
# 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_PATA_ACPI is not set
# 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_CMD640_PCI 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_NINJA32 is not set
# CONFIG_PATA_NS87410 is not set
# CONFIG_PATA_NS87415 is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_OPTIDMA is not set
# CONFIG_PATA_PCMCIA 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_MD=y
CONFIG_BLK_DEV_MD=y
CONFIG_MD_LINEAR=m
CONFIG_MD_RAID0=m
CONFIG_MD_RAID1=m
CONFIG_MD_RAID10=m
# CONFIG_MD_RAID456 is not set
CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
CONFIG_BLK_DEV_DM=m
# CONFIG_DM_DEBUG is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
CONFIG_DM_MIRROR=m
CONFIG_DM_ZERO=m
CONFIG_DM_MULTIPATH=m
CONFIG_DM_MULTIPATH_EMC=m
CONFIG_DM_MULTIPATH_RDAC=m
# CONFIG_DM_MULTIPATH_HP is not set
# CONFIG_DM_DELAY is not set
CONFIG_DM_UEVENT=y
# CONFIG_FUSION is not set

#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
CONFIG_IEEE1394=m

#
# Subsystem Options
#
# CONFIG_IEEE1394_VERBOSEDEBUG is not set

#
# Controllers
#
CONFIG_IEEE1394_PCILYNX=m
CONFIG_IEEE1394_OHCI1394=m

#
# Protocols
#
CONFIG_IEEE1394_VIDEO1394=m
CONFIG_IEEE1394_SBP2=m
CONFIG_IEEE1394_SBP2_PHYS_DMA=y
CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y
CONFIG_IEEE1394_ETH1394=m
CONFIG_IEEE1394_DV1394=m
CONFIG_IEEE1394_RAWIO=m
CONFIG_I2O=m
CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
CONFIG_I2O_EXT_ADAPTEC=y
CONFIG_I2O_EXT_ADAPTEC_DMA64=y
CONFIG_I2O_CONFIG=m
CONFIG_I2O_CONFIG_OLD_IOCTL=y
CONFIG_I2O_BUS=m
CONFIG_I2O_BLOCK=m
CONFIG_I2O_SCSI=m
CONFIG_I2O_PROC=m
# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
CONFIG_NETDEVICES_MULTIQUEUE=y
CONFIG_DUMMY=m
CONFIG_BONDING=m
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
CONFIG_TUN=m
# CONFIG_VETH is not set
# CONFIG_NET_SB1000 is not set
# CONFIG_IP1000 is not set
# CONFIG_ARCNET is not set
CONFIG_PHYLIB=m

#
# MII PHY device drivers
#
CONFIG_MARVELL_PHY=m
CONFIG_DAVICOM_PHY=m
CONFIG_QSEMI_PHY=m
CONFIG_LXT_PHY=m
CONFIG_CICADA_PHY=m
CONFIG_VITESSE_PHY=m
CONFIG_SMSC_PHY=m
CONFIG_BROADCOM_PHY=m
# CONFIG_ICPLUS_PHY is not set
CONFIG_FIXED_PHY=m
CONFIG_FIXED_MII_10_FDX=y
CONFIG_FIXED_MII_100_FDX=y
CONFIG_FIXED_MII_1000_FDX=y
CONFIG_FIXED_MII_AMNT=1
# CONFIG_MDIO_BITBANG is not set
CONFIG_NET_ETHERNET=y
CONFIG_MII=m
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
# CONFIG_NET_PCI is not set
# CONFIG_B44 is not set
CONFIG_NETDEV_1000=y
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_E1000E 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 is not set
# CONFIG_SKY2 is not set
# CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
CONFIG_TIGON3=m
CONFIG_BNX2=m
# CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set
# CONFIG_NETDEV_10000 is not set
# CONFIG_TR is not set

#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
CONFIG_WLAN_80211=y
# CONFIG_PCMCIA_RAYCS is not set
# CONFIG_IPW2100 is not set
# CONFIG_IPW2200 is not set
# CONFIG_LIBERTAS is not set
# CONFIG_AIRO is not set
# CONFIG_HERMES is not set
# CONFIG_ATMEL is not set
# CONFIG_USB_ATMEL is not set
# CONFIG_AIRO_CS is not set
# CONFIG_PCMCIA_WL3501 is not set
# CONFIG_PRISM54 is not set
# CONFIG_USB_ZD1201 is not set
# CONFIG_RTL8180 is not set
# CONFIG_RTL8187 is not set
# CONFIG_ADM8211 is not set
# CONFIG_P54_COMMON is not set
# CONFIG_ATH5K is not set
# CONFIG_IWL4965 is not set
# CONFIG_IWL3945 is not set
# CONFIG_HOSTAP is not set
# CONFIG_BCM43XX is not set
CONFIG_B43=m
CONFIG_B43_PCI_AUTOSELECT=y
CONFIG_B43_PCICORE_AUTOSELECT=y
# CONFIG_B43_PCMCIA is not set
CONFIG_B43_LEDS=y
CONFIG_B43_RFKILL=y
CONFIG_B43_DEBUG=y
CONFIG_B43_DMA=y
# CONFIG_B43_DMA_AND_PIO_MODE is not set
CONFIG_B43_DMA_MODE=y
# CONFIG_B43_PIO_MODE is not set
# CONFIG_B43LEGACY is not set
# CONFIG_ZD1211RW is not set
# CONFIG_RT2X00 is not set

#
# USB Network Adapters
#
CONFIG_USB_CATC=m
CONFIG_USB_KAWETH=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_RTL8150=m
CONFIG_USB_USBNET=m
CONFIG_USB_NET_AX8817X=m
CONFIG_USB_NET_CDCETHER=m
# CONFIG_USB_NET_DM9601 is not set
CONFIG_USB_NET_GL620A=m
CONFIG_USB_NET_NET1080=m
CONFIG_USB_NET_PLUSB=m
# CONFIG_USB_NET_MCS7830 is not set
CONFIG_USB_NET_RNDIS_HOST=m
CONFIG_USB_NET_CDC_SUBSET=m
CONFIG_USB_ALI_M5632=y
CONFIG_USB_AN2720=y
CONFIG_USB_BELKIN=y
CONFIG_USB_ARMLINUX=y
CONFIG_USB_EPSON2888=y
CONFIG_USB_KC2190=y
CONFIG_USB_NET_ZAURUS=m
CONFIG_NET_PCMCIA=y
CONFIG_PCMCIA_3C589=m
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_FMVJ18X=m
CONFIG_PCMCIA_PCNET=m
CONFIG_PCMCIA_NMCLAN=m
CONFIG_PCMCIA_SMC91C92=m
CONFIG_PCMCIA_XIRC2PS=m
CONFIG_PCMCIA_AXNET=m
# 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=m
CONFIG_NETCONSOLE=m
CONFIG_NETCONSOLE_DYNAMIC=y
CONFIG_NETPOLL=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
# CONFIG_PHONE is not set

#
# Input device support
#
CONFIG_INPUT=y
CONFIG_INPUT_FF_MEMLESS=m
CONFIG_INPUT_POLLDEV=m

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_JOYDEV=m
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
CONFIG_KEYBOARD_SUNKBD=m
# CONFIG_KEYBOARD_LKKBD is not set
CONFIG_KEYBOARD_XTKBD=m
CONFIG_KEYBOARD_NEWTON=m
# CONFIG_KEYBOARD_STOWAWAY is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=m
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
CONFIG_MOUSE_PS2_TOUCHKIT=y
# CONFIG_MOUSE_PS2_ELANTECH is not set
CONFIG_MOUSE_SERIAL=m
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=y
# CONFIG_INPUT_APANEL is not set
# CONFIG_INPUT_WISTRON_BTNS is not set
CONFIG_INPUT_ATLAS_BTNS=m
# CONFIG_INPUT_ATI_REMOTE is not set
# CONFIG_INPUT_ATI_REMOTE2 is not set
# CONFIG_INPUT_KEYSPAN_REMOTE is not set
# CONFIG_INPUT_POWERMATE is not set
# CONFIG_INPUT_YEALINK is not set
CONFIG_INPUT_UINPUT=m

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=m
CONFIG_SERIO_CT82C710=m
CONFIG_SERIO_PCIPS2=m
CONFIG_SERIO_LIBPS2=y
CONFIG_SERIO_RAW=m
# 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_FIX_EARLYCON_MEM=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_PNP=y
CONFIG_SERIAL_8250_CS=m
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
# CONFIG_SERIAL_8250_EXTENDED is not set

#
# 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=64
CONFIG_IPMI_HANDLER=m
CONFIG_IPMI_PANIC_EVENT=y
# CONFIG_IPMI_PANIC_STRING is not set
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_IPMI_WATCHDOG=m
CONFIG_IPMI_POWEROFF=m
CONFIG_HW_RANDOM=y
# CONFIG_HW_RANDOM_INTEL is not set
CONFIG_HW_RANDOM_AMD=y
CONFIG_NVRAM=y
# CONFIG_RTC is not set
# CONFIG_GEN_RTC is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set

#
# PCMCIA character devices
#
CONFIG_SYNCLINK_CS=m
CONFIG_CARDMAN_4000=m
CONFIG_CARDMAN_4040=m
# CONFIG_IPWIRELESS is not set
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
CONFIG_RAW_DRIVER=m
CONFIG_MAX_RAW_DEVS=4096
CONFIG_HPET=y
# CONFIG_HPET_RTC_IRQ is not set
CONFIG_HPET_MMAP=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_TCG_TPM=m
# CONFIG_TCG_TIS is not set
# CONFIG_TCG_NSC is not set
CONFIG_TCG_ATMEL=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TELCLOCK=m
CONFIG_DEVPORT=y
CONFIG_I2C=m
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CHARDEV=m

#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=m
CONFIG_I2C_ALGOPCF=m
CONFIG_I2C_ALGOPCA=m

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

#
# Miscellaneous I2C Chip support
#
CONFIG_DS1682=m
CONFIG_SENSORS_EEPROM=m
CONFIG_SENSORS_PCF8574=m
# CONFIG_PCF8575 is not set
CONFIG_SENSORS_PCA9539=m
CONFIG_SENSORS_PCF8591=m
# CONFIG_TPS65010 is not set
CONFIG_SENSORS_MAX6875=m
CONFIG_SENSORS_TSL2550=m
# CONFIG_OZ99X 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=y
CONFIG_SPI_DEBUG=y
CONFIG_SPI_MASTER=y

#
# SPI Master Controller Drivers
#
CONFIG_SPI_BITBANG=m

#
# SPI Protocol Masters
#
CONFIG_SPI_AT25=m
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
CONFIG_W1=m
CONFIG_W1_CON=y

#
# 1-wire Bus Masters
#
# CONFIG_W1_MASTER_MATROX is not set
# CONFIG_W1_MASTER_DS2490 is not set
# CONFIG_W1_MASTER_DS2482 is not set

#
# 1-wire Slaves
#
# CONFIG_W1_SLAVE_THERM is not set
# CONFIG_W1_SLAVE_SMEM is not set
# CONFIG_W1_SLAVE_DS2433 is not set
# CONFIG_W1_SLAVE_DS2760 is not set
CONFIG_POWER_SUPPLY=m
# CONFIG_POWER_SUPPLY_DEBUG is not set
# CONFIG_PDA_POWER is not set
# CONFIG_BATTERY_DS2760 is not set
CONFIG_HWMON=m
CONFIG_HWMON_VID=m
# CONFIG_SENSORS_ABITUGURU is not set
# CONFIG_SENSORS_ABITUGURU3 is not set
# CONFIG_SENSORS_AD7418 is not set
CONFIG_SENSORS_ADM1021=m
CONFIG_SENSORS_ADM1025=m
CONFIG_SENSORS_ADM1026=m
# CONFIG_SENSORS_ADM1029 is not set
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADT7470=m
CONFIG_SENSORS_K8TEMP=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_DS1621=m
# CONFIG_SENSORS_I5K_AMB is not set
CONFIG_SENSORS_F71805F=m
CONFIG_SENSORS_F71882FG=m
CONFIG_SENSORS_F75375S=m
CONFIG_SENSORS_FSCHER=m
CONFIG_SENSORS_FSCPOS=m
CONFIG_SENSORS_FSCHMD=m
CONFIG_SENSORS_GL518SM=m
CONFIG_SENSORS_GL520SM=m
# CONFIG_SENSORS_CORETEMP is not set
# CONFIG_SENSORS_IBMPEX is not set
CONFIG_SENSORS_IT87=m
CONFIG_SENSORS_LM63=m
# CONFIG_SENSORS_LM70 is not set
CONFIG_SENSORS_LM75=m
CONFIG_SENSORS_LM77=m
CONFIG_SENSORS_LM78=m
CONFIG_SENSORS_LM80=m
CONFIG_SENSORS_LM83=m
CONFIG_SENSORS_LM85=m
CONFIG_SENSORS_LM87=m
CONFIG_SENSORS_LM90=m
CONFIG_SENSORS_LM92=m
CONFIG_SENSORS_LM93=m
CONFIG_SENSORS_MAX1619=m
# CONFIG_SENSORS_MAX6650 is not set
CONFIG_SENSORS_PC87360=m
# CONFIG_SENSORS_PC87427 is not set
CONFIG_SENSORS_SIS5595=m
CONFIG_SENSORS_DME1737=m
CONFIG_SENSORS_SMSC47M1=m
# CONFIG_SENSORS_SMSC47M192 is not set
CONFIG_SENSORS_SMSC47B397=m
CONFIG_SENSORS_THMC50=m
CONFIG_SENSORS_VIA686A=m
# CONFIG_SENSORS_VT1211 is not set
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83781D=m
# CONFIG_SENSORS_W83791D is not set
CONFIG_SENSORS_W83792D=m
CONFIG_SENSORS_W83793=m
CONFIG_SENSORS_W83L785TS=m
# CONFIG_SENSORS_W83L786NG is not set
CONFIG_SENSORS_W83627HF=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_HDAPS=m
# CONFIG_SENSORS_APPLESMC is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
# CONFIG_WATCHDOG is not set

#
# Sonics Silicon Backplane
#
CONFIG_SSB_POSSIBLE=y
CONFIG_SSB=m
CONFIG_SSB_PCIHOST_POSSIBLE=y
CONFIG_SSB_PCIHOST=y
CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
CONFIG_SSB_PCMCIAHOST=y
CONFIG_SSB_DEBUG=y
CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
CONFIG_SSB_DRIVER_PCICORE=y

#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set

#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
# CONFIG_DVB_CORE is not set
# CONFIG_DAB is not set

#
# Graphics support
#
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=m
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_SIS is not set
# CONFIG_DRM_VIA is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_VGASTATE is not set
CONFIG_VIDEO_OUTPUT_CONTROL=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_CFB_REV_PIXELS_IN_BYTE is not set
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
# CONFIG_FB_SYS_FOPS is not set
CONFIG_FB_DEFERRED_IO=y
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y

#
# Frame buffer 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_UVESA is not set
CONFIG_FB_VESA=y
# CONFIG_FB_EFI is not set
# CONFIG_FB_HECUBA is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
# CONFIG_FB_LE80578 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_VT8623 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_GEODE is not set
# CONFIG_FB_VIRTUAL is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=m
CONFIG_LCD_LTV350QV=m
CONFIG_BACKLIGHT_CLASS_DEVICE=m
CONFIG_BACKLIGHT_CORGI=m
CONFIG_BACKLIGHT_PROGEAR=m

#
# Display device support
#
CONFIG_DISPLAY_SUPPORT=m

#
# Display hardware drivers
#

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
CONFIG_VIDEO_SELECT=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# 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 is not set
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
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_DYNAMIC_MINORS=y
CONFIG_SND_SUPPORT_OLD_API=y
CONFIG_SND_VERBOSE_PROCFS=y
CONFIG_SND_VERBOSE_PRINTK=y
CONFIG_SND_DEBUG=y
# CONFIG_SND_DEBUG_DETECT is not set
# CONFIG_SND_PCM_XRUN_DEBUG is not set

#
# Generic devices
#
CONFIG_SND_MPU401_UART=m
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_DUMMY=m
CONFIG_SND_VIRMIDI=m
CONFIG_SND_MTPAV=m
CONFIG_SND_SERIAL_U16550=m
CONFIG_SND_MPU401=m

#
# 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=m
CONFIG_SND_ATIIXP_MODEM=m
# 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_CS5530 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 is not set
# 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=m
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_CODEC_REALTEK=y
CONFIG_SND_HDA_CODEC_ANALOG=y
CONFIG_SND_HDA_CODEC_SIGMATEL=y
CONFIG_SND_HDA_CODEC_VIA=y
CONFIG_SND_HDA_CODEC_ATIHDMI=y
CONFIG_SND_HDA_CODEC_CONEXANT=y
CONFIG_SND_HDA_CODEC_CMEDIA=y
CONFIG_SND_HDA_CODEC_SI3054=y
CONFIG_SND_HDA_GENERIC=y
CONFIG_SND_HDA_POWER_SAVE=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
# 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=m
CONFIG_SND_INTEL8X0M=m
# 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=y
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0

#
# SPI devices
#

#
# USB devices
#
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_USB_USX2Y=m
# CONFIG_SND_USB_CAIAQ is not set

#
# PCMCIA devices
#
# CONFIG_SND_VXPOCKET is not set
# CONFIG_SND_PDAUDIOCF is not set

#
# System on Chip audio support
#
# CONFIG_SND_SOC is not set

#
# SoC Audio support for SuperH
#

#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set
CONFIG_AC97_BUS=m
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
CONFIG_HIDRAW=y

#
# USB Input Devices
#
CONFIG_USB_HID=m
# CONFIG_USB_HIDINPUT_POWERBOOK is not set
CONFIG_HID_FF=y
CONFIG_HID_PID=y
CONFIG_LOGITECH_FF=y
# CONFIG_PANTHERLORD_FF is not set
CONFIG_THRUSTMASTER_FF=y
# CONFIG_ZEROPLUS_FF is not set
CONFIG_USB_HIDDEV=y

#
# USB HID Boot Protocol drivers
#
# CONFIG_USB_KBD is not set
# CONFIG_USB_MOUSE is not set
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB=m
CONFIG_USB_DEBUG=y
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set

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

#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_SPLIT_ISO=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
CONFIG_USB_ISP116X_HCD=m
CONFIG_USB_OHCI_HCD=m
# CONFIG_USB_OHCI_HCD_SSB is not set
# 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=m
CONFIG_USB_SL811_HCD=m
CONFIG_USB_SL811_CS=m
CONFIG_USB_R8A66597_HCD=m

#
# USB Device Class drivers
#
CONFIG_USB_ACM=m
CONFIG_USB_PRINTER=m

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

#
# may also be needed; see USB_STORAGE Help for more information
#
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_DPCM=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
# CONFIG_USB_STORAGE_KARMA is not set
# CONFIG_USB_LIBUSUAL is not set

#
# USB Imaging devices
#
CONFIG_USB_MDC800=m
CONFIG_USB_MICROTEK=m
CONFIG_USB_MON=y

#
# USB port drivers
#

#
# USB Serial Converter support
#
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y
# CONFIG_USB_SERIAL_AIRCABLE is not set
CONFIG_USB_SERIAL_AIRPRIME=m
# CONFIG_USB_SERIAL_ARK3116 is not set
CONFIG_USB_SERIAL_BELKIN=m
CONFIG_USB_SERIAL_CH341=m
CONFIG_USB_SERIAL_WHITEHEAT=m
CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
CONFIG_USB_SERIAL_CP2101=m
CONFIG_USB_SERIAL_CYPRESS_M8=m
CONFIG_USB_SERIAL_EMPEG=m
CONFIG_USB_SERIAL_FTDI_SIO=m
CONFIG_USB_SERIAL_FUNSOFT=m
CONFIG_USB_SERIAL_VISOR=m
CONFIG_USB_SERIAL_IPAQ=m
CONFIG_USB_SERIAL_IR=m
CONFIG_USB_SERIAL_EDGEPORT=m
CONFIG_USB_SERIAL_EDGEPORT_TI=m
CONFIG_USB_SERIAL_GARMIN=m
CONFIG_USB_SERIAL_IPW=m
# CONFIG_USB_SERIAL_IUU is not set
CONFIG_USB_SERIAL_KEYSPAN_PDA=m
CONFIG_USB_SERIAL_KEYSPAN=m
CONFIG_USB_SERIAL_KEYSPAN_MPR=y
CONFIG_USB_SERIAL_KEYSPAN_USA28=y
CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
CONFIG_USB_SERIAL_KEYSPAN_USA19=y
CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
CONFIG_USB_SERIAL_KLSI=m
CONFIG_USB_SERIAL_KOBIL_SCT=m
CONFIG_USB_SERIAL_MCT_U232=m
# CONFIG_USB_SERIAL_MOS7720 is not set
CONFIG_USB_SERIAL_MOS7840=m
CONFIG_USB_SERIAL_NAVMAN=m
CONFIG_USB_SERIAL_PL2303=m
CONFIG_USB_SERIAL_OTI6858=m
CONFIG_USB_SERIAL_HP4X=m
CONFIG_USB_SERIAL_SAFE=m
CONFIG_USB_SERIAL_SAFE_PADDED=y
# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
CONFIG_USB_SERIAL_TI=m
CONFIG_USB_SERIAL_CYBERJACK=m
CONFIG_USB_SERIAL_XIRCOM=m
CONFIG_USB_SERIAL_OPTION=m
CONFIG_USB_SERIAL_OMNINET=m
CONFIG_USB_SERIAL_DEBUG=m
CONFIG_USB_EZUSB=y

#
# USB Miscellaneous drivers
#
CONFIG_USB_EMI62=m
CONFIG_USB_EMI26=m
# CONFIG_USB_ADUTUX is not set
CONFIG_USB_AUERSWALD=m
CONFIG_USB_RIO500=m
CONFIG_USB_LEGOTOWER=m
CONFIG_USB_LCD=m
# CONFIG_USB_BERRY_CHARGE is not set
CONFIG_USB_LED=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
CONFIG_USB_CYTHERM=m
# CONFIG_USB_PHIDGET is not set
CONFIG_USB_IDMOUSE=m
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set
CONFIG_USB_SISUSBVGA=m
CONFIG_USB_SISUSBVGA_CON=y
CONFIG_USB_LD=m
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR 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
CONFIG_MMC=m
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
# CONFIG_MMC_PASSWORDS is not set

#
# MMC/SD Card Drivers
#
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_SDIO_UART=m

#
# MMC/SD Host Controller Drivers
#
CONFIG_MMC_SDHCI=m
CONFIG_MMC_RICOH_MMC=m
CONFIG_MMC_WBSD=m
CONFIG_MMC_TIFM_SD=m
CONFIG_MMC_SPI=m
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=m

#
# LED drivers
#
# CONFIG_LEDS_CLEVO_MAIL is not set

#
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=m
CONFIG_LEDS_TRIGGER_IDE_DISK=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
CONFIG_RTC_LIB=m
CONFIG_RTC_CLASS=m

#
# 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
# CONFIG_RTC_DRV_TEST is not set

#
# I2C RTC drivers
#
# CONFIG_RTC_DRV_DS1307 is not set
# CONFIG_RTC_DRV_DS1374 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_MAX6900 is not set
# CONFIG_RTC_DRV_RS5C372 is not set
# CONFIG_RTC_DRV_ISL1208 is not set
# CONFIG_RTC_DRV_X1205 is not set
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_S35390A is not set

#
# SPI RTC drivers
#
# CONFIG_RTC_DRV_MAX6902 is not set
# CONFIG_RTC_DRV_RS5C348 is not set

#
# Platform RTC drivers
#
CONFIG_RTC_DRV_CMOS=m
# CONFIG_RTC_DRV_DS1511 is not set
# CONFIG_RTC_DRV_DS1553 is not set
# CONFIG_RTC_DRV_DS1742 is not set
# CONFIG_RTC_DRV_STK17TA8 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_V3020 is not set

#
# on-CPU RTC drivers
#
# CONFIG_DMADEVICES is not set

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

#
# Firmware Drivers
#
CONFIG_EDD=m
CONFIG_DELL_RBU=m
CONFIG_DCDBAS=m
CONFIG_DMIID=y

#
# 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=m
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
# CONFIG_EXT4DEV_FS is not set
CONFIG_JBD=m
CONFIG_JBD_DEBUG=y
CONFIG_FS_MBCACHE=y
# CONFIG_REISER4_FS is not set
CONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
# 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_DNOTIFY=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
CONFIG_PRINT_QUOTA_WARNING=y
CONFIG_QFMT_V1=m
CONFIG_QFMT_V2=m
CONFIG_QUOTACTL=y
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
CONFIG_FUSE_FS=m
CONFIG_GENERIC_ACL=y

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

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

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
CONFIG_CONFIGFS_FS=m

#
# Layered filesystems
#
# CONFIG_ECRYPT_FS is not set
# CONFIG_UNION_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_JFFS2_FS=m
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
CONFIG_JFFS2_FS_WBUF_VERIFY=y
CONFIG_JFFS2_SUMMARY=y
# CONFIG_JFFS2_FS_XATTR is not set
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
CONFIG_JFFS2_ZLIB=y
CONFIG_JFFS2_LZO=y
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
# CONFIG_JFFS2_CMODE_NONE is not set
CONFIG_JFFS2_CMODE_PRIORITY=y
# CONFIG_JFFS2_CMODE_SIZE is not set
# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_NFS_DIRECTIO=y
CONFIG_NFSD=m
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_TCP=y
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_SUNRPC_BIND34=y
CONFIG_RPCSEC_GSS_KRB5=m
CONFIG_RPCSEC_GSS_SPKM3=m
# CONFIG_SMB_FS is not set
CONFIG_CIFS=m
CONFIG_CIFS_STATS=y
CONFIG_CIFS_STATS2=y
CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
# CONFIG_CIFS_DEBUG2 is not set
CONFIG_CIFS_EXPERIMENTAL=y
CONFIG_CIFS_UPCALL=y
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set

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

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_UNUSED_SYMBOLS=y
# CONFIG_PAGE_OWNER is not set
CONFIG_DEBUG_FS=y
CONFIG_HEADERS_CHECK=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_SHIRQ=y
CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_SCHED_DEBUG=y
CONFIG_SCHEDSTATS=y
CONFIG_TIMER_STATS=y
# CONFIG_SLUB_DEBUG_ON 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_LOCK_STAT 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=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
CONFIG_FRAME_POINTER=y
# CONFIG_PROFILE_LIKELY is not set
CONFIG_FORCED_INLINING=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_DEBUG_SYNCHRO_TEST is not set
CONFIG_RCU_TORTURE_TEST=m
# CONFIG_FAULT_INJECTION is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_SAMPLES is not set
CONFIG_EARLY_PRINTK=y
CONFIG_DEBUG_STACKOVERFLOW=y
# CONFIG_DEBUG_STACK_USAGE is not set
CONFIG_DEBUG_RODATA=y
# CONFIG_IOMMU_DEBUG is not set
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
CONFIG_IO_DELAY_TYPE_UDELAY=2
CONFIG_IO_DELAY_TYPE_NONE=3
CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not set
CONFIG_DEFAULT_IO_DELAY_TYPE=0

#
# Security options
#
CONFIG_KEYS=y
CONFIG_KEYS_DEBUG_PROC_KEYS=y
CONFIG_SECURITY=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_NETWORK_XFRM is not set
CONFIG_SECURITY_CAPABILITIES=y
CONFIG_SECURITY_FILE_CAPABILITIES=y
# CONFIG_SECURITY_SELINUX is not set
# CONFIG_SECURITY_SMACK is not set
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_BLKCIPHER=m
# CONFIG_CRYPTO_SEQIV is not set
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=m
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_GF128MUL=m
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_CBC=m
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_LRW=m
CONFIG_CRYPTO_XTS=m
# CONFIG_CRYPTO_CTR is not set
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_CCM is not set
CONFIG_CRYPTO_CRYPTD=m
CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
CONFIG_CRYPTO_TWOFISH_X86_64=m
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_AES_X86_64=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_SEED=m
# CONFIG_CRYPTO_SALSA20 is not set
# CONFIG_CRYPTO_SALSA20_X86_64 is not set
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_AUTHENC=m
# CONFIG_CRYPTO_LZO is not set
# CONFIG_CRYPTO_HW is not set
# CONFIG_VIRTUALIZATION is not set

#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_CRC_CCITT=m
CONFIG_CRC16=m
CONFIG_CRC_ITU_T=m
CONFIG_CRC32=y
CONFIG_CRC7=m
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
CONFIG_LZO_COMPRESS=m
CONFIG_LZO_DECOMPRESS=m
CONFIG_REED_SOLOMON=m
CONFIG_REED_SOLOMON_DEC16=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y


Attachments:
(No filename) (647.00 B)
2.6.24-rc6-mm1-config (58.12 kB)
Download all attachments

2007-12-23 13:34:16

by Rafael J. Wysocki

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

On Sunday, 23 of December 2007, Rafael J. Wysocki wrote:
> On Sunday, 23 of December 2007, Ingo Molnar wrote:
> >
> > * Rafael J. Wysocki <[email protected]> wrote:
> >
> > > Well it doesn't build on x86-64 for me:
> > >
> > > CHK include/linux/compile.h
> > > CC arch/x86/ia32/../../../fs/compat_binfmt_elf.o
> > > Assembler messages:
> > > Fatal error: can't create arch/x86/ia32/../../../fs/.tmp_compat_binfmt_elf.o: No such file or directory
> > > make[2]: *** [arch/x86/ia32/../../../fs/compat_binfmt_elf.o] Error 2
> > >
> > > I will post the .config if anyone is interested.
> >
> > yes, please send the .config.
>
> Attached.
>
> It also may be relevant that I compile the kernel with "make O=../build".

I ran the compilation once again and it worked. Strange.

Thanks,
Rafael

2007-12-23 16:27:23

by Torsten Kaiser

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

On Dec 23, 2007 8:30 AM, Andrew Morton <[email protected]> wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
[snip]
> +agk-dm-dm-snapshot-use-uninitialized_var.patch
> +agk-dm-dm-raid1-handle-write-failures.patch
> +agk-dm-dm-raid1-report-fault-status.patch
> +agk-dm-dm-raid1-fix-eio-after-log-failure.patch
> +agk-dm-dm-raid1-handle-read-failures.patch
> +agk-dm-dm-raid1-mark-and-clear-nosync-writes.patch
>
> device-mapper tree updates
[snip]
> +gregkh-driver-kref-add-kref_set.patch
> +gregkh-driver-kobject-convert-sys-firmware-acpi-to-use-kobject_create.patch
> +gregkh-driver-kobject-change-net-bridge-to-use-kobject_create_and_add.patch
> +gregkh-driver-kobject-change-gfs2-to-use-kobject_init_and_add.patch
> +gregkh-driver-kobject-change-drivers-infiniband-to-use-kobject_init_and_add.patch
> +gregkh-driver-kobject-change-drivers-firmware-eddc-to-use-kobject_init_and_add.patch
> +gregkh-driver-kobject-change-drivers-firmware-efivarsc-to-use-kobject_init_and_add.patch
> +gregkh-driver-kobject-change-drivers-cpufreq-cpufreqc-to-use-kobject_init_and_add.patch
> +gregkh-driver-kobject-change-drivers-edac-to-use-kobject_init_and_add.patch
> +gregkh-driver-kobject-change-drivers-cpuidle-sysfsc-to-use-kobject_init_and_add.patch
> +gregkh-driver-kobject-change-drivers-pci-hotplug-pci_hotplug_corec-to-use-kobject_init_and_add.patch
> +gregkh-driver-kobject-change-drivers-base-sysc-to-use-kobject_init_and_add.patch
> +gregkh-driver-kobject-change-arch-x86-kernel-cpu-intel_cacheinfoc-to-use-kobject_init_and_add.patch
> +gregkh-driver-kobject-change-drivers-acpi-systemc-to-use-kobject_create_and_add.patch
> +gregkh-driver-kobject-change-drivers-block-pktcdvdc-to-use-kobject_init_and_add.patch
> +gregkh-driver-kobject-change-arch-sh-kernel-cpu-sh4-sqc-to-use-kobject_init_and_add.patch
> +gregkh-driver-kobject-change-drivers-net-ibmvethc-to-use-kobject_init_and_add.patch
> +gregkh-driver-kobject-change-drivers-parisc-pdc_stablec-to-use-kobject_init_and_add.patch
> +gregkh-driver-kobject-change-arch-ia64-kernel-topologyc-to-use-kobject_init_and_add.patch
> +gregkh-driver-kobject-change-drivers-md-mdc-to-use-kobject_init_and_add.patch
> +gregkh-driver-kobject-change-arch-x86-kernel-cpu-mcheck-mce_amd_64c-to-use-kobject_create_and_add.patch
> +gregkh-driver-kobject-change-arch-x86-kernel-cpu-mcheck-mce_amd_64c-to-use-kobject_init_and_add.patch
> +gregkh-driver-kobject-the-cris-iop_fw_loadc-code-is-broken.patch
> +gregkh-driver-kobject-convert-drivers-base-classc-to-use-kobject_init-add_ng.patch
> +gregkh-driver-kobject-convert-drivers-base-corec-to-use-kobject_init-add_ng.patch
> +gregkh-driver-kobject-convert-drivers-net-iseries_vethc-to-use-kobject_init-add_ng.patch
> +gregkh-driver-kobject-convert-fs-char_devc-to-use-kobject_init-add_ng.patch
> +gregkh-driver-kobject-convert-kernel-paramsc-to-use-kobject_init-add_ng.patch
> +gregkh-driver-kobject-convert-kernel-userc-to-use-kobject_init-add_ng.patch
> +gregkh-driver-kobject-convert-mm-slubc-to-use-kobject_init-add_ng.patch
> +gregkh-driver-kobject-convert-net-bridge-br_ifc-to-use-kobject_init-add_ng.patch
> +gregkh-driver-driver-add-driver_add_kobj-for-looney-iseries_veth-driver.patch
> +gregkh-driver-kobject-change-drivers-base-bus-to-use-kobject_init_and_add.patch
> +gregkh-driver-kobject-convert-block-elevatorc-to-use-kobject_init-add_ng.patch
> +gregkh-driver-kobject-convert-block-ll_rw_blkc-to-use-kobject_init-add_ng.patch
> +gregkh-driver-kobject-convert-drivers-md-mdc-to-use-kobject_init-add_ng.patch
> +gregkh-driver-kobject-convert-kernel-modulec-to-use-kobject_init-add_ng.patch
> +gregkh-driver-kobject-remove-kobject_add-as-no-one-uses-it-anymore.patch
> +gregkh-driver-kobject-rename-kobject_add_ng-to-kobject_add.patch
> +gregkh-driver-kobject-remove-kobject_init-as-no-one-uses-it-anymore.patch
> +gregkh-driver-kobject-rename-kobject_init_ng-to-kobject_init.patch
> +gregkh-driver-kobject-remove-kobject_register.patch
> +gregkh-driver-kset-remove-kset_add-function.patch
> +gregkh-driver-kobject-auto-cleanup-on-final-unref.patch
> +gregkh-driver-kobject-convert-arch-from-kobject_unregister-to-kobject_put.patch
> +gregkh-driver-kobject-convert-drivers-from-kobject_unregister-to-kobject_put.patch
> +gregkh-driver-kobject-convert-fs-from-kobject_unregister-to-kobject_put.patch
> +gregkh-driver-kobject-convert-remaining-kobject_unregister-to-kobject_put.patch
> +gregkh-driver-kobject-remove-kobject_unregister-as-no-one-uses-it-anymore.patch
> +gregkh-driver-driver-core-change-sysdev-classes-to-use-dynamic-kobject-names.patch
> +gregkh-driver-kobject-remove-old-outdated-documentation.patch
> +gregkh-driver-kobject-update-the-kobject-kset-documentation.patch
> +gregkh-driver-kobject-add-sample-code-for-how-to-use-kobjects-in-a-simple-manner.patch
> +gregkh-driver-kobject-add-sample-code-for-how-to-use-ksets-ktypes-kobjects.patch
> +gregkh-driver-driver-core-use-list_head-instead-of-call-to-init_list_head-in-__init.patch
[snip]
> +md-support-external-metadata-for-md-arrays.patch
> +md-give-userspace-control-over-removing-failed-devices-when-external-metdata-in-use.patch
> +md-allow-a-maximum-extent-to-be-set-for-resyncing.patch
> +md-allow-devices-to-be-shared-between-md-arrays.patch
> +md-lock-address-when-changing-attributes-of-component-devices.patch
> +md-allow-an-md-array-to-appear-with-0-drives-if-it-has-external-metadata.patch
>
> RAID updates

I have finally given up on using 2.6.24-rc3-mm2 with slub_debug=FZP to
get more information out of the random crashes I had seen with that
version. (Did not crash once with slub_debug, so no new information on
what the cause was)

2.6.24-rc6-mm1 does not boot for me.
It starts my initrd, but when this wants to start the md devices it crashes:
[ 12.900887] Freeing unused kernel memory: 356k freed
[ 15.290320] Clocksource tsc unstable (delta = -558415384 ns)
[ 34.284845] md: Autodetecting RAID arrays.
[ 34.154076] md: Scanned 5 and added 5 devices.
[ 34.154076] md: autorun ...
[ 34.154080] md: considering sdc2 ...
[ 34.155472] md: adding sdc2 ...
[ 34.156728] md: adding sdb2 ...
[ 34.164080] md: sdb1 has different UUID to sdc2
[ 34.165836] md: adding sda2 ...
[ 34.174080] md: sda1 has different UUID to sdc2
[ 34.175852] md: created md1
[ 34.176938] md: bind<sda2>
[ 34.184147] md: bind<sdb2>
[ 34.185219] md: bind<sdc2>
[ 34.186284] md: running: <sdc2><sdb2><sda2>
[ 34.194604] md: do_md_run() returned -22
[ 34.196123] md: md1 stopped.
[ 34.197267] md: unbind<sdc2>
[ 34.204105] md: export_rdev(sdc2)
[ 34.205426] md: unbind<sdb2>
[ 34.206548] md: export_rdev(sdb2)
[ 34.214102] md: unbind<sda2>
[ 34.215223] md: export_rdev(sda2)
[ 34.216544] md: considering sdb1 ...
[ 34.224083] md: adding sdb1 ...
[ 34.225337] md: adding sda1 ...
[ 34.226696] Unable to handle kernel paging request at 0000000034333545 RIP:
[ 34.228481] [<ffffffff803b49a1>] kref_put+0x31/0x80
[ 34.231378] PGD 7e402067 PUD 7e924067 PMD 0
[ 34.233084] Oops: 0002 [1] SMP
[ 34.234076] last sysfs file: /sys/devices/virtual/block/md1/dev
[ 34.234076] CPU 3
[ 34.234076] Modules linked in:
[ 34.234076] Pid: 18, comm: events/3 Not tainted 2.6.24-rc6-mm1 #1
[ 34.234076] RIP: 0010:[<ffffffff803b49a1>] [<ffffffff803b49a1>]
kref_put+0x31/0x80
[ 34.234076] RSP: 0018:ffff81007ffd5e00 EFLAGS: 00010202
[ 34.234076] RAX: 0000000000000000 RBX: 0000000034333545 RCX: ffffffff80606270
[ 34.234076] RDX: 0000000000000040 RSI: ffffffff803b38b0 RDI: 0000000034333545
[ 34.234076] RBP: ffff81007ffd5e10 R08: 0000000000000001 R09: 0000000000000000
[ 34.234076] R10: ffffffff8094c430 R11: 0000000000000000 R12: ffffffff803b38b0
[ 34.234076] R13: ffff81011ed434d8 R14: ffffffff804d7d50 R15: ffff81011ff220f0
[ 34.234076] FS: 0000000000c7f870(0000) GS:ffff81011ff20280(0000)
knlGS:0000000000000000
[ 34.234076] CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
[ 34.234076] CR2: 0000000034333545 CR3: 000000007e5bc000 CR4: 00000000000006e0
[ 34.234076] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 34.234076] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 34.234076] Process events/3 (pid: 18, threadinfo ffff81007ffd4000,
task ffff81007ffd2000)
[ 34.234076] Stack: ffff81011ed43460 ffff81011ff220c0
ffff81007ffd5e20 ffffffff803b37e9
[ 34.234076] ffff81007ffd5e40 ffffffff803b389b ffff81007ffd5e50
ffff81011ed434e0
[ 34.234076] ffff81007ffd5e50 ffffffff804d7d5d ffff81007ffd5eb0
ffffffff80249775
[ 34.234076] Call Trace:
[ 34.234076] [<ffffffff803b37e9>] kobject_put+0x19/0x20
[ 34.234076] [<ffffffff803b389b>] kobject_del+0x2b/0x40
[ 34.234076] [<ffffffff804d7d5d>] delayed_delete+0xd/0x10
[ 34.234076] [<ffffffff80249775>] run_workqueue+0x175/0x210
[ 34.234076] [<ffffffff8024a411>] worker_thread+0x71/0xb0
[ 34.234076] [<ffffffff8024d9e0>] autoremove_wake_function+0x0/0x40
[ 34.234076] [<ffffffff8024a3a0>] worker_thread+0x0/0xb0
[ 34.234076] [<ffffffff8024d5fd>] kthread+0x4d/0x80
[ 34.234076] [<ffffffff8020c4b8>] child_rip+0xa/0x12
[ 34.234076] [<ffffffff8020bbcf>] restore_args+0x0/0x30
[ 34.234076] [<ffffffff8024d5b0>] kthread+0x0/0x80
[ 34.234076] [<ffffffff8020c4ae>] child_rip+0x0/0x12
[ 34.234076]
[ 34.234076]
[ 34.234076] Code: f0 ff 0b 0f 94 c0 31 d2 84 c0 74 0b 48 89 df 41 ff d4 ba 01
[ 34.234076] RIP [<ffffffff803b49a1>] kref_put+0x31/0x80
[ 34.234076] RSP <ffff81007ffd5e00>
[ 34.234076] CR2: 0000000034333545
[ 34.234080] ---[ end trace 303353bd9dfe95b0 ]---
[ 34.236037] md: created md0
[ 34.237125] md: bind<sda1>
[ 34.244088] md: bind<sdb1>
[ 34.245152] md: running: <sdb1><sda1>
[ 34.246626] md: do_md_run() returned -22
[ 34.254078] md: md0 stopped.
[ 45.657898] SysRq : Resetting

# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[0]
9775424 blocks [2/2] [UU]
bitmap: 0/150 pages [0KB], 32KB chunk

md1 : active raid5 sdc2[2] sdb2[1] sda2[0]
605586048 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
bitmap: 2/145 pages [8KB], 1024KB chunk

unused devices: <none>

Should I blame the raid1 changes or the kobject changes?

Torsten

2007-12-23 20:08:04

by Sam Ravnborg

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

On Sun, Dec 23, 2007 at 02:53:34PM +0100, Rafael J. Wysocki wrote:
> On Sunday, 23 of December 2007, Rafael J. Wysocki wrote:
> > On Sunday, 23 of December 2007, Ingo Molnar wrote:
> > >
> > > * Rafael J. Wysocki <[email protected]> wrote:
> > >
> > > > Well it doesn't build on x86-64 for me:
> > > >
> > > > CHK include/linux/compile.h
> > > > CC arch/x86/ia32/../../../fs/compat_binfmt_elf.o
> > > > Assembler messages:
> > > > Fatal error: can't create arch/x86/ia32/../../../fs/.tmp_compat_binfmt_elf.o: No such file or directory
> > > > make[2]: *** [arch/x86/ia32/../../../fs/compat_binfmt_elf.o] Error 2
> > > >
> > > > I will post the .config if anyone is interested.
> > >
> > > yes, please send the .config.
> >
> > Attached.
> >
> > It also may be relevant that I compile the kernel with "make O=../build".
>
> I ran the compilation once again and it worked. Strange.
Try to delete your fs/ directory in your output dir.
Then I expect the same bug to surface again.

I guess it is because arch/x86/ia32/ is built before fs/ and
gcc cannot create directories for the output files and
it is the dependency files that triggers the error as this
is the first file to be generated.
The right fix is to move the build of compat_binfmt_elf to
fs/Makefile as already discussed.

Sam

2007-12-23 20:40:49

by Andrew Morton

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

On Sun, 23 Dec 2007 17:27:12 +0100 "Torsten Kaiser" <[email protected]> wrote:

> On Dec 23, 2007 8:30 AM, Andrew Morton <[email protected]> wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
> [snip]
> > +agk-dm-dm-snapshot-use-uninitialized_var.patch
> > +agk-dm-dm-raid1-handle-write-failures.patch
> > +agk-dm-dm-raid1-report-fault-status.patch
> > +agk-dm-dm-raid1-fix-eio-after-log-failure.patch
> > +agk-dm-dm-raid1-handle-read-failures.patch
> > +agk-dm-dm-raid1-mark-and-clear-nosync-writes.patch
> >
> > device-mapper tree updates
> [snip]
> > +gregkh-driver-kref-add-kref_set.patch
> > +gregkh-driver-kobject-convert-sys-firmware-acpi-to-use-kobject_create.patch
> > +gregkh-driver-kobject-change-net-bridge-to-use-kobject_create_and_add.patch
> > +gregkh-driver-kobject-change-gfs2-to-use-kobject_init_and_add.patch
> > +gregkh-driver-kobject-change-drivers-infiniband-to-use-kobject_init_and_add.patch
> > +gregkh-driver-kobject-change-drivers-firmware-eddc-to-use-kobject_init_and_add.patch
> > +gregkh-driver-kobject-change-drivers-firmware-efivarsc-to-use-kobject_init_and_add.patch
> > +gregkh-driver-kobject-change-drivers-cpufreq-cpufreqc-to-use-kobject_init_and_add.patch
> > +gregkh-driver-kobject-change-drivers-edac-to-use-kobject_init_and_add.patch
> > +gregkh-driver-kobject-change-drivers-cpuidle-sysfsc-to-use-kobject_init_and_add.patch
> > +gregkh-driver-kobject-change-drivers-pci-hotplug-pci_hotplug_corec-to-use-kobject_init_and_add.patch
> > +gregkh-driver-kobject-change-drivers-base-sysc-to-use-kobject_init_and_add.patch
> > +gregkh-driver-kobject-change-arch-x86-kernel-cpu-intel_cacheinfoc-to-use-kobject_init_and_add.patch
> > +gregkh-driver-kobject-change-drivers-acpi-systemc-to-use-kobject_create_and_add.patch
> > +gregkh-driver-kobject-change-drivers-block-pktcdvdc-to-use-kobject_init_and_add.patch
> > +gregkh-driver-kobject-change-arch-sh-kernel-cpu-sh4-sqc-to-use-kobject_init_and_add.patch
> > +gregkh-driver-kobject-change-drivers-net-ibmvethc-to-use-kobject_init_and_add.patch
> > +gregkh-driver-kobject-change-drivers-parisc-pdc_stablec-to-use-kobject_init_and_add.patch
> > +gregkh-driver-kobject-change-arch-ia64-kernel-topologyc-to-use-kobject_init_and_add.patch
> > +gregkh-driver-kobject-change-drivers-md-mdc-to-use-kobject_init_and_add.patch
> > +gregkh-driver-kobject-change-arch-x86-kernel-cpu-mcheck-mce_amd_64c-to-use-kobject_create_and_add.patch
> > +gregkh-driver-kobject-change-arch-x86-kernel-cpu-mcheck-mce_amd_64c-to-use-kobject_init_and_add.patch
> > +gregkh-driver-kobject-the-cris-iop_fw_loadc-code-is-broken.patch
> > +gregkh-driver-kobject-convert-drivers-base-classc-to-use-kobject_init-add_ng.patch
> > +gregkh-driver-kobject-convert-drivers-base-corec-to-use-kobject_init-add_ng.patch
> > +gregkh-driver-kobject-convert-drivers-net-iseries_vethc-to-use-kobject_init-add_ng.patch
> > +gregkh-driver-kobject-convert-fs-char_devc-to-use-kobject_init-add_ng.patch
> > +gregkh-driver-kobject-convert-kernel-paramsc-to-use-kobject_init-add_ng.patch
> > +gregkh-driver-kobject-convert-kernel-userc-to-use-kobject_init-add_ng.patch
> > +gregkh-driver-kobject-convert-mm-slubc-to-use-kobject_init-add_ng.patch
> > +gregkh-driver-kobject-convert-net-bridge-br_ifc-to-use-kobject_init-add_ng.patch
> > +gregkh-driver-driver-add-driver_add_kobj-for-looney-iseries_veth-driver.patch
> > +gregkh-driver-kobject-change-drivers-base-bus-to-use-kobject_init_and_add.patch
> > +gregkh-driver-kobject-convert-block-elevatorc-to-use-kobject_init-add_ng.patch
> > +gregkh-driver-kobject-convert-block-ll_rw_blkc-to-use-kobject_init-add_ng.patch
> > +gregkh-driver-kobject-convert-drivers-md-mdc-to-use-kobject_init-add_ng.patch
> > +gregkh-driver-kobject-convert-kernel-modulec-to-use-kobject_init-add_ng.patch
> > +gregkh-driver-kobject-remove-kobject_add-as-no-one-uses-it-anymore.patch
> > +gregkh-driver-kobject-rename-kobject_add_ng-to-kobject_add.patch
> > +gregkh-driver-kobject-remove-kobject_init-as-no-one-uses-it-anymore.patch
> > +gregkh-driver-kobject-rename-kobject_init_ng-to-kobject_init.patch
> > +gregkh-driver-kobject-remove-kobject_register.patch
> > +gregkh-driver-kset-remove-kset_add-function.patch
> > +gregkh-driver-kobject-auto-cleanup-on-final-unref.patch
> > +gregkh-driver-kobject-convert-arch-from-kobject_unregister-to-kobject_put.patch
> > +gregkh-driver-kobject-convert-drivers-from-kobject_unregister-to-kobject_put.patch
> > +gregkh-driver-kobject-convert-fs-from-kobject_unregister-to-kobject_put.patch
> > +gregkh-driver-kobject-convert-remaining-kobject_unregister-to-kobject_put.patch
> > +gregkh-driver-kobject-remove-kobject_unregister-as-no-one-uses-it-anymore.patch
> > +gregkh-driver-driver-core-change-sysdev-classes-to-use-dynamic-kobject-names.patch
> > +gregkh-driver-kobject-remove-old-outdated-documentation.patch
> > +gregkh-driver-kobject-update-the-kobject-kset-documentation.patch
> > +gregkh-driver-kobject-add-sample-code-for-how-to-use-kobjects-in-a-simple-manner.patch
> > +gregkh-driver-kobject-add-sample-code-for-how-to-use-ksets-ktypes-kobjects.patch
> > +gregkh-driver-driver-core-use-list_head-instead-of-call-to-init_list_head-in-__init.patch
> [snip]
> > +md-support-external-metadata-for-md-arrays.patch
> > +md-give-userspace-control-over-removing-failed-devices-when-external-metdata-in-use.patch
> > +md-allow-a-maximum-extent-to-be-set-for-resyncing.patch
> > +md-allow-devices-to-be-shared-between-md-arrays.patch
> > +md-lock-address-when-changing-attributes-of-component-devices.patch
> > +md-allow-an-md-array-to-appear-with-0-drives-if-it-has-external-metadata.patch
> >
> > RAID updates
>
> I have finally given up on using 2.6.24-rc3-mm2 with slub_debug=FZP to
> get more information out of the random crashes I had seen with that
> version. (Did not crash once with slub_debug, so no new information on
> what the cause was)
>
> 2.6.24-rc6-mm1 does not boot for me.
> It starts my initrd, but when this wants to start the md devices it crashes:
> [ 12.900887] Freeing unused kernel memory: 356k freed
> [ 15.290320] Clocksource tsc unstable (delta = -558415384 ns)
> [ 34.284845] md: Autodetecting RAID arrays.
> [ 34.154076] md: Scanned 5 and added 5 devices.
> [ 34.154076] md: autorun ...
> [ 34.154080] md: considering sdc2 ...
> [ 34.155472] md: adding sdc2 ...
> [ 34.156728] md: adding sdb2 ...
> [ 34.164080] md: sdb1 has different UUID to sdc2
> [ 34.165836] md: adding sda2 ...
> [ 34.174080] md: sda1 has different UUID to sdc2
> [ 34.175852] md: created md1
> [ 34.176938] md: bind<sda2>
> [ 34.184147] md: bind<sdb2>
> [ 34.185219] md: bind<sdc2>
> [ 34.186284] md: running: <sdc2><sdb2><sda2>
> [ 34.194604] md: do_md_run() returned -22
> [ 34.196123] md: md1 stopped.
> [ 34.197267] md: unbind<sdc2>
> [ 34.204105] md: export_rdev(sdc2)
> [ 34.205426] md: unbind<sdb2>
> [ 34.206548] md: export_rdev(sdb2)
> [ 34.214102] md: unbind<sda2>
> [ 34.215223] md: export_rdev(sda2)
> [ 34.216544] md: considering sdb1 ...
> [ 34.224083] md: adding sdb1 ...
> [ 34.225337] md: adding sda1 ...
> [ 34.226696] Unable to handle kernel paging request at 0000000034333545 RIP:
> [ 34.228481] [<ffffffff803b49a1>] kref_put+0x31/0x80
> [ 34.231378] PGD 7e402067 PUD 7e924067 PMD 0
> [ 34.233084] Oops: 0002 [1] SMP
> [ 34.234076] last sysfs file: /sys/devices/virtual/block/md1/dev
> [ 34.234076] CPU 3
> [ 34.234076] Modules linked in:
> [ 34.234076] Pid: 18, comm: events/3 Not tainted 2.6.24-rc6-mm1 #1
> [ 34.234076] RIP: 0010:[<ffffffff803b49a1>] [<ffffffff803b49a1>]
> kref_put+0x31/0x80
> [ 34.234076] RSP: 0018:ffff81007ffd5e00 EFLAGS: 00010202
> [ 34.234076] RAX: 0000000000000000 RBX: 0000000034333545 RCX: ffffffff80606270
> [ 34.234076] RDX: 0000000000000040 RSI: ffffffff803b38b0 RDI: 0000000034333545
> [ 34.234076] RBP: ffff81007ffd5e10 R08: 0000000000000001 R09: 0000000000000000
> [ 34.234076] R10: ffffffff8094c430 R11: 0000000000000000 R12: ffffffff803b38b0
> [ 34.234076] R13: ffff81011ed434d8 R14: ffffffff804d7d50 R15: ffff81011ff220f0
> [ 34.234076] FS: 0000000000c7f870(0000) GS:ffff81011ff20280(0000)
> knlGS:0000000000000000
> [ 34.234076] CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
> [ 34.234076] CR2: 0000000034333545 CR3: 000000007e5bc000 CR4: 00000000000006e0
> [ 34.234076] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [ 34.234076] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> [ 34.234076] Process events/3 (pid: 18, threadinfo ffff81007ffd4000,
> task ffff81007ffd2000)
> [ 34.234076] Stack: ffff81011ed43460 ffff81011ff220c0
> ffff81007ffd5e20 ffffffff803b37e9
> [ 34.234076] ffff81007ffd5e40 ffffffff803b389b ffff81007ffd5e50
> ffff81011ed434e0
> [ 34.234076] ffff81007ffd5e50 ffffffff804d7d5d ffff81007ffd5eb0
> ffffffff80249775
> [ 34.234076] Call Trace:
> [ 34.234076] [<ffffffff803b37e9>] kobject_put+0x19/0x20
> [ 34.234076] [<ffffffff803b389b>] kobject_del+0x2b/0x40
> [ 34.234076] [<ffffffff804d7d5d>] delayed_delete+0xd/0x10
> [ 34.234076] [<ffffffff80249775>] run_workqueue+0x175/0x210
> [ 34.234076] [<ffffffff8024a411>] worker_thread+0x71/0xb0
> [ 34.234076] [<ffffffff8024d9e0>] autoremove_wake_function+0x0/0x40
> [ 34.234076] [<ffffffff8024a3a0>] worker_thread+0x0/0xb0
> [ 34.234076] [<ffffffff8024d5fd>] kthread+0x4d/0x80
> [ 34.234076] [<ffffffff8020c4b8>] child_rip+0xa/0x12
> [ 34.234076] [<ffffffff8020bbcf>] restore_args+0x0/0x30
> [ 34.234076] [<ffffffff8024d5b0>] kthread+0x0/0x80
> [ 34.234076] [<ffffffff8020c4ae>] child_rip+0x0/0x12
> [ 34.234076]
> [ 34.234076]
> [ 34.234076] Code: f0 ff 0b 0f 94 c0 31 d2 84 c0 74 0b 48 89 df 41 ff d4 ba 01
> [ 34.234076] RIP [<ffffffff803b49a1>] kref_put+0x31/0x80
> [ 34.234076] RSP <ffff81007ffd5e00>
> [ 34.234076] CR2: 0000000034333545
> [ 34.234080] ---[ end trace 303353bd9dfe95b0 ]---
> [ 34.236037] md: created md0
> [ 34.237125] md: bind<sda1>
> [ 34.244088] md: bind<sdb1>
> [ 34.245152] md: running: <sdb1><sda1>
> [ 34.246626] md: do_md_run() returned -22
> [ 34.254078] md: md0 stopped.
> [ 45.657898] SysRq : Resetting
>
> # cat /proc/mdstat
> Personalities : [raid1] [raid6] [raid5] [raid4]
> md0 : active raid1 sdb1[1] sda1[0]
> 9775424 blocks [2/2] [UU]
> bitmap: 0/150 pages [0KB], 32KB chunk
>
> md1 : active raid5 sdc2[2] sdb2[1] sda2[0]
> 605586048 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
> bitmap: 2/145 pages [8KB], 1024KB chunk
>
> unused devices: <none>
>
> Should I blame the raid1 changes or the kobject changes?
>

I don't know. It could even be that both patch series are OK but when they
are combined, things fail.

Greg, Alasdair: the above looks like a preview of 2.6.25-rc1 :(

2007-12-23 22:25:35

by Rafael J. Wysocki

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

On Sunday, 23 of December 2007, Sam Ravnborg wrote:
> On Sun, Dec 23, 2007 at 02:53:34PM +0100, Rafael J. Wysocki wrote:
> > On Sunday, 23 of December 2007, Rafael J. Wysocki wrote:
> > > On Sunday, 23 of December 2007, Ingo Molnar wrote:
> > > >
> > > > * Rafael J. Wysocki <[email protected]> wrote:
> > > >
> > > > > Well it doesn't build on x86-64 for me:
> > > > >
> > > > > CHK include/linux/compile.h
> > > > > CC arch/x86/ia32/../../../fs/compat_binfmt_elf.o
> > > > > Assembler messages:
> > > > > Fatal error: can't create arch/x86/ia32/../../../fs/.tmp_compat_binfmt_elf.o: No such file or directory
> > > > > make[2]: *** [arch/x86/ia32/../../../fs/compat_binfmt_elf.o] Error 2
> > > > >
> > > > > I will post the .config if anyone is interested.
> > > >
> > > > yes, please send the .config.
> > >
> > > Attached.
> > >
> > > It also may be relevant that I compile the kernel with "make O=../build".
> >
> > I ran the compilation once again and it worked. Strange.
> Try to delete your fs/ directory in your output dir.
> Then I expect the same bug to surface again.

It does surface indeed.

> I guess it is because arch/x86/ia32/ is built before fs/ and
> gcc cannot create directories for the output files and
> it is the dependency files that triggers the error as this
> is the first file to be generated.

I think you are right.

Greetings,
Rafael

2007-12-23 22:35:19

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: suspend broken on HP nx6325 due to cpufreq changes

On Sunday, 23 of December 2007, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
>
> - This kernel doesn't work on i386!
>
> It oopses late in boot due to an unrevertable change (e3c1b141) in git-x86
> which I stared at for a while then I ran out of time and gave up.
>
> I would have just abandoned this release until it was fixed but I'll be
> largely offline for ten days starting tomorrow.
>
> The culprits have been notified and hopefully we'll have a patch for
> hot-fixes/ tomorrow.
>
> x86_64 and powerpc work OK though.
>
> - git-block is dropped due to more conflicts that I'm prepared to repair
> with git-scsi-misc
>
> - git-perfmon is dropped due to conflicts with git-x86
>
> - git-kgdb is dropped due to conflicts with git-x86
>
> - git-newsetup is dropped due to conflicts with git-x86
>
> - Andi's x86 quilt tree is dropped due to conflicts with git-x86
>
> - Someone broke suspend-to-RAM on the t61p again. It just instantly resumes
> itself.

Suspend is also broken on my HP nx6325 (hangs hard in the last phase of
suspend) and git-cpufreq.patch is responsible for that (as shown by bisection).

Reverting git-cpufreq.patch makes suspend work again, although it still is a
bit flaky (it takes well more than 5 seconds to suspend and the sound adapter
doesn't work right after the resume, but it starts to work again about 10s
later).

Thanks,
Rafael

2007-12-23 22:51:09

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: suspend broken on HP nx6325 due to cpufreq changes

On Sun, 23 Dec 2007 23:54:40 +0100 "Rafael J. Wysocki" <[email protected]> wrote:

> On Sunday, 23 of December 2007, Andrew Morton wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
> >
> > - This kernel doesn't work on i386!
> >
> > It oopses late in boot due to an unrevertable change (e3c1b141) in git-x86
> > which I stared at for a while then I ran out of time and gave up.
> >
> > I would have just abandoned this release until it was fixed but I'll be
> > largely offline for ten days starting tomorrow.
> >
> > The culprits have been notified and hopefully we'll have a patch for
> > hot-fixes/ tomorrow.
> >
> > x86_64 and powerpc work OK though.
> >
> > - git-block is dropped due to more conflicts that I'm prepared to repair
> > with git-scsi-misc
> >
> > - git-perfmon is dropped due to conflicts with git-x86
> >
> > - git-kgdb is dropped due to conflicts with git-x86
> >
> > - git-newsetup is dropped due to conflicts with git-x86
> >
> > - Andi's x86 quilt tree is dropped due to conflicts with git-x86
> >
> > - Someone broke suspend-to-RAM on the t61p again. It just instantly resumes
> > itself.
>
> Suspend is also broken on my HP nx6325 (hangs hard in the last phase of
> suspend) and git-cpufreq.patch is responsible for that (as shown by bisection).
>
> Reverting git-cpufreq.patch makes suspend work again,

ah. Thanks.

> although it still is a
> bit flaky (it takes well more than 5 seconds to suspend and the sound adapter
> doesn't work right after the resume, but it starts to work again about 10s
> later).

hm. There have been some suspend changes in the alsa tree.

And yes, I noticed that susped has become slower too - looks like abot ten
seconds, which is a pretty significant usability irritant.

2007-12-23 22:56:56

by Dave Jones

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: suspend broken on HP nx6325 due to cpufreq changes

On Sun, Dec 23, 2007 at 02:50:03PM -0800, Andrew Morton wrote:

> > > - Someone broke suspend-to-RAM on the t61p again. It just instantly resumes
> > > itself.
> >
> > Suspend is also broken on my HP nx6325 (hangs hard in the last phase of
> > suspend) and git-cpufreq.patch is responsible for that (as shown by bisection).
> >
> > Reverting git-cpufreq.patch makes suspend work again,
>
> ah. Thanks.

I'm not sure how this is 'new' breakage, because git-cpufreq hasn't changed
in a while, other than the integration of that missing #include diff
that sat in -mm. Maybe some bad interaction with something else that
changed perhaps. *shrug*.

I'm on vacation until the new year, so I'm going out of my way not to look
at bugs for a change. But I'm not ignoring this completely, I'll make a
note to look at it in January.

Dave

--
http://www.codemonkey.org.uk

2007-12-23 23:11:53

by H. Peter Anvin

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

Rafael J. Wysocki wrote:
> On Sunday, 23 of December 2007, Andrew Morton wrote:
>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
>>
>> - This kernel doesn't work on i386!
>>
>> It oopses late in boot due to an unrevertable change (e3c1b141) in git-x86
>> which I stared at for a while then I ran out of time and gave up.
>>
>> I would have just abandoned this release until it was fixed but I'll be
>> largely offline for ten days starting tomorrow.
>>
>> The culprits have been notified and hopefully we'll have a patch for
>> hot-fixes/ tomorrow.
>>
>> x86_64 and powerpc work OK though.
>
> Well it doesn't build on x86-64 for me:
>
> CHK include/linux/compile.h
> CC arch/x86/ia32/../../../fs/compat_binfmt_elf.o
> Assembler messages:
> Fatal error: can't create arch/x86/ia32/../../../fs/.tmp_compat_binfmt_elf.o: No such file or directory
> make[2]: *** [arch/x86/ia32/../../../fs/compat_binfmt_elf.o] Error 2
>
> I will post the .config if anyone is interested.
>

It's a Kbuild race -- if you keep re-building it will eventually build
the right file.

Not excusable, but that's what's going on.

-hpa

2007-12-24 01:25:52

by Herbert Xu

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

On Sun, Dec 23, 2007 at 12:14:10PM -0800, Andrew Morton wrote:
>
> No, the problem is that include/crypto/scatterwalk.h doesn't include enough
> header files to support its inlining fetish. It needs sched.h.

I'll get it fixed in cryptodev.

> Ingo, it's not good that we have cond_resched() definitions conditionally
> duplicated in kernel.h - that's increasing the risk of bugs like this one.

Actually, why do we even have cond_resched when real preemption
is on? It seems to be a waste of space and time.

Any objections to something like this to remove cond_resched with
CONFIG_PREEMPT on (apart from the potential to uncover more bugs
like this one)?

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
--
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 94bc996..a7283c9 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -105,8 +105,8 @@ struct user;
* supposed to.
*/
#ifdef CONFIG_PREEMPT_VOLUNTARY
-extern int cond_resched(void);
-# define might_resched() cond_resched()
+extern int _cond_resched(void);
+# define might_resched() _cond_resched()
#else
# define might_resched() do { } while (0)
#endif
diff --git a/include/linux/sched.h b/include/linux/sched.h
index ac3d496..ae8e9bd 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1863,7 +1863,18 @@ static inline int need_resched(void)
* cond_resched_lock() will drop the spinlock before scheduling,
* cond_resched_softirq() will enable bhs before scheduling.
*/
-extern int cond_resched(void);
+#ifdef CONFIG_PREEMPT
+static inline int cond_resched(void)
+{
+ return 0;
+}
+#else
+extern int _cond_resched(void);
+static inline int cond_resched(void)
+{
+ return _cond_resched();
+}
+#endif
extern int cond_resched_lock(spinlock_t * lock);
extern int cond_resched_softirq(void);

diff --git a/kernel/sched.c b/kernel/sched.c
index 3df84ea..2dc2bbf 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -4683,7 +4683,8 @@ static void __cond_resched(void)
} while (need_resched());
}

-int __sched cond_resched(void)
+#if !defined(CONFIG_PREEMPT) || defined(CONFIG_PREEMPT_VOLUNTARY)
+int __sched _cond_resched(void)
{
if (need_resched() && !(preempt_count() & PREEMPT_ACTIVE) &&
system_state == SYSTEM_RUNNING) {
@@ -4692,7 +4693,8 @@ int __sched cond_resched(void)
}
return 0;
}
-EXPORT_SYMBOL(cond_resched);
+EXPORT_SYMBOL(_cond_resched);
+#endif

/*
* cond_resched_lock() - if a reschedule is pending, drop the given lock,

2007-12-24 13:46:34

by Takashi Iwai

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: suspend broken on HP nx6325 due to cpufreq changes

At Sun, 23 Dec 2007 14:50:03 -0800,
Andrew Morton wrote:
>
> > although it still is a
> > bit flaky (it takes well more than 5 seconds to suspend and the sound adapter
> > doesn't work right after the resume, but it starts to work again about 10s
> > later).
>
> hm. There have been some suspend changes in the alsa tree.

Not really. The usb-audio suspend support is the only addition on
mm. It should be irrelevant with on-board HD-audio...


Takashi

2007-12-24 13:53:58

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: suspend broken on HP nx6325 due to cpufreq changes

On Monday, 24 of December 2007, Takashi Iwai wrote:
> At Sun, 23 Dec 2007 14:50:03 -0800,
> Andrew Morton wrote:
> >
> > > although it still is a
> > > bit flaky (it takes well more than 5 seconds to suspend and the sound adapter
> > > doesn't work right after the resume, but it starts to work again about 10s
> > > later).
> >
> > hm. There have been some suspend changes in the alsa tree.
>
> Not really. The usb-audio suspend support is the only addition on
> mm. It should be irrelevant with on-board HD-audio...

Well, I'm suspecting some ACPI changes, but will be only able to debug it
further in a couple of days.

Rafael

2007-12-25 21:51:34

by Andreas Mohr

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

Hi,

another one most likely related to the recent NFS_V4 define build error
saga:

CC fs/nfs/super.o
fs/nfs/super.c: In function 'nfs_sb_deactive':
fs/nfs/super.c:338: error: 'TASK_NORMAL' undeclared (first use in this function)
fs/nfs/super.c:338: error: (Each undeclared identifier is reported only once
fs/nfs/super.c:338: error: for each function it appears in.)
fs/nfs/super.c: In function 'nfs_put_super':
fs/nfs/super.c:349: error: 'TASK_UNINTERRUPTIBLE' undeclared (first use in this function)
fs/nfs/super.c:349: error: implicit declaration of function 'schedule'
make[3]: *** [fs/nfs/super.o] Error 1
make[2]: *** [fs/nfs] Error 2
make[1]: *** [fs] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.24-rc6-mm1.system-gate-patch'
make: *** [debian/stamp-build-kernel] Error 2


This was hand-patched from earlier kernel versions, however I wouldn't
think there was any problem due to this (a cleanly extracted version
doesn't show any md5sum difference for fs/nfs/super.c).

[plus hotfix x86-fix-system-gate-related-crash.patch]

I'm circa 120% sure there must be a sched.h include missing there, given the
whereabouts of these APIs ;)


CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
CONFIG_NFS_V4=y
# CONFIG_NFS_DIRECTIO is not set
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V3_ACL is not set
CONFIG_NFSD_V4=y
CONFIG_NFSD_TCP=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=y
CONFIG_NFS_COMMON=y


i386 K6-III@150, gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)

Thanks,

Andreas Mohr

2007-12-26 05:43:48

by Valdis Klētnieks

[permalink] [raw]
Subject: 2.6.24-rc6-mm1 - git-lblnet.patch and networking horkage

On Sat, 22 Dec 2007 23:30:56 PST, Andrew Morton said:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/

I've bisected it down this far:

kvm-ist-kaput.patch GOOD
git-lblnet.patch
git-lblnet-fixup.patch
git-leds.patch
git-libata-all.patch
git-libata-all-fix-pata_winbond-borkage.patch
git-libata-all-wtf.patch BAD

and somehow, I doubt the leds or libata trees horked up networking. ;)

Symptoms - semi-sporadic failures in making network connections. The test
case that tripped it up was the 'make test' from the Tcl 8.5 - several of the
test cases will create a listening socket, and then try to connect to it.
Under 2.6.24-rc5-mm1, it works just fine, but I'm seeing hangs under -rc6-mm1.
Doing a 'netstat -n -a -A inet -p' while it's hung shows me this:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:34118 0.0.0.0:* LISTEN 2236/tcltest
tcp 0 1 127.0.0.1:59460 127.0.0.1:34118 SYN_SENT 2236/tcltest
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:47842 0.0.0.0:* LISTEN 2352/tcltest
tcp 0 1 127.0.0.1:46510 127.0.0.1:47842 SYN_SENT 2352/tcltest
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:47842 0.0.0.0:* LISTEN 2352/tcltest
tcp 0 1 127.0.0.1:46510 127.0.0.1:47842 SYN_SENT 2352/tcltest

Pretty consistent failure mode - a socket is in 'listen', and the connection
gets hung in 'SYN_SENT'. There's 3 outputs listed - the first one from one run
of the test case, the second 2 are some 20 seconds apart on the same run.
It's pretty obvious that if you can't complete a 3-packet handshake to loopback
in 20 seconds, something is hosed. However, it's apparently some sort of
race/timing issue, as many *other* test cases in the Tcl test tree do in fact
work OK.

I already checked, it's not a slam-dunk to just 'patch -R' as there's 3 or 4
conflicts where later patches need massaging/reverting as well.

It's a problem with both 'classic RCU' and 'preempt RCU' (that was my *first*
guess as to the cause).

Any clues/hints/advice/patches?


Attachments:
(No filename) (226.00 B)

2007-12-26 07:34:50

by James Morris

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 - git-lblnet.patch and networking horkage

On Wed, 26 Dec 2007, [email protected] wrote:

> I already checked, it's not a slam-dunk to just 'patch -R' as there's 3 or 4
> conflicts where later patches need massaging/reverting as well.
>
> It's a problem with both 'classic RCU' and 'preempt RCU' (that was my *first*
> guess as to the cause).
>
> Any clues/hints/advice/patches?

Can you post your .config ?

Also, is that the plain upstream Tcl package you're compiling, or a distro
package?

--
James Morris
<[email protected]>

2007-12-26 08:25:49

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 - git-lblnet.patch and networking horkage

On Wed, 26 Dec 2007 18:34:26 +1100, James Morris said:

> Can you post your .config ?

The gzip'ed config as of when I quit bisecting is attached. It's probably
not directly usable unless you have a quilt tree that's positioned fairly
close to git-lblnet.patch.

> Also, is that the plain upstream Tcl package you're compiling, or a distro
> package?

It's actually a CVS pull of the upstream, but tcl 8.5 was released back on
12/19, and there's nothing obvious in the 4 commits since then. So you should
be able to snarf a 8.5 source tarball, untar it, 'cd tcl/unix', run
./configure, make, make test, and that should replicate it - the 'socket'
test hangs quite consistently for me, and a few earlier ones *sometimes*
hang.


Attachments:
config-lblnet.gz (11.95 kB)
config-lblnet.gz
(No filename) (226.00 B)
Download all attachments

2007-12-26 08:37:30

by Dave Young

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

There's some section mismatch warnings :

MODPOST vmlinux.o
WARNING: vmlinux.o(.text+0x1685c): Section mismatch: reference to
.init.data: (between 'check_dev_quirk' and 'apm_error')
WARNING: vmlinux.o(.text+0x1687b): Section mismatch: reference to
.init.data: (between 'check_dev_quirk' and 'apm_error')
WARNING: vmlinux.o(.text+0x16885): Section mismatch: reference to
.init.data:early_qrk (between 'check_dev_quirk' and 'apm_error')
WARNING: vmlinux.o(.text+0x16890): Section mismatch: reference to
.init.data: (between 'check_dev_quirk' and 'apm_error')
WARNING: vmlinux.o(.text+0x168a3): Section mismatch: reference to
.init.data: (between 'check_dev_quirk' and 'apm_error')
WARNING: vmlinux.o(.text+0x168ab): Section mismatch: reference to
.init.data: (between 'check_dev_quirk' and 'apm_error')
WARNING: vmlinux.o(.text+0x168b3): Section mismatch: reference to
.init.data: (between 'check_dev_quirk' and 'apm_error')
WARNING: vmlinux.o(.text+0x168cd): Section mismatch: reference to
.init.data: (between 'check_dev_quirk' and 'apm_error')
WARNING: vmlinux.o(.text+0x168d3): Section mismatch: reference to
.init.data: (between 'check_dev_quirk' and 'apm_error')
WARNING: vmlinux.o(.text+0x168dc): Section mismatch: reference to
.init.data: (between 'check_dev_quirk' and 'apm_error')
WARNING: vmlinux.o(.text+0x168e5): Section mismatch: reference to
.init.data: (between 'check_dev_quirk' and 'apm_error')

config file :

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.24-rc6-mm1
# Tue Dec 25 14:47:52 2007
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
# CONFIG_X86_64 is not set
CONFIG_X86=y
# CONFIG_GENERIC_LOCKBREAK is not set
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_FAST_CMPXCHG_LOCAL=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_QUICKLIST=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
# CONFIG_GENERIC_GPIO is not set
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_DMI=y
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_CALIBRATE_DELAY=y
# CONFIG_GENERIC_TIME_VSYSCALL is not set
CONFIG_ARCH_SUPPORTS_OPROFILE=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
# CONFIG_ZONE_DMA32 is not set
CONFIG_ARCH_POPULATES_NODE_MAP=y
# CONFIG_AUDIT_ARCH is not set
CONFIG_ARCH_SUPPORTS_AOUT=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_X86_SMP=y
CONFIG_X86_HT=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_X86_TRAMPOLINE=y
CONFIG_KTIME_SCALAR=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SWAP=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_AUDIT is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=16
# CONFIG_CGROUPS is not set
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_FAIR_USER_SCHED=y
# CONFIG_FAIR_CGROUP_SCHED is not set
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set
# CONFIG_IPC_NS is not set
# CONFIG_USER_NS is not set
CONFIG_PID_NS=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
# 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_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
CONFIG_PROC_PAGE_MONITOR=y
# CONFIG_PROFILING is not set
# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
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
CONFIG_BLOCK=y
CONFIG_LBD=y
# CONFIG_BLK_DEV_IO_TRACE is not set
CONFIG_LSF=y
CONFIG_BLK_DEV_BSG=y

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
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"
CONFIG_CLASSIC_RCU=y
# CONFIG_PREEMPT_RCU is not set

#
# Processor type and features
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_SMP=y
CONFIG_X86_PC=y
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
# CONFIG_X86_GENERICARCH is not set
# CONFIG_X86_ES7000 is not set
# CONFIG_X86_RDC321X is not set
# CONFIG_X86_VSMP is not set
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
# CONFIG_PARAVIRT_GUEST is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
CONFIG_MPENTIUM4=y
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
# CONFIG_MPSC is not set
# CONFIG_MCORE2 is not set
# CONFIG_GENERIC_CPU is not set
CONFIG_X86_GENERIC=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=7
CONFIG_X86_XADD=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=4
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
# CONFIG_IOMMU_HELPER is not set
CONFIG_ARCH_SUPPORTS_KVM=y
CONFIG_NR_CPUS=8
# CONFIG_SCHED_SMT is not set
CONFIG_SCHED_MC=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_BKL=y
CONFIG_RCU_TRACE=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_NONFATAL=m
# CONFIG_X86_MCE_P4THERMAL is not set
CONFIG_VM86=y
CONFIG_TOSHIBA=m
CONFIG_I8K=m
CONFIG_X86_REBOOTFIXUPS=y
CONFIG_MICROCODE=m
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_HIGHMEM=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=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=y
# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_RESOURCES_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_NR_QUICK=1
CONFIG_VIRT_TO_BUS=y
CONFIG_HIGHPTE=y
CONFIG_MATH_EMULATION=y
CONFIG_MTRR=y
# CONFIG_EFI is not set
CONFIG_IRQBALANCE=y
CONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
CONFIG_HZ_300=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=300
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_PHYSICAL_START=0x100000
CONFIG_RELOCATABLE=y
CONFIG_PHYSICAL_ALIGN=0x100000
CONFIG_HOTPLUG_CPU=y
CONFIG_COMPAT_VDSO=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y

#
# Power management options
#
CONFIG_PM=y
CONFIG_PM_LEGACY=y
# CONFIG_PM_DEBUG is not set
CONFIG_PM_SLEEP_SMP=y
CONFIG_PM_SLEEP=y
CONFIG_SUSPEND=y
# CONFIG_HIBERNATION is not set
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_PROCFS=y
CONFIG_ACPI_PROCFS_POWER=y
CONFIG_ACPI_PROC_EVENT=y
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_FAN=m
# CONFIG_ACPI_DOCK is not set
CONFIG_ACPI_PROCESSOR=m
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_THERMAL=m
CONFIG_ACPI_ASUS=m
CONFIG_ACPI_TOSHIBA=m
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=m
# CONFIG_ACPI_SBS is not set
CONFIG_APM=y
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
# CONFIG_APM_DO_ENABLE is not set
# CONFIG_APM_CPU_IDLE is not set
# CONFIG_APM_DISPLAY_BLANK is not set
# CONFIG_APM_ALLOW_INTS is not set
# CONFIG_APM_REAL_MODE_POWER_OFF is not set

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

#
# CPUFreq processor drivers
#
CONFIG_X86_ACPI_CPUFREQ=m
CONFIG_X86_POWERNOW_K6=m
CONFIG_X86_POWERNOW_K7=m
CONFIG_X86_POWERNOW_K7_ACPI=y
CONFIG_X86_POWERNOW_K8=m
CONFIG_X86_POWERNOW_K8_ACPI=y
CONFIG_X86_GX_SUSPMOD=m
CONFIG_X86_SPEEDSTEP_CENTRINO=m
CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y
CONFIG_X86_SPEEDSTEP_ICH=m
CONFIG_X86_SPEEDSTEP_SMI=m
CONFIG_X86_P4_CLOCKMOD=m
CONFIG_X86_CPUFREQ_NFORCE2=m
CONFIG_X86_LONGRUN=m
# CONFIG_X86_LONGHAUL is not set
# CONFIG_X86_E_POWERSAVER is not set

#
# shared options
#
# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
CONFIG_X86_SPEEDSTEP_LIB=m
CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y
CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_CPU_IDLE_GOV_MENU=y

#
# Bus options (PCI etc.)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
CONFIG_ARCH_SUPPORTS_MSI=y
# CONFIG_PCI_MSI is not set
CONFIG_PCI_LEGACY=y
# CONFIG_PCI_DEBUG is not set
CONFIG_HT_IRQ=y
CONFIG_ISA_DMA_API=y
CONFIG_ISA=y
# CONFIG_EISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
CONFIG_K8_NB=y
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set

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

#
# Networking
#
CONFIG_NET=y

#
# Networking options
#
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=y
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set
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=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y
# CONFIG_INET_LRO is not set
CONFIG_INET_DIAG=m
CONFIG_INET_TCP_DIAG=m
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
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_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_NETLABEL is not set
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_NETFILTER_ADVANCED=y

#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
# CONFIG_NF_CONNTRACK is not set
CONFIG_NETFILTER_XTABLES=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
CONFIG_NETFILTER_XT_MATCH_ESP=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_OWNER is not set
CONFIG_NETFILTER_XT_MATCH_POLICY=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
CONFIG_NETFILTER_XT_MATCH_REALM=m
CONFIG_NETFILTER_XT_MATCH_SCTP=m
# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
# CONFIG_NETFILTER_XT_MATCH_TIME is not set
# CONFIG_NETFILTER_XT_MATCH_U32 is not set
# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set

#
# IP: Netfilter Configuration
#
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_IPRANGE=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_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_MANGLE=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
# CONFIG_IP_DCCP is not set
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
# 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_LLC=m
# CONFIG_LLC2 is not set
CONFIG_IPX=m
# CONFIG_IPX_INTERN 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
# CONFIG_NET_SCHED is not set
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_SCH_FIFO=y

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=m

#
# Bluetooth device drivers
#
# CONFIG_BT_HCIUSB is not set
CONFIG_BT_HCIBTUSB=m
# CONFIG_BT_HCIBTSDIO is not set
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_BCSP=y
CONFIG_BT_HCIUART_LL=y
# CONFIG_BT_HCIBCM203X is not set
# CONFIG_BT_HCIBPA10X is not set
# CONFIG_BT_HCIBFUSB is not set
CONFIG_BT_HCIVHCI=m
# CONFIG_AF_RXRPC is not set
CONFIG_FIB_RULES=y

#
# Wireless
#
CONFIG_CFG80211=m
CONFIG_NL80211=y
CONFIG_WIRELESS_EXT=y
CONFIG_MAC80211=m
CONFIG_MAC80211_RCSIMPLE=y
CONFIG_MAC80211_LEDS=y
# CONFIG_MAC80211_DEBUGFS is not set
# CONFIG_MAC80211_DEBUG is not set
# CONFIG_IEEE80211 is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
CONFIG_MTD=m
# CONFIG_MTD_DEBUG is not set
# CONFIG_MTD_CONCAT is not set
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_REDBOOT_PARTS is not set

#
# User Modules And Translation Layers
#
# CONFIG_MTD_CHAR is not set
# CONFIG_MTD_BLKDEVS is not set
# CONFIG_MTD_BLOCK is not set
# CONFIG_MTD_BLOCK_RO is not set
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
# CONFIG_RFD_FTL is not set
# CONFIG_SSFDC is not set
# CONFIG_MTD_OOPS is not set

#
# RAM/ROM/Flash chip drivers
#
CONFIG_MTD_CFI=m
# CONFIG_MTD_JEDECPROBE is not set
CONFIG_MTD_GEN_PROBE=m
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
# CONFIG_MTD_CFI_INTELEXT is not set
# CONFIG_MTD_CFI_AMDSTD is not set
# CONFIG_MTD_CFI_STAA is not set
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set

#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
# CONFIG_MTD_PHYSMAP is not set
# CONFIG_MTD_PNC2000 is not set
# CONFIG_MTD_NETSC520 is not set
# CONFIG_MTD_TS5500 is not set
# CONFIG_MTD_INTEL_VR_NOR is not set
# CONFIG_MTD_PLATRAM is not set

#
# Self-contained MTD device drivers
#
# CONFIG_MTD_PMC551 is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
# CONFIG_MTD_BLOCK2MTD is not set

#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
# CONFIG_MTD_NAND is not set
# CONFIG_MTD_ONENAND is not set

#
# UBI - Unsorted block images
#
# CONFIG_MTD_UBI is not set
# CONFIG_PARPORT is not set
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set

#
# Protocols
#
# CONFIG_ISAPNP is not set
# CONFIG_PNPBIOS is not set
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_DEV_XD is not set
# 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=m
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
# CONFIG_BLK_DEV_XIP is not set
CONFIG_CDROM_PKTCDVD=y
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_MISC_DEVICES=y
# CONFIG_IBM_ASM is not set
# CONFIG_PHANTOM is not set
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ASUS_LAPTOP is not set
# CONFIG_FUJITSU_LAPTOP is not set
# CONFIG_MSI_LAPTOP is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_THINKPAD_ACPI is not set
# CONFIG_FJKEYINF is not set
CONFIG_IDE=y
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_IDECD_VERBOSE_ERRORS=y
CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=y
CONFIG_BLK_DEV_IDESCSI=y
# CONFIG_BLK_DEV_IDEACPI is not set
# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_PROC_FS=y

#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
# CONFIG_BLK_DEV_PLATFORM is not set
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_IDEPNP is not set

#
# PCI IDE chipsets support
#
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_PCIBUS_ORDER=y
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_OPTI621 is not set
CONFIG_BLK_DEV_RZ1000=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_BLK_DEV_AEC62XX=y
CONFIG_BLK_DEV_ALI15X3=y
# CONFIG_WDC_ALI15X3 is not set
CONFIG_BLK_DEV_AMD74XX=y
CONFIG_BLK_DEV_ATIIXP=y
CONFIG_BLK_DEV_CMD64X=y
CONFIG_BLK_DEV_TRIFLEX=y
CONFIG_BLK_DEV_CY82C693=y
CONFIG_BLK_DEV_CS5520=y
CONFIG_BLK_DEV_CS5530=y
CONFIG_BLK_DEV_CS5535=y
CONFIG_BLK_DEV_HPT34X=y
# CONFIG_HPT34X_AUTODMA is not set
CONFIG_BLK_DEV_HPT366=y
# CONFIG_BLK_DEV_JMICRON is not set
CONFIG_BLK_DEV_SC1200=y
CONFIG_BLK_DEV_PIIX=y
# CONFIG_BLK_DEV_IT8213 is not set
CONFIG_BLK_DEV_IT821X=y
# CONFIG_BLK_DEV_NS87415 is not set
CONFIG_BLK_DEV_PDC202XX_OLD=y
CONFIG_PDC202XX_BURST=y
CONFIG_BLK_DEV_PDC202XX_NEW=y
CONFIG_BLK_DEV_SVWKS=y
CONFIG_BLK_DEV_SIIMAGE=y
CONFIG_BLK_DEV_SIS5513=y
CONFIG_BLK_DEV_SLC90E66=y
CONFIG_BLK_DEV_TRM290=m
CONFIG_BLK_DEV_VIA82CXXX=y
# CONFIG_BLK_DEV_TC86C001 is not set

#
# Other IDE chipsets support
#

#
# Note: most of these also require special kernel boot parameters
#
# CONFIG_BLK_DEV_4DRIVES is not set
# CONFIG_BLK_DEV_ALI14XX is not set
# CONFIG_BLK_DEV_DTC2278 is not set
# CONFIG_BLK_DEV_HT6560B is not set
# CONFIG_BLK_DEV_QD65XX is not set
# CONFIG_BLK_DEV_UMC8672 is not set
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_IDE_ARCH_OBSOLETE_INIT=y
# CONFIG_BLK_DEV_HD is not set

#
# SCSI device support
#
CONFIG_RAID_ATTRS=m
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
CONFIG_SCSI_NETLINK=y
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=y
CONFIG_CHR_DEV_SG=m
CONFIG_CHR_DEV_SCH=m

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

#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_FC_ATTRS=y
CONFIG_SCSI_ISCSI_ATTRS=m
CONFIG_SCSI_SAS_ATTRS=y
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
CONFIG_SCSI_LOWLEVEL=y
# CONFIG_ISCSI_TCP is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_7000FASST is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AHA152X is not set
# CONFIG_SCSI_AHA1542 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_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_IN2000 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 is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_DTC3280 is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_NCR53C406A is not set
# CONFIG_SCSI_STEX is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_PAS16 is not set
# CONFIG_SCSI_QLOGIC_FAS 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_SYM53C416 is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_T128 is not set
# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_ULTRASTOR is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_SRP is not set
CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_ATA_ACPI=y
CONFIG_SATA_AHCI=y
# CONFIG_SATA_SVW is not set
CONFIG_ATA_PIIX=y
CONFIG_SATA_MV=y
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=y
CONFIG_SATA_ULI=y
CONFIG_SATA_VIA=y
CONFIG_SATA_VITESSE=y
# CONFIG_SATA_INIC162X is not set
# CONFIG_PATA_ACPI is not set
CONFIG_PATA_ALI=y
CONFIG_PATA_AMD=y
CONFIG_PATA_ARTOP=y
CONFIG_PATA_ATIIXP=y
# CONFIG_PATA_CMD640_PCI is not set
# CONFIG_PATA_CMD64X is not set
# CONFIG_PATA_CS5520 is not set
# CONFIG_PATA_CS5530 is not set
# CONFIG_PATA_CS5535 is not set
# CONFIG_PATA_CS5536 is not set
# CONFIG_PATA_CYPRESS is not set
# CONFIG_PATA_EFAR is not set
CONFIG_ATA_GENERIC=y
# 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_LEGACY is not set
# CONFIG_PATA_TRIFLEX is not set
# CONFIG_PATA_MARVELL is not set
CONFIG_PATA_MPIIX=y
CONFIG_PATA_OLDPIIX=y
# CONFIG_PATA_NETCELL is not set
# CONFIG_PATA_NINJA32 is not set
# CONFIG_PATA_NS87410 is not set
# CONFIG_PATA_NS87415 is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_OPTIDMA is not set
# CONFIG_PATA_PDC_OLD is not set
# CONFIG_PATA_QDI 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=y
CONFIG_PATA_VIA=y
# CONFIG_PATA_WINBOND is not set
# CONFIG_PATA_WINBOND_VLB is not set
# CONFIG_MD is not set
# CONFIG_FUSION is not set

#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
# CONFIG_IEEE1394 is not set
CONFIG_I2O=y
CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
CONFIG_I2O_EXT_ADAPTEC=y
CONFIG_I2O_CONFIG=y
# CONFIG_I2O_CONFIG_OLD_IOCTL is not set
CONFIG_I2O_BUS=y
CONFIG_I2O_BLOCK=y
CONFIG_I2O_SCSI=y
CONFIG_I2O_PROC=y
# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
# CONFIG_NETDEVICES_MULTIQUEUE is not set
CONFIG_DUMMY=m
# CONFIG_BONDING is not set
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
CONFIG_VETH=m
# CONFIG_NET_SB1000 is not set
# CONFIG_IP1000 is not set
# CONFIG_ARCNET is not set
# CONFIG_PHYLIB is not set
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=y
# CONFIG_EL1 is not set
# CONFIG_EL2 is not set
CONFIG_ELPLUS=m
# CONFIG_EL16 is not set
# CONFIG_EL3 is not set
# CONFIG_3C515 is not set
CONFIG_VORTEX=m
# CONFIG_TYPHOON is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
# CONFIG_NET_TULIP is not set
# CONFIG_AT1700 is not set
# CONFIG_DEPCA is not set
# CONFIG_HP100 is not set
# CONFIG_NET_ISA is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_EMAC4 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_AC3200 is not set
# CONFIG_APRICOT is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_CS89x0 is not set
CONFIG_EEPRO100=m
CONFIG_E100=m
# 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_R6040 is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_SC92031 is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
# CONFIG_TR is not set

#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
CONFIG_WLAN_80211=y
# CONFIG_IPW2100 is not set
# CONFIG_IPW2200 is not set
# CONFIG_LIBERTAS is not set
# CONFIG_AIRO is not set
# CONFIG_HERMES is not set
# CONFIG_ATMEL is not set
# CONFIG_USB_ATMEL is not set
# CONFIG_PRISM54 is not set
# CONFIG_USB_ZD1201 is not set
# CONFIG_RTL8180 is not set
# CONFIG_RTL8187 is not set
# CONFIG_ADM8211 is not set
# CONFIG_P54_COMMON is not set
CONFIG_ATH5K=m
# CONFIG_IWL4965 is not set
# CONFIG_IWL3945 is not set
# CONFIG_HOSTAP is not set
# CONFIG_B43 is not set
# CONFIG_B43LEGACY is not set
# CONFIG_ZD1211RW is not set
# CONFIG_RT2X00 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 is not set
# 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=y
# CONFIG_NETCONSOLE_DYNAMIC is not set
CONFIG_NETPOLL=y
# CONFIG_NETPOLL_TRAP is not set
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
# CONFIG_PHONE is not set

#
# Input device support
#
CONFIG_INPUT=y
CONFIG_INPUT_FF_MEMLESS=y
CONFIG_INPUT_POLLDEV=m

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_JOYDEV=m
CONFIG_INPUT_EVDEV=m
CONFIG_INPUT_EVBUG=m

#
# 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=m
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
# CONFIG_MOUSE_PS2_ELANTECH is not set
CONFIG_MOUSE_SERIAL=m
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_INPORT is not set
# CONFIG_MOUSE_LOGIBM is not set
# CONFIG_MOUSE_PC110PAD is not set
CONFIG_MOUSE_VSXXXAA=m
CONFIG_INPUT_JOYSTICK=y
CONFIG_JOYSTICK_ANALOG=m
CONFIG_JOYSTICK_A3D=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
CONFIG_JOYSTICK_GRIP_MP=m
CONFIG_JOYSTICK_GUILLEMOT=m
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_TMDC=m
CONFIG_JOYSTICK_IFORCE=m
# CONFIG_JOYSTICK_IFORCE_USB is not set
CONFIG_JOYSTICK_IFORCE_232=y
CONFIG_JOYSTICK_WARRIOR=m
CONFIG_JOYSTICK_MAGELLAN=m
CONFIG_JOYSTICK_SPACEORB=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_STINGER=m
CONFIG_JOYSTICK_TWIDJOY=m
CONFIG_JOYSTICK_JOYDUMP=m
# CONFIG_JOYSTICK_XPAD is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=m
# CONFIG_INPUT_APANEL is not set
CONFIG_INPUT_WISTRON_BTNS=m
# CONFIG_INPUT_ATLAS_BTNS is not set
# CONFIG_INPUT_ATI_REMOTE is not set
# CONFIG_INPUT_ATI_REMOTE2 is not set
# CONFIG_INPUT_KEYSPAN_REMOTE is not set
# CONFIG_INPUT_POWERMATE is not set
# CONFIG_INPUT_YEALINK is not set
CONFIG_INPUT_UINPUT=m

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=m
CONFIG_SERIO_CT82C710=m
CONFIG_SERIO_PCIPS2=m
CONFIG_SERIO_LIBPS2=y
CONFIG_SERIO_RAW=m
CONFIG_GAMEPORT=m
CONFIG_GAMEPORT_NS558=m
CONFIG_GAMEPORT_L4=m
CONFIG_GAMEPORT_EMU10K1=m
CONFIG_GAMEPORT_FM801=m

#
# 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_FIX_EARLYCON_MEM=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_PNP=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_FOURPORT is not set
# CONFIG_SERIAL_8250_ACCENT is not set
# CONFIG_SERIAL_8250_BOCA is not set
# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
# CONFIG_SERIAL_8250_HUB6 is not set
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_DETECT_IRQ=y
CONFIG_SERIAL_8250_RSA=y

#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_JSM=m
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
CONFIG_HVC_DRIVER=y
CONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_IPMI_WATCHDOG=m
CONFIG_IPMI_POWEROFF=m
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_INTEL=y
CONFIG_HW_RANDOM_AMD=y
CONFIG_HW_RANDOM_GEODE=y
CONFIG_HW_RANDOM_VIA=y
CONFIG_NVRAM=m
CONFIG_RTC=y
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_NSC_GPIO is not set
# CONFIG_CS5535_GPIO is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_HPET is not set
CONFIG_HANGCHECK_TIMER=m
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
CONFIG_DEVPORT=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CHARDEV=m

#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=y
CONFIG_I2C_ALGOPCF=m
CONFIG_I2C_ALGOPCA=m

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

#
# Miscellaneous I2C Chip support
#
CONFIG_DS1682=y
CONFIG_SENSORS_EEPROM=m
CONFIG_SENSORS_PCF8574=m
# CONFIG_PCF8575 is not set
CONFIG_SENSORS_PCA9539=m
CONFIG_SENSORS_PCF8591=m
# CONFIG_TPS65010 is not set
CONFIG_SENSORS_MAX6875=m
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_OZ99X 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
# CONFIG_W1 is not set
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
# CONFIG_PDA_POWER is not set
# CONFIG_BATTERY_DS2760 is not set
# CONFIG_HWMON is not set
# CONFIG_WATCHDOG is not set

#
# Sonics Silicon Backplane
#
CONFIG_SSB_POSSIBLE=y
# CONFIG_SSB is not set

#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set

#
# Multimedia devices
#
CONFIG_VIDEO_DEV=m
CONFIG_VIDEO_V4L1=y
CONFIG_VIDEO_V4L1_COMPAT=y
CONFIG_VIDEO_V4L2=y
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
CONFIG_VIDEO_SAA7111=m
CONFIG_VIDEO_CX2341X=m
# CONFIG_VIDEO_VIVI is not set
# CONFIG_VIDEO_BT848 is not set
# CONFIG_VIDEO_PMS is not set
# CONFIG_VIDEO_CPIA is not set
# CONFIG_VIDEO_CPIA2 is not set
# CONFIG_VIDEO_SAA5246A is not set
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_TUNER_3036 is not set
# CONFIG_VIDEO_STRADIS is not set
# CONFIG_VIDEO_ZORAN is not set
CONFIG_VIDEO_SAA7134=m
# CONFIG_VIDEO_SAA7134_ALSA is not set
# CONFIG_VIDEO_MXB is not set
CONFIG_VIDEO_DPC=m
# CONFIG_VIDEO_HEXIUM_ORION is not set
# CONFIG_VIDEO_HEXIUM_GEMINI is not set
# CONFIG_VIDEO_CX88 is not set
# CONFIG_VIDEO_IVTV is not set
# CONFIG_VIDEO_CAFE_CCIC is not set
CONFIG_V4L_USB_DRIVERS=y
CONFIG_VIDEO_PVRUSB2=m
# CONFIG_VIDEO_PVRUSB2_ONAIR_CREATOR is not set
# CONFIG_VIDEO_PVRUSB2_ONAIR_USB2 is not set
CONFIG_VIDEO_PVRUSB2_SYSFS=y
# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
# CONFIG_VIDEO_EM28XX is not set
# CONFIG_VIDEO_USBVISION is not set
CONFIG_VIDEO_USBVIDEO=m
# CONFIG_USB_VICAM is not set
# CONFIG_USB_IBMCAM is not set
# CONFIG_USB_KONICAWC is not set
CONFIG_USB_QUICKCAM_MESSENGER=m
# CONFIG_USB_ET61X251 is not set
# CONFIG_VIDEO_OVCAMCHIP is not set
# CONFIG_USB_W9968CF is not set
# CONFIG_USB_OV511 is not set
# CONFIG_USB_SE401 is not set
# CONFIG_USB_SN9C102 is not set
# CONFIG_USB_STV680 is not set
# CONFIG_USB_ZC0301 is not set
CONFIG_USB_PWC=m
# CONFIG_USB_PWC_DEBUG is not set
# CONFIG_USB_ZR364XX is not set
# CONFIG_RADIO_ADAPTERS is not set
# CONFIG_DVB_CORE is not set
CONFIG_VIDEO_SAA7146=m
CONFIG_VIDEO_SAA7146_VV=m
CONFIG_VIDEO_TUNER=m
# CONFIG_VIDEO_TUNER_CUSTOMIZE is not set
CONFIG_TUNER_XC2028=m
CONFIG_TUNER_MT20XX=m
CONFIG_TUNER_TDA8290=m
CONFIG_TUNER_TEA5761=m
CONFIG_TUNER_TEA5767=m
CONFIG_TUNER_SIMPLE=m
CONFIG_TUNER_TDA9887=m
CONFIG_VIDEOBUF_GEN=m
CONFIG_VIDEOBUF_DMA_SG=m
CONFIG_VIDEO_IR_I2C=m
CONFIG_VIDEO_IR=m
CONFIG_VIDEO_TVEEPROM=m
# CONFIG_DAB is not set

#
# Graphics support
#
CONFIG_AGP=m
CONFIG_AGP_ALI=m
CONFIG_AGP_ATI=m
CONFIG_AGP_AMD=m
CONFIG_AGP_AMD64=m
CONFIG_AGP_INTEL=m
CONFIG_AGP_NVIDIA=m
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_SWORKS is not set
CONFIG_AGP_VIA=m
# CONFIG_AGP_EFFICEON is not set
CONFIG_DRM=m
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_I810=m
CONFIG_DRM_I830=m
CONFIG_DRM_I915=m
CONFIG_DRM_MGA=m
CONFIG_DRM_SIS=m
CONFIG_DRM_VIA=m
CONFIG_DRM_SAVAGE=m
CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
CONFIG_FB_DDC=m
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
# CONFIG_FB_SYS_FOPS is not set
CONFIG_FB_DEFERRED_IO=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=y

#
# Frame buffer 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=m
CONFIG_FB_VESA=y
# CONFIG_FB_EFI is not set
# CONFIG_FB_HECUBA is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
CONFIG_FB_NVIDIA=m
CONFIG_FB_NVIDIA_I2C=y
# CONFIG_FB_NVIDIA_DEBUG is not set
CONFIG_FB_NVIDIA_BACKLIGHT=y
# CONFIG_FB_RIVA is not set
CONFIG_FB_I810=m
CONFIG_FB_I810_GTF=y
CONFIG_FB_I810_I2C=y
# CONFIG_FB_LE80578 is not set
CONFIG_FB_INTEL=m
# CONFIG_FB_INTEL_DEBUG is not set
CONFIG_FB_INTEL_I2C=y
# CONFIG_FB_MATROX is not set
CONFIG_FB_RADEON=m
CONFIG_FB_RADEON_I2C=y
CONFIG_FB_RADEON_BACKLIGHT=y
CONFIG_FB_RADEON_DEBUG=y
# 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_VT8623 is not set
# CONFIG_FB_CYBLA is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_GEODE is not set
# CONFIG_FB_VIRTUAL is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_CORGI is not set
# CONFIG_BACKLIGHT_PROGEAR is not set

#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
CONFIG_VIDEO_SELECT=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# 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 is not set
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
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_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=y
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set

#
# Generic devices
#
CONFIG_SND_MPU401_UART=m
CONFIG_SND_DUMMY=m
CONFIG_SND_VIRMIDI=m
CONFIG_SND_MTPAV=m
CONFIG_SND_SERIAL_U16550=m
CONFIG_SND_MPU401=m

#
# ISA devices
#
# CONFIG_SND_ADLIB is not set
# CONFIG_SND_AD1816A is not set
# CONFIG_SND_AD1848 is not set
# CONFIG_SND_ALS100 is not set
# CONFIG_SND_AZT2320 is not set
# CONFIG_SND_CMI8330 is not set
# CONFIG_SND_CS4231 is not set
# CONFIG_SND_CS4232 is not set
# CONFIG_SND_CS4236 is not set
# CONFIG_SND_DT019X is not set
# CONFIG_SND_ES968 is not set
# CONFIG_SND_ES1688 is not set
# CONFIG_SND_ES18XX is not set
# CONFIG_SND_SC6000 is not set
# CONFIG_SND_GUSCLASSIC is not set
# CONFIG_SND_GUSEXTREME is not set
# CONFIG_SND_GUSMAX is not set
# CONFIG_SND_INTERWAVE is not set
# CONFIG_SND_INTERWAVE_STB is not set
# CONFIG_SND_OPL3SA2 is not set
# CONFIG_SND_OPTI92X_AD1848 is not set
# CONFIG_SND_OPTI92X_CS4231 is not set
# CONFIG_SND_OPTI93X is not set
# CONFIG_SND_MIRO is not set
# CONFIG_SND_SB8 is not set
# CONFIG_SND_SB16 is not set
# CONFIG_SND_SBAWE is not set
# CONFIG_SND_SGALAXY is not set
# CONFIG_SND_SSCAPE is not set
# CONFIG_SND_WAVEFRONT 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_CS5530 is not set
# CONFIG_SND_CS5535AUDIO 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 is not set
# 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=m
# CONFIG_SND_HDA_HWDEP is not set
CONFIG_SND_HDA_CODEC_REALTEK=y
CONFIG_SND_HDA_CODEC_ANALOG=y
CONFIG_SND_HDA_CODEC_SIGMATEL=y
CONFIG_SND_HDA_CODEC_VIA=y
CONFIG_SND_HDA_CODEC_ATIHDMI=y
CONFIG_SND_HDA_CODEC_CONEXANT=y
CONFIG_SND_HDA_CODEC_CMEDIA=y
CONFIG_SND_HDA_CODEC_SI3054=y
CONFIG_SND_HDA_GENERIC=y
# CONFIG_SND_HDA_POWER_SAVE 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_SIS7019 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

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

#
# System on Chip audio support
#
# CONFIG_SND_SOC is not set

#
# SoC Audio support for SuperH
#

#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
CONFIG_HID_DEBUG=y
# CONFIG_HIDRAW is not set

#
# USB Input Devices
#
CONFIG_USB_HID=y
# CONFIG_USB_HIDINPUT_POWERBOOK is not set
CONFIG_HID_FF=y
CONFIG_HID_PID=y
CONFIG_LOGITECH_FF=y
# CONFIG_PANTHERLORD_FF is not set
# CONFIG_THRUSTMASTER_FF is not set
# CONFIG_ZEROPLUS_FF is not set
CONFIG_USB_HIDDEV=y
CONFIG_USB_SUPPORT=y
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
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set

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

#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_SPLIT_ISO=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
# 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=y
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set

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

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

#
# may also be needed; see USB_STORAGE Help for more information
#
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_DPCM=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_KARMA=y
CONFIG_USB_LIBUSUAL=y

#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK 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_IOWARRIOR 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
CONFIG_MMC=m
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
# CONFIG_MMC_PASSWORDS is not set

#
# MMC/SD Card Drivers
#
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_BOUNCE=y
# CONFIG_SDIO_UART is not set

#
# MMC/SD Host Controller Drivers
#
# CONFIG_MMC_SDHCI is not set
# CONFIG_MMC_WBSD is not set
# CONFIG_MMC_TIFM_SD is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=m

#
# LED drivers
#
# CONFIG_LEDS_CLEVO_MAIL is not set

#
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=m
CONFIG_LEDS_TRIGGER_IDE_DISK=y
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
CONFIG_RTC_LIB=m
CONFIG_RTC_CLASS=m

#
# Conflicting RTC option has been selected, check GEN_RTC and RTC
#

#
# 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
CONFIG_RTC_DRV_TEST=m

#
# I2C RTC drivers
#
# CONFIG_RTC_DRV_DS1307 is not set
# CONFIG_RTC_DRV_DS1374 is not set
CONFIG_RTC_DRV_DS1672=m
# CONFIG_RTC_DRV_MAX6900 is not set
CONFIG_RTC_DRV_RS5C372=m
# CONFIG_RTC_DRV_ISL1208 is not set
CONFIG_RTC_DRV_X1205=m
CONFIG_RTC_DRV_PCF8563=m
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_S35390A is not set

#
# SPI RTC drivers
#

#
# Platform RTC drivers
#
CONFIG_RTC_DRV_CMOS=m
# CONFIG_RTC_DRV_DS1511 is not set
# CONFIG_RTC_DRV_DS1553 is not set
# CONFIG_RTC_DRV_DS1742 is not set
# CONFIG_RTC_DRV_STK17TA8 is not set
CONFIG_RTC_DRV_M48T86=m
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_V3020 is not set

#
# on-CPU RTC drivers
#
# CONFIG_DMADEVICES is not set

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

#
# Firmware Drivers
#
CONFIG_EDD=m
CONFIG_DELL_RBU=m
CONFIG_DCDBAS=m
CONFIG_DMIID=y

#
# File systems
#
CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
# 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 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_DNOTIFY=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_QUOTA=y
# CONFIG_QUOTA_NETLINK_INTERFACE is not set
CONFIG_PRINT_QUOTA_WARNING=y
# CONFIG_QFMT_V1 is not set
CONFIG_QFMT_V2=m
CONFIG_QUOTACTL=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
CONFIG_FUSE_FS=m

#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=m
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=y

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_VMCORE=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_CONFIGFS_FS is not set

#
# Layered filesystems
#
# CONFIG_ECRYPT_FS is not set
# CONFIG_UNION_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_JFFS2_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
# CONFIG_NFS_FS is not set
# CONFIG_NFSD is not set
# CONFIG_SMB_FS is not set
CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
# CONFIG_CIFS_WEAK_PW_HASH is not set
# CONFIG_CIFS_XATTR is not set
# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_EXPERIMENTAL is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set

#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
# CONFIG_MINIX_SUBPARTITION is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_KARMA_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
# CONFIG_SYSV68_PARTITION is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=m
# 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=m
# 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 is not set
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 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=y
# CONFIG_DLM is not set

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_UNUSED_SYMBOLS=y
# CONFIG_PAGE_OWNER is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
CONFIG_SLUB_DEBUG_ON=y
CONFIG_DEBUG_PREEMPT=y
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_LOCK_ALLOC=y
CONFIG_PROVE_LOCKING=y
CONFIG_LOCKDEP=y
# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_LOCKDEP is not set
CONFIG_TRACE_IRQFLAGS=y
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
CONFIG_STACKTRACE=y
CONFIG_DEBUG_KOBJECT=y
# CONFIG_DEBUG_HIGHMEM is not set
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_FRAME_POINTER is not set
# CONFIG_PROFILE_LIKELY is not set
CONFIG_FORCED_INLINING=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_DEBUG_SYNCHRO_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_SAMPLES is not set
CONFIG_EARLY_PRINTK=y
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_DEBUG_RODATA is not set
# CONFIG_4KSTACKS is not set
CONFIG_X86_FIND_SMP_CONFIG=y
CONFIG_X86_MPPARSE=y
CONFIG_DOUBLEFAULT=y
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
CONFIG_IO_DELAY_TYPE_UDELAY=2
CONFIG_IO_DELAY_TYPE_NONE=3
CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not set
CONFIG_DEFAULT_IO_DELAY_TYPE=0

#
# Security options
#
CONFIG_KEYS=y
# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
CONFIG_SECURITY=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_NETWORK_XFRM is not set
# CONFIG_SECURITY_CAPABILITIES is not set
# CONFIG_SECURITY_ROOTPLUG is not set
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_BLKCIPHER=m
# CONFIG_CRYPTO_SEQIV is not set
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_HMAC=y
# CONFIG_CRYPTO_XCBC is not set
CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=m
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_TGR192=m
# CONFIG_CRYPTO_GF128MUL is not set
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_CBC=m
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_XTS is not set
# CONFIG_CRYPTO_CTR is not set
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_CCM is not set
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_FCRYPT is not set
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
# CONFIG_CRYPTO_TWOFISH_586 is not set
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_AES_586=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
# CONFIG_CRYPTO_SEED is not set
# CONFIG_CRYPTO_SALSA20 is not set
# CONFIG_CRYPTO_SALSA20_586 is not set
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=y
# CONFIG_CRYPTO_CAMELLIA is not set
CONFIG_CRYPTO_TEST=m
# CONFIG_CRYPTO_AUTHENC is not set
# CONFIG_CRYPTO_LZO is not set
CONFIG_CRYPTO_HW=y
CONFIG_CRYPTO_DEV_PADLOCK=m
CONFIG_CRYPTO_DEV_PADLOCK_AES=m
CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
CONFIG_CRYPTO_DEV_GEODE=m
# CONFIG_CRYPTO_DEV_HIFN_795X is not set
CONFIG_VIRTUALIZATION=y
CONFIG_LGUEST=y

#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_CRC_CCITT=m
CONFIG_CRC16=m
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
CONFIG_LIBCRC32C=y
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_CHECK_SIGNATURE=y

2007-12-26 08:53:20

by James Morris

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 - git-lblnet.patch and networking horkage

On Wed, 26 Dec 2007, [email protected] wrote:

> On Wed, 26 Dec 2007 18:34:26 +1100, James Morris said:
>
> > Can you post your .config ?
>
> The gzip'ed config as of when I quit bisecting is attached. It's probably
> not directly usable unless you have a quilt tree that's positioned fairly
> close to git-lblnet.patch.

What does the following say ?

# sestatus && rpm -q selinux-policy

Do you see anything unusual in the audit log or syslog?

Try

# ausearch -hn 127.0.0.1

and

# ausearch -x tcltest



- James
--
James Morris
<[email protected]>

2007-12-26 12:26:10

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: some section mismatches on sparc64

Hello,

WARNING: vmlinux.o(.text+0x46b04): Section mismatch: reference to .init.text:sun4v_ktsb_register (between 'smp_callin' and 'smp_fill_in_sib_core_maps')
WARNING: vmlinux.o(.text+0x4756c): Section mismatch: reference to .init.text:sun4v_register_mondo_queues (between 'after_lock_tlb' and 'hv_cpu_startup')
WARNING: vmlinux.o(.text+0x477ac): Section mismatch: reference to .init.text:sun4v_register_mondo_queues (between 'hv_cpu_startup' and 'sys32_exit')
WARNING: vmlinux.o(.text+0x55258): Section mismatch: reference to .init.text:__alloc_bootmem (between 'kernel_map_range' and 'kernel_map_pages')
WARNING: vmlinux.o(.text+0x55278): Section mismatch: reference to .init.text:__alloc_bootmem (between 'kernel_map_range' and 'kernel_map_pages')
WARNING: vmlinux.o(.text+0x1fdfe4): Section mismatch: reference to .init.text:sunserial_console_match (between 'hv_probe' and 'serial_in')
WARNING: vmlinux.o(.text+0x20011c): Section mismatch: reference to .init.text:sunserial_console_match (between 'su_probe' and 'sunsu_console_putchar')
WARNING: vmlinux.o(.sun4v_2insn_patch+0x3d8): Section mismatch: reference to .init.text:
WARNING: vmlinux.o(__ksymtab+0x62c0): Section mismatch: reference to .init.text:sunserial_console_match (between '__ksymtab_sunserial_console_match' and '__ksymtab_sunserial_unregister_minors')

Regards,

Mariusz

2007-12-26 14:16:57

by James Morris

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 - git-lblnet.patch and networking horkage

On Wed, 26 Dec 2007, James Morris wrote:

> What does the following say ?
>
> # sestatus && rpm -q selinux-policy

Don't worry about that -- I reproduced it with Paul Moore's git tree:
git://git.infradead.org/users/pcmoore/lblnet-2.6_testing

(under current -mm, the e1000 driver doesn't find my ethernet card & the
tcl tests won't run without an external interface).

The offending commit is when SELinux is converted to the new ifindex
interface:

9c6ad8f6895db7a517c04c2147cb5e7ffb83a315 is first bad commit
commit 9c6ad8f6895db7a517c04c2147cb5e7ffb83a315
Author: Paul Moore <[email protected]>
Date: Fri Dec 21 11:44:26 2007 -0500

SELinux: Convert the netif code to use ifindex values

[...]

In some case (not yet fully identified -- also happens when avahi starts
up, although seemingly silently & without obvious issues), SELinux is
passed an ifindex of 1515870810, which corresponds to 0x5a5a5a5a, the slab
poison value, suggesting a race in the calling code where we're being
asked to check an skb which has been freed.

The SELinux code is erroring out before performing an access check
(perhaps there should be WARN_ON, at least), so this will affect both
permissive and enforcing mode without generating any log messages.

Andrew: I suggest dropping the patchset from -mm until Paul gets back from
vacation.


- James
--
James Morris
<[email protected]>

2007-12-26 15:58:26

by Paul Moore

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 - git-lblnet.patch and networking horkage

As James said I'm away right now and computer access is limited. However, I'm stuck in the airport right now and spent some time looking at the code ... Based on what has been found so far I wonder if the problem isn't a race but a problem of skb->iif never being initialized correctly? To my untrained eye it looks like __netdev_alloc_skb() should be setting skb->iif (like it does for skb->dev) but it currently doesn't.

Am I barking up the wrong tree here?

. paul moore
. linux security @ hp
-----Original Message-----
From: James Morris <[email protected]>
Date: Wednesday, Dec 26, 2007 7:16 am
Subject: Re: 2.6.24-rc6-mm1 - git-lblnet.patch and networking horkage
To: [email protected]
CC: Andrew Morton <[email protected]>, Paul Moore <[email protected]>, [email protected], Stephen Smalley <[email protected]>

On Wed, 26 Dec 2007, James Morris wrote:
>
>> What does the following say ?
>
> # sestatus && rpm -q selinux-policy
>
>Don't worry about that -- I reproduced it with Paul Moore's git tree: git://git.infradead.org/users/pcmoore/lblnet-2.6_testing
>
>(under current -mm, the e1000 driver doesn't find my ethernet card & the
>tcl tests won't run without an external interface).
>
>The offending commit is when SELinux is converted to the new ifindex
>interface:
>
> 9c6ad8f6895db7a517c04c2147cb5e7ffb83a315 is first bad commit
> commit 9c6ad8f6895db7a517c04c2147cb5e7ffb83a315
> Author: Paul Moore <[email protected]>
> Date: Fri Dec 21 11:44:26 2007 -0500
>
> SELinux: Convert the netif code to use ifindex values
>
> [...]
>
>In some case (not yet fully identified -- also happens when avahi starts
>up, although seemingly silently & without obvious issues), SELinux is
>passed an ifindex of 1515870810, which corresponds to 0x5a5a5a5a, the slab
>poison value, suggesting a race in the calling code where we're being
>asked to check an skb which has been freed.
>
>The SELinux code is erroring out before performing an access check
>(perhaps there should be WARN_ON, at least), so this will affect both
>permissive and enforcing mode without generating any log messages.
>
>Andrew: I suggest dropping the patchset from -mm until Paul gets back from
>vacation.
>
>
>- James
>--
>James Morris
><[email protected]>
>

2007-12-26 16:45:19

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 - git-lblnet.patch and networking horkage

On Wed, 26 Dec 2007 19:52:56 +1100, James Morris said:
> On Wed, 26 Dec 2007, [email protected] wrote:
>
> > On Wed, 26 Dec 2007 18:34:26 +1100, James Morris said:
> >
> > > Can you post your .config ?
> >
> > The gzip'ed config as of when I quit bisecting is attached. It's probably
> > not directly usable unless you have a quilt tree that's positioned fairly
> > close to git-lblnet.patch.
>
> What does the following say ?
>
> # sestatus && rpm -q selinux-policy

I'm running MLS in permissive mode, so there shouldn't be any SElinux
denials happening.


Attachments:
(No filename) (226.00 B)

2007-12-26 21:52:51

by James Morris

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 - git-lblnet.patch and networking horkage

On Thu, 26 Dec 2007, Paul Moore wrote:

> As James said I'm away right now and computer access is limited.
> However, I'm stuck in the airport right now and spent some time looking
> at the code ... Based on what has been found so far I wonder if the
> problem isn't a race but a problem of skb->iif never being initialized
> correctly? To my untrained eye it looks like __netdev_alloc_skb()
> should be setting skb->iif (like it does for skb->dev) but it currently
> doesn't.

->iif will be zeroed during skb allocation, then set during
netif_receive_skb().


- James
--
James Morris
<[email protected]>

2007-12-26 22:47:23

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 - git-lblnet.patch and networking horkage

On Thu, 27 Dec 2007 01:16:25 +1100 (EST) James Morris <[email protected]> wrote:

> On Wed, 26 Dec 2007, James Morris wrote:
>
> > What does the following say ?
> >
> > # sestatus && rpm -q selinux-policy
>
> Don't worry about that -- I reproduced it with Paul Moore's git tree:
> git://git.infradead.org/users/pcmoore/lblnet-2.6_testing
>
> (under current -mm, the e1000 driver doesn't find my ethernet card & the
> tcl tests won't run without an external interface).

You might need to enable CONFIG_E1000E.

> The offending commit is when SELinux is converted to the new ifindex
> interface:
>
> 9c6ad8f6895db7a517c04c2147cb5e7ffb83a315 is first bad commit
> commit 9c6ad8f6895db7a517c04c2147cb5e7ffb83a315
> Author: Paul Moore <[email protected]>
> Date: Fri Dec 21 11:44:26 2007 -0500
>
> SELinux: Convert the netif code to use ifindex values
>
> [...]
>
> In some case (not yet fully identified -- also happens when avahi starts
> up, although seemingly silently & without obvious issues), SELinux is
> passed an ifindex of 1515870810, which corresponds to 0x5a5a5a5a, the slab
> poison value, suggesting a race in the calling code where we're being
> asked to check an skb which has been freed.
>
> The SELinux code is erroring out before performing an access check
> (perhaps there should be WARN_ON, at least), so this will affect both
> permissive and enforcing mode without generating any log messages.
>
> Andrew: I suggest dropping the patchset from -mm until Paul gets back from
> vacation.

OK, thanks.

2007-12-26 23:40:05

by James Morris

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 - e1000 breakage

On Wed, 26 Dec 2007, Andrew Morton wrote:

> > (under current -mm, the e1000 driver doesn't find my ethernet card & the
> > tcl tests won't run without an external interface).
>
> You might need to enable CONFIG_E1000E.

Indeed, it works for me.



- James
--
James Morris
<[email protected]>

2007-12-27 02:59:12

by Joseph Fannin

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: __raw_spin_is_contended undefined

On Sat, Dec 22, 2007 at 11:30:56PM -0800, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
>

This doesn't build on powerpc with my .config:

In file included from arch/powerpc/kernel/asm-offsets.c:17:
include/linux/sched.h: In function ‘spin_needbreak’:
include/linux/sched.h:1947: error: implicit declaration of function ‘__raw_spin_is_contended’

I don't see where __raw_spin_is_contended is defined for any arch
other than x86, so I guess this will happen on any non-x86 arch when
SMP=y and PREEMPT=y are set?

This comes from "spinlock: lockbreak cleanup" in git-x86.

--
Joseph Fannin
[email protected]

2007-12-27 03:05:19

by David Miller

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: some section mismatches on sparc64

From: Mariusz Kozlowski <[email protected]>
Date: Wed, 26 Dec 2007 13:29:07 +0100

> WARNING: vmlinux.o(.text+0x46b04): Section mismatch: reference to .init.text:sun4v_ktsb_register (between 'smp_callin' and 'smp_fill_in_sib_core_maps')

Well known and I see them every build and so does everyone
else on sparc64.

They are harmless and as time allows I try to find ways
to get rid of them but it's very low priority.

2007-12-27 05:22:16

by Nick Piggin

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: __raw_spin_is_contended undefined

On Wed, Dec 26, 2007 at 09:21:58PM -0500, Joseph Fannin wrote:
> On Sat, Dec 22, 2007 at 11:30:56PM -0800, Andrew Morton wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
> >
>
> This doesn't build on powerpc with my .config:
>
> In file included from arch/powerpc/kernel/asm-offsets.c:17:
> include/linux/sched.h: In function ???spin_needbreak???:
> include/linux/sched.h:1947: error: implicit declaration of function ???__raw_spin_is_contended???
>
> I don't see where __raw_spin_is_contended is defined for any arch
> other than x86, so I guess this will happen on any non-x86 arch when
> SMP=y and PREEMPT=y are set?

And CONFIG_GENERIC_LOCKBREAK is not defined, which is what powerpc needs.

Thanks for reporting,
Nick

---

Index: linux-2.6/arch/powerpc/Kconfig
===================================================================
--- linux-2.6.orig/arch/powerpc/Kconfig
+++ linux-2.6/arch/powerpc/Kconfig
@@ -53,6 +53,11 @@ config RWSEM_XCHGADD_ALGORITHM
bool
default y

+config GENERIC_LOCKBREAK
+ bool
+ default y
+ depends on SMP && PREEMPT
+
config ARCH_HAS_ILOG2_U32
bool
default y

2007-12-27 06:05:15

by Valdis Klētnieks

[permalink] [raw]
Subject: 2.6.24-rc6-mm1 - drivers/char/tpm/tpm_bios.c oddness?

On Sat, 22 Dec 2007 23:30:56 PST, Andrew Morton said:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/

Looks like an uninitialized variable dereference for SEPARATOR events:

# mount -t securityfs none /sys/kernel/security/
# ls /sys/kernel/security/
tpm0
# l /sys/kernel/security/tpm0/
total 0
0 -r--r----- 1 root root 0 2007-12-26 23:28 ascii_bios_measurements
0 -r--r----- 1 root root 0 2007-12-26 23:28 binary_bios_measurements
# cat /sys/kernel/security/tpm0/ascii_bios_measurements
0 0000000000000000000000000000000000000000 07 [S-CRTM Contents]
0 0000000000000000000000000000000000000000 07 [S-CRTM Contents]
0 0000000000000000000000000000000000000000 07 [S-CRTM Contents]
0 0000000000000000000000000000000000000000 07 [S-CRTM Contents]
4 c1e25c3f6b0dc78d57296aa2870ca6f782ccf80f 05 [Calling INT 19h]
0 85e53271e14006f0265921d02d4d736cdc580b0b 04 [ÿ]
1 85e53271e14006f0265921d02d4d736cdc580b0b 04 [ÿ]
2 85e53271e14006f0265921d02d4d736cdc580b0b 04 [ÿ]
3 85e53271e14006f0265921d02d4d736cdc580b0b 04 [ÿ]
4 85e53271e14006f0265921d02d4d736cdc580b0b 04 [ÿ]
5 85e53271e14006f0265921d02d4d736cdc580b0b 04 [ÿ]
6 85e53271e14006f0265921d02d4d736cdc580b0b 04 [ÿ]
7 85e53271e14006f0265921d02d4d736cdc580b0b 04 [ÿ]
4 38f30a0a967fcf2bfee1e3b2971de540115048c8 05 [Returned INT 19h]
4 f9d3a33e4ba6109fb60e8df6ec0f10330733c8b2 0c [Compact Hash]
5 9bd5c812613f67ce1c75d0ea48b9933a547683cb 0c [Compact Hash]

Looks like the problem is likely in get_event_name:

case NONHOST_INFO:
name = tcpa_event_type_strings[event->event_type];
n_len = strlen(name);
break;
case SEPARATOR:
case ACTION:
if (MAX_TEXT_EVENT > event->event_size) {
name = event_entry;
n_len = event->event_size;
}
break;

Should there be a 'break;' after the SEPARATOR line? Given the name, it
probably doesn't have a name/length pair attached to an event, right?



Attachments:
(No filename) (226.00 B)

2007-12-27 08:50:40

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 Kernel panics at different functions ()

Hi Andrew,

The 2.6.24-rc6-mm1 kernel with hotfix x86-fix-system-gate-related-crash.patch applied
panics while booting on a x86_64 box

Unable to handle kernel NULL pointer dereference at 0000000000000046 RIP:
[<ffffffff80369a0b>] rb_erase+0xe7/0x2a3
PGD 17ff65067 PUD 17f1c7067 PMD 0
Oops: 0000 [1] SMP
last sysfs file: /sys/devices/pci0000:00/0000:00:0a.0/0000:02:04.0/host0/target0:0:6/0:0:6:0/type
CPU 0
Modules linked in:
Pid: 0, comm: swapper Not tainted 2.6.24-rc6-mm1-autokern1 #1
RIP: 0010:[<ffffffff80369a0b>] [<ffffffff80369a0b>] rb_erase+0xe7/0x2a3
RSP: 0000:ffffffff80650e00 EFLAGS: 00010002
RAX: ffff8101fe9568c8 RBX: ffff8100010062a8 RCX: ffff8101fe9568b0
RDX: ffff8101fe9568c8 RSI: 0000000000000046 RDI: 0000000000000000
RBP: ffffffff80650e10 R08: ffff8101fe9568c8 R09: 0000000000000086
R10: 0000000000000000 R11: 00000000000001e8 R12: ffff8100010062b8
R13: 0000000000000002 R14: ffff810001006260 R15: 0000000000000001
FS: 0000000000000000(0000) GS:ffffffff805dc000(0000) knlGS:00000000f31ffbb0
CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 0000000000000046 CR3: 000000017f0ab000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process swapper (pid: 0, threadinfo ffffffff805f6000, task ffffffff805a2080)
Stack: ffff8100010062a8 ffff8101fe9568b0 ffffffff80650e40 ffffffff8024be16
ffffffff80369d65 ffffffff80369d65 ffff8101fe9568b0 ffff8100010062a8
ffffffff80650eb0 ffffffff8024c1d5 ffffffffb88cc28e 0000000006e73eff
Call Trace:
<IRQ> [<ffffffff8024be16>] __remove_hrtimer+0x2e/0x3c
[<ffffffff80369d65>] __down_read_trylock+0x16/0x42
[<ffffffff80369d65>] __down_read_trylock+0x16/0x42
[<ffffffff8024c1d5>] hrtimer_run_queues+0x130/0x191
[<ffffffff8023fd09>] run_timer_softirq+0x28/0x1a7
[<ffffffff8023c018>] __do_softirq+0x55/0xc2
[<ffffffff8020c73c>] call_softirq+0x1c/0x28
[<ffffffff8020e719>] do_softirq+0x32/0x9d
[<ffffffff8023c0dd>] irq_exit+0x3f/0x41
[<ffffffff8021ff85>] smp_apic_timer_interrupt+0x92/0xa7
[<ffffffff8020c1e6>] apic_timer_interrupt+0x66/0x70
<EOI> [<ffffffff802095f5>] default_idle+0x36/0x5e
[<ffffffff802095f0>] default_idle+0x31/0x5e
[<ffffffff802095bf>] default_idle+0x0/0x5e
[<ffffffff802096b6>] cpu_idle+0x90/0xb2
[<ffffffff804b0126>] rest_init+0x5a/0x5c
[<ffffffff806017ee>] start_kernel+0x2b8/0x2c4
[<ffffffff8060112b>] _sinittext+0x12b/0x132


Code: 48 8b 06 83 e0 03 4c 09 c0 48 89 06 4d 85 c0 74 12 49 39 48
RIP [<ffffffff80369a0b>] rb_erase+0xe7/0x2a3
RSP <ffffffff80650e00>
CR2: 0000000000000046

The gdb for the above panic

(gdb) l *0xffffffff80369a0b
0xffffffff80369a0b is in rb_erase (include/linux/rbtree.h:125).
120 #define rb_set_red(r) do { (r)->rb_parent_color &= ~1; } while (0)
121 #define rb_set_black(r) do { (r)->rb_parent_color |= 1; } while (0)
122
123 static inline void rb_set_parent(struct rb_node *rb, struct rb_node *p)
124 {
125 rb->rb_parent_color = (rb->rb_parent_color & 3) | (unsigned long)p;
126 }
127 static inline void rb_set_color(struct rb_node *rb, int color)
128 {
129 rb->rb_parent_color = (rb->rb_parent_color & ~1) | color;


And when i tried rebooting again, i got the following traces one after the another
continuous in the second boot up

Unable to handle kernel paging request at 000000000000407f RIP:
[<ffffffff804b2bd3>] _spin_lock_irqsave+0xc/0x1d
PGD 1ff102067 PUD ffff8101fe6e4000
Oops: 0002 [1] SMP
last sysfs file: /sys/devices/pci0000:00/0000:00:0a.0/0000:02:04.0/host0/target0:0:6/0:0:6:0/type
CPU 3
Modules linked in:
Pid: 16511, comm: ,@ Tainted: G M 2.6.24-rc6-mm1-autokern1 #1
RIP: 0010:[<ffffffff804b2bd3>] [<ffffffff804b2bd3>] _spin_lock_irqsave+0xc/0x1d
RSP: 0000:ffff8101fe6e4178 EFLAGS: 00010046
RAX: 0000000000000046 RBX: 000000000000407b RCX: 0000000000000001
RDX: 0000000000000100 RSI: 0000000000000002 RDI: 000000000000407f
RBP: ffff8101fe6e4178 R08: 0000000000000001 R09: ffff8101fe6e43e0
R10: 0000000000000000 R11: 0000000000000008 R12: 0000000000000000
R13: 0000000000000002 R14: ffff8101fe6e4000 R15: ffff8101fe6e4298
FS: 0000000000000000(0000) GS:ffff8101fff13000(0063) knlGS:00000000f7d4a080
CS: 0010 DS: 002b ES: 002b CR0: 000000008005003b
CR2: 000000000000407f CR3: 00000001ff1f2000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process ,@ (pid: 16511, threadinfo 00000000ffffffff, task ffff8101fe6e4000)
Stack: ffff8101fe6e4198 ffffffff80369d65 000000000000407b 000000000000407f
ffff8101fe6e41a8 ffffffff8024c599 ffff8101fe6e4288 ffffffff8022473a
0000000000000000 0000000000000000 0000000000000000 000000000000401b
Call Trace:


Code: f0 66 0f c1 17 38 f2 74 06 f3 90 8a 17 eb f6 c9 c3 55 48 89
RIP [<ffffffff804b2bd3>] _spin_lock_irqsave+0xc/0x1d
RSP <ffff8101fe6e4178>
CR2: 000000000000407f

0xffffffff804b2bd3 is in _spin_lock_irqsave (include/asm/spinlock.h:75).
70 * and should be optimal for the uncontended case. Note the tail must
71 * be in the high byte, otherwise the 16-bit wide increment of the low
72 * byte would carry up and contaminate the high byte.
73 */
74
75 __asm__ __volatile__ (
76 LOCK_PREFIX "xaddw %w0, %1\n"
77 "1:\t"
78 "cmpb %h0, %b0\n\t"
79 "je 2f\n\t"

PGD 0
Oops: 0000 [3] SMP
last sysfs file: /sys/devices/pci0000:00/0000:00:0a.0/0000:02:04.0/host0/target0:0:6/0:0:6:0/type
CPU 2
Modules linked in:
Pid: 0, comm: swapper Tainted: G M D 2.6.24-rc6-mm1-autokern1 #1
RIP: 0010:[<ffffffff80369c2b>] [<ffffffff80369c2b>] rb_next+0x1e/0x4f
RSP: 0000:ffff81017ff3be10 EFLAGS: 00010002
RAX: 0000000000000002 RBX: ffff8101000332a8 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffff8101000332a8 RDI: 0000000000000002
RBP: ffff81017ff3be10 R08: 00000000000001e8 R09: 0000000000000086
R10: 0000000000000001 R11: 00000000000001e8 R12: ffff8101fe71dec8
R13: 0000000000000002 R14: ffff810100033260 R15: 0000000000000001
FS: 0000000000000000(0000) GS:ffff81017ff0e000(0000) knlGS:00000000f7ea3b80
CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 0000000000000012 CR3: 0000000000201000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process swapper (pid: 0, threadinfo ffff8100e3b4a000, task ffff81007ff6c000)
Stack: ffff81017ff3be40 ffffffff8024be06 000000008020bb29 000000008020bb29
ffff8101fe71dec8 ffff8101000332a8 ffff81017ff3beb0 ffffffff8024c1d5
ffffffffb88cc1cc 000000000848661b ffffffffb88cc1cc 000000000848661b
Call Trace:
<IRQ> [<ffffffff8024be06>] __remove_hrtimer+0x1e/0x3c
[<ffffffff8024c1d5>] hrtimer_run_queues+0x130/0x191
[<ffffffff8023fd09>] run_timer_softirq+0x28/0x1a7
[<ffffffff8023c018>] __do_softirq+0x55/0xc2
[<ffffffff8020c73c>] call_softirq+0x1c/0x28
[<ffffffff8020e719>] do_softirq+0x32/0x9d
[<ffffffff8023c0dd>] irq_exit+0x3f/0x41
[<ffffffff8021ff85>] smp_apic_timer_interrupt+0x92/0xa7
[<ffffffff8020c1e6>] apic_timer_interrupt+0x66/0x70
<EOI> [<ffffffff802095f5>] default_idle+0x36/0x5e
[<ffffffff802095f0>] default_idle+0x31/0x5e
[<ffffffff802095bf>] default_idle+0x0/0x5e
[<ffffffff802096b6>] cpu_idle+0x90/0xb2
[<ffffffff8021f0c1>] start_secondary+0x3ad/0x3b9


Code: 48 83 7f 10 00 74 06 48 8b 7f 10 eb f3 48 89 f8 eb 1d 48 89
RIP [<ffffffff80369c2b>] rb_next+0x1e/0x4f
RSP <ffff81017ff3be10>
CR2: 0000000000000012


0xffffffff80369c2b is in rb_next (lib/rbtree.c:333).
328 /* If we have a right-hand child, go down and then left as far
329 as we can. */
330 if (node->rb_right) {
331 node = node->rb_right;
332 while (node->rb_left)
333 node=node->rb_left;
334 return node;
335 }
336
337 /* No right-hand children. Everything down and left is

Unable to handle kernel paging request at 000000008020bb81 RIP:
[<ffffffff80242abd>] exit_signals+0x27/0x10a
PGD 1ff102067 PUD 0
Oops: 0000 [5] SMP
last sysfs file: /sys/devices/pci0000:00/0000:00:0a.0/0000:02:04.0/host0/target0:0:6/0:0:6:0/type
CPU 3
Modules linked in:
Pid: 16511, comm: ,@ Tainted: G M D 2.6.24-rc6-mm1-autokern1 #1
RIP: 0010:[<ffffffff80242abd>] [<ffffffff80242abd>] exit_signals+0x27/0x10a
RSP: 0000:ffff8101fe6e3cf8 EFLAGS: 00010003
RAX: 000000008020bb29 RBX: 0000000000000046 RCX: 00000000ffffffff
RDX: ffff8101fe6e4000 RSI: 0000000000000000 RDI: ffff8101fe6e4000
RBP: ffff8101fe6e3d18 R08: 0000000000000000 R09: ffffffff80662540
R10: ffffffff80662540 R11: ffff810004ab9740 R12: ffff8101fe6e4000
R13: 0000000000000000 R14: ffff8101fe6e4000 R15: ffff8101fe6e3e88
FS: 0000000000000000(0000) GS:ffff8101fff13000(0063) knlGS:00000000f7d4a080
CS: 0010 DS: 002b ES: 002b CR0: 000000008005003b
CR2: 000000008020bb81 CR3: 00000001ff1f2000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process ,@ (pid: 16511, threadinfo 00000000ffffffff, task ffff8101fe6e4000)
Stack: ffff8101fe6e4000 0000000000000046 ffff8101fe6e4000 0000000000000009
ffff8101fe6e3d68 ffffffff80239b8c ffff8101fe6e3d48 ffffffff803c241d
0000000000000046 0000000000000046 ffff8101fe6e3e88 0000000000000009
Call Trace:


Code: f6 40 58 08 75 07 48 83 78 48 00 74 0b 41 83 4c 24 14 04 e9
RIP [<ffffffff80242abd>] exit_signals+0x27/0x10a
RSP <ffff8101fe6e3cf8>
CR2: 000000008020bb81

0xffffffff80242abd is in exit_signals (include/linux/sched.h:555).
550 #define SIGNAL_GROUP_EXIT 0x00000008 /* group exit in progress */
551
552 /* If true, all threads except ->group_exit_task have pending SIGKILL */
553 static inline int signal_group_exit(const struct signal_struct *sig)
554 {
555 return (sig->flags & SIGNAL_GROUP_EXIT) ||
556 (sig->group_exit_task != NULL);
557 }
558
559 /*


--
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.

2007-12-27 09:57:28

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 Kernel panics at different functions ()

On Thu, 27 Dec 2007 14:19:54 +0530 Kamalesh Babulal <[email protected]> wrote:

> Hi Andrew,
>
> The 2.6.24-rc6-mm1 kernel with hotfix x86-fix-system-gate-related-crash.patch applied
> panics while booting on a x86_64 box
>
> Unable to handle kernel NULL pointer dereference at 0000000000000046 RIP:
> [<ffffffff80369a0b>] rb_erase+0xe7/0x2a3
> PGD 17ff65067 PUD 17f1c7067 PMD 0
> Oops: 0000 [1] SMP
> last sysfs file: /sys/devices/pci0000:00/0000:00:0a.0/0000:02:04.0/host0/target0:0:6/0:0:6:0/type
> CPU 0
> Modules linked in:
> Pid: 0, comm: swapper Not tainted 2.6.24-rc6-mm1-autokern1 #1
> RIP: 0010:[<ffffffff80369a0b>] [<ffffffff80369a0b>] rb_erase+0xe7/0x2a3
> RSP: 0000:ffffffff80650e00 EFLAGS: 00010002
> RAX: ffff8101fe9568c8 RBX: ffff8100010062a8 RCX: ffff8101fe9568b0
> RDX: ffff8101fe9568c8 RSI: 0000000000000046 RDI: 0000000000000000
> RBP: ffffffff80650e10 R08: ffff8101fe9568c8 R09: 0000000000000086
> R10: 0000000000000000 R11: 00000000000001e8 R12: ffff8100010062b8
> R13: 0000000000000002 R14: ffff810001006260 R15: 0000000000000001
> FS: 0000000000000000(0000) GS:ffffffff805dc000(0000) knlGS:00000000f31ffbb0
> CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
> CR2: 0000000000000046 CR3: 000000017f0ab000 CR4: 00000000000006e0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> Process swapper (pid: 0, threadinfo ffffffff805f6000, task ffffffff805a2080)
> Stack: ffff8100010062a8 ffff8101fe9568b0 ffffffff80650e40 ffffffff8024be16
> ffffffff80369d65 ffffffff80369d65 ffff8101fe9568b0 ffff8100010062a8
> ffffffff80650eb0 ffffffff8024c1d5 ffffffffb88cc28e 0000000006e73eff
> Call Trace:
> <IRQ> [<ffffffff8024be16>] __remove_hrtimer+0x2e/0x3c
> [<ffffffff80369d65>] __down_read_trylock+0x16/0x42
> [<ffffffff80369d65>] __down_read_trylock+0x16/0x42
> [<ffffffff8024c1d5>] hrtimer_run_queues+0x130/0x191
> [<ffffffff8023fd09>] run_timer_softirq+0x28/0x1a7
> [<ffffffff8023c018>] __do_softirq+0x55/0xc2
> [<ffffffff8020c73c>] call_softirq+0x1c/0x28
> [<ffffffff8020e719>] do_softirq+0x32/0x9d
> [<ffffffff8023c0dd>] irq_exit+0x3f/0x41
> [<ffffffff8021ff85>] smp_apic_timer_interrupt+0x92/0xa7
> [<ffffffff8020c1e6>] apic_timer_interrupt+0x66/0x70
> <EOI> [<ffffffff802095f5>] default_idle+0x36/0x5e
> [<ffffffff802095f0>] default_idle+0x31/0x5e
> [<ffffffff802095bf>] default_idle+0x0/0x5e
> [<ffffffff802096b6>] cpu_idle+0x90/0xb2
> [<ffffffff804b0126>] rest_init+0x5a/0x5c
> [<ffffffff806017ee>] start_kernel+0x2b8/0x2c4
> [<ffffffff8060112b>] _sinittext+0x12b/0x132
>
>

It does seem to be mostly hrtimer-related. But surely the hrtimer system
is initialised by the time tis happens.

The usual refrain: is it possible to run a bisection search?

2007-12-27 10:25:29

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 Kernel panics at different functions ()

Andrew Morton wrote:
> On Thu, 27 Dec 2007 14:19:54 +0530 Kamalesh Babulal <[email protected]> wrote:
>
>> Hi Andrew,
>>
>> The 2.6.24-rc6-mm1 kernel with hotfix x86-fix-system-gate-related-crash.patch applied
>> panics while booting on a x86_64 box
>>
>> Unable to handle kernel NULL pointer dereference at 0000000000000046 RIP:
>> [<ffffffff80369a0b>] rb_erase+0xe7/0x2a3
>> PGD 17ff65067 PUD 17f1c7067 PMD 0
>> Oops: 0000 [1] SMP
>> last sysfs file: /sys/devices/pci0000:00/0000:00:0a.0/0000:02:04.0/host0/target0:0:6/0:0:6:0/type
>> CPU 0
>> Modules linked in:
>> Pid: 0, comm: swapper Not tainted 2.6.24-rc6-mm1-autokern1 #1
>> RIP: 0010:[<ffffffff80369a0b>] [<ffffffff80369a0b>] rb_erase+0xe7/0x2a3
>> RSP: 0000:ffffffff80650e00 EFLAGS: 00010002
>> RAX: ffff8101fe9568c8 RBX: ffff8100010062a8 RCX: ffff8101fe9568b0
>> RDX: ffff8101fe9568c8 RSI: 0000000000000046 RDI: 0000000000000000
>> RBP: ffffffff80650e10 R08: ffff8101fe9568c8 R09: 0000000000000086
>> R10: 0000000000000000 R11: 00000000000001e8 R12: ffff8100010062b8
>> R13: 0000000000000002 R14: ffff810001006260 R15: 0000000000000001
>> FS: 0000000000000000(0000) GS:ffffffff805dc000(0000) knlGS:00000000f31ffbb0
>> CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
>> CR2: 0000000000000046 CR3: 000000017f0ab000 CR4: 00000000000006e0
>> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
>> DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
>> Process swapper (pid: 0, threadinfo ffffffff805f6000, task ffffffff805a2080)
>> Stack: ffff8100010062a8 ffff8101fe9568b0 ffffffff80650e40 ffffffff8024be16
>> ffffffff80369d65 ffffffff80369d65 ffff8101fe9568b0 ffff8100010062a8
>> ffffffff80650eb0 ffffffff8024c1d5 ffffffffb88cc28e 0000000006e73eff
>> Call Trace:
>> <IRQ> [<ffffffff8024be16>] __remove_hrtimer+0x2e/0x3c
>> [<ffffffff80369d65>] __down_read_trylock+0x16/0x42
>> [<ffffffff80369d65>] __down_read_trylock+0x16/0x42
>> [<ffffffff8024c1d5>] hrtimer_run_queues+0x130/0x191
>> [<ffffffff8023fd09>] run_timer_softirq+0x28/0x1a7
>> [<ffffffff8023c018>] __do_softirq+0x55/0xc2
>> [<ffffffff8020c73c>] call_softirq+0x1c/0x28
>> [<ffffffff8020e719>] do_softirq+0x32/0x9d
>> [<ffffffff8023c0dd>] irq_exit+0x3f/0x41
>> [<ffffffff8021ff85>] smp_apic_timer_interrupt+0x92/0xa7
>> [<ffffffff8020c1e6>] apic_timer_interrupt+0x66/0x70
>> <EOI> [<ffffffff802095f5>] default_idle+0x36/0x5e
>> [<ffffffff802095f0>] default_idle+0x31/0x5e
>> [<ffffffff802095bf>] default_idle+0x0/0x5e
>> [<ffffffff802096b6>] cpu_idle+0x90/0xb2
>> [<ffffffff804b0126>] rest_init+0x5a/0x5c
>> [<ffffffff806017ee>] start_kernel+0x2b8/0x2c4
>> [<ffffffff8060112b>] _sinittext+0x12b/0x132
>>
>>
>
> It does seem to be mostly hrtimer-related. But surely the hrtimer system
> is initialised by the time tis happens.
>
> The usual refrain: is it possible to run a bisection search?
I will do the bisect and update.

--
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.

2007-12-27 11:42:48

by Torsten Kaiser

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

On Dec 23, 2007 9:39 PM, Andrew Morton <[email protected]> wrote:
>
> On Sun, 23 Dec 2007 17:27:12 +0100 "Torsten Kaiser" <[email protected]> wrote:
>
> > On Dec 23, 2007 8:30 AM, Andrew Morton <[email protected]> wrote:
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
> > [snip]
> > > +md-support-external-metadata-for-md-arrays.patch
> > > +md-give-userspace-control-over-removing-failed-devices-when-external-metdata-in-use.patch
> > > +md-allow-a-maximum-extent-to-be-set-for-resyncing.patch
> > > +md-allow-devices-to-be-shared-between-md-arrays.patch
> > > +md-lock-address-when-changing-attributes-of-component-devices.patch
> > > +md-allow-an-md-array-to-appear-with-0-drives-if-it-has-external-metadata.patch
> > >
> > > RAID updates
> > Should I blame the raid1 changes or the kobject changes?
> >
>
> I don't know. It could even be that both patch series are OK but when they
> are combined, things fail.

OK, I debugged this some more. It looks like two bugs meshed together.

One new bug: "do_md_run() returned -22"
I can't seem to start my raid anymore.
The following part of md-allow-devices-to-be-shared-between-md-arrays
adds a new check to do_md_run() (drivers/md/md.c) that fails for my system:
@@ -3213,8 +3283,11 @@ static int do_md_run(mddev_t * mddev)
/*
* Analyze all RAID superblock(s)
*/
- if (!mddev->raid_disks)
+ if (!mddev->raid_disks) {
+ if (!mddev->persistent)
+ return -EINVAL;
analyze_sbs(mddev);
+ }

chunk_size = mddev->chunk_size;

The raid gets started normally with any other kernel I tried.
I did not investigate the cause of this failure further, because I was
looking why a failure to start a raid was causing event/3 to oops.

This looks like a secound, but rather old bug.
do_md_stop (from drivers/md/md.c) does the following:
3691 /* make sure all delayed_delete calls have finished */
3692 flush_scheduled_work();
3693
3694 export_array(mddev);
3695
But: Only the callchain export_array -> kick_rdev_from_array ->
unbind_rdev_from_array schedules the delayed_delete's!

After adding a second flush_scheduled_work() below the export_array()
the resulting kernel no longer oopses and my initrd normally asks for
an alternative root-fs, because of the first bug the raid still does
not get started.

I don't know if this flush_scheduled_work() is misplaced since is was
introduced, or if it really even was only trying to flush delayed
deletes from previously stopped arrays.

When investigation this, I got these debug-outputs:
first try, with my second flush_scheduled_work removed again:
[ 34.290576] md: Autodetecting RAID arrays.
[ 34.125649] md: Scanned 5 and added 5 devices.
[ 34.125649] md: autorun ...
[ 34.125649] md: considering sdc2 ...
[ 34.125658] md: adding sdc2 ...
[ 34.126914] md: adding sdb2 ...
[ 34.128170] md: sdb1 has different UUID to sdc2
[ 34.135654] md: adding sda2 ...
[ 34.137168] md: sda1 has different UUID to sdc2
[ 34.145669] md: created md1
[ 34.146755] md: bind<sda2>
[ 34.147879] md: bind<sdb2>
[ 34.155665] md: bind<sdc2>
[ 34.156730] md: running: <sdc2><sdb2><sda2>
[ 34.158427] mddev not persistent ???
[ 34.165651] md: do_md_run() returned -22
[ 34.167171] md: md1 stopped.
[ 34.168292] 1:flush_scheduled_work()
-> this is the original flush_scheduled_work()-call
[ 34.175675] md: unbind<sdc2>
[ 34.176795] md: remove sysfs-link 'block', schedule delayed_delete...
following output is from unbind_rdev_from_array:
[ 34.185662] XXX:unb:rdev == ffff81011ede4800
<3>XXX:unb:rdev->bdev == ffff81011f86b600
<3>XXX:unb:rdev->kobj == ffff81011ede4860
<6>md: export_rdev(sdc2)
[ 34.196600] md: unbind<sdb2>
[ 34.197720] md: remove sysfs-link 'block', schedule delayed_delete...
[ 34.205654] XXX:unb:rdev == ffff81011ede4600
<3>XXX:unb:rdev->bdev == ffff81011f86b080
<3>XXX:unb:rdev->kobj == ffff81011ede4660
<6>md: export_rdev(sdb2)
[ 34.217942] md: unbind<sda2>
[ 34.225651] md: remove sysfs-link 'block', schedule delayed_delete...
[ 34.228140] XXX:unb:rdev == ffff81011ede4400
<3>XXX:unb:rdev->bdev == ffff81011f86a000
<3>XXX:unb:rdev->kobj == ffff81011ede4460
<6>md: export_rdev(sda2)
[ 34.245664] 2:!flush_scheduled_work()
-> my second call is disabled for this run
[ 34.247101] md: considering sdb1 ...
[ 34.248492] md: adding sdb1 ...
[ 34.255654] md: adding sda1 ...
following output is from delayed_delete:
[ 34.257024] XXX:dd:rdev == ffff81011ede4800
<3>XXX:dd:rdev->kobj == ffff81011ede4860
-> sdc2 seems to get deleted normally
<3>XXX:dd:rdev == ffff81011ede4600
<3>XXX:dd:rdev->kobj == ffff81011ede4660
-> sdb2 too
<3>XXX:dd:rdev == ffff81011ede4400
<3>XXX:dd:rdev->bdev == 5441505645440064
-> but here is something strange, the other devices did not get a
bdev-line, because that value was zero
<6>md: created md0
[ 34.654554] md: bind<sda1>
[ 34.654554] md: bind<sdb1>
[ 34.654554] md: running: <sdb1><sda1>
[ 34.654554] mddev not persistent ???
[ 34.654554] md: do_md_run() returned -22
[ 34.654554] md: md0 stopped.
[ 34.654554] 1:flush_scheduled_work()
-> the flush from the second failed raid forces the delayed_deletes
from the first raid to finish
[ 34.285652] XXX:dd:rdev->kobj == ffff81011ede4460
-> the pointer itself looks still the same, but the kobject seems to be gone:
<1>Unable to handle kernel paging request at 0000000034333545 RIP:
[ 34.288794] [<ffffffff803b49a1>] kref_put+0x31/0x80
[ 34.291688] PGD 7e427067 PUD 7ed22067 PMD 0
[ 34.293394] Oops: 0002 [1] SMP
[ 34.294651] last sysfs file: /sys/devices/virtual/block/md0/dev
[ 34.295649] CPU 3
[ 34.295649] Modules linked in:
[ 34.295649] Pid: 18, comm: events/3 Not tainted 2.6.24-rc6-mm1 #9
[ 34.295649] RIP: 0010:[<ffffffff803b49a1>] [<ffffffff803b49a1>]
kref_put+0x31/0x80
[ 34.295649] RSP: 0000:ffff81007ffe5df0 EFLAGS: 00010202
[ 34.295649] RAX: 0000000000000000 RBX: 0000000034333545 RCX: ffffffff80606270
[ 34.295649] RDX: 0000000000000040 RSI: ffffffff803b38b0 RDI: 0000000034333545
[ 34.295649] RBP: ffff81007ffe5e00 R08: 0000000000000001 R09: 0000000000000000
[ 34.295649] R10: ffffffff8094c430 R11: 0000000000000000 R12: ffffffff803b38b0
[ 34.295650] R13: ffff81011ede44d8 R14: ffffffff804d7d50 R15: ffff81011ff210f0
[ 34.295650] FS: 0000000002024870(0000) GS:ffff81011ff0dd00(0000)
knlGS:0000000000000000
[ 34.295650] CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
[ 34.295650] CR2: 0000000034333545 CR3: 000000007e535000 CR4: 00000000000006e0
[ 34.295650] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 34.295650] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 34.295650] Process events/3 (pid: 18, threadinfo ffff81007ffe4000,
task ffff81007ffe2000)
[ 34.295650] Stack: ffff81011ede4460 ffff81011ede4400
ffff81007ffe5e10 ffffffff803b37e9
[ 34.295650] ffff81007ffe5e30 ffffffff803b389b ffffffff804d7d50
ffff81011ede4460
[ 34.295650] ffff81007ffe5e50 ffffffff804d7db9 ffff81011ede44e0
ffff81011ff210c0
[ 34.295650] Call Trace:
[ 34.295650] [<ffffffff803b37e9>] kobject_put+0x19/0x20
[ 34.295650] [<ffffffff803b389b>] kobject_del+0x2b/0x40
[ 34.295650] [<ffffffff804d7d50>] delayed_delete+0x0/0xb0
[ 34.295650] [<ffffffff804d7db9>] delayed_delete+0x69/0xb0
[ 34.295650] [<ffffffff80249775>] run_workqueue+0x175/0x210
[ 34.295650] [<ffffffff8024a411>] worker_thread+0x71/0xb0
[ 34.295650] [<ffffffff8024d9e0>] autoremove_wake_function+0x0/0x40
[ 34.295650] [<ffffffff8024a3a0>] worker_thread+0x0/0xb0
[ 34.295650] [<ffffffff8024d5fd>] kthread+0x4d/0x80
[ 34.295650] [<ffffffff8020c4b8>] child_rip+0xa/0x12
[ 34.295650] [<ffffffff8020bbcf>] restore_args+0x0/0x30
[ 34.295650] [<ffffffff8024d5b0>] kthread+0x0/0x80
[ 34.295650] [<ffffffff8020c4ae>] child_rip+0x0/0x12
[ 34.295650]
[ 34.295650]
[ 34.295650] Code: f0 ff 0b 0f 94 c0 31 d2 84 c0 74 0b 48 89 df 41
ff d4 ba 01
[ 34.295650] RIP [<ffffffff803b49a1>] kref_put+0x31/0x80
[ 34.295650] RSP <ffff81007ffe5df0>
[ 34.295650] CR2: 0000000034333545
[ 34.295653] ---[ end trace 60425fedd4d3ef22 ]---
Here the system hangs, the initrd does not prompt for an alternative root-fs

second try with the newly added flush:
[ 34.267403] md: Autodetecting RAID arrays.
[ 34.188217] md: Scanned 5 and added 5 devices.
[ 34.188220] md: autorun ...
[ 34.189306] md: considering sdc2 ...
[ 34.190699] md: adding sdc2 ...
[ 34.198224] md: adding sdb2 ...
[ 34.199480] md: sdb1 has different UUID to sdc2
[ 34.201237] md: adding sda2 ...
[ 34.208220] md: sda1 has different UUID to sdc2
[ 34.209993] md: created md1
[ 34.218220] md: bind<sda2>
[ 34.219341] md: bind<sdb2>
[ 34.220410] md: bind<sdc2>
[ 34.221476] md: running: <sdc2><sdb2><sda2>
[ 34.228963] mddev not persistent ???
[ 34.230350] md: do_md_run() returned -22
[ 34.238219] md: md1 stopped.
[ 34.239339] 1:flush_scheduled_work()
-> old call to flush_scheduled_work()
[ 34.240749] md: unbind<sdc2>
[ 34.248219] md: remove sysfs-link 'block', schedule delayed_delete...
[ 34.250716] XXX:unb:rdev == ffff81011ed6d800
<3>XXX:unb:rdev->bdev == ffff81011f86b600
<3>XXX:unb:rdev->kobj == ffff81011ed6d860
<6>md: export_rdev(sdc2)
[ 34.268262] md: unbind<sdb2>
[ 34.269382] md: remove sysfs-link 'block', schedule delayed_delete...
[ 34.278221] XXX:unb:rdev == ffff81011ed6de00
<3>XXX:unb:rdev->bdev == ffff81011f86b080
<3>XXX:unb:rdev->kobj == ffff81011ed6de60
<6>md: export_rdev(sdb2)
[ 34.289123] md: unbind<sda2>
[ 34.290244] md: remove sysfs-link 'block', schedule delayed_delete...
[ 34.298221] XXX:unb:rdev == ffff81011ed6da00
<3>XXX:unb:rdev->bdev == ffff81011f86a000
<3>XXX:unb:rdev->kobj == ffff81011ed6da60
<6>md: export_rdev(sda2)
[ 34.310502] 2:flush_scheduled_work()
-> newly added call to flush_scheduled_work()
[ 34.318253] XXX:dd:rdev == ffff81011ed6d800
<3>XXX:dd:rdev->kobj == ffff81011ed6d860
<3>XXX:dd:rdev == ffff81011ed6de00
<3>XXX:dd:rdev->kobj == ffff81011ed6de60
-> this time, rdev->bdev/rdev->kobj from sda2 seem to be still ok.
<3>XXX:dd:rdev == ffff81011ed6da00
<3>XXX:dd:rdev->kobj == ffff81011ed6da60
<6>md: considering sdb1 ...
[ 34.339255] md: adding sdb1 ...
[ 34.340511] md: adding sda1 ...
[ 34.348520] md: created md0
[ 34.349608] md: bind<sda1>
[ 34.350676] md: bind<sdb1>
[ 34.351741] md: running: <sdb1><sda1>
[ 34.358743] mddev not persistent ???
[ 34.360131] md: do_md_run() returned -22
-> same failure to start the second raid, but...
[ 34.368219] md: md0 stopped.
[ 34.369340] 1:flush_scheduled_work()
-> ... this time the work is already done and no oops happend
[ 34.370733] md: unbind<sdb1>
[ 34.378219] md: remove sysfs-link 'block', schedule delayed_delete...
[ 34.380705] XXX:unb:rdev == ffff81011ed6dc00
<3>XXX:unb:rdev->bdev == ffff81011f86a580
<3>XXX:unb:rdev->kobj == ffff81011ed6dc60
<6>md: export_rdev(sdb1)
[ 34.398254] md: unbind<sda1>
[ 34.399373] md: remove sysfs-link 'block', schedule delayed_delete...
[ 34.408221] XXX:unb:rdev == ffff81007ff51800
<3>XXX:unb:rdev->bdev == ffff81007f8a0580
<3>XXX:unb:rdev->kobj == ffff81007ff51860
<6>md: export_rdev(sda1)
[ 34.419120] 2:flush_scheduled_work()
[ 34.420510] XXX:dd:rdev == ffff81011ed6dc00
<3>XXX:dd:rdev->kobj == ffff81011ed6dc60
<3>XXX:dd:rdev == ffff81007ff51800
<3>XXX:dd:rdev->kobj == ffff81007ff51860
<6>md: ... autorun DONE.
Here the system now asks for a root-fs as the normal root /dev/md1 was
not started.

I hope these outputs help, if more are needed, just ask.

Torsten

2007-12-27 14:31:01

by Torsten Kaiser

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

[author CCed]
On Dec 27, 2007 12:42 PM, Torsten Kaiser <[email protected]> wrote:
> On Dec 23, 2007 9:39 PM, Andrew Morton <[email protected]> wrote:
> >
> > On Sun, 23 Dec 2007 17:27:12 +0100 "Torsten Kaiser" <[email protected]> wrote:
> >
> > > On Dec 23, 2007 8:30 AM, Andrew Morton <[email protected]> wrote:
> > > >
> > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
> > > [snip]
> > > > +md-allow-devices-to-be-shared-between-md-arrays.patch
[snip]
> OK, I debugged this some more. It looks like two bugs meshed together.
>
> One new bug: "do_md_run() returned -22"
> I can't seem to start my raid anymore.
> The following part of md-allow-devices-to-be-shared-between-md-arrays
> adds a new check to do_md_run() (drivers/md/md.c) that fails for my system:
> @@ -3213,8 +3283,11 @@ static int do_md_run(mddev_t * mddev)
> /*
> * Analyze all RAID superblock(s)
> */
> - if (!mddev->raid_disks)
> + if (!mddev->raid_disks) {
> + if (!mddev->persistent)
> + return -EINVAL;
> analyze_sbs(mddev);
> + }
>
> chunk_size = mddev->chunk_size;

This hunk is indeed buggy.
analyze_sbs() calls load_super() and validate_super() and only the
validate function is setting mddev->persistent, so this new check
needs to be after the call analyze_sbs(mddev).

Changing this allows my system to boot correctly, including starting KDE.

Please note, that this is not a fix for the OOPS in delayed_delete,
the OOPS just doesn't happen, because the buggy error path is no
longer used.

Torsten

2007-12-27 17:15:31

by Valdis Klētnieks

[permalink] [raw]
Subject: 2.6.24-rc6-mm1 - power_supply driver dmesg weirdness?

On Sat, 22 Dec 2007 23:30:56 PST, Andrew Morton said:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/

Happened to be looking more closely than usual at my dmesg looking for something
else, and spotted this:

[ 6.079043] power_supply BAT0: 11 dynamic props
[ 6.079045] power_supply BAT0: prop STATUS=Full
[ 6.079047] power_supply BAT0: prop PRESENT=1
[ 6.079049] power_supply BAT0: prop TECHNOLOGY=Li-ion
[ 6.079052] power_supply BAT0: prop VOLTAGE_MIN_DESIGN=11100000
[ 6.079054] power_supply BAT0: prop VOLTAGE_NOW=11793000
[ 6.079056] power_supply BAT0: prop CURRENT_NOW=1000
[ 6.079058] power_supply BAT0: prop CHARGE_FULL_DESIGN=7800000
[ 6.079061] power_supply BAT0: prop CHARGE_FULL=3110000
[ 6.079063] power_supply BAT0: prop CHARGE_NOW=7800000
[ 6.079065] power_supply BAT0: prop TIME_TO_FULL_AVG=DELL FF2316
[ 6.079067] power_supply BAT0: prop MODEL_NAME=Sanyo
[ 6.079301] ACPI: SSDT 7FE82138, 0244 (r1 PmRef Cpu0Ist 3000 INTL 20050624)
[ 6.079488] ACPI: SSDT 7FE81EED, 01C6 (r1 PmRef Cpu0Cst 3001 INTL 20050624)

What's with that TIME_TO_FULL_AVG value? Is the battery on crack, or my BIOS,
or the driver? I expected time units, not a Dell part number ;) (Yes, I know
CHARGE_FULL is low, the battery is pretty beat, and Latitudes seem to always
report CHARGE_NOW as "design full" when running off the AC power brick)

(For the record, dmidecode says:

Handle 0x1600, DMI type 22, 26 bytes
Portable Battery
Location: Sys. Battery Bay
Manufacturer: Sanyo
Name: DELL FF2316A
Design Capacity: 78000 mWh
Design Voltage: 11100 mV
SBDS Version: 1.0
Maximum Error: 0%
SBDS Serial Number: 0355
SBDS Manufacture Date: 2006-10-26
SBDS Chemistry: LION
OEM-specific Information: 0x00000001

So it even managed to lose the trailing 'A'.. ;)


Attachments:
(No filename) (226.00 B)

2007-12-27 17:54:50

by Valdis Klētnieks

[permalink] [raw]
Subject: 2.6.24-rc6-mm1 - crash in tick_sched_timer/update_process_times

On Sat, 22 Dec 2007 23:30:56 PST, Andrew Morton said:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/

I seem to be on a roll here... :)

X86_64 kernel, Dell Latitude D820, Core2 T7200 processor...

(Yes, I know it's tainted. If I *have* to, I'll try to get an untainted one,
which will be a pain - the oss 'nv' driver is a tad busticated on my box at
the moment).

Took me a bunch of hours to find a way to repeat this one, but it seems
pretty consistent - I exit an 'Eterm' process and ka-blam. First guess
I have is that we hit a race and the timer popped right in the middle of
a process exiting and we try to update process times on an already-defunct
process table entry?

This ring any bells or brown-paper-bag D'Oh!s before I go bisecting?

[15345.901919] Unable to handle kernel paging request at 000000af008c00cd RIP:
[15345.901934] [<ffffffff802310d9>] scheduler_tick+0xdb/0x1c4
[15345.901952] PGD 0
[15345.901959] Oops: 0000 [1] PREEMPT SMP
[15345.901972] last sysfs file: /sys/devices/platform/coretemp.1/temp1_input
[15345.901978] CPU 1
[15345.901984] Modules linked in: irnet ppp_generic slhc irtty_sir sir_dev ircomm_tty ircomm irda crc_ccitt coretemp nf_conntrack_ftp xt_pkttype ipt_REJECT ipt_osf nf_conntrack_ipv4 xt_ipisforif ipt_recent ipt_LOG xt_u32 iptable_filter ip_tables xt_tcpudp nf_conntrack_ipv6 xt_state nf_conntrack ip6t_LOG xt_limit ip6table_filter ip6_tables x_tables sha256_generic aes_generic acpi_cpufreq tpm_tis pcmcia gspca(U) iwl3945 firmware_class iTCO_wdt yenta_socket compat_ioctl32 ohci1394 rsrc_nonstatic iTCO_vendor_support mac80211 ieee1394 pcmcia_core nvidia(P)(U) watchdog_core battery videodev ac watchdog_dev v4l2_common snd_hda_intel v4l1_compat thermal power_supply cfg80211 button intel_agp processor rtc
[15345.902170] Pid: 0, comm: Eterm Tainted: P 2.6.24-rc6-mm1 #4
[15345.902176] RIP: 0010:[<ffffffff802310d9>] [<ffffffff802310d9>] scheduler_tick+0xdb/0x1c4
[15345.902189] RSP: 0018:ffff81007f8a3eb8 EFLAGS: 00010083
[15345.902195] RAX: 000000af008c005d RBX: 00000df4fefac7d9 RCX: 0000000000000004
[15345.902202] RDX: 0000000000000004 RSI: ffff81007e405600 RDI: ffff810001011180
[15345.902208] RBP: ffff81007f8a3ed8 R08: 0000000000000010 R09: 0000000000000001
[15345.902214] R10: ffff8100808f4000 R11: ffffffff8071d180 R12: ffff810001011180
[15345.902219] R13: 0000000000000001 R14: ffff81007e405600 R15: 0000000000000001
[15345.902226] FS: 0000000000000000(0000) GS:ffff81007f86f9c0(0063) knlGS:00000000f7dab6c0
[15345.902233] CS: 0010 DS: 002b ES: 002b CR0: 000000008005003b
[15345.902238] CR2: 000000af008c00cd CR3: 00000000766c8000 CR4: 00000000000006e0
[15345.902244] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[15345.902249] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[15345.902256] Process Eterm (pid: 0, threadinfo 4394404dffffffff, task ffff81007e405600)
[15345.902261] Stack: 0000000000000001 0000000000000000 ffff81007e405600 00000c71d7bbe7da
[15345.902279] ffff81007f8a3f08 ffffffff8023f913 ffff81007f8a3f08 ffff81000100e060
[15345.902293] ffff810077161b08 ffff81000100df60 ffff81007f8a3f38 ffffffff80251b7d
[15345.902306] Call Trace:
[15345.902312] <IRQ> [<ffffffff8023f913>] update_process_times+0x4a/0x5b
[15345.902334] [<ffffffff80251b7d>] tick_sched_timer+0x8e/0xcb
[15345.902345] [<ffffffff8024ce2c>] hrtimer_interrupt+0x111/0x1a1
[15345.902357] [<ffffffff8022733e>] ia32_setup_frame+0xb5/0x1b7
[15345.902367] [<ffffffff8021f174>] smp_apic_timer_interrupt+0x86/0xa6
[15345.902377] [<ffffffff8020cca6>] apic_timer_interrupt+0x66/0x70
[15345.902383] <EOI>
[15345.902389]
[15345.902390] Code: ff 50 70 4c 89 e7 e8 4a 2d 2f 00 44 89 ef e8 85 9f ff ff 41
[15345.902445] RIP [<ffffffff802310d9>] scheduler_tick+0xdb/0x1c4
[15345.902455] RSP <ffff81007f8a3eb8>
[15345.902461] CR2: 000000af008c00cd


Attachments:
(No filename) (226.00 B)

2007-12-28 07:35:43

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 - crash in tick_sched_timer/update_process_times

On Thu, 27 Dec 2007 12:54:34 -0500 [email protected] wrote:

> On Sat, 22 Dec 2007 23:30:56 PST, Andrew Morton said:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
>
> I seem to be on a roll here... :)

Yup. But please do try to get the cc's right. Especially when I'm lying
on a beach.

> X86_64 kernel, Dell Latitude D820, Core2 T7200 processor...
>
> (Yes, I know it's tainted. If I *have* to, I'll try to get an untainted one,
> which will be a pain - the oss 'nv' driver is a tad busticated on my box at
> the moment).

I doubt if the nvidia driver is involved in this.

> Took me a bunch of hours to find a way to repeat this one, but it seems
> pretty consistent - I exit an 'Eterm' process and ka-blam. First guess
> I have is that we hit a race and the timer popped right in the middle of
> a process exiting and we try to update process times on an already-defunct
> process table entry?
>
> This ring any bells or brown-paper-bag D'Oh!s before I go bisecting?
>
> [15345.901919] Unable to handle kernel paging request at 000000af008c00cd RIP:
> [15345.901934] [<ffffffff802310d9>] scheduler_tick+0xdb/0x1c4
> [15345.901952] PGD 0
> [15345.901959] Oops: 0000 [1] PREEMPT SMP
> [15345.901972] last sysfs file: /sys/devices/platform/coretemp.1/temp1_input
> [15345.901978] CPU 1
> [15345.901984] Modules linked in: irnet ppp_generic slhc irtty_sir sir_dev ircomm_tty ircomm irda crc_ccitt coretemp nf_conntrack_ftp xt_pkttype ipt_REJECT ipt_osf nf_conntrack_ipv4 xt_ipisforif ipt_recent ipt_LOG xt_u32 iptable_filter ip_tables xt_tcpudp nf_conntrack_ipv6 xt_state nf_conntrack ip6t_LOG xt_limit ip6table_filter ip6_tables x_tables sha256_generic aes_generic acpi_cpufreq tpm_tis pcmcia gspca(U) iwl3945 firmware_class iTCO_wdt yenta_socket compat_ioctl32 ohci1394 rsrc_nonstatic iTCO_vendor_support mac80211 ieee1394 pcmcia_core nvidia(P)(U) watchdog_core battery videodev ac watchdog_dev v4l2_common snd_hda_intel v4l1_compat thermal power_supply cfg80211 button intel_agp processor rtc
> [15345.902170] Pid: 0, comm: Eterm Tainted: P 2.6.24-rc6-mm1 #4
> [15345.902176] RIP: 0010:[<ffffffff802310d9>] [<ffffffff802310d9>] scheduler_tick+0xdb/0x1c4
> [15345.902189] RSP: 0018:ffff81007f8a3eb8 EFLAGS: 00010083
> [15345.902195] RAX: 000000af008c005d RBX: 00000df4fefac7d9 RCX: 0000000000000004
> [15345.902202] RDX: 0000000000000004 RSI: ffff81007e405600 RDI: ffff810001011180
> [15345.902208] RBP: ffff81007f8a3ed8 R08: 0000000000000010 R09: 0000000000000001
> [15345.902214] R10: ffff8100808f4000 R11: ffffffff8071d180 R12: ffff810001011180
> [15345.902219] R13: 0000000000000001 R14: ffff81007e405600 R15: 0000000000000001
> [15345.902226] FS: 0000000000000000(0000) GS:ffff81007f86f9c0(0063) knlGS:00000000f7dab6c0
> [15345.902233] CS: 0010 DS: 002b ES: 002b CR0: 000000008005003b
> [15345.902238] CR2: 000000af008c00cd CR3: 00000000766c8000 CR4: 00000000000006e0
> [15345.902244] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [15345.902249] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> [15345.902256] Process Eterm (pid: 0, threadinfo 4394404dffffffff, task ffff81007e405600)
> [15345.902261] Stack: 0000000000000001 0000000000000000 ffff81007e405600 00000c71d7bbe7da
> [15345.902279] ffff81007f8a3f08 ffffffff8023f913 ffff81007f8a3f08 ffff81000100e060
> [15345.902293] ffff810077161b08 ffff81000100df60 ffff81007f8a3f38 ffffffff80251b7d
> [15345.902306] Call Trace:
> [15345.902312] <IRQ> [<ffffffff8023f913>] update_process_times+0x4a/0x5b
> [15345.902334] [<ffffffff80251b7d>] tick_sched_timer+0x8e/0xcb
> [15345.902345] [<ffffffff8024ce2c>] hrtimer_interrupt+0x111/0x1a1
> [15345.902357] [<ffffffff8022733e>] ia32_setup_frame+0xb5/0x1b7
> [15345.902367] [<ffffffff8021f174>] smp_apic_timer_interrupt+0x86/0xa6
> [15345.902377] [<ffffffff8020cca6>] apic_timer_interrupt+0x66/0x70
> [15345.902383] <EOI>
> [15345.902389]
> [15345.902390] Code: ff 50 70 4c 89 e7 e8 4a 2d 2f 00 44 89 ef e8 85 9f ff ff 41
> [15345.902445] RIP [<ffffffff802310d9>] scheduler_tick+0xdb/0x1c4
> [15345.902455] RSP <ffff81007f8a3eb8>
> [15345.902461] CR2: 000000af008c00cd
>
>

2007-12-28 09:11:38

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 Kernel panics at different functions ()

Andrew Morton wrote:
> On Thu, 27 Dec 2007 14:19:54 +0530 Kamalesh Babulal <[email protected]> wrote:
>
>> Hi Andrew,
>>
>> The 2.6.24-rc6-mm1 kernel with hotfix x86-fix-system-gate-related-crash.patch applied
>> panics while booting on a x86_64 box
>>
>> Unable to handle kernel NULL pointer dereference at 0000000000000046 RIP:
>> [<ffffffff80369a0b>] rb_erase+0xe7/0x2a3
>> PGD 17ff65067 PUD 17f1c7067 PMD 0
>> Oops: 0000 [1] SMP
>> last sysfs file: /sys/devices/pci0000:00/0000:00:0a.0/0000:02:04.0/host0/target0:0:6/0:0:6:0/type
>> CPU 0
>> Modules linked in:
>> Pid: 0, comm: swapper Not tainted 2.6.24-rc6-mm1-autokern1 #1
>> RIP: 0010:[<ffffffff80369a0b>] [<ffffffff80369a0b>] rb_erase+0xe7/0x2a3
>> RSP: 0000:ffffffff80650e00 EFLAGS: 00010002
>> RAX: ffff8101fe9568c8 RBX: ffff8100010062a8 RCX: ffff8101fe9568b0
>> RDX: ffff8101fe9568c8 RSI: 0000000000000046 RDI: 0000000000000000
>> RBP: ffffffff80650e10 R08: ffff8101fe9568c8 R09: 0000000000000086
>> R10: 0000000000000000 R11: 00000000000001e8 R12: ffff8100010062b8
>> R13: 0000000000000002 R14: ffff810001006260 R15: 0000000000000001
>> FS: 0000000000000000(0000) GS:ffffffff805dc000(0000) knlGS:00000000f31ffbb0
>> CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
>> CR2: 0000000000000046 CR3: 000000017f0ab000 CR4: 00000000000006e0
>> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
>> DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
>> Process swapper (pid: 0, threadinfo ffffffff805f6000, task ffffffff805a2080)
>> Stack: ffff8100010062a8 ffff8101fe9568b0 ffffffff80650e40 ffffffff8024be16
>> ffffffff80369d65 ffffffff80369d65 ffff8101fe9568b0 ffff8100010062a8
>> ffffffff80650eb0 ffffffff8024c1d5 ffffffffb88cc28e 0000000006e73eff
>> Call Trace:
>> <IRQ> [<ffffffff8024be16>] __remove_hrtimer+0x2e/0x3c
>> [<ffffffff80369d65>] __down_read_trylock+0x16/0x42
>> [<ffffffff80369d65>] __down_read_trylock+0x16/0x42
>> [<ffffffff8024c1d5>] hrtimer_run_queues+0x130/0x191
>> [<ffffffff8023fd09>] run_timer_softirq+0x28/0x1a7
>> [<ffffffff8023c018>] __do_softirq+0x55/0xc2
>> [<ffffffff8020c73c>] call_softirq+0x1c/0x28
>> [<ffffffff8020e719>] do_softirq+0x32/0x9d
>> [<ffffffff8023c0dd>] irq_exit+0x3f/0x41
>> [<ffffffff8021ff85>] smp_apic_timer_interrupt+0x92/0xa7
>> [<ffffffff8020c1e6>] apic_timer_interrupt+0x66/0x70
>> <EOI> [<ffffffff802095f5>] default_idle+0x36/0x5e
>> [<ffffffff802095f0>] default_idle+0x31/0x5e
>> [<ffffffff802095bf>] default_idle+0x0/0x5e
>> [<ffffffff802096b6>] cpu_idle+0x90/0xb2
>> [<ffffffff804b0126>] rest_init+0x5a/0x5c
>> [<ffffffff806017ee>] start_kernel+0x2b8/0x2c4
>> [<ffffffff8060112b>] _sinittext+0x12b/0x132
>>
>>
>
> It does seem to be mostly hrtimer-related. But surely the hrtimer system
> is initialised by the time tis happens.
>
> The usual refrain: is it possible to run a bisection search?
Hi Andrew,

While doing the git bisect, following panic was seen

Unable to handle kernel paging request at 000000000000401e RIP:
[<ffffffff80232ec8>] load_balance_monitor+0x15e/0x2a4
PGD 0
Oops: 0000 [1] SMP
last sysfs file: /devices/pci0000:00/0000:00:0a.0/0000:02:04.0/host0/target0:0:6/0:0:6:0/type
CPU 1
Modules linked in:
Pid: 15, comm: load_balance_mo Not tainted 2.6.24-rc6-mm1-autokern1 #1
RIP: 0010:[<ffffffff80232ec8>] [<ffffffff80232ec8>] load_balance_monitor+0x15e/0x2a4
RSP: 0000:ffff81007ffb7eb0 EFLAGS: 00010297
RAX: 0000000000000000 RBX: 0000000000000001 RCX: 0000000000000000
RDX: 000000000000401e RSI: ffff81007ffb7ed8 RDI: 0000000000000000
RBP: ffff81007ffb7f20 R08: ffff81007ffb6000 R09: ffff81007ffb6000
R10: ffff81007ffb6000 R11: 0000000000000000 R12: 0000000000000000
R13: 0000000000000003 R14: 0000000000000800 R15: ffff8101fe997f00
FS: 0000000000000000(0000) GS:ffff8100e3b10000(0000) knlGS:00000000f73e1bb0
CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 000000000000401e CR3: 0000000000201000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process load_balance_mo (pid: 15, threadinfo ffff81007ffb6000, task ffff81007ff94790)
Stack: 0000000000002000 0000000000000000 ffff810001009cc0 00000001e3b29d90
0000008000000000 000000000000000f ffff81007f0be780 000000000000000f
000000017ffb7f20 0000000000000000 00000000fffffffc ffffffffffffffff
Call Trace:
[<ffffffff80232d6a>] load_balance_monitor+0x0/0x2a4
[<ffffffff80247830>] kthread+0x3d/0x63
[<ffffffff8020c2b8>] child_rip+0xa/0x12
[<ffffffff802477f3>] kthread+0x0/0x63
[<ffffffff8020c2ae>] child_rip+0x0/0x12


Code: 48 8b 04 c2 48 8b 10 48 01 55 98 e8 ce 40 12 00 83 f8 07 41
RIP [<ffffffff80232ec8>] load_balance_monitor+0x15e/0x2a4
RSP <ffff81007ffb7eb0>
CR2: 000000000000401e


The git-sched.patch is causing this panic, and i am searching for the patch causing the
hrtimer-related panic.

--
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.

2007-12-28 13:03:45

by Dhaval Giani

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 Kernel panics at different functions ()

>
> While doing the git bisect, following panic was seen
>
> Unable to handle kernel paging request at 000000000000401e RIP:
> [<ffffffff80232ec8>] load_balance_monitor+0x15e/0x2a4
> PGD 0
> Oops: 0000 [1] SMP
> last sysfs file: /devices/pci0000:00/0000:00:0a.0/0000:02:04.0/host0/target0:0:6/0:0:6:0/type
> CPU 1
> Modules linked in:
> Pid: 15, comm: load_balance_mo Not tainted 2.6.24-rc6-mm1-autokern1 #1
> RIP: 0010:[<ffffffff80232ec8>] [<ffffffff80232ec8>] load_balance_monitor+0x15e/0x2a4
> RSP: 0000:ffff81007ffb7eb0 EFLAGS: 00010297
> RAX: 0000000000000000 RBX: 0000000000000001 RCX: 0000000000000000
> RDX: 000000000000401e RSI: ffff81007ffb7ed8 RDI: 0000000000000000
> RBP: ffff81007ffb7f20 R08: ffff81007ffb6000 R09: ffff81007ffb6000
> R10: ffff81007ffb6000 R11: 0000000000000000 R12: 0000000000000000
> R13: 0000000000000003 R14: 0000000000000800 R15: ffff8101fe997f00
> FS: 0000000000000000(0000) GS:ffff8100e3b10000(0000) knlGS:00000000f73e1bb0
> CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
> CR2: 000000000000401e CR3: 0000000000201000 CR4: 00000000000006e0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> Process load_balance_mo (pid: 15, threadinfo ffff81007ffb6000, task ffff81007ff94790)
> Stack: 0000000000002000 0000000000000000 ffff810001009cc0 00000001e3b29d90
> 0000008000000000 000000000000000f ffff81007f0be780 000000000000000f
> 000000017ffb7f20 0000000000000000 00000000fffffffc ffffffffffffffff
> Call Trace:
> [<ffffffff80232d6a>] load_balance_monitor+0x0/0x2a4
> [<ffffffff80247830>] kthread+0x3d/0x63
> [<ffffffff8020c2b8>] child_rip+0xa/0x12
> [<ffffffff802477f3>] kthread+0x0/0x63
> [<ffffffff8020c2ae>] child_rip+0x0/0x12
>
>
> Code: 48 8b 04 c2 48 8b 10 48 01 55 98 e8 ce 40 12 00 83 f8 07 41
> RIP [<ffffffff80232ec8>] load_balance_monitor+0x15e/0x2a4
> RSP <ffff81007ffb7eb0>
> CR2: 000000000000401e
>

Hmmm. Looking into it :-).

--
regards,
Dhaval

2007-12-28 19:20:30

by Paul Moore

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 - git-lblnet.patch and networking horkage

On Wednesday 26 December 2007 4:52:03 pm James Morris wrote:
> On Thu, 26 Dec 2007, Paul Moore wrote:
> > As James said I'm away right now and computer access is limited.
> > However, I'm stuck in the airport right now and spent some time looking
> > at the code ... Based on what has been found so far I wonder if the
> > problem isn't a race but a problem of skb->iif never being initialized
> > correctly? To my untrained eye it looks like __netdev_alloc_skb()
> > should be setting skb->iif (like it does for skb->dev) but it currently
> > doesn't.
>
> ->iif will be zeroed during skb allocation, then set during
> netif_receive_skb().

So it is ... I didn't look at __alloc_skb() close enough. Thanks.

--
paul moore
linux security @ hp

2007-12-28 22:53:59

by Torsten Kaiser

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

On Dec 23, 2007 5:27 PM, Torsten Kaiser <[email protected]> wrote:
> On Dec 23, 2007 8:30 AM, Andrew Morton <[email protected]> wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
> I have finally given up on using 2.6.24-rc3-mm2 with slub_debug=FZP to
> get more information out of the random crashes I had seen with that
> version. (Did not crash once with slub_debug, so no new information on
> what the cause was)

Murphy: Just after sending that mail the system crashed two times with
slub_debug=FZP, but did not show any new informations.
No debug output from slub, only this stacktrace: (Its the same I
already reported in the 2.6.24-rc3-mm2 thread)

[ 7620.673012] ------------[ cut here ]------------
[ 7620.676291] kernel BUG at lib/list_debug.c:33!
[ 7620.679440] invalid opcode: 0000 [1] SMP
[ 7620.682319] last sysfs file:
/sys/devices/system/cpu/cpu3/cache/index2/shared_cpu_map
[ 7620.687845] CPU 0
[ 7620.689300] Modules linked in: radeon drm nfsd exportfs w83792d
ipv6 tuner tea5767 tda8290 tuner_xc2028 tda9887 tuner_simple mt20xx
tea5761 tvaudio msp3400 bttv ir_common compat_ioctl32 videobuf_dma_sg
videobuf_core btcx_risc tveeprom videodev usbhid v4l2_common
v4l1_compat hid i2c_nforce2 sg pata_amd
[ 7620.708561] Pid: 5698, comm: nfsv4-svc Not tainted 2.6.24-rc3-mm2 #2
[ 7620.713080] RIP: 0010:[<ffffffff803bae54>] [<ffffffff803bae54>]
__list_add+0x54/0x60
[ 7620.718667] RSP: 0018:ffff81011bca1dc0 EFLAGS: 00010282
[ 7620.722439] RAX: 0000000000000088 RBX: ffff81011c862c48 RCX: 0000000000000002
[ 7620.727504] RDX: ffff81011bc82ef0 RSI: 0000000000000001 RDI: ffffffff807590c0
[ 7620.732581] RBP: ffff81011bca1dc0 R08: 0000000000000001 R09: 0000000000000000
[ 7620.737658] R10: ffff810080058d48 R11: 0000000000000001 R12: ffff81011ed8d1c8
[ 7620.742711] R13: ffff81011ed8d200 R14: ffff81011ed8d200 R15: ffff81011cc0e578
[ 7620.747806] FS: 00007ffe400116f0(0000) GS:ffffffff807d4000(0000)
knlGS:00000000f73558e0
[ 7620.753535] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 7620.757607] CR2: 00000000017071dc CR3: 00000001188b5000 CR4: 00000000000006e0
[ 7620.762677] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 7620.767748] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 7620.772808] Process nfsv4-svc (pid: 5698, threadinfo
FFFF81011BCA0000, task FFFF81011BC82EF0)
[ 7620.778872] Stack: ffff81011bca1e00 ffffffff805be26e
ffff81011ed8d1d0 ffff81011cc0e578
[ 7620.784626] ffff81011c862c48 ffff81011c8be000 ffff810054a8b060
ffff81011cc0e588
[ 7620.789913] ffff81011bca1e10 ffffffff805be367 ffff81011bca1ee0
ffffffff805bf0ac
[ 7620.795062] Call Trace:
[ 7620.796941] [<ffffffff805be26e>] svc_xprt_enqueue+0x1ae/0x250
[ 7620.801087] [<ffffffff805be367>] svc_xprt_received+0x17/0x20
[ 7620.805199] [<ffffffff805bf0ac>] svc_recv+0x39c/0x840
[ 7620.808851] [<ffffffff805bea3f>] svc_send+0xaf/0xd0
[ 7620.812374] [<ffffffff8022f590>] default_wake_function+0x0/0x10
[ 7620.816637] [<ffffffff803163ea>] nfs_callback_svc+0x7a/0x130
[ 7620.820712] [<ffffffff805cfea2>] trace_hardirqs_on_thunk+0x35/0x3a
[ 7620.825174] [<ffffffff80259f8f>] trace_hardirqs_on+0xbf/0x160
[ 7620.829335] [<ffffffff8020cbc8>] child_rip+0xa/0x12
[ 7620.832842] [<ffffffff8020c2df>] restore_args+0x0/0x30
[ 7620.836554] [<ffffffff80316370>] nfs_callback_svc+0x0/0x130
[ 7620.840564] [<ffffffff8020cbbe>] child_rip+0x0/0x12
[ 7620.844102]
[ 7620.845168] INFO: lockdep is turned off.
[ 7620.847964]
[ 7620.847965] Code: 0f 0b eb fe 0f 1f 84 00 00 00 00 00 55 48 8b 16
48 89 e5 e8
[ 7620.854334] RIP [<ffffffff803bae54>] __list_add+0x54/0x60
[ 7620.858255] RSP <ffff81011bca1dc0>
[ 7620.860724] Kernel panic - not syncing: Aiee, killing interrupt handler!


The cause, why I am resending this: I just got a crash with
2.6.24-rc6-mm1, again looking network related:

[93436.933356] WARNING: at include/net/dst.h:165 dst_release()
[93436.936685] Pid: 8079, comm: konqueror Not tainted 2.6.24-rc6-mm1 #11
[93436.939292]
[93436.939293] Call Trace:
[93436.939304] [<ffffffff80531d2d>] skb_release_all+0xdd/0x110
[93436.939307] [<ffffffff80531311>] __kfree_skb+0x11/0xa0
[93436.939309] [<ffffffff805313b7>] kfree_skb+0x17/0x30
[93436.939312] [<ffffffff805a0b48>] unix_release_sock+0x128/0x250
[93436.939315] [<ffffffff805a0c91>] unix_release+0x21/0x30
[93436.939318] [<ffffffff8052b144>] sock_release+0x24/0x90
[93436.939320] [<ffffffff8052b656>] sock_close+0x26/0x50
[93436.939324] [<ffffffff8029f921>] __fput+0xc1/0x230
[93436.939327] [<ffffffff8029fe46>] fput+0x16/0x20
[93436.939329] [<ffffffff8029c576>] filp_close+0x56/0x90
[93436.939331] [<ffffffff8029de46>] sys_close+0xa6/0x110
[93436.939335] [<ffffffff8020b57b>] system_call_after_swapgs+0x7b/0x80
[93436.939337]
[93436.947241] general protection fault: 0000 [1] SMP
[93436.947243] last sysfs file:
/sys/devices/pci0000:00/0000:00:0f.0/0000:01:00.1/irq
[93436.947245] CPU 1
[93436.947246] Modules linked in: radeon drm nfsd exportfs w83792d
ipv6 tuner tea5767 tda8290 tuner_xc2028 tda9887 tuner_simple mt20xx
tea5761 tvaudio msp3400 bttv ir_common compat_ioctl32 videobuf_dma_sg
videobuf_core btcx_risc tveeprom usbhid videodev v4l2_common hid
v4l1_compat pata_amd sg i2c_nforce2
[93436.947257] Pid: 8079, comm: konqueror Not tainted 2.6.24-rc6-mm1 #11
[93436.947259] RIP: 0010:[<ffffffff80531438>] [<ffffffff80531438>]
skb_drop_list+0x18/0x30
[93436.947262] RSP: 0018:ffff810005f4fda8 EFLAGS: 00010286
[93436.947263] RAX: ab1ed5ca5b74e7de RBX: ab1ed5ca5b74e7de RCX: 000000000000d135
[93436.947265] RDX: ffff81011d089a80 RSI: 0000000000000001 RDI: ffff81011d089a88
[93436.947266] RBP: ffff810005f4fdb8 R08: 0000000000000001 R09: 0000000000000006
[93436.947268] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8100de02c500
[93436.947269] R13: ffff81011c188a00 R14: 0000000000000001 R15: ffff81011c189198
[93436.947271] FS: 00007fb5bde0d700(0000) GS:ffff81007ff22000(0000)
knlGS:0000000000000000
[93436.947273] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[93436.947274] CR2: 00007fb5bdd76000 CR3: 00000000664d5000 CR4: 00000000000006e0
[93436.947276] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[93436.947277] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[93436.947279] Process konqueror (pid: 8079, threadinfo
ffff810005f4e000, task ffff8100a1dec000)
[93436.947281] Stack: ffff810005f4fdd8 ffff810116c86140
ffff810005f4fdd8 ffffffff805314ae
[93436.947284] ffff810116c86140 ffff8100de02c500 ffff810005f4fdf8
ffffffff80531cf0
[93436.947286] ffff8100de02c500 ffff81011c188b48 ffff810005f4fe18
ffffffff80531311
[93436.947288] Call Trace:
[93436.947290] [<ffffffff805314ae>] skb_release_data+0x5e/0xa0
[93436.947293] [<ffffffff80531cf0>] skb_release_all+0xa0/0x110
[93436.947295] [<ffffffff80531311>] __kfree_skb+0x11/0xa0
[93436.947297] [<ffffffff805313b7>] kfree_skb+0x17/0x30
[93436.947299] [<ffffffff805a0b48>] unix_release_sock+0x128/0x250
[93436.947302] [<ffffffff805a0c91>] unix_release+0x21/0x30
[93436.947304] [<ffffffff8052b144>] sock_release+0x24/0x90
[93436.947307] [<ffffffff8052b656>] sock_close+0x26/0x50
[93436.947309] [<ffffffff8029f921>] __fput+0xc1/0x230
[93436.947312] [<ffffffff8029fe46>] fput+0x16/0x20
[93436.947314] [<ffffffff8029c576>] filp_close+0x56/0x90
[93436.947316] [<ffffffff8029de46>] sys_close+0xa6/0x110
[93436.947319] [<ffffffff8020b57b>] system_call_after_swapgs+0x7b/0x80
[93436.947322]
[93436.947322]
[93436.947323] Code: 48 8b 18 48 89 c7 e8 5d ff ff ff 48 85 db 75 ed
48 83 c4 08
[93436.947328] RIP [<ffffffff80531438>] skb_drop_list+0x18/0x30
[93436.947330] RSP <ffff810005f4fda8>
[93436.947332] ---[ end trace befb7cc3528ab3b1 ]---

Don't know in what direction I should look.
I also can't easily reproduce this, it happened after several hours of
watching a wmv stream with mplayer...

Torsten

2007-12-28 23:09:28

by Andrew Morton

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

On Fri, 28 Dec 2007 23:53:49 +0100 "Torsten Kaiser" <[email protected]> wrote:

> On Dec 23, 2007 5:27 PM, Torsten Kaiser <[email protected]> wrote:
> > On Dec 23, 2007 8:30 AM, Andrew Morton <[email protected]> wrote:
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
> > I have finally given up on using 2.6.24-rc3-mm2 with slub_debug=FZP to
> > get more information out of the random crashes I had seen with that
> > version. (Did not crash once with slub_debug, so no new information on
> > what the cause was)
>
> Murphy: Just after sending that mail the system crashed two times with
> slub_debug=FZP, but did not show any new informations.
> No debug output from slub, only this stacktrace: (Its the same I
> already reported in the 2.6.24-rc3-mm2 thread)
>
> [ 7620.673012] ------------[ cut here ]------------
> [ 7620.676291] kernel BUG at lib/list_debug.c:33!
> [ 7620.679440] invalid opcode: 0000 [1] SMP
> [ 7620.682319] last sysfs file:
> /sys/devices/system/cpu/cpu3/cache/index2/shared_cpu_map
> [ 7620.687845] CPU 0
> [ 7620.689300] Modules linked in: radeon drm nfsd exportfs w83792d
> ipv6 tuner tea5767 tda8290 tuner_xc2028 tda9887 tuner_simple mt20xx
> tea5761 tvaudio msp3400 bttv ir_common compat_ioctl32 videobuf_dma_sg
> videobuf_core btcx_risc tveeprom videodev usbhid v4l2_common
> v4l1_compat hid i2c_nforce2 sg pata_amd
> [ 7620.708561] Pid: 5698, comm: nfsv4-svc Not tainted 2.6.24-rc3-mm2 #2
> [ 7620.713080] RIP: 0010:[<ffffffff803bae54>] [<ffffffff803bae54>]
> __list_add+0x54/0x60
> [ 7620.718667] RSP: 0018:ffff81011bca1dc0 EFLAGS: 00010282
> [ 7620.722439] RAX: 0000000000000088 RBX: ffff81011c862c48 RCX: 0000000000000002
> [ 7620.727504] RDX: ffff81011bc82ef0 RSI: 0000000000000001 RDI: ffffffff807590c0
> [ 7620.732581] RBP: ffff81011bca1dc0 R08: 0000000000000001 R09: 0000000000000000
> [ 7620.737658] R10: ffff810080058d48 R11: 0000000000000001 R12: ffff81011ed8d1c8
> [ 7620.742711] R13: ffff81011ed8d200 R14: ffff81011ed8d200 R15: ffff81011cc0e578
> [ 7620.747806] FS: 00007ffe400116f0(0000) GS:ffffffff807d4000(0000)
> knlGS:00000000f73558e0
> [ 7620.753535] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> [ 7620.757607] CR2: 00000000017071dc CR3: 00000001188b5000 CR4: 00000000000006e0
> [ 7620.762677] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [ 7620.767748] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> [ 7620.772808] Process nfsv4-svc (pid: 5698, threadinfo
> FFFF81011BCA0000, task FFFF81011BC82EF0)
> [ 7620.778872] Stack: ffff81011bca1e00 ffffffff805be26e
> ffff81011ed8d1d0 ffff81011cc0e578
> [ 7620.784626] ffff81011c862c48 ffff81011c8be000 ffff810054a8b060
> ffff81011cc0e588
> [ 7620.789913] ffff81011bca1e10 ffffffff805be367 ffff81011bca1ee0
> ffffffff805bf0ac
> [ 7620.795062] Call Trace:
> [ 7620.796941] [<ffffffff805be26e>] svc_xprt_enqueue+0x1ae/0x250
> [ 7620.801087] [<ffffffff805be367>] svc_xprt_received+0x17/0x20
> [ 7620.805199] [<ffffffff805bf0ac>] svc_recv+0x39c/0x840
> [ 7620.808851] [<ffffffff805bea3f>] svc_send+0xaf/0xd0
> [ 7620.812374] [<ffffffff8022f590>] default_wake_function+0x0/0x10
> [ 7620.816637] [<ffffffff803163ea>] nfs_callback_svc+0x7a/0x130
> [ 7620.820712] [<ffffffff805cfea2>] trace_hardirqs_on_thunk+0x35/0x3a
> [ 7620.825174] [<ffffffff80259f8f>] trace_hardirqs_on+0xbf/0x160
> [ 7620.829335] [<ffffffff8020cbc8>] child_rip+0xa/0x12
> [ 7620.832842] [<ffffffff8020c2df>] restore_args+0x0/0x30
> [ 7620.836554] [<ffffffff80316370>] nfs_callback_svc+0x0/0x130
> [ 7620.840564] [<ffffffff8020cbbe>] child_rip+0x0/0x12
> [ 7620.844102]
> [ 7620.845168] INFO: lockdep is turned off.
> [ 7620.847964]
> [ 7620.847965] Code: 0f 0b eb fe 0f 1f 84 00 00 00 00 00 55 48 8b 16
> 48 89 e5 e8
> [ 7620.854334] RIP [<ffffffff803bae54>] __list_add+0x54/0x60
> [ 7620.858255] RSP <ffff81011bca1dc0>
> [ 7620.860724] Kernel panic - not syncing: Aiee, killing interrupt handler!
>

That looks like a sunrpc bug. git-nfsd has bene mucking around in there a
bit.

>
> The cause, why I am resending this: I just got a crash with
> 2.6.24-rc6-mm1, again looking network related:
>
> [93436.933356] WARNING: at include/net/dst.h:165 dst_release()
> [93436.936685] Pid: 8079, comm: konqueror Not tainted 2.6.24-rc6-mm1 #11
> [93436.939292]
> [93436.939293] Call Trace:
> [93436.939304] [<ffffffff80531d2d>] skb_release_all+0xdd/0x110
> [93436.939307] [<ffffffff80531311>] __kfree_skb+0x11/0xa0
> [93436.939309] [<ffffffff805313b7>] kfree_skb+0x17/0x30
> [93436.939312] [<ffffffff805a0b48>] unix_release_sock+0x128/0x250
> [93436.939315] [<ffffffff805a0c91>] unix_release+0x21/0x30
> [93436.939318] [<ffffffff8052b144>] sock_release+0x24/0x90
> [93436.939320] [<ffffffff8052b656>] sock_close+0x26/0x50
> [93436.939324] [<ffffffff8029f921>] __fput+0xc1/0x230
> [93436.939327] [<ffffffff8029fe46>] fput+0x16/0x20
> [93436.939329] [<ffffffff8029c576>] filp_close+0x56/0x90
> [93436.939331] [<ffffffff8029de46>] sys_close+0xa6/0x110
> [93436.939335] [<ffffffff8020b57b>] system_call_after_swapgs+0x7b/0x80
> [93436.939337]
> [93436.947241] general protection fault: 0000 [1] SMP
> [93436.947243] last sysfs file:
> /sys/devices/pci0000:00/0000:00:0f.0/0000:01:00.1/irq
> [93436.947245] CPU 1
> [93436.947246] Modules linked in: radeon drm nfsd exportfs w83792d
> ipv6 tuner tea5767 tda8290 tuner_xc2028 tda9887 tuner_simple mt20xx
> tea5761 tvaudio msp3400 bttv ir_common compat_ioctl32 videobuf_dma_sg
> videobuf_core btcx_risc tveeprom usbhid videodev v4l2_common hid
> v4l1_compat pata_amd sg i2c_nforce2
> [93436.947257] Pid: 8079, comm: konqueror Not tainted 2.6.24-rc6-mm1 #11
> [93436.947259] RIP: 0010:[<ffffffff80531438>] [<ffffffff80531438>]
> skb_drop_list+0x18/0x30
> [93436.947262] RSP: 0018:ffff810005f4fda8 EFLAGS: 00010286
> [93436.947263] RAX: ab1ed5ca5b74e7de RBX: ab1ed5ca5b74e7de RCX: 000000000000d135
> [93436.947265] RDX: ffff81011d089a80 RSI: 0000000000000001 RDI: ffff81011d089a88
> [93436.947266] RBP: ffff810005f4fdb8 R08: 0000000000000001 R09: 0000000000000006
> [93436.947268] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8100de02c500
> [93436.947269] R13: ffff81011c188a00 R14: 0000000000000001 R15: ffff81011c189198
> [93436.947271] FS: 00007fb5bde0d700(0000) GS:ffff81007ff22000(0000)
> knlGS:0000000000000000
> [93436.947273] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> [93436.947274] CR2: 00007fb5bdd76000 CR3: 00000000664d5000 CR4: 00000000000006e0
> [93436.947276] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [93436.947277] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> [93436.947279] Process konqueror (pid: 8079, threadinfo
> ffff810005f4e000, task ffff8100a1dec000)
> [93436.947281] Stack: ffff810005f4fdd8 ffff810116c86140
> ffff810005f4fdd8 ffffffff805314ae
> [93436.947284] ffff810116c86140 ffff8100de02c500 ffff810005f4fdf8
> ffffffff80531cf0
> [93436.947286] ffff8100de02c500 ffff81011c188b48 ffff810005f4fe18
> ffffffff80531311
> [93436.947288] Call Trace:
> [93436.947290] [<ffffffff805314ae>] skb_release_data+0x5e/0xa0
> [93436.947293] [<ffffffff80531cf0>] skb_release_all+0xa0/0x110
> [93436.947295] [<ffffffff80531311>] __kfree_skb+0x11/0xa0
> [93436.947297] [<ffffffff805313b7>] kfree_skb+0x17/0x30
> [93436.947299] [<ffffffff805a0b48>] unix_release_sock+0x128/0x250
> [93436.947302] [<ffffffff805a0c91>] unix_release+0x21/0x30
> [93436.947304] [<ffffffff8052b144>] sock_release+0x24/0x90
> [93436.947307] [<ffffffff8052b656>] sock_close+0x26/0x50
> [93436.947309] [<ffffffff8029f921>] __fput+0xc1/0x230
> [93436.947312] [<ffffffff8029fe46>] fput+0x16/0x20
> [93436.947314] [<ffffffff8029c576>] filp_close+0x56/0x90
> [93436.947316] [<ffffffff8029de46>] sys_close+0xa6/0x110
> [93436.947319] [<ffffffff8020b57b>] system_call_after_swapgs+0x7b/0x80
> [93436.947322]
> [93436.947322]
> [93436.947323] Code: 48 8b 18 48 89 c7 e8 5d ff ff ff 48 85 db 75 ed
> 48 83 c4 08
> [93436.947328] RIP [<ffffffff80531438>] skb_drop_list+0x18/0x30
> [93436.947330] RSP <ffff810005f4fda8>
> [93436.947332] ---[ end trace befb7cc3528ab3b1 ]---

Yes, that looks more networking-related.

> Don't know in what direction I should look.
> I also can't easily reproduce this, it happened after several hours of
> watching a wmv stream with mplayer...
>
> Torsten

2007-12-28 23:23:19

by Adrian Bunk

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: some section mismatches on sparc64

On Wed, Dec 26, 2007 at 07:05:04PM -0800, David Miller wrote:
> From: Mariusz Kozlowski <[email protected]>
> Date: Wed, 26 Dec 2007 13:29:07 +0100
>
> > WARNING: vmlinux.o(.text+0x46b04): Section mismatch: reference to .init.text:sun4v_ktsb_register (between 'smp_callin' and 'smp_fill_in_sib_core_maps')
>
> Well known and I see them every build and so does everyone
> else on sparc64.
>
> They are harmless and as time allows I try to find ways
> to get rid of them but it's very low priority.

At least the sunserial_console_match() one is an obvious Oops
(EXPORT_SYMBOL of an __init function).

The comment in the description of
commit 58d784a5c754cd66ecd4791222162504d3c16c74 the warning was bogus
is bullshit.

I'm not sure whether this might count as a 2.6.24-rc regression or
whether 2.6.23 is simply differently but similarly broken (does anyone
actually use the Sun console drivers modular?).

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-12-29 08:14:24

by David Miller

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: some section mismatches on sparc64

From: Adrian Bunk <[email protected]>
Date: Sat, 29 Dec 2007 01:22:56 +0200

> At least the sunserial_console_match() one is an obvious Oops
> (EXPORT_SYMBOL of an __init function).
>
> The comment in the description of
> commit 58d784a5c754cd66ecd4791222162504d3c16c74 the warning was bogus
> is bullshit.
>
> I'm not sure whether this might count as a 2.6.24-rc regression or
> whether 2.6.23 is simply differently but similarly broken (does anyone
> actually use the Sun console drivers modular?).

You can't do that, the FOO_CONSOLE config options depend upon
FOO=y.

That's why I'm not worried about this issue and it's not critical at
all.

2007-12-29 08:27:20

by David Miller

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: some section mismatches on sparc64

From: David Miller <[email protected]>
Date: Sat, 29 Dec 2007 00:14:11 -0800 (PST)

> You can't do that, the FOO_CONSOLE config options depend upon
> FOO=y.
>
> That's why I'm not worried about this issue and it's not critical at
> all.

Adrian, if you're interested in tackling this "fun" problem,
have a look at add_preferred_console() and find a way to make
that not marked __init. (it's called by sunserial_console_match)

That's what causes this dependency chain of __init problems for the
Sun serial console drivers.

It's problematic, furthermore, because even if one could call
add_preferred_console() from a module properly, it doesn't have the
desired effect of changing init's stdin/stdout/stderr

2007-12-29 08:49:13

by Adrian Bunk

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: some section mismatches on sparc64

On Sat, Dec 29, 2007 at 12:14:11AM -0800, David Miller wrote:
> From: Adrian Bunk <[email protected]>
> Date: Sat, 29 Dec 2007 01:22:56 +0200
>
> > At least the sunserial_console_match() one is an obvious Oops
> > (EXPORT_SYMBOL of an __init function).
> >
> > The comment in the description of
> > commit 58d784a5c754cd66ecd4791222162504d3c16c74 the warning was bogus
> > is bullshit.
> >
> > I'm not sure whether this might count as a 2.6.24-rc regression or
> > whether 2.6.23 is simply differently but similarly broken (does anyone
> > actually use the Sun console drivers modular?).
>
> You can't do that, the FOO_CONSOLE config options depend upon
> FOO=y.

Looking closer, the problem aren't the FOO_CONSOLE options themselves,
the problem is that with FOO_CONSOLE=n sunserial_console_match() still
gets called.

> That's why I'm not worried about this issue and it's not critical at
> all.

If a module calls sunserial_console_match() that's an Oops.

I removed the EXPORT_SYMBOL(sunserial_console_match), and this is the
result:
MODPOST 136 modules
ERROR: "sunserial_console_match" [drivers/serial/sunzilog.ko] undefined!
ERROR: "sunserial_console_match" [drivers/serial/sunsu.ko] undefined!
ERROR: "sunserial_console_match" [drivers/serial/sunsab.ko] undefined!

-ENOHARDWARE, but looking at the code you could call me _very_ surprised
if you manage to load a modular sunsab from 2.6.24-rc6 on a machine with
the hardware without getting an Oops.

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-12-29 08:54:20

by David Miller

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: some section mismatches on sparc64

From: Adrian Bunk <[email protected]>
Date: Sat, 29 Dec 2007 10:48:46 +0200

> On Sat, Dec 29, 2007 at 12:14:11AM -0800, David Miller wrote:
> > That's why I'm not worried about this issue and it's not critical at
> > all.
>
> If a module calls sunserial_console_match() that's an Oops.

That's true.

I'm trying to figure out a way to fix this.

2007-12-29 09:06:47

by Adrian Bunk

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: some section mismatches on sparc64

On Sat, Dec 29, 2007 at 12:54:08AM -0800, David Miller wrote:
> From: Adrian Bunk <[email protected]>
> Date: Sat, 29 Dec 2007 10:48:46 +0200
>
> > On Sat, Dec 29, 2007 at 12:14:11AM -0800, David Miller wrote:
> > > That's why I'm not worried about this issue and it's not critical at
> > > all.
> >
> > If a module calls sunserial_console_match() that's an Oops.
>
> That's true.
>
> I'm trying to figure out a way to fix this.

#ifdef FOO_CONSOLE around the sunserial_console_match() calls in the
drivers should work.

If you consider this too many #ifdef's, an alternative solution would be
doing the following in drivers/serial/suncore.h:

#ifndef MODULE
extern int sunserial_console_match(struct console *, struct device_node *,
struct uart_driver *, int);
#else
static inline int sunserial_console_match(struct console *, struct device_node *,
struct uart_driver *, int);
{ return 0; }
#endif

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-12-29 09:15:53

by David Miller

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: some section mismatches on sparc64

From: David Miller <[email protected]>
Date: Sat, 29 Dec 2007 00:54:08 -0800 (PST)

> From: Adrian Bunk <[email protected]>
> Date: Sat, 29 Dec 2007 10:48:46 +0200
>
> > On Sat, Dec 29, 2007 at 12:14:11AM -0800, David Miller wrote:
> > > That's why I'm not worried about this issue and it's not critical at
> > > all.
> >
> > If a module calls sunserial_console_match() that's an Oops.
>
> That's true.
>
> I'm trying to figure out a way to fix this.

At the end of this email is one idea I came up with but it still
results in:

WARNING: vmlinux.o(.text+0x19e52c): Section mismatch: reference to .init.text:sunserial_console_match (between 'hv_probe' and 'sunzilog_get_mctrl')
WARNING: vmlinux.o(.text+0x19fd1c): Section mismatch: reference to .init.text:sunserial_console_match (between 'zs_probe' and 'serial_in')
WARNING: vmlinux.o(.text+0x19fd5c): Section mismatch: reference to .init.text:sunserial_console_match (between 'zs_probe' and 'serial_in')
WARNING: vmlinux.o(.text+0x1a19e0): Section mismatch: reference to .init.text:sunserial_console_match (between 'su_probe' and 'sunsu_console_putchar')
WARNING: vmlinux.o(.text+0x1a307c): Section mismatch: reference to .init.text:sunserial_console_match (between 'sab_probe' and 'sunsab_send_xchar')
WARNING: vmlinux.o(.text+0x1a3090): Section mismatch: reference to .init.text:sunserial_console_match (between 'sab_probe' and 'sunsab_send_xchar')
WARNING: vmlinux.o(.sun4v_2insn_patch+0x4f8): Section mismatch: reference to .init.text:

if CONFIG_HOTPLUG is set because driver initialization code has to be
marked with __devinit and with HOTPLUG that isn't __init.

This means it's impossible to call add_preferred_console() (either
directly or indirectly via a helper like sunserial_console_match())
from a driver init routine.

The only way I can think of to "work around" this is to mark
sunserial_console_match() as __init_refok, and use some static
variable in suncore which starts as "0" gets set to "1" via a
late_initcall() to block the call to add_preferred_console().

But that's just gross.

Probably the thing to do to untangle this is to make
add_preferred_console() not be __init. I just tested and that seems
to make everything happy. Again, below is the first thing I
tried just for reference.

diff --git a/drivers/serial/suncore.c b/drivers/serial/suncore.c
index 707c5b0..a4cbd17 100644
--- a/drivers/serial/suncore.c
+++ b/drivers/serial/suncore.c
@@ -21,6 +21,8 @@

#include <asm/prom.h>

+#define SUNCORE_CONSOLE
+
#include "suncore.h"

static int sunserial_current_minor = 64;
@@ -52,8 +54,9 @@ void sunserial_unregister_minors(struct uart_driver *drv, int count)
}
EXPORT_SYMBOL(sunserial_unregister_minors);

-int __init sunserial_console_match(struct console *con, struct device_node *dp,
- struct uart_driver *drv, int line)
+int __init sunserial_console_match(struct console *con,
+ struct device_node *dp,
+ struct uart_driver *drv, int line)
{
int off;

@@ -74,7 +77,6 @@ int __init sunserial_console_match(struct console *con, struct device_node *dp,

return 1;
}
-EXPORT_SYMBOL(sunserial_console_match);

void
sunserial_console_termios(struct console *con)
diff --git a/drivers/serial/suncore.h b/drivers/serial/suncore.h
index 042668a..de4dfb0 100644
--- a/drivers/serial/suncore.h
+++ b/drivers/serial/suncore.h
@@ -25,8 +25,17 @@ extern int suncore_mouse_baud_detection(unsigned char, int);
extern int sunserial_register_minors(struct uart_driver *, int);
extern void sunserial_unregister_minors(struct uart_driver *, int);

+#ifdef SUNCORE_CONSOLE
extern int sunserial_console_match(struct console *, struct device_node *,
struct uart_driver *, int);
extern void sunserial_console_termios(struct console *);
+#else
+static inline int sunserial_console_match(struct console *con,
+ struct device_node *dp,
+ struct uart_driver *drv, int line)
+{
+ return 0;
+}
+#endif

#endif /* !(_SERIAL_SUN_H) */
diff --git a/drivers/serial/sunhv.c b/drivers/serial/sunhv.c
index be0fe15..67a0b4c 100644
--- a/drivers/serial/sunhv.c
+++ b/drivers/serial/sunhv.c
@@ -24,6 +24,8 @@
#include <asm/of_device.h>
#include <asm/irq.h>

+#define SUNCORE_CONSOLE
+
#if defined(CONFIG_MAGIC_SYSRQ)
#define SUPPORT_SYSRQ
#endif
diff --git a/drivers/serial/sunsab.c b/drivers/serial/sunsab.c
index 543f937..955d54b 100644
--- a/drivers/serial/sunsab.c
+++ b/drivers/serial/sunsab.c
@@ -38,9 +38,12 @@
#include <asm/prom.h>
#include <asm/of_device.h>

-#if defined(CONFIG_SERIAL_SUNSAB_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
+#ifdef CONFIG_SERIAL_SUNSAB_CONSOLE
+#define SUNCORE_CONSOLE
+#ifdef CONFIG_MAGIC_SYSRQ
#define SUPPORT_SYSRQ
#endif
+#endif

#include <linux/serial_core.h>

diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c
index 4e2302d..cbd97eb 100644
--- a/drivers/serial/sunsu.c
+++ b/drivers/serial/sunsu.c
@@ -41,9 +41,12 @@
#include <asm/prom.h>
#include <asm/of_device.h>

-#if defined(CONFIG_SERIAL_SUNSU_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
+#ifdef CONFIG_SERIAL_SUNSU_CONSOLE
+#define SUNCORE_CONSOLE
+#ifdef CONFIG_MAGIC_SYSRQ
#define SUPPORT_SYSRQ
#endif
+#endif

#include <linux/serial_core.h>

diff --git a/drivers/serial/sunzilog.c b/drivers/serial/sunzilog.c
index cb2e405..d18d145 100644
--- a/drivers/serial/sunzilog.c
+++ b/drivers/serial/sunzilog.c
@@ -38,9 +38,12 @@
#include <asm/prom.h>
#include <asm/of_device.h>

-#if defined(CONFIG_SERIAL_SUNZILOG_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
+#ifdef CONFIG_SERIAL_SUNZILOG_CONSOLE
+#define SUNCORE_CONSOLE
+#ifdef CONFIG_MAGIC_SYSRQ
#define SUPPORT_SYSRQ
#endif
+#endif

#include <linux/serial_core.h>

2007-12-29 09:18:17

by David Miller

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: some section mismatches on sparc64

From: Adrian Bunk <[email protected]>
Date: Sat, 29 Dec 2007 11:06:19 +0200

> On Sat, Dec 29, 2007 at 12:54:08AM -0800, David Miller wrote:
> > From: Adrian Bunk <[email protected]>
> > Date: Sat, 29 Dec 2007 10:48:46 +0200
> >
> > > On Sat, Dec 29, 2007 at 12:14:11AM -0800, David Miller wrote:
> > > > That's why I'm not worried about this issue and it's not critical at
> > > > all.
> > >
> > > If a module calls sunserial_console_match() that's an Oops.
> >
> > That's true.
> >
> > I'm trying to figure out a way to fix this.
>
> #ifdef FOO_CONSOLE around the sunserial_console_match() calls in the
> drivers should work.

It absolutely doesn't work, I tried this, see my other reply.

The issue is add_preferred_console() is __init, driver probe calls are
__devinit which are either __init or not __init.

So even with the FOO_CONSOLE ifdef (or something similar like the
patch I posted) we'll still get section mismatch warnings.

> If you consider this too many #ifdef's, an alternative solution would be
> doing the following in drivers/serial/suncore.h:
>
> #ifndef MODULE
> extern int sunserial_console_match(struct console *, struct device_node *,
> struct uart_driver *, int);
> #else
> static inline int sunserial_console_match(struct console *, struct device_node *,
> struct uart_driver *, int);
> { return 0; }
> #endif

Just removing the __init tag from add_preferred_console() (and
subsequently sunserial_console_match()) is probably the easiest way to
fix all of this.

2007-12-29 09:53:50

by Adrian Bunk

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: some section mismatches on sparc64

On Sat, Dec 29, 2007 at 01:18:02AM -0800, David Miller wrote:
> From: Adrian Bunk <[email protected]>
> Date: Sat, 29 Dec 2007 11:06:19 +0200
>
> > On Sat, Dec 29, 2007 at 12:54:08AM -0800, David Miller wrote:
> > > From: Adrian Bunk <[email protected]>
> > > Date: Sat, 29 Dec 2007 10:48:46 +0200
> > >
> > > > On Sat, Dec 29, 2007 at 12:14:11AM -0800, David Miller wrote:
> > > > > That's why I'm not worried about this issue and it's not critical at
> > > > > all.
> > > >
> > > > If a module calls sunserial_console_match() that's an Oops.
> > >
> > > That's true.
> > >
> > > I'm trying to figure out a way to fix this.
> >
> > #ifdef FOO_CONSOLE around the sunserial_console_match() calls in the
> > drivers should work.
>
> It absolutely doesn't work, I tried this, see my other reply.
>
> The issue is add_preferred_console() is __init, driver probe calls are
> __devinit which are either __init or not __init.
>
> So even with the FOO_CONSOLE ifdef (or something similar like the
> patch I posted) we'll still get section mismatch warnings.
>...

Sorry, I shouldn't suggest stuff I haven't tried myself... :-(

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-12-29 16:51:29

by Torsten Kaiser

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

On Dec 29, 2007 12:07 AM, Andrew Morton <[email protected]> wrote:
> On Fri, 28 Dec 2007 23:53:49 +0100 "Torsten Kaiser" <[email protected]> wrote:
> > On Dec 23, 2007 5:27 PM, Torsten Kaiser <[email protected]> wrote:
[snip]
> > [ 7620.708561] Pid: 5698, comm: nfsv4-svc Not tainted 2.6.24-rc3-mm2 #2
[snip]
> That looks like a sunrpc bug. git-nfsd has bene mucking around in there a
> bit.

Please note, that this report is still against 2.6.24-rc3-mm2. The
only new thing about that was, that slub_debug=FZP does not catch the
cause...

> > The cause, why I am resending this: I just got a crash with
> > 2.6.24-rc6-mm1, again looking network related:
> >
> > [93436.933356] WARNING: at include/net/dst.h:165 dst_release()
> > [93436.936685] Pid: 8079, comm: konqueror Not tainted 2.6.24-rc6-mm1 #11
> > [93436.939292]
> > [93436.939293] Call Trace:
> > [93436.939304] [<ffffffff80531d2d>] skb_release_all+0xdd/0x110
> > [93436.939307] [<ffffffff80531311>] __kfree_skb+0x11/0xa0
> > [93436.939309] [<ffffffff805313b7>] kfree_skb+0x17/0x30
> > [93436.939312] [<ffffffff805a0b48>] unix_release_sock+0x128/0x250
> > [93436.939315] [<ffffffff805a0c91>] unix_release+0x21/0x30
> > [93436.939318] [<ffffffff8052b144>] sock_release+0x24/0x90
> > [93436.939320] [<ffffffff8052b656>] sock_close+0x26/0x50
> > [93436.939324] [<ffffffff8029f921>] __fput+0xc1/0x230
> > [93436.939327] [<ffffffff8029fe46>] fput+0x16/0x20
> > [93436.939329] [<ffffffff8029c576>] filp_close+0x56/0x90
> > [93436.939331] [<ffffffff8029de46>] sys_close+0xa6/0x110
> > [93436.939335] [<ffffffff8020b57b>] system_call_after_swapgs+0x7b/0x80

>From code inspection I would blame the patch "[SKBUFF]: Free old skb
properly in skb_morph" from Herbert Xu. (CC added)

Mostly it only shuffles code around, the only real change seems to be this hunk:
@@ -441,7 +446,7 @@ static struct sk_buff *__skb_clone(struct sk_buff
*n, struct sk_buff *skb)
*/
struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src)
{
- skb_release_data(dst);
+ skb_release_all(dst);
return __skb_clone(dst, src);
}
EXPORT_SYMBOL_GPL(skb_morph);

Using sbk_release_all instead only skb_release_data (with is called
automatically from the new sbk_release_all) will add a new call to
dst_release(skb->dst); (first line in sbk_release_all)
Could that explain the above underflow warning?

(I do not have any clue about the inner workings of the network core,
I just looked for code changes, that might be relevant...)

> > [93436.947241] general protection fault: 0000 [1] SMP
> > [93436.947243] last sysfs file:
> > /sys/devices/pci0000:00/0000:00:0f.0/0000:01:00.1/irq
> > [93436.947245] CPU 1
> > [93436.947246] Modules linked in: radeon drm nfsd exportfs w83792d
> > ipv6 tuner tea5767 tda8290 tuner_xc2028 tda9887 tuner_simple mt20xx
> > tea5761 tvaudio msp3400 bttv ir_common compat_ioctl32 videobuf_dma_sg
> > videobuf_core btcx_risc tveeprom usbhid videodev v4l2_common hid
> > v4l1_compat pata_amd sg i2c_nforce2
> > [93436.947257] Pid: 8079, comm: konqueror Not tainted 2.6.24-rc6-mm1 #11
> > [93436.947259] RIP: 0010:[<ffffffff80531438>] [<ffffffff80531438>]
> > skb_drop_list+0x18/0x30
> > [93436.947262] RSP: 0018:ffff810005f4fda8 EFLAGS: 00010286
> > [93436.947263] RAX: ab1ed5ca5b74e7de RBX: ab1ed5ca5b74e7de RCX: 000000000000d135
> > [93436.947265] RDX: ffff81011d089a80 RSI: 0000000000000001 RDI: ffff81011d089a88
> > [93436.947266] RBP: ffff810005f4fdb8 R08: 0000000000000001 R09: 0000000000000006
> > [93436.947268] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8100de02c500
> > [93436.947269] R13: ffff81011c188a00 R14: 0000000000000001 R15: ffff81011c189198
> > [93436.947271] FS: 00007fb5bde0d700(0000) GS:ffff81007ff22000(0000)
> > knlGS:0000000000000000
> > [93436.947273] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> > [93436.947274] CR2: 00007fb5bdd76000 CR3: 00000000664d5000 CR4: 00000000000006e0
> > [93436.947276] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > [93436.947277] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> > [93436.947279] Process konqueror (pid: 8079, threadinfo
> > ffff810005f4e000, task ffff8100a1dec000)
> > [93436.947281] Stack: ffff810005f4fdd8 ffff810116c86140
> > ffff810005f4fdd8 ffffffff805314ae
> > [93436.947284] ffff810116c86140 ffff8100de02c500 ffff810005f4fdf8
> > ffffffff80531cf0
> > [93436.947286] ffff8100de02c500 ffff81011c188b48 ffff810005f4fe18
> > ffffffff80531311
> > [93436.947288] Call Trace:
> > [93436.947290] [<ffffffff805314ae>] skb_release_data+0x5e/0xa0
> > [93436.947293] [<ffffffff80531cf0>] skb_release_all+0xa0/0x110
> > [93436.947295] [<ffffffff80531311>] __kfree_skb+0x11/0xa0
> > [93436.947297] [<ffffffff805313b7>] kfree_skb+0x17/0x30
> > [93436.947299] [<ffffffff805a0b48>] unix_release_sock+0x128/0x250
> > [93436.947302] [<ffffffff805a0c91>] unix_release+0x21/0x30
> > [93436.947304] [<ffffffff8052b144>] sock_release+0x24/0x90
> > [93436.947307] [<ffffffff8052b656>] sock_close+0x26/0x50
> > [93436.947309] [<ffffffff8029f921>] __fput+0xc1/0x230
> > [93436.947312] [<ffffffff8029fe46>] fput+0x16/0x20
> > [93436.947314] [<ffffffff8029c576>] filp_close+0x56/0x90
> > [93436.947316] [<ffffffff8029de46>] sys_close+0xa6/0x110
> > [93436.947319] [<ffffffff8020b57b>] system_call_after_swapgs+0x7b/0x80
> > [93436.947322]
> > [93436.947322]
> > [93436.947323] Code: 48 8b 18 48 89 c7 e8 5d ff ff ff 48 85 db 75 ed
> > 48 83 c4 08
> > [93436.947328] RIP [<ffffffff80531438>] skb_drop_list+0x18/0x30
> > [93436.947330] RSP <ffff810005f4fda8>
> > [93436.947332] ---[ end trace befb7cc3528ab3b1 ]---
>
> Yes, that looks more networking-related.

I would hope this OOPS was caused by the same error, trying to release
the same list twice.

Torsten

2007-12-30 01:31:17

by Herbert Xu

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

On Sat, Dec 29, 2007 at 05:51:13PM +0100, Torsten Kaiser wrote:
>
> > > The cause, why I am resending this: I just got a crash with
> > > 2.6.24-rc6-mm1, again looking network related:
> > >
> > > [93436.933356] WARNING: at include/net/dst.h:165 dst_release()
> > > [93436.936685] Pid: 8079, comm: konqueror Not tainted 2.6.24-rc6-mm1 #11
> > > [93436.939292]
> > > [93436.939293] Call Trace:
> > > [93436.939304] [<ffffffff80531d2d>] skb_release_all+0xdd/0x110
> > > [93436.939307] [<ffffffff80531311>] __kfree_skb+0x11/0xa0
> > > [93436.939309] [<ffffffff805313b7>] kfree_skb+0x17/0x30
> > > [93436.939312] [<ffffffff805a0b48>] unix_release_sock+0x128/0x250
> > > [93436.939315] [<ffffffff805a0c91>] unix_release+0x21/0x30
> > > [93436.939318] [<ffffffff8052b144>] sock_release+0x24/0x90
> > > [93436.939320] [<ffffffff8052b656>] sock_close+0x26/0x50
> > > [93436.939324] [<ffffffff8029f921>] __fput+0xc1/0x230
> > > [93436.939327] [<ffffffff8029fe46>] fput+0x16/0x20
> > > [93436.939329] [<ffffffff8029c576>] filp_close+0x56/0x90
> > > [93436.939331] [<ffffffff8029de46>] sys_close+0xa6/0x110
> > > [93436.939335] [<ffffffff8020b57b>] system_call_after_swapgs+0x7b/0x80
>
> >From code inspection I would blame the patch "[SKBUFF]: Free old skb
> properly in skb_morph" from Herbert Xu. (CC added)

I doubt it. skb_morph is only used on IP fragments so I don't see how
you could attribute an error from a Unix domain socket to this patch.

In any case, Unix socket packets should not have a dst at all so the
very fact that you're in that path means that you have some sort of
memory corruption.

Is this the very first OOPS/warning that you see? If not you should
ignore all but the very first one as that may have left your system
in an inconsistent state which may render all subsequent OOPSes and
warnings useless.

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-12-30 03:08:20

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 - crash in tick_sched_timer/update_process_times

On Thu, 27 Dec 2007 12:54:34 EST, [email protected] said:

> [15345.901919] Unable to handle kernel paging request at 000000af008c00cd RIP:
> [15345.901934] [<ffffffff802310d9>] scheduler_tick+0xdb/0x1c4
> [15345.901952] PGD 0
> [15345.901959] Oops: 0000 [1] PREEMPT SMP
> [15345.901972] last sysfs file: /sys/devices/platform/coretemp.1/temp1_input
> [15345.901978] CPU 1
> [15345.901984] Modules linked in: irnet ppp_generic slhc irtty_sir sir_dev ircomm_tty ircomm irda crc_ccitt coretemp nf_conntrack_ftp xt_pkttype ipt_REJECT ipt_osf nf_conntrack_ipv4 xt_ipisforif ipt_recent ipt_LOG xt_u32 iptable_filter ip_tables xt_tcpudp nf_conntrack_ipv6 xt_state nf_conntrack ip6t_LOG xt_limit ip6table_filter ip6_tables x_tables sha256_generic aes_generic acpi_cpufreq tpm_tis pcmcia gspca(U) iwl3945 firmware_class iTCO_wdt yenta_socket compat_ioctl32 ohci1394 rsrc_nonstatic iTCO_vendor_support mac80211 ieee1394 pcmcia_core nvidia(P)(U) watchdog_core battery videodev ac watchdog_dev v4l2_common snd_hda_intel v4l1_compat thermal power_supply cfg80211 button intel_agp processor rtc
> [15345.902170] Pid: 0, comm: Eterm Tainted: P 2.6.24-rc6-mm1 #4
> [15345.902176] RIP: 0010:[<ffffffff802310d9>] [<ffffffff802310d9>] scheduler_tick+0xdb/0x1c4
> [15345.902189] RSP: 0018:ffff81007f8a3eb8 EFLAGS: 00010083
> [15345.902195] RAX: 000000af008c005d RBX: 00000df4fefac7d9 RCX: 0000000000000004
> [15345.902202] RDX: 0000000000000004 RSI: ffff81007e405600 RDI: ffff810001011180
> [15345.902208] RBP: ffff81007f8a3ed8 R08: 0000000000000010 R09: 0000000000000001
> [15345.902214] R10: ffff8100808f4000 R11: ffffffff8071d180 R12: ffff810001011180
> [15345.902219] R13: 0000000000000001 R14: ffff81007e405600 R15: 0000000000000001
> [15345.902226] FS: 0000000000000000(0000) GS:ffff81007f86f9c0(0063) knlGS:00000000f7dab6c0
> [15345.902233] CS: 0010 DS: 002b ES: 002b CR0: 000000008005003b
> [15345.902238] CR2: 000000af008c00cd CR3: 00000000766c8000 CR4: 00000000000006e0
> [15345.902244] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [15345.902249] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> [15345.902256] Process Eterm (pid: 0, threadinfo 4394404dffffffff, task ffff81007e405600)
> [15345.902261] Stack: 0000000000000001 0000000000000000 ffff81007e405600 00000c71d7bbe7da
> [15345.902279] ffff81007f8a3f08 ffffffff8023f913 ffff81007f8a3f08 ffff81000100e060
> [15345.902293] ffff810077161b08 ffff81000100df60 ffff81007f8a3f38 ffffffff80251b7d
> [15345.902306] Call Trace:
> [15345.902312] <IRQ> [<ffffffff8023f913>] update_process_times+0x4a/0x5b
> [15345.902334] [<ffffffff80251b7d>] tick_sched_timer+0x8e/0xcb
> [15345.902345] [<ffffffff8024ce2c>] hrtimer_interrupt+0x111/0x1a1
> [15345.902357] [<ffffffff8022733e>] ia32_setup_frame+0xb5/0x1b7
> [15345.902367] [<ffffffff8021f174>] smp_apic_timer_interrupt+0x86/0xa6
> [15345.902377] [<ffffffff8020cca6>] apic_timer_interrupt+0x66/0x70
> [15345.902383] <EOI>
> [15345.902389]
> [15345.902390] Code: ff 50 70 4c 89 e7 e8 4a 2d 2f 00 44 89 ef e8 85 9f ff ff 41
> [15345.902445] RIP [<ffffffff802310d9>] scheduler_tick+0xdb/0x1c4
> [15345.902455] RSP <ffff81007f8a3eb8>
> [15345.902461] CR2: 000000af008c00cd

In case it makes a difference, the Eterm that causes the issue on exit is
a 32-bit binary, with a 64-bit kernel (though I did have one kernel lockup
with xpdf, which is a 64-bit binary, but I can't prove that was/wasn't this
same issue)....

Bisection says:

git-ipwireless_cs.patch GOOD
#
git-x86.patch
git-x86-fixup.patch
git-x86-arch-x86-math-emu-errorsc-fix-printk-warnings.patch
git-x86-drivers-pnp-pnpbios-bioscallsc-build-fix.patch
git-x86-fix-doubly-merged-patch.patch
git-x86-export-leave_mm.patch BAD

and that's where bisection comes to a halt...

Time to bisect through git-x86, or somebody got a better idea? Looking at
the commits listed in git-x86.patch, I didn't see anything that jumped out,
but I'm pretty sure the problem is in there somewhere...


Attachments:
(No filename) (226.00 B)

2007-12-30 03:34:50

by Torsten Kaiser

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

On Dec 30, 2007 2:30 AM, Herbert Xu <[email protected]> wrote:
> On Sat, Dec 29, 2007 at 05:51:13PM +0100, Torsten Kaiser wrote:
> >
> > > > The cause, why I am resending this: I just got a crash with
> > > > 2.6.24-rc6-mm1, again looking network related:
> > > >
> > > > [93436.933356] WARNING: at include/net/dst.h:165 dst_release()
> > > > [93436.936685] Pid: 8079, comm: konqueror Not tainted 2.6.24-rc6-mm1 #11
> > > > [93436.939292]
> > > > [93436.939293] Call Trace:
> > > > [93436.939304] [<ffffffff80531d2d>] skb_release_all+0xdd/0x110
> > > > [93436.939307] [<ffffffff80531311>] __kfree_skb+0x11/0xa0
> > > > [93436.939309] [<ffffffff805313b7>] kfree_skb+0x17/0x30
> > > > [93436.939312] [<ffffffff805a0b48>] unix_release_sock+0x128/0x250
> > > > [93436.939315] [<ffffffff805a0c91>] unix_release+0x21/0x30
> > > > [93436.939318] [<ffffffff8052b144>] sock_release+0x24/0x90
> > > > [93436.939320] [<ffffffff8052b656>] sock_close+0x26/0x50
> > > > [93436.939324] [<ffffffff8029f921>] __fput+0xc1/0x230
> > > > [93436.939327] [<ffffffff8029fe46>] fput+0x16/0x20
> > > > [93436.939329] [<ffffffff8029c576>] filp_close+0x56/0x90
> > > > [93436.939331] [<ffffffff8029de46>] sys_close+0xa6/0x110
> > > > [93436.939335] [<ffffffff8020b57b>] system_call_after_swapgs+0x7b/0x80
> >
> > >From code inspection I would blame the patch "[SKBUFF]: Free old skb
> > properly in skb_morph" from Herbert Xu. (CC added)
>
> I doubt it. skb_morph is only used on IP fragments so I don't see how
> you could attribute an error from a Unix domain socket to this patch.

That's why I wrote that I do not know much about the network core...

> In any case, Unix socket packets should not have a dst at all so the
> very fact that you're in that path means that you have some sort of
> memory corruption.

... I did not know about the fact that there should not have been an dst.

Its just that this warning was the first nice clue about the memory
corruption related to networking that I see since 2.6.24-rc3-mm2.
The time of the patch (Mon, 26 Nov 2007 15:11:19) even fits into the
window between -rc3-mm1 and -rc3-mm2.

I doubt that the memory corruption is a hardware problem, because the
system in question is using ECC ram and I did not see any messages
about corrected/detected errors.

> Is this the very first OOPS/warning that you see? If not you should
> ignore all but the very first one as that may have left your system
> in an inconsistent state which may render all subsequent OOPSes and
> warnings useless.

I looked into the log in question and the only other warning was a
circular locking dependency that lockdep detected around 1.5 hour
before this warning.

As reported in my original mail immeadeatly after the warning the
system OOPSed and hang:
[93436.947241] general protection fault: 0000 [1] SMP
-> first OOPS
[93436.947243] last sysfs file:
/sys/devices/pci0000:00/0000:00:0f.0/0000:01:00.1/irq
[93436.947245] CPU 1
[93436.947246] Modules linked in: radeon drm nfsd exportfs w83792d
ipv6 tuner tea5767 tda8290 tuner_xc2
028 tda9887 tuner_simple mt20xx tea5761 tvaudio msp3400 bttv ir_common
compat_ioctl32 videobuf_dma_sg v
ideobuf_core btcx_risc tveeprom usbhid videodev v4l2_common hid
v4l1_compat pata_amd sg i2c_nforce2
[93436.947257] Pid: 8079, comm: konqueror Not tainted 2.6.24-rc6-mm1 #11
-> not tainted by a previous OOPS
[93436.947259] RIP: 0010:[<ffffffff80531438>] [<ffffffff80531438>]
skb_drop_list+0x18/0x30
[93436.947262] RSP: 0018:ffff810005f4fda8 EFLAGS: 00010286
[93436.947263] RAX: ab1ed5ca5b74e7de RBX: ab1ed5ca5b74e7de RCX: 000000000000d135
[93436.947265] RDX: ffff81011d089a80 RSI: 0000000000000001 RDI: ffff81011d089a88
[93436.947266] RBP: ffff810005f4fdb8 R08: 0000000000000001 R09: 0000000000000006
[93436.947268] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8100de02c500
[93436.947269] R13: ffff81011c188a00 R14: 0000000000000001 R15: ffff81011c189198
[93436.947271] FS: 00007fb5bde0d700(0000) GS:ffff81007ff22000(0000)
knlGS:0000000000000000
[93436.947273] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[93436.947274] CR2: 00007fb5bdd76000 CR3: 00000000664d5000 CR4: 00000000000006e0
[93436.947276] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[93436.947277] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[93436.947279] Process konqueror (pid: 8079, threadinfo
ffff810005f4e000, task ffff8100a1dec000)
[93436.947281] Stack: ffff810005f4fdd8 ffff810116c86140
ffff810005f4fdd8 ffffffff805314ae
[93436.947284] ffff810116c86140 ffff8100de02c500 ffff810005f4fdf8
ffffffff80531cf0
[93436.947286] ffff8100de02c500 ffff81011c188b48 ffff810005f4fe18
ffffffff80531311
[93436.947288] Call Trace:
[93436.947290] [<ffffffff805314ae>] skb_release_data+0x5e/0xa0
[93436.947293] [<ffffffff80531cf0>] skb_release_all+0xa0/0x110
[93436.947295] [<ffffffff80531311>] __kfree_skb+0x11/0xa0
[93436.947297] [<ffffffff805313b7>] kfree_skb+0x17/0x30
[93436.947299] [<ffffffff805a0b48>] unix_release_sock+0x128/0x250
[93436.947302] [<ffffffff805a0c91>] unix_release+0x21/0x30
[93436.947304] [<ffffffff8052b144>] sock_release+0x24/0x90
[93436.947307] [<ffffffff8052b656>] sock_close+0x26/0x50
[93436.947309] [<ffffffff8029f921>] __fput+0xc1/0x230
[93436.947312] [<ffffffff8029fe46>] fput+0x16/0x20
[93436.947314] [<ffffffff8029c576>] filp_close+0x56/0x90
[93436.947316] [<ffffffff8029de46>] sys_close+0xa6/0x110
[93436.947319] [<ffffffff8020b57b>] system_call_after_swapgs+0x7b/0x80
[93436.947322]
[93436.947322]
[93436.947323] Code: 48 8b 18 48 89 c7 e8 5d ff ff ff 48 85 db 75 ed 48 83 c4 08
[93436.947328] RIP [<ffffffff80531438>] skb_drop_list+0x18/0x30
[93436.947330] RSP <ffff810005f4fda8>
[93436.947332] ---[ end trace befb7cc3528ab3b1 ]---

Your patch just fit so "good" to my problems:
* it had the correct time frame for 2.6.24-rc3-mm2
* it looked guilty at changing the refcounting of __refcnt because of
the added dst_release()
* it added other release / freeing operations so that a use-after-free
memory corruption seemed possible

I just have no better idea to what caused this OOPS and the other
hangs in -rc3-mm2.

Torsten

2007-12-30 05:44:55

by Randy Dunlap

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

On Sun, 30 Dec 2007 04:34:36 +0100 Torsten Kaiser wrote:

> On Dec 30, 2007 2:30 AM, Herbert Xu <[email protected]> wrote:
> > On Sat, Dec 29, 2007 at 05:51:13PM +0100, Torsten Kaiser wrote:
> > >
> > > > > The cause, why I am resending this: I just got a crash with
> > > > > 2.6.24-rc6-mm1, again looking network related:
> > > > >
> > > > > [93436.933356] WARNING: at include/net/dst.h:165 dst_release()
> > > > > [93436.936685] Pid: 8079, comm: konqueror Not tainted 2.6.24-rc6-mm1 #11
> > > > > [93436.939292]
> > > > > [93436.939293] Call Trace:
> > > > > [93436.939304] [<ffffffff80531d2d>] skb_release_all+0xdd/0x110
> > > > > [93436.939307] [<ffffffff80531311>] __kfree_skb+0x11/0xa0
> > > > > [93436.939309] [<ffffffff805313b7>] kfree_skb+0x17/0x30
> > > > > [93436.939312] [<ffffffff805a0b48>] unix_release_sock+0x128/0x250
> > > > > [93436.939315] [<ffffffff805a0c91>] unix_release+0x21/0x30
> > > > > [93436.939318] [<ffffffff8052b144>] sock_release+0x24/0x90
> > > > > [93436.939320] [<ffffffff8052b656>] sock_close+0x26/0x50
> > > > > [93436.939324] [<ffffffff8029f921>] __fput+0xc1/0x230
> > > > > [93436.939327] [<ffffffff8029fe46>] fput+0x16/0x20
> > > > > [93436.939329] [<ffffffff8029c576>] filp_close+0x56/0x90
> > > > > [93436.939331] [<ffffffff8029de46>] sys_close+0xa6/0x110
> > > > > [93436.939335] [<ffffffff8020b57b>] system_call_after_swapgs+0x7b/0x80
> > >
> > > >From code inspection I would blame the patch "[SKBUFF]: Free old skb
> > > properly in skb_morph" from Herbert Xu. (CC added)
> >
> > I doubt it. skb_morph is only used on IP fragments so I don't see how
> > you could attribute an error from a Unix domain socket to this patch.
>
> That's why I wrote that I do not know much about the network core...
>
> > In any case, Unix socket packets should not have a dst at all so the
> > very fact that you're in that path means that you have some sort of
> > memory corruption.
>
> ... I did not know about the fact that there should not have been an dst.
>
> Its just that this warning was the first nice clue about the memory
> corruption related to networking that I see since 2.6.24-rc3-mm2.
> The time of the patch (Mon, 26 Nov 2007 15:11:19) even fits into the
> window between -rc3-mm1 and -rc3-mm2.
>
> I doubt that the memory corruption is a hardware problem, because the
> system in question is using ECC ram and I did not see any messages
> about corrected/detected errors.
>
> > Is this the very first OOPS/warning that you see? If not you should
> > ignore all but the very first one as that may have left your system
> > in an inconsistent state which may render all subsequent OOPSes and
> > warnings useless.
>
> I looked into the log in question and the only other warning was a
> circular locking dependency that lockdep detected around 1.5 hour
> before this warning.
>
> As reported in my original mail immeadeatly after the warning the
> system OOPSed and hang:
> [93436.947241] general protection fault: 0000 [1] SMP
> -> first OOPS ^
FYI, that's what this counter is... -----^

> [93436.947243] last sysfs file:
> /sys/devices/pci0000:00/0000:00:0f.0/0000:01:00.1/irq
> [93436.947245] CPU 1
> [93436.947246] Modules linked in: radeon drm nfsd exportfs w83792d
> ipv6 tuner tea5767 tda8290 tuner_xc2
> 028 tda9887 tuner_simple mt20xx tea5761 tvaudio msp3400 bttv ir_common
> compat_ioctl32 videobuf_dma_sg v
> ideobuf_core btcx_risc tveeprom usbhid videodev v4l2_common hid
> v4l1_compat pata_amd sg i2c_nforce2
> [93436.947257] Pid: 8079, comm: konqueror Not tainted 2.6.24-rc6-mm1 #11
> -> not tainted by a previous OOPS
> [93436.947259] RIP: 0010:[<ffffffff80531438>] [<ffffffff80531438>]
> skb_drop_list+0x18/0x30
> [93436.947262] RSP: 0018:ffff810005f4fda8 EFLAGS: 00010286
> [93436.947263] RAX: ab1ed5ca5b74e7de RBX: ab1ed5ca5b74e7de RCX: 000000000000d135
> [93436.947265] RDX: ffff81011d089a80 RSI: 0000000000000001 RDI: ffff81011d089a88
> [93436.947266] RBP: ffff810005f4fdb8 R08: 0000000000000001 R09: 0000000000000006
> [93436.947268] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8100de02c500
> [93436.947269] R13: ffff81011c188a00 R14: 0000000000000001 R15: ffff81011c189198
> [93436.947271] FS: 00007fb5bde0d700(0000) GS:ffff81007ff22000(0000)
> knlGS:0000000000000000
> [93436.947273] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> [93436.947274] CR2: 00007fb5bdd76000 CR3: 00000000664d5000 CR4: 00000000000006e0
> [93436.947276] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [93436.947277] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> [93436.947279] Process konqueror (pid: 8079, threadinfo
> ffff810005f4e000, task ffff8100a1dec000)
> [93436.947281] Stack: ffff810005f4fdd8 ffff810116c86140
> ffff810005f4fdd8 ffffffff805314ae
> [93436.947284] ffff810116c86140 ffff8100de02c500 ffff810005f4fdf8
> ffffffff80531cf0
> [93436.947286] ffff8100de02c500 ffff81011c188b48 ffff810005f4fe18
> ffffffff80531311
> [93436.947288] Call Trace:
> [93436.947290] [<ffffffff805314ae>] skb_release_data+0x5e/0xa0
> [93436.947293] [<ffffffff80531cf0>] skb_release_all+0xa0/0x110
> [93436.947295] [<ffffffff80531311>] __kfree_skb+0x11/0xa0
> [93436.947297] [<ffffffff805313b7>] kfree_skb+0x17/0x30
> [93436.947299] [<ffffffff805a0b48>] unix_release_sock+0x128/0x250
> [93436.947302] [<ffffffff805a0c91>] unix_release+0x21/0x30
> [93436.947304] [<ffffffff8052b144>] sock_release+0x24/0x90
> [93436.947307] [<ffffffff8052b656>] sock_close+0x26/0x50
> [93436.947309] [<ffffffff8029f921>] __fput+0xc1/0x230
> [93436.947312] [<ffffffff8029fe46>] fput+0x16/0x20
> [93436.947314] [<ffffffff8029c576>] filp_close+0x56/0x90
> [93436.947316] [<ffffffff8029de46>] sys_close+0xa6/0x110
> [93436.947319] [<ffffffff8020b57b>] system_call_after_swapgs+0x7b/0x80
> [93436.947322]
> [93436.947322]
> [93436.947323] Code: 48 8b 18 48 89 c7 e8 5d ff ff ff 48 85 db 75 ed 48 83 c4 08
> [93436.947328] RIP [<ffffffff80531438>] skb_drop_list+0x18/0x30
> [93436.947330] RSP <ffff810005f4fda8>
> [93436.947332] ---[ end trace befb7cc3528ab3b1 ]---
>
> Your patch just fit so "good" to my problems:
> * it had the correct time frame for 2.6.24-rc3-mm2
> * it looked guilty at changing the refcounting of __refcnt because of
> the added dst_release()
> * it added other release / freeing operations so that a use-after-free
> memory corruption seemed possible
>
> I just have no better idea to what caused this OOPS and the other
> hangs in -rc3-mm2.

---
~Randy
desserts: http://www.xenotime.net/linux/recipes/

2007-12-30 13:10:49

by Ingo Molnar

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


* Herbert Xu <[email protected]> wrote:

> > Ingo, it's not good that we have cond_resched() definitions
> > conditionally duplicated in kernel.h - that's increasing the risk of
> > bugs like this one.
>
> Actually, why do we even have cond_resched when real preemption is on?
> It seems to be a waste of space and time.

due to the BKL. cond_resched() in BKL code breaks up BKL latencies.

i dont mind not doing that though - we should increase the pain for BKL
users, so that subsystems finally get rid of it altogether.
lock_kernel() use within the kernel is still rampant - there are still
more than 400 callsites to lock_kernel().

Ingo

2007-12-30 21:25:00

by J. Bruce Fields

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

On Fri, Dec 28, 2007 at 03:07:46PM -0800, Andrew Morton wrote:
> On Fri, 28 Dec 2007 23:53:49 +0100 "Torsten Kaiser" <[email protected]> wrote:
>
> > On Dec 23, 2007 5:27 PM, Torsten Kaiser <[email protected]> wrote:
> > > On Dec 23, 2007 8:30 AM, Andrew Morton <[email protected]> wrote:
> > > >
> > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
> > > I have finally given up on using 2.6.24-rc3-mm2 with slub_debug=FZP to
> > > get more information out of the random crashes I had seen with that
> > > version. (Did not crash once with slub_debug, so no new information on
> > > what the cause was)
> >
> > Murphy: Just after sending that mail the system crashed two times with
> > slub_debug=FZP, but did not show any new informations.
> > No debug output from slub, only this stacktrace: (Its the same I
> > already reported in the 2.6.24-rc3-mm2 thread)
> >
> > [ 7620.673012] ------------[ cut here ]------------
> > [ 7620.676291] kernel BUG at lib/list_debug.c:33!
> > [ 7620.679440] invalid opcode: 0000 [1] SMP
> > [ 7620.682319] last sysfs file:
> > /sys/devices/system/cpu/cpu3/cache/index2/shared_cpu_map
> > [ 7620.687845] CPU 0
> > [ 7620.689300] Modules linked in: radeon drm nfsd exportfs w83792d
> > ipv6 tuner tea5767 tda8290 tuner_xc2028 tda9887 tuner_simple mt20xx
> > tea5761 tvaudio msp3400 bttv ir_common compat_ioctl32 videobuf_dma_sg
> > videobuf_core btcx_risc tveeprom videodev usbhid v4l2_common
> > v4l1_compat hid i2c_nforce2 sg pata_amd
> > [ 7620.708561] Pid: 5698, comm: nfsv4-svc Not tainted 2.6.24-rc3-mm2 #2
> > [ 7620.713080] RIP: 0010:[<ffffffff803bae54>] [<ffffffff803bae54>]
> > __list_add+0x54/0x60
> > [ 7620.718667] RSP: 0018:ffff81011bca1dc0 EFLAGS: 00010282
> > [ 7620.722439] RAX: 0000000000000088 RBX: ffff81011c862c48 RCX: 0000000000000002
> > [ 7620.727504] RDX: ffff81011bc82ef0 RSI: 0000000000000001 RDI: ffffffff807590c0
> > [ 7620.732581] RBP: ffff81011bca1dc0 R08: 0000000000000001 R09: 0000000000000000
> > [ 7620.737658] R10: ffff810080058d48 R11: 0000000000000001 R12: ffff81011ed8d1c8
> > [ 7620.742711] R13: ffff81011ed8d200 R14: ffff81011ed8d200 R15: ffff81011cc0e578
> > [ 7620.747806] FS: 00007ffe400116f0(0000) GS:ffffffff807d4000(0000)
> > knlGS:00000000f73558e0
> > [ 7620.753535] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> > [ 7620.757607] CR2: 00000000017071dc CR3: 00000001188b5000 CR4: 00000000000006e0
> > [ 7620.762677] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > [ 7620.767748] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> > [ 7620.772808] Process nfsv4-svc (pid: 5698, threadinfo
> > FFFF81011BCA0000, task FFFF81011BC82EF0)
> > [ 7620.778872] Stack: ffff81011bca1e00 ffffffff805be26e
> > ffff81011ed8d1d0 ffff81011cc0e578
> > [ 7620.784626] ffff81011c862c48 ffff81011c8be000 ffff810054a8b060
> > ffff81011cc0e588
> > [ 7620.789913] ffff81011bca1e10 ffffffff805be367 ffff81011bca1ee0
> > ffffffff805bf0ac
> > [ 7620.795062] Call Trace:
> > [ 7620.796941] [<ffffffff805be26e>] svc_xprt_enqueue+0x1ae/0x250
> > [ 7620.801087] [<ffffffff805be367>] svc_xprt_received+0x17/0x20
> > [ 7620.805199] [<ffffffff805bf0ac>] svc_recv+0x39c/0x840
> > [ 7620.808851] [<ffffffff805bea3f>] svc_send+0xaf/0xd0
> > [ 7620.812374] [<ffffffff8022f590>] default_wake_function+0x0/0x10
> > [ 7620.816637] [<ffffffff803163ea>] nfs_callback_svc+0x7a/0x130
> > [ 7620.820712] [<ffffffff805cfea2>] trace_hardirqs_on_thunk+0x35/0x3a
> > [ 7620.825174] [<ffffffff80259f8f>] trace_hardirqs_on+0xbf/0x160
> > [ 7620.829335] [<ffffffff8020cbc8>] child_rip+0xa/0x12
> > [ 7620.832842] [<ffffffff8020c2df>] restore_args+0x0/0x30
> > [ 7620.836554] [<ffffffff80316370>] nfs_callback_svc+0x0/0x130
> > [ 7620.840564] [<ffffffff8020cbbe>] child_rip+0x0/0x12
> > [ 7620.844102]
> > [ 7620.845168] INFO: lockdep is turned off.
> > [ 7620.847964]
> > [ 7620.847965] Code: 0f 0b eb fe 0f 1f 84 00 00 00 00 00 55 48 8b 16
> > 48 89 e5 e8
> > [ 7620.854334] RIP [<ffffffff803bae54>] __list_add+0x54/0x60
> > [ 7620.858255] RSP <ffff81011bca1dc0>
> > [ 7620.860724] Kernel panic - not syncing: Aiee, killing interrupt handler!
> >
>
> That looks like a sunrpc bug. git-nfsd has bene mucking around in there a
> bit.

Can you still reproduce this? Tom thought there was a chance the
following could fix it.

--b.

From: Tom Tucker <[email protected]>
Date: Sun, 30 Dec 2007 10:07:17 -0600

Bruce/Aime:

Here is what I believe to be the fix for the crashes/svc_xprt BUG_ON
that people are seeing. It would be great if those who have seen this
problem could apply this patch and see if it resolves their problem.

The common code calls svc_xprt_received on behalf of the transport.
Since the provider was calling it as well, this resulted in clearing the
busy bit/resetting xpt_pool when the BUSY bit wasn't held.

diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index 4628881..4d39db1 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -1272,7 +1272,6 @@ static struct svc_xprt *svc_create_socket(struct svc_serv *serv,

if ((svsk = svc_setup_socket(serv, sock, &error, flags)) != NULL) {
svc_xprt_set_local(&svsk->sk_xprt, newsin, newlen);
- svc_xprt_received(&svsk->sk_xprt);
return (struct svc_xprt *)svsk;
}


-

2007-12-30 21:35:21

by Torsten Kaiser

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

On Dec 30, 2007 10:24 PM, J. Bruce Fields <[email protected]> wrote:
>
> On Fri, Dec 28, 2007 at 03:07:46PM -0800, Andrew Morton wrote:
> > On Fri, 28 Dec 2007 23:53:49 +0100 "Torsten Kaiser" <[email protected]> wrote:
> >
> > > On Dec 23, 2007 5:27 PM, Torsten Kaiser <[email protected]> wrote:
> > > > On Dec 23, 2007 8:30 AM, Andrew Morton <[email protected]> wrote:
> > > > >
> > > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
> > > > I have finally given up on using 2.6.24-rc3-mm2 with slub_debug=FZP to
> > > > get more information out of the random crashes I had seen with that
> > > > version. (Did not crash once with slub_debug, so no new information on
> > > > what the cause was)
> > >
> > > Murphy: Just after sending that mail the system crashed two times with
> > > slub_debug=FZP, but did not show any new informations.
> > > No debug output from slub, only this stacktrace: (Its the same I
> > > already reported in the 2.6.24-rc3-mm2 thread)
> > >
[snip]
> > > [ 7620.708561] Pid: 5698, comm: nfsv4-svc Not tainted 2.6.24-rc3-mm2 #2
[snip]
> >
> > That looks like a sunrpc bug. git-nfsd has bene mucking around in there a
> > bit.
>
> Can you still reproduce this? Tom thought there was a chance the
> following could fix it.

Please see also http://lkml.org/lkml/2007/12/29/76

Just wanted to say that slub_debug did not help to get more infos.

I will try to reproduce this with rc3-mm2 and the below patch tomorrow.
Without slub_debug this seemed to trigger rather reliable when trying
to update/upgrade packages on my system.

> From: Tom Tucker <[email protected]>
> Date: Sun, 30 Dec 2007 10:07:17 -0600
>
> Bruce/Aime:
>
> Here is what I believe to be the fix for the crashes/svc_xprt BUG_ON
> that people are seeing. It would be great if those who have seen this
> problem could apply this patch and see if it resolves their problem.
>
> The common code calls svc_xprt_received on behalf of the transport.
> Since the provider was calling it as well, this resulted in clearing the
> busy bit/resetting xpt_pool when the BUSY bit wasn't held.
>
> diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
> index 4628881..4d39db1 100644
> --- a/net/sunrpc/svcsock.c
> +++ b/net/sunrpc/svcsock.c
> @@ -1272,7 +1272,6 @@ static struct svc_xprt *svc_create_socket(struct svc_serv *serv,
>
> if ((svsk = svc_setup_socket(serv, sock, &error, flags)) != NULL) {
> svc_xprt_set_local(&svsk->sk_xprt, newsin, newlen);
> - svc_xprt_received(&svsk->sk_xprt);
> return (struct svc_xprt *)svsk;
> }

I will send a mail, when I'm done with testing this...

Thanks for the patch.

Torsten

2007-12-31 13:17:29

by Torsten Kaiser

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

On Dec 30, 2007 10:35 PM, Torsten Kaiser <[email protected]> wrote:
> On Dec 30, 2007 10:24 PM, J. Bruce Fields <[email protected]> wrote:
> > From: Tom Tucker <[email protected]>
> > Date: Sun, 30 Dec 2007 10:07:17 -0600
> >
> > Bruce/Aime:
> >
> > Here is what I believe to be the fix for the crashes/svc_xprt BUG_ON
> > that people are seeing. It would be great if those who have seen this
> > problem could apply this patch and see if it resolves their problem.
> >
> > The common code calls svc_xprt_received on behalf of the transport.
> > Since the provider was calling it as well, this resulted in clearing the
> > busy bit/resetting xpt_pool when the BUSY bit wasn't held.
> >
> > diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
> > index 4628881..4d39db1 100644
> > --- a/net/sunrpc/svcsock.c
> > +++ b/net/sunrpc/svcsock.c
> > @@ -1272,7 +1272,6 @@ static struct svc_xprt *svc_create_socket(struct svc_serv *serv,
> >
> > if ((svsk = svc_setup_socket(serv, sock, &error, flags)) != NULL) {
> > svc_xprt_set_local(&svsk->sk_xprt, newsin, newlen);
> > - svc_xprt_received(&svsk->sk_xprt);
> > return (struct svc_xprt *)svsk;
> > }
>
> I will send a mail, when I'm done with testing this...

Removing this line from 2.6.24-rc3-mm2 does not solve my crash
FYI the codepart from net/sunrpc/svcsock.c / svc_create_socket() where
I removed this:
if (protocol == IPPROTO_TCP) {
if ((error = kernel_listen(sock, 64)) < 0)
goto bummer;
}

if ((svsk = svc_setup_socket(serv, sock, &error, flags)) != NULL) {
memcpy(&svsk->sk_xprt.xpt_local, newsin, newlen);
//svc_xprt_received(&svsk->sk_xprt);
return (struct svc_xprt *)svsk;
}

bummer:
dprintk("svc: svc_create_socket error = %d\n", -error);


The crash itself:
[11166.565362] ------------[ cut here ]------------
[11166.568595] kernel BUG at lib/list_debug.c:33!
[11166.571696] invalid opcode: 0000 [1] SMP
[11166.574527] last sysfs file:
/sys/devices/system/cpu/cpu3/cache/index2/shared_cpu_map
[11166.580017] CPU 3
[11166.581442] Modules linked in: radeon drm nfsd exportfs w83792d
ipv6 tuner tea5767 tda8290 tuner_xc2
028 tda9887 tuner_simple mt20xx tea5761 tvaudio msp3400 bttv ir_common
compat_ioctl32 videobuf_dma_sg v
ideobuf_core btcx_risc tveeprom videodev usbhid v4l2_common hid
v4l1_compat sg pata_amd i2c_nforce2
[11166.600470] Pid: 5548, comm: nfsv4-svc Not tainted 2.6.24-rc3-mm2 #3
[11166.604912] RIP: 0010:[<ffffffff803bae54>] [<ffffffff803bae54>]
__list_add+0x54/0x60
[11166.610408] RSP: 0000:ffff81007d83fdc0 EFLAGS: 00010282
[11166.614144] RAX: 0000000000000088 RBX: ffff81007f2e0400 RCX: 0000000000000002
[11166.619113] RDX: ffff81007dc6eed0 RSI: 0000000000000001 RDI: ffffffff807590c0
[11166.624130] RBP: ffff81007d83fdc0 R08: 0000000000000001 R09: 0000000000000000
[11166.629124] R10: ffff810080058d48 R11: 0000000000000001 R12: ffff81007e444680
[11166.634129] R13: ffff81007e4446b8 R14: ffff81007e4446b8 R15: ffff81011ff50100
[11166.639128] FS: 00007fb815abc6f0(0000) GS:ffff81011ff13280(0000)
knlGS:0000000000000000
[11166.644786] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[11166.648809] CR2: 0000000000441770 CR3: 0000000000201000 CR4: 00000000000006e0
[11166.653796] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[11166.658784] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[11166.663783] Process nfsv4-svc (pid: 5548, threadinfo
FFFF81007D83E000, task FFFF81007DC6EED0)
[11166.669776] Stack: ffff81007d83fe00 ffffffff805be25e
ffff81007e444688 ffff81011ff50100
[11166.675428] ffff81007f2e0400 ffff81007dd62000 ffff81010a138000
ffff81011ff50110
[11166.680660] ffff81007d83fe10 ffffffff805be357 ffff81007d83fee0
ffffffff805bf09c
[11166.685744] Call Trace:
[11166.687592] [<ffffffff805be25e>] svc_xprt_enqueue+0x1ae/0x250
[11166.691672] [<ffffffff805be357>] svc_xprt_received+0x17/0x20
[11166.695700] [<ffffffff805bf09c>] svc_recv+0x39c/0x840
[11166.699299] [<ffffffff805bea2f>] svc_send+0xaf/0xd0
[11166.702755] [<ffffffff8022f590>] default_wake_function+0x0/0x10
[11166.706983] [<ffffffff803163ea>] nfs_callback_svc+0x7a/0x130
[11166.710992] [<ffffffff805cfe92>] trace_hardirqs_on_thunk+0x35/0x3a
[11166.715377] [<ffffffff80259f8f>] trace_hardirqs_on+0xbf/0x160
[11166.719454] [<ffffffff8020cbc8>] child_rip+0xa/0x12
[11166.722919] [<ffffffff8020c2df>] restore_args+0x0/0x30
[11166.726578] [<ffffffff80316370>] nfs_callback_svc+0x0/0x130
[11166.730540] [<ffffffff8020cbbe>] child_rip+0x0/0x12
[11166.734024]
[11166.735072] INFO: lockdep is turned off.
[11166.737843]
[11166.737844] Code: 0f 0b eb fe 0f 1f 84 00 00 00 00 00 55 48 8b 16 48 89 e5 e8
[11166.744160] RIP [<ffffffff803bae54>] __list_add+0x54/0x60
[11166.748015] RSP <ffff81007d83fdc0>
[11166.750464] Kernel panic - not syncing: Aiee, killing interrupt handler!
-> then the system hung, no "---[ end trace xyz ]---"-output

Will it make a difference if I try it in -rc6-mm1?

Torsten

2007-12-31 17:14:23

by Paul Moore

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 - git-lblnet.patch and networking horkage

On Wednesday 26 December 2007 4:52:03 pm James Morris wrote:
> On Thu, 26 Dec 2007, Paul Moore wrote:
> > As James said I'm away right now and computer access is limited.
> > However, I'm stuck in the airport right now and spent some time looking
> > at the code ... Based on what has been found so far I wonder if the
> > problem isn't a race but a problem of skb->iif never being initialized
> > correctly? To my untrained eye it looks like __netdev_alloc_skb()
> > should be setting skb->iif (like it does for skb->dev) but it currently
> > doesn't.
>
> ->iif will be zeroed during skb allocation, then set during
> netif_receive_skb().

I was able to reproduce this bug this morning by running avahi as James did
and did a little more digging. I don't have a fix yet, but thought I would
pass along what I've found in case this triggers a moment of clarity to
someone out there ...

The skb->iif value appears to be messed up as early as netif_receive_skb(), in
my case it is set to 196611 (trust me, I don't have that many interfaces in
my test machine) which causes the ->iif initialization code in
netif_receive_skb() to be skipped because ->iif is greater than zero. This
particular packet is locally generated and locally consumed.

Hopefully I'll have a fix later this afternoon but if someone has a bright
idea I'd love to hear it. Backtrace is below:

WARNING: at security/selinux/hooks.c:3805 selinux_socket_sock_rcv_skb()
Pid: 1454, comm: avahi-daemon Not tainted 2.6.24-rc5 #4
[<c04aac4e>] selinux_socket_sock_rcv_skb+0x96/0x3ac
[<c041bddf>] printk+0x1b/0x1f
[<c04349c9>] __print_symbol+0x21/0x2a
[<c04a5ae8>] security_sock_rcv_skb+0xc/0xd
[<c05822c3>] sock_queue_rcv_skb+0x29/0xce
[<d08f34e9>] ipt_do_table+0x423/0x466 [ip_tables]
[<c05bf114>] udp_queue_rcv_skb+0x199/0x201
[<c04caf24>] vsnprintf+0x283/0x450
[<d08f93e8>] nf_conntrack_in+0x307/0x3d7 [nf_conntrack]
[<c05bf56a>] __udp4_lib_rcv+0x3ee/0x7a7
[<d08fc26f>] nf_ct_deliver_cached_events+0x8/0x90 [nf_conntrack]
[<d0984158>] ipv4_confirm+0x34/0x39 [nf_conntrack_ipv4]
[<c059e99a>] nf_iterate+0x3a/0x6e
[<c05a38d3>] ip_local_deliver_finish+0x0/0x191
[<c05a38d3>] ip_local_deliver_finish+0x0/0x191
[<c05a39e5>] ip_local_deliver_finish+0x112/0x191
[<c05a38b4>] ip_rcv_finish+0x254/0x273
[<c05a3660>] ip_rcv_finish+0x0/0x273
[<c05a3cd3>] ip_rcv+0x1cc/0x1fb
[<c05a3660>] ip_rcv_finish+0x0/0x273
[<c05a3b07>] ip_rcv+0x0/0x1fb
[<c0587fd7>] netif_receive_skb+0x37d/0x397
[<c058a111>] process_backlog+0x60/0x92
[<c0589e16>] net_rx_action+0x67/0x118
[<c041f164>] __do_softirq+0x35/0x75
[<c0404f02>] do_softirq+0x3e/0x8d
[<c041f06e>] local_bh_enable+0x6b/0x79
[<d08fc26f>] nf_ct_deliver_cached_events+0x8/0x90 [nf_conntrack]
[<d0984158>] ipv4_confirm+0x34/0x39 [nf_conntrack_ipv4]
[<d0984124>] ipv4_confirm+0x0/0x39 [nf_conntrack_ipv4]
[<c059e99a>] nf_iterate+0x3a/0x6e
[<c05a6ca9>] ip_finish_output+0x0/0x208
[<c059ea3f>] nf_hook_slow+0x4d/0xb5
[<c05a6ca9>] ip_finish_output+0x0/0x208
[<c05a7cb5>] ip_mc_output+0x172/0x18b
[<c05a6ca9>] ip_finish_output+0x0/0x208
[<c05a5b79>] ip_push_pending_frames+0x2be/0x311
[<c05a5790>] dst_output+0x0/0x7
[<c05bedb6>] udp_push_pending_frames+0x298/0x2d7
[<c05bfd8b>] udp_sendmsg+0x459/0x55c
[<c05c4bf9>] inet_sendmsg+0x3b/0x45
[<c057eead>] sock_sendmsg+0xc8/0xe3
[<c0429863>] autoremove_wake_function+0x0/0x33
[<c057eead>] sock_sendmsg+0xc8/0xe3
[<c0429863>] autoremove_wake_function+0x0/0x33
[<c04cbb78>] copy_from_user+0x32/0x5e
[<c04cbb78>] copy_from_user+0x32/0x5e
[<c057f05a>] sys_sendmsg+0x192/0x1f7
[<c041eb1b>] current_fs_time+0x13/0x15
[<c0470b14>] file_update_time+0x21/0x61
[<c04663f2>] pipe_write+0x3cc/0x3d8
[<c0460e91>] do_sync_write+0x0/0x109
[<c0460f57>] do_sync_write+0xc6/0x109
[<c0429863>] autoremove_wake_function+0x0/0x33
[<c058029c>] sys_socketcall+0x240/0x261
[<c0403c72>] syscall_call+0x7/0xb
=======================

--
paul moore
linux security @ hp

2007-12-31 18:06:24

by Randy Dunlap

[permalink] [raw]
Subject: [PATCH -mm] driver core: build with SYSFS=n

From: Randy Dunlap <[email protected]>

When SYSFS=n and MODULES=y, build ends with:

linux-2.6.24-rc6-mm1/drivers/base/module.c: In function 'module_add_driver':
linux-2.6.24-rc6-mm1/drivers/base/module.c:49: error: 'module_kset' undeclared (first use in this function)
make[3]: *** [drivers/base/module.o] Error 1

Below is one possible fix.
Build-tested with all 4 config combinations of SYSFS & MODULES.

Signed-off-by: Randy Dunlap <[email protected]>
---
drivers/base/Makefile | 2 ++
drivers/base/base.h | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)

--- linux-2.6.24-rc6-mm1.orig/drivers/base/Makefile
+++ linux-2.6.24-rc6-mm1/drivers/base/Makefile
@@ -11,7 +11,9 @@ obj-$(CONFIG_FW_LOADER) += firmware_clas
obj-$(CONFIG_NUMA) += node.o
obj-$(CONFIG_MEMORY_HOTPLUG_SPARSE) += memory.o
obj-$(CONFIG_SMP) += topology.o
+ifeq ($(CONFIG_SYSFS),y)
obj-$(CONFIG_MODULES) += module.o
+endif
obj-$(CONFIG_SYS_HYPERVISOR) += hypervisor.o

ifeq ($(CONFIG_DEBUG_DRIVER),y)
--- linux-2.6.24-rc6-mm1.orig/drivers/base/base.h
+++ linux-2.6.24-rc6-mm1/drivers/base/base.h
@@ -79,7 +79,7 @@ extern char *make_class_name(const char

extern int devres_release_all(struct device *dev);

-#ifdef CONFIG_MODULES
+#if defined(CONFIG_MODULES) && defined(CONFIG_SYSFS)
extern void module_add_driver(struct module *mod, struct device_driver *drv);
extern void module_remove_driver(struct device_driver *drv);
#else

2007-12-31 18:07:31

by Randy Dunlap

[permalink] [raw]
Subject: [PATCH -mm] crypto: scatterwalk.h needs sched.h

From: Randy Dunlap <[email protected]>

When CONFIG_PREEMPT_NONE=y, scatterwalk.h still uses cond_resched()
so it needs to include sched.h:

linux-2.6.24-rc6-mm1/include/crypto/scatterwalk.h:52: error: implicit declaration of function 'cond_resched'
make[2]: *** [crypto/digest.o] Error 1

Signed-off-by: Randy Dunlap <[email protected]>
---
include/crypto/scatterwalk.h | 1 +
1 file changed, 1 insertion(+)

--- linux-2.6.24-rc6-mm1.orig/include/crypto/scatterwalk.h
+++ linux-2.6.24-rc6-mm1/include/crypto/scatterwalk.h
@@ -23,6 +23,7 @@
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/scatterlist.h>
+#include <linux/sched.h>

static inline enum km_type crypto_kmap_type(int out)
{

2007-12-31 18:19:48

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 (build problem: gpio_keys)

CC drivers/input/keyboard/gpio_keys.o
In file included from /local/linsrc/linux-2.6.24-rc6-mm1/drivers/input/keyboard/gpio_keys.c:27:
include2/asm/gpio.h:4:18: error: gpio.h: No such file or directory
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/input/keyboard/gpio_keys.c: In function 'gpio_keys_isr':
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/input/keyboard/gpio_keys.c:40: error: implicit declaration of function 'gpio_to_irq'
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/input/keyboard/gpio_keys.c:42: error: implicit declaration of function 'gpio_get_value'
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/input/keyboard/gpio_keys.c: In function 'gpio_keys_probe':
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/input/keyboard/gpio_keys.c:81: error: implicit declaration of function 'gpio_request'
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/input/keyboard/gpio_keys.c:88: error: implicit declaration of function 'gpio_direction_input'
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/input/keyboard/gpio_keys.c:93: error: implicit declaration of function 'gpio_free'
make[4]: *** [drivers/input/keyboard/gpio_keys.o] Error 1

CC drivers/leds/leds-gpio.o
In file included from /local/linsrc/linux-2.6.24-rc6-mm1/drivers/leds/leds-gpio.c:18:
include2/asm/gpio.h:4:18: error: gpio.h: No such file or directory
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/leds/leds-gpio.c: In function 'gpio_led_work':
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/leds/leds-gpio.c:34: error: implicit declaration of function 'gpio_set_value_cansleep'
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/leds/leds-gpio.c: In function 'gpio_led_set':
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/leds/leds-gpio.c:60: error: implicit declaration of function 'gpio_set_value'
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/leds/leds-gpio.c: In function 'gpio_led_probe':
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/leds/leds-gpio.c:85: error: implicit declaration of function 'gpio_cansleep'
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/leds/leds-gpio.c:90: error: implicit declaration of function 'gpio_request'
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/leds/leds-gpio.c:94: error: implicit declaration of function 'gpio_direction_output'
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/leds/leds-gpio.c:100: error: implicit declaration of function 'gpio_free'
make[3]: *** [drivers/leds/leds-gpio.o] Error 1


---
~Randy
desserts: http://www.xenotime.net/linux/recipes/


Attachments:
config-gpio-keys (31.28 kB)

2007-12-31 18:20:09

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 (build problem: gpio/W1)

CC drivers/w1/masters/w1-gpio.o
In file included from /local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c:19:
include2/asm/gpio.h:4:18: error: gpio.h: No such file or directory
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c: In function 'w1_gpio_write_bit_dir':
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c:26: error: implicit declaration of function 'gpio_direction_input'
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c:28: error: implicit declaration of function 'gpio_direction_output'
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c: In function 'w1_gpio_write_bit_val':
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c:35: error: implicit declaration of function 'gpio_set_value'
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c: In function 'w1_gpio_read_bit':
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c:42: error: implicit declaration of function 'gpio_get_value'
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c: In function 'w1_gpio_probe':
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c:58: error: implicit declaration of function 'gpio_request'
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c:82: error: implicit declaration of function 'gpio_free'
make[4]: *** [drivers/w1/masters/w1-gpio.o] Error 1

---
~Randy
desserts: http://www.xenotime.net/linux/recipes/


Attachments:
config-w1-gpio (23.60 kB)

2007-12-31 18:20:35

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 (build problem: v4l / i2c)

MODPOST 120 modules
ERROR: "i2c_attach_client" [drivers/media/video/v4l2-common.ko] undefined!
make[2]: *** [__modpost] Error 1

---
~Randy
desserts: http://www.xenotime.net/linux/recipes/


Attachments:
config-v4l-i2c (23.52 kB)

2007-12-31 18:40:43

by David Brownell

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 (build problem: gpio_keys)

On Monday 31 December 2007, Randy Dunlap wrote:
> CC drivers/input/keyboard/gpio_keys.o
> In file included from /local/linsrc/linux-2.6.24-rc6-mm1/drivers/input/keyboard/gpio_keys.c:27:
> include2/asm/gpio.h:4:18: error: gpio.h: No such file or directory

Find whatever broken patch selected (on x86_64)

CONFIG_GENERIC_GPIO=y

without actually providing that support (by providing <asm/gpio.h> and
an implementation backing it up). That's the patch which broke those
various GPIO-dependant drivers.

- Dave

2007-12-31 19:02:17

by Michael Ira Krufky

[permalink] [raw]
Subject: Re: [v4l-dvb-maintainer] 2.6.24-rc6-mm1 (build problem: v4l / i2c)

Randy Dunlap wrote:
> MODPOST 120 modules
> ERROR: "i2c_attach_client" [drivers/media/video/v4l2-common.ko] undefined!
> make[2]: *** [__modpost] Error 1
>
> ---
> ~Randy
> desserts: http://www.xenotime.net/linux/recipes/

I fixed this problem in this changeset:

http://linuxtv.org/hg/v4l-dvb/rev/64e0c78821c4

Mauro, can you send this upstream?

for mm: here is the raw patch:

http://linuxtv.org/hg/v4l-dvb/raw-rev/64e0c78821c4

Regards,

Mike

2007-12-31 19:08:55

by Michael Ira Krufky

[permalink] [raw]
Subject: Re: [v4l-dvb-maintainer] 2.6.24-rc6-mm1 (build problem: v4l / i2c)

Michael Krufky wrote:
> Randy Dunlap wrote:
>
>> MODPOST 120 modules
>> ERROR: "i2c_attach_client" [drivers/media/video/v4l2-common.ko] undefined!
>> make[2]: *** [__modpost] Error 1
>>
>> ---
>> ~Randy
>> desserts: http://www.xenotime.net/linux/recipes/
>>
>
> I fixed this problem in this changeset:
>
> http://linuxtv.org/hg/v4l-dvb/rev/64e0c78821c4
Hmm, I apologize -- I think this was an unrelated issue. Sorry for the
confusion.

-Mike

2007-12-31 19:10:45

by Randy Dunlap

[permalink] [raw]
Subject: [PATCH -mm] gpio: fix x86 build problem: gpio_keys

On Mon, 31 Dec 2007 10:40:27 -0800 David Brownell wrote:

> On Monday 31 December 2007, Randy Dunlap wrote:
> > CC drivers/input/keyboard/gpio_keys.o
> > In file included from /local/linsrc/linux-2.6.24-rc6-mm1/drivers/input/keyboard/gpio_keys.c:27:
> > include2/asm/gpio.h:4:18: error: gpio.h: No such file or directory
>
> Find whatever broken patch selected (on x86_64)
>
> CONFIG_GENERIC_GPIO=y
>
> without actually providing that support (by providing <asm/gpio.h> and
> an implementation backing it up). That's the patch which broke those
> various GPIO-dependant drivers.

OK, thanks for the direction.

---

From: Randy Dunlap <[email protected]>

X86_RDC321X is X86_32, so make it depend on X86_32 so that
X86_64 random configs don't try to build RDC and fail.

Signed-off-by: Randy Dunlap <[email protected]>
---
arch/x86/Kconfig | 1 +
1 file changed, 1 insertion(+)

--- linux-2.6.24-rc6-mm1.orig/arch/x86/Kconfig
+++ linux-2.6.24-rc6-mm1/arch/x86/Kconfig
@@ -297,6 +297,7 @@ config X86_ES7000

config X86_RDC321X
bool "RDC R-321x SoC"
+ depends on X86_32
select M486
select X86_REBOOTFIXUPS
select GENERIC_GPIO

2007-12-31 20:07:21

by Paul Moore

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 - git-lblnet.patch and networking horkage

On Monday 31 December 2007 12:13:32 pm Paul Moore wrote:
> On Wednesday 26 December 2007 4:52:03 pm James Morris wrote:
> > On Thu, 26 Dec 2007, Paul Moore wrote:
> > > As James said I'm away right now and computer access is limited.
> > > However, I'm stuck in the airport right now and spent some time looking
> > > at the code ... Based on what has been found so far I wonder if the
> > > problem isn't a race but a problem of skb->iif never being initialized
> > > correctly? To my untrained eye it looks like __netdev_alloc_skb()
> > > should be setting skb->iif (like it does for skb->dev) but it currently
> > > doesn't.
> >
> > ->iif will be zeroed during skb allocation, then set during
> > netif_receive_skb().
>
> I was able to reproduce this bug this morning by running avahi as James did
> and did a little more digging. I don't have a fix yet, but thought I would
> pass along what I've found in case this triggers a moment of clarity to
> someone out there ...
>
> The skb->iif value appears to be messed up as early as netif_receive_skb(),
> in my case it is set to 196611 (trust me, I don't have that many interfaces
> in my test machine) which causes the ->iif initialization code in
> netif_receive_skb() to be skipped because ->iif is greater than zero. This
> particular packet is locally generated and locally consumed.
>
> Hopefully I'll have a fix later this afternoon but if someone has a bright
> idea I'd love to hear it ...

[NOTE: I added netdev to this thread to gather some input. @netdev folks, the
problem is that the skb->iif field contains garbage in some cases which is
causing problems for some new SELinux network code. The exact problem
probably isn't too important for this discussion, what is important is that
the skb->iif field contains a non-zero garbage value some of the time on
incoming packets.]

I'm pretty certain this is an uninitialized value problem now and not a
use-after-free issue. The invalid/garbage ->iif value seems to only happen
on packets that are generated locally and sent back into the stack for local
consumption, e.g. loopback. These local packets also need to have been
cloned at some point, either on the output or input path.

The problem appears to be a skb_clone() function which does not clear the skb
structure properly and fails to copy the ->iif value from the original skb to
the cloned skb. From what I can tell, there are two possible solutions to
this problem:

1. Clear all of the cloned skb fields in skb_clone() via memset()
2. Copy the ->iif field in __copy_skb_header()

I don't have a good enough understanding of all the details involving skb
memory management to know if option #1 is a Good Idea or not, but option #2
seems much simpler and solves the problem of garbage in the ->iif field. My
preference is to go with option #2 but before I submit a patch does anyone
think this is the wrong solution?

--
paul moore
linux security @ hp

2007-12-31 20:11:43

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 (driver core/sysfs)

On Sat, 22 Dec 2007 23:30:56 -0800 Andrew Morton wrote:

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


With CONFIG_BLOCK=n:

LD drivers/block/built-in.o
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/base/core.c: In function 'device_add_class_symlinks':
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/base/core.c:707: error: 'part_type' undeclared (first use in this function)
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/base/core.c: In function 'device_remove_class_symlinks':
/local/linsrc/linux-2.6.24-rc6-mm1/drivers/base/core.c:746: error: 'part_type' undeclared (first use in this function)
make[3]: *** [drivers/base/core.o] Error 1


and that is after fixing (in some sense) the first CONFIG_BLOCK=n
problem with the patch below. Please test lots of configs.
and/or use 'make randconfig' (automated, scripted, e.g., etc.).
maybe check Documentation/SubmitChecklist. :)

---

From: Randy Dunlap <[email protected]>

Parts of driver core use blk_lookup_devt() when CONFIG_BLOCK=n,
so provide an short inline version of it for that case.

Signed-off-by: Randy Dunlap <[email protected]>
---
include/linux/genhd.h | 7 +++++++
1 file changed, 7 insertions(+)

--- linux-2.6.24-rc6-mm1.orig/include/linux/genhd.h
+++ linux-2.6.24-rc6-mm1/include/linux/genhd.h
@@ -10,6 +10,7 @@
*/

#include <linux/types.h>
+#include <linux/kdev_t.h>

#ifdef CONFIG_BLOCK

@@ -443,6 +444,12 @@ static inline struct block_device *bdget

static inline void printk_all_partitions(void) { }

+static inline dev_t blk_lookup_devt(const char *name)
+{
+ dev_t devt = MKDEV(0, 0);
+ return devt;
+}
+
#endif /* CONFIG_BLOCK */

#endif

2007-12-31 20:15:33

by Torsten Kaiser

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

On Dec 30, 2007 4:34 AM, Torsten Kaiser <[email protected]> wrote:
> On Dec 30, 2007 2:30 AM, Herbert Xu <[email protected]> wrote:
> > On Sat, Dec 29, 2007 at 05:51:13PM +0100, Torsten Kaiser wrote:
> > >
> > > > > The cause, why I am resending this: I just got a crash with
> > > > > 2.6.24-rc6-mm1, again looking network related:
> > > > >
> > > > > [93436.933356] WARNING: at include/net/dst.h:165 dst_release()
> > > > > [93436.936685] Pid: 8079, comm: konqueror Not tainted 2.6.24-rc6-mm1 #11
> > > > > [93436.939292]
> > > > > [93436.939293] Call Trace:
> > > > > [93436.939304] [<ffffffff80531d2d>] skb_release_all+0xdd/0x110
> > > > > [93436.939307] [<ffffffff80531311>] __kfree_skb+0x11/0xa0
> > > > > [93436.939309] [<ffffffff805313b7>] kfree_skb+0x17/0x30
> > > > > [93436.939312] [<ffffffff805a0b48>] unix_release_sock+0x128/0x250
> > > > > [93436.939315] [<ffffffff805a0c91>] unix_release+0x21/0x30
> > > > > [93436.939318] [<ffffffff8052b144>] sock_release+0x24/0x90
> > > > > [93436.939320] [<ffffffff8052b656>] sock_close+0x26/0x50
> > > > > [93436.939324] [<ffffffff8029f921>] __fput+0xc1/0x230
> > > > > [93436.939327] [<ffffffff8029fe46>] fput+0x16/0x20
> > > > > [93436.939329] [<ffffffff8029c576>] filp_close+0x56/0x90
> > > > > [93436.939331] [<ffffffff8029de46>] sys_close+0xa6/0x110
> > > > > [93436.939335] [<ffffffff8020b57b>] system_call_after_swapgs+0x7b/0x80
> > >
> > > >From code inspection I would blame the patch "[SKBUFF]: Free old skb
> > > properly in skb_morph" from Herbert Xu. (CC added)
> >
> > I doubt it. skb_morph is only used on IP fragments so I don't see how
> > you could attribute an error from a Unix domain socket to this patch.
>
> That's why I wrote that I do not know much about the network core...
>
> > In any case, Unix socket packets should not have a dst at all so the
> > very fact that you're in that path means that you have some sort of
> > memory corruption.
>
> ... I did not know about the fact that there should not have been an dst.
>
> Its just that this warning was the first nice clue about the memory
> corruption related to networking that I see since 2.6.24-rc3-mm2.
> The time of the patch (Mon, 26 Nov 2007 15:11:19) even fits into the
> window between -rc3-mm1 and -rc3-mm2.
>
> I doubt that the memory corruption is a hardware problem, because the
> system in question is using ECC ram and I did not see any messages
> about corrected/detected errors.
>
> > Is this the very first OOPS/warning that you see? If not you should
> > ignore all but the very first one as that may have left your system
> > in an inconsistent state which may render all subsequent OOPSes and
> > warnings useless.
>
> I looked into the log in question and the only other warning was a
> circular locking dependency that lockdep detected around 1.5 hour
> before this warning.
>
> As reported in my original mail immeadeatly after the warning the
> system OOPSed and hang:
> [93436.947241] general protection fault: 0000 [1] SMP
> -> first OOPS
> [93436.947243] last sysfs file:
> /sys/devices/pci0000:00/0000:00:0f.0/0000:01:00.1/irq
> [93436.947245] CPU 1
> [93436.947246] Modules linked in: radeon drm nfsd exportfs w83792d
> ipv6 tuner tea5767 tda8290 tuner_xc2
> 028 tda9887 tuner_simple mt20xx tea5761 tvaudio msp3400 bttv ir_common
> compat_ioctl32 videobuf_dma_sg v
> ideobuf_core btcx_risc tveeprom usbhid videodev v4l2_common hid
> v4l1_compat pata_amd sg i2c_nforce2
> [93436.947257] Pid: 8079, comm: konqueror Not tainted 2.6.24-rc6-mm1 #11
> -> not tainted by a previous OOPS
>
> [93436.947259] RIP: 0010:[<ffffffff80531438>] [<ffffffff80531438>]
> skb_drop_list+0x18/0x30
> [93436.947262] RSP: 0018:ffff810005f4fda8 EFLAGS: 00010286
> [93436.947263] RAX: ab1ed5ca5b74e7de RBX: ab1ed5ca5b74e7de RCX: 000000000000d135
> [93436.947265] RDX: ffff81011d089a80 RSI: 0000000000000001 RDI: ffff81011d089a88
> [93436.947266] RBP: ffff810005f4fdb8 R08: 0000000000000001 R09: 0000000000000006
> [93436.947268] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8100de02c500
> [93436.947269] R13: ffff81011c188a00 R14: 0000000000000001 R15: ffff81011c189198
> [93436.947271] FS: 00007fb5bde0d700(0000) GS:ffff81007ff22000(0000)
> knlGS:0000000000000000
> [93436.947273] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> [93436.947274] CR2: 00007fb5bdd76000 CR3: 00000000664d5000 CR4: 00000000000006e0
> [93436.947276] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [93436.947277] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> [93436.947279] Process konqueror (pid: 8079, threadinfo
> ffff810005f4e000, task ffff8100a1dec000)
> [93436.947281] Stack: ffff810005f4fdd8 ffff810116c86140
> ffff810005f4fdd8 ffffffff805314ae
> [93436.947284] ffff810116c86140 ffff8100de02c500 ffff810005f4fdf8
> ffffffff80531cf0
> [93436.947286] ffff8100de02c500 ffff81011c188b48 ffff810005f4fe18
> ffffffff80531311
> [93436.947288] Call Trace:
> [93436.947290] [<ffffffff805314ae>] skb_release_data+0x5e/0xa0
> [93436.947293] [<ffffffff80531cf0>] skb_release_all+0xa0/0x110
> [93436.947295] [<ffffffff80531311>] __kfree_skb+0x11/0xa0
> [93436.947297] [<ffffffff805313b7>] kfree_skb+0x17/0x30
> [93436.947299] [<ffffffff805a0b48>] unix_release_sock+0x128/0x250
> [93436.947302] [<ffffffff805a0c91>] unix_release+0x21/0x30
> [93436.947304] [<ffffffff8052b144>] sock_release+0x24/0x90
> [93436.947307] [<ffffffff8052b656>] sock_close+0x26/0x50
> [93436.947309] [<ffffffff8029f921>] __fput+0xc1/0x230
> [93436.947312] [<ffffffff8029fe46>] fput+0x16/0x20
> [93436.947314] [<ffffffff8029c576>] filp_close+0x56/0x90
> [93436.947316] [<ffffffff8029de46>] sys_close+0xa6/0x110
> [93436.947319] [<ffffffff8020b57b>] system_call_after_swapgs+0x7b/0x80
> [93436.947322]
> [93436.947322]
> [93436.947323] Code: 48 8b 18 48 89 c7 e8 5d ff ff ff 48 85 db 75 ed 48 83 c4 08
> [93436.947328] RIP [<ffffffff80531438>] skb_drop_list+0x18/0x30
> [93436.947330] RSP <ffff810005f4fda8>
> [93436.947332] ---[ end trace befb7cc3528ab3b1 ]---
>
> Your patch just fit so "good" to my problems:
> * it had the correct time frame for 2.6.24-rc3-mm2
> * it looked guilty at changing the refcounting of __refcnt because of
> the added dst_release()
> * it added other release / freeing operations so that a use-after-free
> memory corruption seemed possible
>
> I just have no better idea to what caused this OOPS and the other
> hangs in -rc3-mm2.

After testing the patch from http://lkml.org/lkml/2007/12/30/210 the
system hung again after building ~10 packages from the last kde4
release candidate. (see other mail)

I then tried to "fix" it with this suspect.
I changed "skb_release_all(dst);" back to "skb_release_data(dst);" in
skb_morph() (net/core/skbuff.c).

I'm now at 205 of 210 packages completed without a further hang. I
also do not see an obvious memory leak.

(All of these tests where done on 2.6.24-rc3-mm2, as I'm relative
sure, that doing these compiles will trigger the error on that kernel
version)

Torsten

2007-12-31 21:46:41

by James Morris

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 - git-lblnet.patch and networking horkage

On Mon, 31 Dec 2007, Paul Moore wrote:

> I'm pretty certain this is an uninitialized value problem now and not a
> use-after-free issue. The invalid/garbage ->iif value seems to only happen
> on packets that are generated locally and sent back into the stack for local
> consumption, e.g. loopback. These local packets also need to have been
> cloned at some point, either on the output or input path.

I think we need to find out exactly what's happening, first.

> The problem appears to be a skb_clone() function which does not clear the skb
> structure properly and fails to copy the ->iif value from the original skb to
> the cloned skb. From what I can tell, there are two possible solutions to
> this problem:
>
> 1. Clear all of the cloned skb fields in skb_clone() via memset()

Sounds like it's not going to fly for performance reasons in any case.

> 2. Copy the ->iif field in __copy_skb_header()

Seems valid.


- James
--
James Morris
<[email protected]>

2007-12-31 22:01:48

by Paul Moore

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 - git-lblnet.patch and networking horkage

On Monday 31 December 2007 4:46:09 pm James Morris wrote:
> On Mon, 31 Dec 2007, Paul Moore wrote:
> > I'm pretty certain this is an uninitialized value problem now and not a
> > use-after-free issue. The invalid/garbage ->iif value seems to only
> > happen on packets that are generated locally and sent back into the stack
> > for local consumption, e.g. loopback. These local packets also need to
> > have been cloned at some point, either on the output or input path.
>
> I think we need to find out exactly what's happening, first.

The more I've looked at the code this afternoon, I'm certain this is the case.
I've also been running a patched kernel (using option #2 from below) and all
of the skbs coming up the stack have valid ->iif values. Granted, I haven't
examined the code from the avahi daemon or the tcl test cases and traced the
entire code path through the kernel but I _am_ certain that at some point in
that code path the packet is cloned and due to a problem in skb_clone()
the ->iif field is not copied correctly causing the problems we have all
seen.

How much smoke needs to be coming from the gun? :)

> > The problem appears to be a skb_clone() function which does not clear the
> > skb structure properly and fails to copy the ->iif value from the
> > original skb to the cloned skb. From what I can tell, there are two
> > possible solutions to this problem:
> >
> > 1. Clear all of the cloned skb fields in skb_clone() via memset()
>
> Sounds like it's not going to fly for performance reasons in any case.

That was my gut feeling. I was also a little unsure where exactly the correct
placement should be for the memset() call.

> > 2. Copy the ->iif field in __copy_skb_header()
>
> Seems valid.

Okay, I'll stick with this approach. I'll post a patch backed against
net-2.6.25 tomorrow as an RFC to see if anyone on netdev has any strong
feelings. If no one complains, I'll add it to the lblnet git tree.

--
paul moore
linux security @ hp

2007-12-31 22:31:56

by Herbert Xu

[permalink] [raw]
Subject: Re: [PATCH -mm] crypto: scatterwalk.h needs sched.h

On Mon, Dec 31, 2007 at 10:05:39AM -0800, Randy Dunlap wrote:
> From: Randy Dunlap <[email protected]>
>
> When CONFIG_PREEMPT_NONE=y, scatterwalk.h still uses cond_resched()
> so it needs to include sched.h:

Thanks. This is already in cryptodev-2.6.
--
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

2008-01-01 12:04:36

by Herbert Xu

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

On Mon, Dec 31, 2007 at 09:15:19PM +0100, Torsten Kaiser wrote:
>
> I then tried to "fix" it with this suspect.
> I changed "skb_release_all(dst);" back to "skb_release_data(dst);" in
> skb_morph() (net/core/skbuff.c).

Check /proc/net/snmp to see if you're getting any fragments, if not
then skb_morph shouldn't even be getting called.

> I'm now at 205 of 210 packages completed without a further hang. I
> also do not see an obvious memory leak.

In any case, I suspect the cause of your problem is that somebody
somewhere is doing a double-free on an skb.

Since you're the only person who can reproduce this, we really need
your help to track this down. Since bisecting the mm tree is not
practical, you could start by checking whether the bug is in mm only
or whether it affects rc6 too.

Thanks,
--
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

2008-01-01 12:59:27

by Torsten Kaiser

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

On Jan 1, 2008 1:04 PM, Herbert Xu <[email protected]> wrote:
> On Mon, Dec 31, 2007 at 09:15:19PM +0100, Torsten Kaiser wrote:
> >
> > I then tried to "fix" it with this suspect.
> > I changed "skb_release_all(dst);" back to "skb_release_data(dst);" in
> > skb_morph() (net/core/skbuff.c).
>
> Check /proc/net/snmp to see if you're getting any fragments, if not
> then skb_morph shouldn't even be getting called.

OK, thanks for that hint.
I look at this after my next tests.

> > I'm now at 205 of 210 packages completed without a further hang. I
> > also do not see an obvious memory leak.
>
> In any case, I suspect the cause of your problem is that somebody
> somewhere is doing a double-free on an skb.

Is there any debug option I could turn on to catch this?

Hmm... __alloc_skb() uses kmem_cache_alloc_node() and I did run
-rc3-mm2 a long time with slub_debug=FZP and that did not catch
anything. Shouldn't the poisoning catch that? (Sorry if this question
is stupid, but while I can read C, I'm not a kernel expert)

> Since you're the only person who can reproduce this, we really need
> your help to track this down. Since bisecting the mm tree is not
> practical, you could start by checking whether the bug is in mm only
> or whether it affects rc6 too.

I will try -rc6-mm1 and vanilla -rc6 and report back.

Torsten

2008-01-01 15:55:44

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH -mm] gpio: fix x86 build problem: gpio_keys


* Randy Dunlap <[email protected]> wrote:

> > Find whatever broken patch selected (on x86_64)
> >
> > CONFIG_GENERIC_GPIO=y
> >
> > without actually providing that support (by providing <asm/gpio.h> and
> > an implementation backing it up). That's the patch which broke those
> > various GPIO-dependant drivers.
>
> OK, thanks for the direction.
>
> ---
>
> From: Randy Dunlap <[email protected]>
>
> X86_RDC321X is X86_32, so make it depend on X86_32 so that
> X86_64 random configs don't try to build RDC and fail.

thanks Randy, i have applied your fix to x86.git.

Ingo

2008-01-01 18:29:28

by Torsten Kaiser

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

On Jan 1, 2008 1:59 PM, Torsten Kaiser <[email protected]> wrote:
> On Jan 1, 2008 1:04 PM, Herbert Xu <[email protected]> wrote:
> > On Mon, Dec 31, 2007 at 09:15:19PM +0100, Torsten Kaiser wrote:
> > >
> > > I then tried to "fix" it with this suspect.
> > > I changed "skb_release_all(dst);" back to "skb_release_data(dst);" in
> > > skb_morph() (net/core/skbuff.c).

I can't explain, why this seems to fix 2.6.24-rc3-mm2 for me, but at
least in 2.6.24-rc6-mm1 it does not seem to be involved.

> > Check /proc/net/snmp to see if you're getting any fragments, if not
> > then skb_morph shouldn't even be getting called.
>
> OK, thanks for that hint.
> I look at this after my next tests.

During normal work I did not see the frag counters increase.
I used ping -s 10000 to create some frags, worked perfectly.
I used netio -b 63k -u [target] to create around half a million frags,
worked too.

And what really is strange is that I changed skb_morph into this:
struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src)
{
printk(KERN_ERR "morph %p:%p",dst,src);
WARN_ON(1);
skb_release_all(dst);
return __skb_clone(dst, src);
}
... that warning was not triggered once.

> > > I'm now at 205 of 210 packages completed without a further hang. I
> > > also do not see an obvious memory leak.
> >
> > In any case, I suspect the cause of your problem is that somebody
> > somewhere is doing a double-free on an skb.
> >
> > Since you're the only person who can reproduce this, we really need
> > your help to track this down. Since bisecting the mm tree is not
> > practical, you could start by checking whether the bug is in mm only
> > or whether it affects rc6 too.

The problem bisecting this, is that I can't seem to trigger this on
demand. Today I was just about giving up on triggering it in -rc6-mm1
with doing package complies when did happen again. But that was after
more then 4 hours...

> I will try -rc6-mm1 and vanilla -rc6 and report back.

As noted above, my WARN_ON(1) in skb_morph did not trigger once before
the system died with this OOPS:
[18663.909931] Unable to handle kernel NULL pointer dereference at
0000000000000000 RIP:
[18663.915489] [<ffffffff8055f2e8>] tcp_read_sock+0x58/0x1b0
[18663.918652] PGD 73442067 PUD 7480e067 PMD 0
[18663.918652] Oops: 0000 [1] SMP
[18663.918652] last sysfs file:
/sys/devices/system/cpu/cpu3/cache/index2/shared_cpu_map
[18663.918652] CPU 1
[18663.918652] Modules linked in: radeon drm nfsd exportfs w83792d
ipv6 tuner tea5767 tda8290 tuner_xc2028 tda9887 tuner_simple mt20xx
tea5761 tvaudio msp3400 bttv ir_common compat_ioctl32 videobuf_dma_sg
videobuf_core btcx_risc tveeprom usbhid videodev v4l2_common
v4l1_compat hid sg pata_amd i2c_nforce2
[18663.918652] Pid: 0, comm: swapper Not tainted 2.6.24-rc6-mm1 #13
[18663.918652] RIP: 0010:[<ffffffff8055f2e8>] [<ffffffff8055f2e8>]
tcp_read_sock+0x58/0x1b0
[18663.918652] RSP: 0018:ffff81007ff4fb60 EFLAGS: 00010286
[18663.918652] RAX: 0000000000000038 RBX: 0000000000000000 RCX: 0000000000000000
[18663.918652] RDX: ffff8100141a40b0 RSI: ffff81007ff4fbc0 RDI: 0000000000000000
[18663.918652] RBP: ffff81007ff4fbb0 R08: 0000000000000002 R09: 0000000000000000
[18663.918652] R10: ffffffff805b2afb R11: 000000000520cde8 R12: 00000000c05a019a
[18663.918652] R13: 000000000f26378b R14: ffff810066469d38 R15: ffff81004b4e4000
[18663.918652] FS: 00007f58ac9a0700(0000) GS:ffff81007ff12580(0000)
knlGS:0000000000000000
[18663.918652] CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
[18663.918652] CR2: 0000000000000000 CR3: 0000000073441000 CR4: 00000000000006e0
[18663.918652] DR0: 00007fffe1e55cbc DR1: 0000000000000000 DR2: 0000000000000000
[18663.918652] DR3: 0000000000000000 DR6: 00000000ffff4ff0 DR7: 0000000000000400
[18663.918652] Process swapper (pid: 0, threadinfo ffff81011ff2c000,
task ffff81007ff4a000)
[18663.918652] Stack: ffff810066469d38 ffff81004b4e4148
ffffffff805b1ab0 ffff81007ff4fbc0
[18663.918652] Stack: ffff810066469d38 ffff81004b4e4148
ffffffff805b1ab0 ffff81007ff4fbc0
[18663.918652] 00000000805b2afb ffff81004b4e4000 ffff81004b4e4298
ffff810066469d00
[18663.918652] ffff810066469d38 0000000000000000 ffff81007ff4fbf0
ffffffff805b2b41
[18663.918652] Call Trace:
[18663.918652] <IRQ> [<ffffffff805b1ab0>] xs_tcp_data_recv+0x0/0x560
[18663.918652] [<ffffffff805b2b41>] xs_tcp_data_ready+0x71/0x90
[18663.918652] [<ffffffff80568bec>] __tcp_ack_snd_check+0x5c/0xa0
[18663.918652] [<ffffffff8056a458>] tcp_rcv_established+0x3c8/0x800
[18663.918652] [<ffffffff80571451>] tcp_v4_do_rcv+0x2e1/0x4e0
[18663.918652] [<ffffffff80573cb1>] tcp_v4_rcv+0x721/0x850
[18663.918652] [<ffffffff80553d63>] ip_local_deliver_finish+0xd3/0x250
[18663.918652] [<ffffffff8055433b>] ip_local_deliver+0x3b/0x90
[18663.918652] [<ffffffff80553988>] ip_rcv_finish+0x118/0x420
[18663.918652] [<ffffffff8022e313>] enqueue_task_fair+0x73/0xd0
[18663.918652] [<ffffffff80554236>] ip_rcv+0x226/0x2f0
[18663.918652] [<ffffffff80537576>] netif_receive_skb+0x1d6/0x280
[18663.918652] [<ffffffff8053a1ea>] process_backlog+0x8a/0xf0
[18663.918652] [<ffffffff80539e84>] net_rx_action+0xb4/0x130
[18663.918652] [<ffffffff8023d624>] __do_softirq+0x84/0x110
[18663.918652] [<ffffffff8020c82c>] call_softirq+0x1c/0x30
[18663.918652] [<ffffffff8020eaa5>] do_softirq+0x65/0xc0
[18663.918652] [<ffffffff8023d595>] irq_exit+0x95/0xa0
[18663.918652] [<ffffffff8020ebbf>] do_IRQ+0x8f/0x100
[18663.918652] [<ffffffff8020a4b0>] default_idle+0x0/0x80
[18663.918652] [<ffffffff8020bb26>] ret_from_intr+0x0/0xf
[18663.918652] <EOI> [<ffffffff80252310>]
__atomic_notifier_call_chain+0x0/0xa0
[18663.918652] [<ffffffff8020a4f3>] default_idle+0x43/0x80
[18663.918652] [<ffffffff8020a4f1>] default_idle+0x41/0x80
[18663.918652] [<ffffffff8020a4b0>] default_idle+0x0/0x80
[18663.918652] [<ffffffff8020a59c>] cpu_idle+0x6c/0xa0
[18663.918652] [<ffffffff808109b8>] start_secondary+0x2f8/0x420
[18663.918652]
[18663.918652]
[18663.918652] Code: 48 8b 3b 0f 18 0f 74 75 8b 93 a0 00 00 00 45 89 ec 44 2b 63
[18663.918652] RIP [<ffffffff8055f2e8>] tcp_read_sock+0x58/0x1b0
[18663.918652] RSP <ffff81007ff4fb60>
[18663.918652] CR2: 0000000000000000
[18663.918680] ---[ end trace 1dc6b1bf3734ac14 ]---

(gdb) list *0xffffffff8055f2e8
0xffffffff8055f2e8 is in tcp_read_sock (net/ipv4/tcp.c:1173).
1168 static inline struct sk_buff *tcp_recv_skb(struct sock *sk,
u32 seq, u32 *off)
1169 {
1170 struct sk_buff *skb;
1171 u32 offset;
1172
1173 skb_queue_walk(&sk->sk_receive_queue, skb) {
1174 offset = seq - TCP_SKB_CB(skb)->seq;
1175 if (tcp_hdr(skb)->syn)
1176 offset--;
1177 if (offset < skb->len || tcp_hdr(skb)->fin) {

(gdb) list *0xffffffff805b2b41
0xffffffff805b2b41 is in xs_tcp_data_ready (net/sunrpc/xprtsock.c:1079).
1074 goto out;
1075
1076 /* We use rd_desc to pass struct xprt to xs_tcp_data_recv */
1077 rd_desc.arg.data = xprt;
1078 rd_desc.count = 65536;
1079 tcp_read_sock(sk, &rd_desc, xs_tcp_data_recv);
1080 out:
1081 read_unlock(&sk->sk_callback_lock);
1082 }
1083

I will see what vanilla -rc6 will do...

Torsten

2008-01-02 10:31:43

by Nick Piggin

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

On Monday 31 December 2007 00:10, Ingo Molnar wrote:
> * Herbert Xu <[email protected]> wrote:
> > > Ingo, it's not good that we have cond_resched() definitions
> > > conditionally duplicated in kernel.h - that's increasing the risk of
> > > bugs like this one.
> >
> > Actually, why do we even have cond_resched when real preemption is on?
> > It seems to be a waste of space and time.
>
> due to the BKL. cond_resched() in BKL code breaks up BKL latencies.
>
> i dont mind not doing that though - we should increase the pain for BKL
> users, so that subsystems finally get rid of it altogether.
> lock_kernel() use within the kernel is still rampant - there are still
> more than 400 callsites to lock_kernel().

It would be silly to potentially increase latency in some areas
for CONFIG_PREEMPT kernels, though.

Better may be to detect when there is CONFIG_PREEMPT and
CONFIG_PREEMPT_BKL, and ifdef away the cond_resched in that case
(or -- why do we even make CONFIG_PREEMPT_BKL an option? Are there
really workloads left where it causes throughput regressions?)

2008-01-02 11:01:40

by Peter Zijlstra

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


On Wed, 2008-01-02 at 21:31 +1100, Nick Piggin wrote:
> On Monday 31 December 2007 00:10, Ingo Molnar wrote:
> > * Herbert Xu <[email protected]> wrote:
> > > > Ingo, it's not good that we have cond_resched() definitions
> > > > conditionally duplicated in kernel.h - that's increasing the risk of
> > > > bugs like this one.
> > >
> > > Actually, why do we even have cond_resched when real preemption is on?
> > > It seems to be a waste of space and time.
> >
> > due to the BKL. cond_resched() in BKL code breaks up BKL latencies.
> >
> > i dont mind not doing that though - we should increase the pain for BKL
> > users, so that subsystems finally get rid of it altogether.
> > lock_kernel() use within the kernel is still rampant - there are still
> > more than 400 callsites to lock_kernel().
>
> It would be silly to potentially increase latency in some areas
> for CONFIG_PREEMPT kernels, though.
>
> Better may be to detect when there is CONFIG_PREEMPT and
> CONFIG_PREEMPT_BKL, and ifdef away the cond_resched in that case
> (or -- why do we even make CONFIG_PREEMPT_BKL an option? Are there
> really workloads left where it causes throughput regressions?)

I've seen 1s+ desktop latencies due to PREEMPT_BKL when I was still
using reiserfs.

Both reiserfs and tty were fighting for the bkl and massive prio
inversion ensued. Turning PREEMPT_BKL off made the system usable again.

2008-01-02 11:09:28

by Ingo Molnar

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


* Nick Piggin <[email protected]> wrote:

> (or -- why do we even make CONFIG_PREEMPT_BKL an option? [...]

thanks for the reminder - i just zapped it. Was a pleasure ;-)

Ingo

2008-01-02 11:12:57

by Nick Piggin

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

On Wednesday 02 January 2008 22:01, Peter Zijlstra wrote:
> On Wed, 2008-01-02 at 21:31 +1100, Nick Piggin wrote:
> > On Monday 31 December 2007 00:10, Ingo Molnar wrote:
> > > * Herbert Xu <[email protected]> wrote:
> > > > > Ingo, it's not good that we have cond_resched() definitions
> > > > > conditionally duplicated in kernel.h - that's increasing the risk
> > > > > of bugs like this one.
> > > >
> > > > Actually, why do we even have cond_resched when real preemption is
> > > > on? It seems to be a waste of space and time.
> > >
> > > due to the BKL. cond_resched() in BKL code breaks up BKL latencies.
> > >
> > > i dont mind not doing that though - we should increase the pain for BKL
> > > users, so that subsystems finally get rid of it altogether.
> > > lock_kernel() use within the kernel is still rampant - there are still
> > > more than 400 callsites to lock_kernel().
> >
> > It would be silly to potentially increase latency in some areas
> > for CONFIG_PREEMPT kernels, though.
> >
> > Better may be to detect when there is CONFIG_PREEMPT and
> > CONFIG_PREEMPT_BKL, and ifdef away the cond_resched in that case
> > (or -- why do we even make CONFIG_PREEMPT_BKL an option? Are there
> > really workloads left where it causes throughput regressions?)
>
> I've seen 1s+ desktop latencies due to PREEMPT_BKL when I was still
> using reiserfs.

Fair enough; so the former ifdefery would be preferable for now then.

> Both reiserfs and tty were fighting for the bkl and massive prio
> inversion ensued. Turning PREEMPT_BKL off made the system usable again.

Are either of those subsystems actually using the BKL to protect against
anything else (than themselves)? It would be sweet to have them use
private mutexes for the job instead (although even then it probably
wouldn't be a straight conversion)...

2008-01-02 11:24:29

by Peter Zijlstra

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


On Wed, 2008-01-02 at 22:12 +1100, Nick Piggin wrote:
> On Wednesday 02 January 2008 22:01, Peter Zijlstra wrote:

> > I've seen 1s+ desktop latencies due to PREEMPT_BKL when I was still
> > using reiserfs.
>
> Fair enough; so the former ifdefery would be preferable for now then.

To be honest, I must mention that the load that did that was a kernel
build -j5 on a dual socket Athlon MP box. With a current kernel and XFS
that load is making the box slow but its still very servicable.

> > Both reiserfs and tty were fighting for the bkl and massive prio
> > inversion ensued. Turning PREEMPT_BKL off made the system usable again.
>
> Are either of those subsystems actually using the BKL to protect against
> anything else (than themselves)?

I doubt it.

IIRC Alan is working on getting tty BKL free.

> It would be sweet to have them use
> private mutexes for the job instead (although even then it probably
> wouldn't be a straight conversion)...

I tried a quick conversion of reiser3 at the time, but it really wants a
recursive lock and I couldn't be bothered to fix a 'legacy' filesystem
so I just gave up and converted the filesystem to XFS.

2008-01-02 12:25:42

by Ingo Molnar

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


* Peter Zijlstra <[email protected]> wrote:

> > It would be sweet to have them use private mutexes for the job
> > instead (although even then it probably wouldn't be a straight
> > conversion)...
>
> I tried a quick conversion of reiser3 at the time, but it really wants
> a recursive lock and I couldn't be bothered to fix a 'legacy'
> filesystem so I just gave up and converted the filesystem to XFS.

as long as the only requirement is recursion, and not any of the other
BKL properties, that could be wrapped. I guess fixing the TTY code to
have no BKL dependencies has a higher chance of success - given that
Alan is working on it :-)

Ingo

2008-01-02 13:36:48

by Alan

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

> BKL properties, that could be wrapped. I guess fixing the TTY code to
> have no BKL dependencies has a higher chance of success - given that
> Alan is working on it :-)

Bit by bit when I can face it, and with a lot of other people
contributing parts. Right now the BKL mostly protects the open/close
paths and those are *really* ugly

2008-01-02 16:19:33

by Ingo Molnar

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


* Alan Cox <[email protected]> wrote:

> > BKL properties, that could be wrapped. I guess fixing the TTY code
> > to have no BKL dependencies has a higher chance of success - given
> > that Alan is working on it :-)
>
> Bit by bit when I can face it, and with a lot of other people
> contributing parts. Right now the BKL mostly protects the open/close
> paths and those are *really* ugly

could we perhaps just replace it with a tty_mutex? (possibly a recursive
one) I suspect by now most of the BKL dependencies there have become
local to the tty code? Or are there deep VFS dependencies as well? (if
yes, what type of dependencies?)

Ingo

2008-01-02 18:30:18

by Torsten Kaiser

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

On Jan 1, 2008 1:04 PM, Herbert Xu <[email protected]> wrote:
> In any case, I suspect the cause of your problem is that somebody
> somewhere is doing a double-free on an skb.
>
> Since you're the only person who can reproduce this, we really need
> your help to track this down. Since bisecting the mm tree is not
> practical, you could start by checking whether the bug is in mm only
> or whether it affects rc6 too.

Vanilla 2.6.24-rc6 seems stable. I did not see any crash or warnings.

Torsten

2008-01-02 20:06:23

by Ingo Molnar

[permalink] [raw]
Subject: [patch] x86 compat_binfmt_elf, Makefile fixes (was: Re: 2.6.24-rc6-mm1)


* Rafael J. Wysocki <[email protected]> wrote:

> > Try to delete your fs/ directory in your output dir. Then I expect
> > the same bug to surface again.
>
> It does surface indeed.

could you try the patch from Sam below - does it fix the problem?
Thanks,

Ingo

---------->
Subject: x86 compat_binfmt_elf, Makefile fixes
From: Sam Ravnborg <[email protected]>

fix the build rules of compat-binfmt_elf.

Signed-off-by: Ingo Molnar <[email protected]>
---
arch/x86/Kconfig | 1 +
arch/x86/ia32/Makefile | 5 ++---
fs/Kconfig.binfmt | 10 ++++++++++
fs/Makefile | 1 +
4 files changed, 14 insertions(+), 3 deletions(-)

Index: linux-x86.q/arch/x86/Kconfig
===================================================================
--- linux-x86.q.orig/arch/x86/Kconfig
+++ linux-x86.q/arch/x86/Kconfig
@@ -1546,6 +1546,7 @@ source "fs/Kconfig.binfmt"
config IA32_EMULATION
bool "IA32 Emulation"
depends on X86_64
+ select HAVE_COMPAT_BINFMT_ELF
help
Include code to run 32-bit programs under a 64-bit kernel. You should
likely turn this on, unless you're 100% sure that you don't have any
Index: linux-x86.q/arch/x86/ia32/Makefile
===================================================================
--- linux-x86.q.orig/arch/x86/ia32/Makefile
+++ linux-x86.q/arch/x86/ia32/Makefile
@@ -2,7 +2,8 @@
# Makefile for the ia32 kernel emulation subsystem.
#

-obj-$(CONFIG_IA32_EMULATION) := ia32entry.o sys_ia32.o ia32_signal.o
+obj-$(CONFIG_IA32_EMULATION) := ia32entry.o sys_ia32.o ia32_signal.o \
+ ia32_binfmt.o

sysv-$(CONFIG_SYSVIPC) := ipc32.o
obj-$(CONFIG_IA32_EMULATION) += $(sysv-y)
@@ -11,5 +12,3 @@ obj-$(CONFIG_IA32_AOUT) += ia32_aout.o

audit-class-$(CONFIG_AUDIT) := audit.o
obj-$(CONFIG_IA32_EMULATION) += $(audit-class-y)
-
-obj-$(CONFIG_IA32_EMULATION) += ../../../fs/compat_binfmt_elf.o
Index: linux-x86.q/fs/Kconfig.binfmt
===================================================================
--- linux-x86.q.orig/fs/Kconfig.binfmt
+++ linux-x86.q/fs/Kconfig.binfmt
@@ -23,6 +23,16 @@ config BINFMT_ELF
ld.so (check the file <file:Documentation/Changes> for location and
latest version).

+# Archs supporting compatibility binfmt_elf shall select HAVE_COMPAT_BINFMT_ELF
+config HAVE_COMPAT_BINFMT_ELF
+
+config COMPAT_BINFMT_ELF
+ bool "Bla"
+ depends on HAVE_COMPAT_BINFMT_ELF
+ depends on MMU
+ help
+ Bla
+
config BINFMT_ELF_FDPIC
bool "Kernel support for FDPIC ELF binaries"
default y
Index: linux-x86.q/fs/Makefile
===================================================================
--- linux-x86.q.orig/fs/Makefile
+++ linux-x86.q/fs/Makefile
@@ -42,6 +42,7 @@ obj-$(CONFIG_BINFMT_ELF) += binfmt_elf.o
obj-$(CONFIG_BINFMT_ELF_FDPIC) += binfmt_elf_fdpic.o
obj-$(CONFIG_BINFMT_SOM) += binfmt_som.o
obj-$(CONFIG_BINFMT_FLAT) += binfmt_flat.o
+obj-$(CONFIG_COMPAT_BINFMT_ELF) += compat_binfmt_elf.o

obj-$(CONFIG_FS_MBCACHE) += mbcache.o
obj-$(CONFIG_FS_POSIX_ACL) += posix_acl.o xattr_acl.o

2008-01-02 20:31:07

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [patch] x86 compat_binfmt_elf, Makefile fixes (was: Re: 2.6.24-rc6-mm1)

On Wednesday, 2 of January 2008, Ingo Molnar wrote:
>
> * Rafael J. Wysocki <[email protected]> wrote:
>
> > > Try to delete your fs/ directory in your output dir. Then I expect
> > > the same bug to surface again.
> >
> > It does surface indeed.
>
> could you try the patch from Sam below - does it fix the problem?

Well, with this patch applied the compilation reliably fails with:

No rule to make target `arch/x86/ia32/ia32_binfmt.o', needed by `arch/x86/ia32/built-in.o'.

[Do you want the .config, btw?]

Rafael

2008-01-02 20:43:43

by Ingo Molnar

[permalink] [raw]
Subject: Re: [patch] x86 compat_binfmt_elf, Makefile fixes (was: Re: 2.6.24-rc6-mm1)


* Rafael J. Wysocki <[email protected]> wrote:

> On Wednesday, 2 of January 2008, Ingo Molnar wrote:
> >
> > * Rafael J. Wysocki <[email protected]> wrote:
> >
> > > > Try to delete your fs/ directory in your output dir. Then I expect
> > > > the same bug to surface again.
> > >
> > > It does surface indeed.
> >
> > could you try the patch from Sam below - does it fix the problem?
>
> Well, with this patch applied the compilation reliably fails with:
>
> No rule to make target `arch/x86/ia32/ia32_binfmt.o', needed by
> `arch/x86/ia32/built-in.o'.
>
> [Do you want the .config, btw?]

i think i'll wait for Roland and Sam to sort it out.

Ingo

2008-01-02 21:53:08

by Herbert Xu

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

On Wed, Jan 02, 2008 at 07:29:59PM +0100, Torsten Kaiser wrote:
>
> Vanilla 2.6.24-rc6 seems stable. I did not see any crash or warnings.

OK that's great. The next step would be to try excluding specific git
trees from mm to see if they make a difference.

The two specific trees of interest would be git-nfsd and git-net.

Thanks,
--
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

2008-01-02 21:57:26

by J. Bruce Fields

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

On Thu, Jan 03, 2008 at 08:51:54AM +1100, Herbert Xu wrote:
> On Wed, Jan 02, 2008 at 07:29:59PM +0100, Torsten Kaiser wrote:
> >
> > Vanilla 2.6.24-rc6 seems stable. I did not see any crash or warnings.
>
> OK that's great. The next step would be to try excluding specific git
> trees from mm to see if they make a difference.
>
> The two specific trees of interest would be git-nfsd and git-net.

Also, if it's git-nfsd, it'd be useful to test with the current git-nfsd
from the for-mm branch at:

git://linux-nfs.org/~bfields/linus.git for-mm

and then any bisection results (even partial) from that tree would help
immensely....

--b.

2008-01-02 22:52:03

by Alan

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

> could we perhaps just replace it with a tty_mutex? (possibly a recursive
> one) I suspect by now most of the BKL dependencies there have become
> local to the tty code? Or are there deep VFS dependencies as well? (if
> yes, what type of dependencies?)

The big problem is that nobody actually knows where all the dependancies
are. That is why I've started with the bits we can decipher so that it
simplifies the mess each time we clean up the locking of some lower level
aspect.

Almost all the serial drivers clone the same open and release methods (or
worse older versions of it) so that also needs doing. Lots to do, so
little time.

2008-01-02 23:31:15

by Jiri Slaby

[permalink] [raw]
Subject: tty + BKL [Was: 2.6.24-rc6-mm1]

On 01/02/2008 11:49 PM, Alan Cox wrote:
> Almost all the serial drivers clone the same open and release methods (or
> worse older versions of it) so that also needs doing. Lots to do, so
> little time.

Could you be more specific here please, maybe somebody could help.

2008-01-03 05:03:04

by Torsten Kaiser

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

On Jan 2, 2008 10:57 PM, J. Bruce Fields <[email protected]> wrote:
> On Thu, Jan 03, 2008 at 08:51:54AM +1100, Herbert Xu wrote:
> > On Wed, Jan 02, 2008 at 07:29:59PM +0100, Torsten Kaiser wrote:
> > >
> > > Vanilla 2.6.24-rc6 seems stable. I did not see any crash or warnings.
> >
> > OK that's great. The next step would be to try excluding specific git
> > trees from mm to see if they make a difference.
> >
> > The two specific trees of interest would be git-nfsd and git-net.
>
> Also, if it's git-nfsd, it'd be useful to test with the current git-nfsd
> from the for-mm branch at:
>
> git://linux-nfs.org/~bfields/linus.git for-mm
>
> and then any bisection results (even partial) from that tree would help
> immensely....

The problem with that is, that triggering the bug is not easy so
marking anything 'good' is questionable.
This time I needed to compile over 50 packages until it triggered.

I was using 2.6.24-rc6-mm1 again, but with a crude hack (see end of
mail) that I hope should catch any double-frees of skbs.
None of my warnings triggered, only a list corruption again in
svc_xprt_enqueue(), but this time with an additional output about
whats wrong with the list:
[17023.029519] list_add corruption. prev->next should be next
(ffff8100d20ec1c8), but was ffff81009c5a6
c28. (prev=ffff81009c5a6c28).
[17023.029537] ------------[ cut here ]------------
[17023.031445] kernel BUG at lib/list_debug.c:33!
[17023.033280] invalid opcode: 0000 [1] SMP
[17023.034967] last sysfs file:
/sys/devices/system/cpu/cpu3/cache/index2/shared_cpu_map
[17023.038209] CPU 3
[17023.039047] Modules linked in: radeon drm w83792d ipv6 tuner
tea5767 tda8290 tuner_xc2028 tda9887 tu
ner_simple mt20xx tea5761 tvaudio msp3400 bttv ir_common
compat_ioctl32 videobuf_dma_sg videobuf_core b
tcx_risc usbhid tveeprom videodev hid v4l2_common v4l1_compat sg
pata_amd i2c_nforce2
[17023.039519] Pid: 20564, comm: nfsv4-svc Not tainted 2.6.24-rc6-mm1 #14
[17023.039519] RIP: 0010:[<ffffffff803bd834>] [<ffffffff803bd834>]
__list_add+0x54/0x60
[17023.039519] RSP: 0018:ffff8101002c9dc0 EFLAGS: 00010282
[17023.039519] RAX: 0000000000000088 RBX: ffff810110125c00 RCX: 0000000000000000
[17023.039519] RDX: ffff81010067c000 RSI: 0000000000000001 RDI: ffffffff80764140
[17023.039519] RBP: ffff8101002c9dc0 R08: 0000000000000001 R09: 0000000000000000
[17023.039519] R10: ffff81000100a088 R11: 0000000000000001 R12: ffff8100d20ec180
[17023.039519] R13: ffff8100d20ec1b8 R14: ffff8100d20ec1b8 R15: ffff8101188e4600
[17023.039519] FS: 00007ff7a870c6f0(0000) GS:ffff81011ff0cd00(0000)
knlGS:0000000000000000
[17023.039519] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[17023.039519] CR2: 00000000024df510 CR3: 0000000032539000 CR4: 00000000000006e0
[17023.039519] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[17023.039519] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[17023.039519] Process nfsv4-svc (pid: 20564, threadinfo
ffff8101002c8000, task ffff81010067c000)
[17023.039519] Stack: ffff8101002c9e00 ffffffff805c18ab
ffff8100d20ec188 ffff8101188e4600
[17023.039519] ffff81009c5a6c00 ffff81010d118000 ffff810110125c00
ffff8101188e4610
[17023.039519] ffff8101002c9e10 ffffffff805c1997 ffff8101002c9ee0
ffffffff805c2ac4
[17023.039519] Call Trace:
[17023.039519] [<ffffffff805c18ab>] svc_xprt_enqueue+0x1ab/0x240
[17023.039519] [<ffffffff805c1997>] svc_xprt_received+0x17/0x20
[17023.039519] [<ffffffff805c2ac4>] svc_recv+0x394/0x7c0
[17023.039519] [<ffffffff805c1ece>] svc_send+0xae/0xd0
[17023.039519] [<ffffffff802305f0>] default_wake_function+0x0/0x10
[17023.039519] [<ffffffff803178b9>] nfs_callback_svc+0x79/0x130
[17023.039519] [<ffffffff80232a67>] finish_task_switch+0x67/0xe0
[17023.039519] [<ffffffff8020c4b8>] child_rip+0xa/0x12
[17023.039519] [<ffffffff8020bbcf>] restore_args+0x0/0x30
[17023.039519] [<ffffffff805b69cd>] __svc_create_thread+0xdd/0x200
[17023.039519] [<ffffffff80317840>] nfs_callback_svc+0x0/0x130
[17023.039519] [<ffffffff8020c4ae>] child_rip+0x0/0x12
[17023.039519]
[17023.039519]
[17023.039519] Code: 0f 0b eb fe 0f 1f 84 00 00 00 00 00 55 48 8b 16 48 89 e5 e8
[17023.039519] RIP [<ffffffff803bd834>] __list_add+0x54/0x60
[17023.039519] RSP <ffff8101002c9dc0>
[17023.039524] ---[ end trace a9257b24a4b10968 ]---
[17023.041451] Kernel panic - not syncing: Aiee, killing interrupt handler!

I also wonder if this really is only one bug, or two. (One in skb
handling and one in svc_xprt_enqueue's list code)

Summary of what I think is related to this:

* 2.6.24-rc2-mm1 might not have it, but had a bug in the nfsv4 sillyrenames.
* 2.6.24-rc3-mm1 did not work for me at all (IO-APIC problem)
* 2.6.24-rc3-mm2 has the bug
- I have seen a crash in ether1394_complete_cb
- I have seen 3 crashes in svc_xprt_enqueue, two with slub_debug=FZP
- I have seen a crash in tcp_send_ack -> __alloc_skb
- patched with svc_xprt_received(&svsk->sk_xprt); removed from
svc_create_socket()
-> still crashed in svc_xprt_enqueue
- patched "skb_release_all(dst);" back to "skb_release_data(dst);"
in skb_morph() (net/core/skbuff.c).
-> seemed to work (200+ packages compiled+installed)
* 2.6.24-rc4-mm1 and -rc5-mm1: not tried, was still testing -rc3-mm2
* 2.6.24-rc6 did not crash, but I did not test it for too long
* 2.6.24-rc6-mm1 has the bug
- I have seen a crash in skb_release_data with vanilla -mm1
- patched "skb_release_all(dst);" back to "skb_release_data(dst);" in
skb_morph() (net/core/skbuff.c).
-> crashed in xs_tcp_data_recv, skb_morph() was not called once
- patched with notfreed-hack
-> crashed in svc_xprt_enqueue, skb_morph() was not called once

I will see if I have the time to try git-nfsd, but as I'm not able to
trigger the bug reliable, I will not be able to really declare any
tree unrelated...

Torsten

My skb-double-free-hack: I added a new __u8 field to sk_buff after its
cb field and the following warnings:
--- skbuff.c~ 2008-01-03 05:29:32.092408637 +0100
+++ skbuff.c 2008-01-02 23:00:14.114535678 +0100
@@ -205,6 +205,7 @@ struct sk_buff *__alloc_skb(unsigned int
memset(skb, 0, offsetof(struct sk_buff, tail));
skb->truesize = size + sizeof(struct sk_buff);
atomic_set(&skb->users, 1);
+ skb->notfreed=1;
skb->head = data;
skb->data = data;
skb_reset_tail_pointer(skb);
@@ -317,13 +318,18 @@ static void kfree_skbmem(struct sk_buff

switch (skb->fclone) {
case SKB_FCLONE_UNAVAILABLE:
+ WARN_ON(!skb->notfreed);
+ skb->notfreed=0;
kmem_cache_free(skbuff_head_cache, skb);
break;

case SKB_FCLONE_ORIG:
fclone_ref = (atomic_t *) (skb + 2);
- if (atomic_dec_and_test(fclone_ref))
+ if (atomic_dec_and_test(fclone_ref)) {
+ WARN_ON(!skb->notfreed);
+ skb->notfreed=0;
kmem_cache_free(skbuff_fclone_cache, skb);
+ }
break;

case SKB_FCLONE_CLONE:
@@ -335,8 +341,11 @@ static void kfree_skbmem(struct sk_buff
*/
skb->fclone = SKB_FCLONE_UNAVAILABLE;

- if (atomic_dec_and_test(fclone_ref))
+ if (atomic_dec_and_test(fclone_ref)) {
+ WARN_ON(!other->notfreed);
+ other->notfreed=0;
kmem_cache_free(skbuff_fclone_cache, other);
+ }
break;
}
}

2008-01-03 15:38:00

by Torsten Kaiser

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

On Jan 2, 2008 10:57 PM, J. Bruce Fields <[email protected]> wrote:
> On Thu, Jan 03, 2008 at 08:51:54AM +1100, Herbert Xu wrote:
> > The two specific trees of interest would be git-nfsd and git-net.
>
> Also, if it's git-nfsd, it'd be useful to test with the current git-nfsd
> from the for-mm branch at:
>
> git://linux-nfs.org/~bfields/linus.git for-mm
>
> and then any bisection results (even partial) from that tree would help
> immensely....

Wrong URL, its (now?) at git://git.linux-nfs.org/projects/bfields/linux.git

Using "HEAD is now at cd7e1c9... Merge commit 'server-xprt-switch^' into for-mm"
I was able to compile&install 54 packages, so this seems to be working.

Now git-fetch'ing
git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.25.git

Torsten

2008-01-03 18:52:56

by J. Bruce Fields

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

On Thu, Jan 03, 2008 at 04:37:46PM +0100, Torsten Kaiser wrote:
> On Jan 2, 2008 10:57 PM, J. Bruce Fields <[email protected]> wrote:
> > On Thu, Jan 03, 2008 at 08:51:54AM +1100, Herbert Xu wrote:
> > > The two specific trees of interest would be git-nfsd and git-net.
> >
> > Also, if it's git-nfsd, it'd be useful to test with the current git-nfsd
> > from the for-mm branch at:
> >
> > git://linux-nfs.org/~bfields/linus.git for-mm
> >
> > and then any bisection results (even partial) from that tree would help
> > immensely....
>
> Wrong URL, its (now?) at git://git.linux-nfs.org/projects/bfields/linux.git

Whoops, apologies. Actually, the only change required should have been
to change "linus" to "linux". I should cut-n-paste and not relying on
typing it right each time....

> Using "HEAD is now at cd7e1c9... Merge commit 'server-xprt-switch^' into for-mm"
> I was able to compile&install 54 packages, so this seems to be working.

Hm, OK, thanks again for all this followup.

--b.

>
> Now git-fetch'ing
> git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.25.git

2008-01-04 10:23:57

by Torsten Kaiser

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

On Jan 2, 2008 10:51 PM, Herbert Xu <[email protected]> wrote:
> On Wed, Jan 02, 2008 at 07:29:59PM +0100, Torsten Kaiser wrote:
> >
> > Vanilla 2.6.24-rc6 seems stable. I did not see any crash or warnings.
>
> OK that's great. The next step would be to try excluding specific git
> trees from mm to see if they make a difference.
>
> The two specific trees of interest would be git-nfsd and git-net.

git-nfsd from git://git.linux-nfs.org/projects/bfields/linux.git#for-mm
-> compiling and installing 54 packages worked without crashes.

git-net from git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.25.git
-> compiling and installing 95 packages worked without crashes.

The only thing in the announces of 2.6.24-rc3-mm1/2 that stands out for me is:
+iommu-sg-merging-add-device_dma_parameters-structure.patch
+iommu-sg-merging-pci-add-device_dma_parameters-support.patch
+iommu-sg-merging-x86-make-pci-gart-iommu-respect-the-segment-size-limits.patch
+iommu-sg-merging-ppc-make-iommu-respect-the-segment-size-limits.patch
+iommu-sg-merging-ia64-make-sba_iommu-respect-the-segment-size-limits.patch
+iommu-sg-merging-alpha-make-pci_iommu-respect-the-segment-size-limits.patch
+iommu-sg-merging-sparc64-make-iommu-respect-the-segment-size-limits.patch
+iommu-sg-merging-parisc-make-iommu-respect-the-segment-size-limits.patch
+iommu-sg-merging-call-blk_queue_segment_boundary-in-__scsi_alloc_queue.patch
+iommu-sg-merging-sata_inic162x-use-pci_set_dma_max_seg_size.patch
+iommu-sg-merging-aacraid-use-pci_set_dma_max_seg_size.patch

iommu work

I will enable CONFIG_IOMMU_DEBUG in -rc6-mm1 and see, as otherwise I
have no clue where to look...

Torsten

2008-01-04 13:24:51

by Jarek Poplawski

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

On 04-01-2008 11:23, Torsten Kaiser wrote:
> On Jan 2, 2008 10:51 PM, Herbert Xu <[email protected]> wrote:
>> On Wed, Jan 02, 2008 at 07:29:59PM +0100, Torsten Kaiser wrote:
>>> Vanilla 2.6.24-rc6 seems stable. I did not see any crash or warnings.
>> OK that's great. The next step would be to try excluding specific git
>> trees from mm to see if they make a difference.
>>
>> The two specific trees of interest would be git-nfsd and git-net.
>
> git-nfsd from git://git.linux-nfs.org/projects/bfields/linux.git#for-mm
> -> compiling and installing 54 packages worked without crashes.
>
> git-net from git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.25.git
> -> compiling and installing 95 packages worked without crashes.
...
> I will enable CONFIG_IOMMU_DEBUG in -rc6-mm1 and see, as otherwise I
> have no clue where to look...

Hi,

A few questions/suggestions:

- is it still vanilla -rc6-mm1; I've seen on kernel list you tried
some fixes around raid?

- could you remind this lockdep warning; is it always and the same,
always before crash, or no rules?

- I've seen you looked after double freeing, but this last debug list
warning could suggest locking problems during list modification too.

- above git-nfsd and git-net tests should be probably repeated with
-rc6-mm1 git versions: so vanilla rc6 plus both these -mm patches
only, and if bug triggers, with one reversed; btw., since in previous
message you mentioned that 50 packages could be not enough to trigger
this, these 54 above could make too little margin yet.

Regards,
Jarek P.

2008-01-04 15:21:42

by Torsten Kaiser

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

On Jan 4, 2008 2:30 PM, Jarek Poplawski <[email protected]> wrote:
> On 04-01-2008 11:23, Torsten Kaiser wrote:
> > On Jan 2, 2008 10:51 PM, Herbert Xu <[email protected]> wrote:
> >> On Wed, Jan 02, 2008 at 07:29:59PM +0100, Torsten Kaiser wrote:
> >>> Vanilla 2.6.24-rc6 seems stable. I did not see any crash or warnings.
> >> OK that's great. The next step would be to try excluding specific git
> >> trees from mm to see if they make a difference.
> >>
> >> The two specific trees of interest would be git-nfsd and git-net.
> >
> > git-nfsd from git://git.linux-nfs.org/projects/bfields/linux.git#for-mm
> > -> compiling and installing 54 packages worked without crashes.
> >
> > git-net from git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.25.git
> > -> compiling and installing 95 packages worked without crashes.
> ...
> > I will enable CONFIG_IOMMU_DEBUG in -rc6-mm1 and see, as otherwise I
> > have no clue where to look...
>
> Hi,
>
> A few questions/suggestions:

I'm open for any suggestions and will try to answer any questions.
The only thing that is sadly not practical is bisecting the borkenout
mm-patches, as triggering this error is to unreliable /
time-consuming.

> - is it still vanilla -rc6-mm1; I've seen on kernel list you tried
> some fixes around raid?

Yes, without these fixes I can't boot.
But they should only be run during starting the arrays, so I doubt
that this is that cause.
(Also -rc3-mm2 did not need this fix)

My skbuff-double-free-detector is still in there, but was never triggered.

> - could you remind this lockdep warning; is it always and the same,
> always before crash, or no rules?

???
I see no lockdep warning before the crashes.
I have seen a warning about the dst->__refcnt in dst_release and
different warnings about list operations.

I think I have always posted everything I have seen before the
crashes. (captured via serial console)

(If you mean the lockdep-problem in -rc6: That is more or less a
missing annotation during early bootup. The only problem with that is,
that it will causes lockdep to be turned off and so it can not be used
to find any real problem. A fix for that is in -mm so I do have
lockdep on the mm-kernels)

> - I've seen you looked after double freeing, but this last debug list
> warning could suggest locking problems during list modification too.

Yes, but Herbert mentioned double freeing a skb explicit and so I
tried to catch this.
I do not know enough about the network core to verify the locking of
the involved lists.

> - above git-nfsd and git-net tests should be probably repeated with
> -rc6-mm1 git versions: so vanilla rc6 plus both these -mm patches
> only, and if bug triggers, with one reversed; btw., since in previous
> message you mentioned that 50 packages could be not enough to trigger
> this, these 54 above could make too little margin yet.

Yes, I think I really need to redo the git-nfsd-test.
With IOMMU_DEBUG enabled rc6-mm1worked for 52 packages, only a secound
run of kde-packages triggered it after only 5 packages.
I don't know what this bug hates about kdeartwork-wallpaper (triggered
it this time) or kdeartwork-styles.

Output from the crash with IOMMU_DEBUG (lockdep was enabled, but did
not trigger):
[15593.236374] Unable to handle kernel NULL pointer
dereference<3>list_add corruption. prev->next should be next
(ffffffff8078a410), but was ffff81011ec01e68. (prev=ffff81011ec01e68).
[15593.236374] at 0000000000000000 RIP:
[15593.236374] [<0000000000000000>]
[15593.236374] PGD 79d22067 PUD 7acd7067 PMD 0
[15593.236374] Oops: 0010 [1] SMP
[15593.236374] last sysfs file:
/sys/devices/system/cpu/cpu3/cache/index2/shared_cpu_map
[15593.236374] CPU 2
[15593.236374] Modules linked in: radeon drm w83792d ipv6 tuner
tea5767 tda8290 tuner_xc2028 tda9887 tuner_simple mt20xx tea5761
tvaudio msp3400 bttv ir_common compat_ioctl32 videobuf_dma_sg
videobuf_core btcx_risc tveeprom videodev usbhid v4l2_common
v4l1_compat sg hid pata_amd i2c_nforce2
[15593.236374] Pid: 510, comm: khpsbpkt Not tainted 2.6.24-rc6-mm1 #15
[15593.236374] RIP: 0010:[<0000000000000000>] [<0000000000000000>]
[15593.236374] RSP: 0018:ffff81007eed3ee8 EFLAGS: 00010206
[15593.236374] RAX: ffff81007eed3ef0 RBX: ffff81011ec01e40 RCX: ffff81011ec01e40
[15593.236374] RDX: ffff81011ec01e68 RSI: ffff81011ec01e68 RDI: 0000000000000000
[15593.236374] RBP: ffff81007eed3f10 R08: 0000000000000000 R09: 0000000000000001
[15593.236374] R10: 0000000000000001 R11: 0000000000000058 R12: ffff81007eed3ef0
[15593.236374] R13: ffffffff80470e50 R14: 0000000000000000 R15: 0000000000000000
[15593.236374] FS: 00007f76e6c98700(0000) GS:ffff81011ff1f000(0000)
knlGS:00000000556f46c0
[15593.236374] CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
[15593.236374] CR2: 0000000000000000 CR3: 0000000079d29000 CR4: 00000000000006e0
[15593.236374] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[15593.236374] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[15593.236374] Process khpsbpkt (pid: 510, threadinfo
ffff81007eed2000, task ffff81007eed0000)
[15593.236374] Stack: ffffffff80470f0b ffff81011ec01e68
ffff81011ec014a8 00000000fffffffc
[15593.236374] 0000000000000000 ffff81007eed3f40 ffffffff8024d72d
00000000000001fb
[15593.236374] ffff81007ff2bd98 00000000000001fb ffff81007ff2bcf0
ffff81007ff2df40
[15593.236374] Call Trace:
[15593.236374] [<ffffffff80470f0b>] hpsbpkt_thread+0xbb/0x140
[15593.236374] [<ffffffff8024d72d>] kthread+0x4d/0x80
[15593.236374] [<ffffffff8020c4b8>] child_rip+0xa/0x12
[15593.236374] [<ffffffff8020bbcf>] restore_args+0x0/0x30
[15593.236374] [<ffffffff8024d6e0>] kthread+0x0/0x80
[15593.236374] [<ffffffff8020c4ae>] child_rip+0x0/0x12
[15593.236374]
[15593.236374]
[15593.236374] Code: Bad RIP value.
[15593.236374] RIP [<0000000000000000>]
[15593.236374] RSP <ffff81007eed3ee8>
[15593.236374] CR2: 0000000000000000
[15593.236377] ---[ end trace 11d2dc0fdbe1651f ]---
[15627.875963] ------------[ cut here ]------------
[15627.875963] kernel BUG at lib/list_debug.c:33!
[15627.875963] invalid opcode: 0000 [2] SMP
[15627.875963] last sysfs file:
/sys/devices/system/cpu/cpu3/cache/index2/shared_cpu_map
[15627.875963] CPU 3
[15627.875963] Modules linked in: radeon drm w83792d ipv6 tuner
tea5767 tda8290 tuner_xc2028 tda9887 tuner_simple mt20xx tea5761
tvaudio msp3400 bttv ir_common compat_ioctl32 videobuf_dma_sg
videobuf_core btcx_risc tveeprom videodev usbhid v4l2_common
v4l1_compat sg hid pata_amd i2c_nforce2
[15627.875963] Pid: 6258, comm: nxssh Tainted: G D 2.6.24-rc6-mm1 #15
[15627.875963] RIP: 0010:[<ffffffff803bd954>] [<ffffffff803bd954>]
__list_add+0x54/0x60
[15627.875963] RSP: 0000:ffff81007ffb3c80 EFLAGS: 00010082
[15627.875963] RAX: 0000000000000079 RBX: 0000000000000082 RCX: 000000000000b9f1
[15627.875963] RDX: 0000000000001514 RSI: 0000000000000001 RDI: ffffffff807641c0
[15627.875963] RBP: ffff81007ffb3c80 R08: 0000000000000001 R09: 0000000000000010
[15627.875963] R10: 0000000000000000 R11: 0000000000000020 R12: ffff81011ec01e40
[15627.875963] R13: ffff81011ec01e68 R14: 0000000000000002 R15: ffff81007eee2000
[15627.875963] FS: 00007f3531da2700(0000) GS:ffff81011ff1f280(0000)
knlGS:00000000556f46c0
[15627.875963] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[15627.875963] CR2: 00007ff643d49fe0 CR3: 0000000079c37000 CR4: 00000000000006e0
[15627.875963] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[15627.875963] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[15627.875963] Process nxssh (pid: 6258, threadinfo ffff810079d50000,
task ffff810079d4e000)
[15627.875963] Stack: ffff81007ffb3ca0 ffffffff8046f9e8
ffff81011ec01e40 000000000000000c
[15627.875963] ffff81007ffb3d40 ffffffff8047027c ffff81007ddd8000
ffff81007ddd8048
[15627.875963] ffff81007ffb3ce0 ffffffff805d4366 ffff81007ddd8000
000000000000000c
[15627.875963] Call Trace:
[15627.875963] <IRQ> [<ffffffff8046f9e8>] queue_packet_complete+0x48/0x80
[15627.875963] [<ffffffff8047027c>] hpsb_packet_received+0x51c/0x6d0
[15627.875963] [<ffffffff805d4366>] _spin_unlock+0x26/0x30
[15627.875963] [<ffffffff8047cc3d>] dma_rcv_tasklet+0x22d/0x430
[15627.875963] [<ffffffff8021273e>] read_hpet+0xe/0x10
[15627.875963] [<ffffffff805d48f2>] _spin_unlock_irqrestore+0x42/0x60
[15627.875963] [<ffffffff8023d8b3>] tasklet_action+0x53/0xd0
[15627.875963] [<ffffffff8023d754>] __do_softirq+0x84/0x110
[15627.875963] [<ffffffff8020c82c>] call_softirq+0x1c/0x30
[15627.875963] [<ffffffff8020eaa5>] do_softirq+0x65/0xc0
[15627.875963] [<ffffffff8023d6c5>] irq_exit+0x95/0xa0
[15627.875963] [<ffffffff8020ebbf>] do_IRQ+0x8f/0x100
[15627.875963] [<ffffffff8020bb26>] ret_from_intr+0x0/0xf
[15627.875963] <EOI>
[15627.875963]
[15627.875963] Code: 0f 0b eb fe 0f 1f 84 00 00 00 00 00 55 48 8b 16
48 89 e5 e8
[15627.875963] RIP [<ffffffff803bd954>] __list_add+0x54/0x60
[15627.875963] RSP <ffff81007ffb3c80>
[15627.875963] ---[ end trace 11d2dc0fdbe1651f ]---
[15627.875963] Kernel panic - not syncing: Aiee, killing interrupt handler!

first oops:
(gdb) list *0xffffffff80470f0b
0xffffffff80470f0b is in hpsbpkt_thread (drivers/ieee1394/ieee1394_core.c:1139).
1134 INIT_LIST_HEAD(&tmp);
1135 spin_lock_irq(&pending_packets_lock);
1136 list_splice_init(&hpsbpkt_queue, &tmp);
1137 spin_unlock_irq(&pending_packets_lock);
1138
1139 list_for_each_entry_safe(packet, p, &tmp, queue) {
1140 list_del_init(&packet->queue);
1141 packet->complete_routine(packet->complete_data);
1142 }
1143

second oops:
(gdb) list *0xffffffff8046f9e8
0xffffffff8046f9e8 is in queue_packet_complete
(drivers/ieee1394/ieee1394_core.c:1115).
1110 return;
1111 }
1112 if (packet->complete_routine != NULL) {
1113 spin_lock_irqsave(&pending_packets_lock, flags);
1114 list_add_tail(&packet->queue, &hpsbpkt_queue);
1115 spin_unlock_irqrestore(&pending_packets_lock, flags);
1116 wake_up_process(khpsbpkt_thread);
1117 }
1118 return;
1119 }

Torsten

2008-01-04 21:24:53

by Torsten Kaiser

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

On Jan 4, 2008 4:21 PM, Torsten Kaiser <[email protected]> wrote:
> On Jan 4, 2008 2:30 PM, Jarek Poplawski <[email protected]> wrote:
> > - above git-nfsd and git-net tests should be probably repeated with
> > -rc6-mm1 git versions: so vanilla rc6 plus both these -mm patches
> > only, and if bug triggers, with one reversed; btw., since in previous
> > message you mentioned that 50 packages could be not enough to trigger
> > this, these 54 above could make too little margin yet.
>
> Yes, I think I really need to redo the git-nfsd-test.
> With IOMMU_DEBUG enabled rc6-mm1worked for 52 packages, only a secound
> run of kde-packages triggered it after only 5 packages.
> I don't know what this bug hates about kdeartwork-wallpaper (triggered
> it this time) or kdeartwork-styles.

49 more (kde-)packages did work too. Still looks like it is only in -mm.

Torsten

2008-01-05 00:05:19

by Jarek Poplawski

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

On Fri, Jan 04, 2008 at 04:21:26PM +0100, Torsten Kaiser wrote:
> On Jan 4, 2008 2:30 PM, Jarek Poplawski <[email protected]> wrote:
...
> I'm open for any suggestions and will try to answer any questions.

I'm very glad, thanks!

> The only thing that is sadly not practical is bisecting the borkenout
> mm-patches, as triggering this error is to unreliable /
> time-consuming.

Right, but it seems there are these 2 main suspects here...

> > - is it still vanilla -rc6-mm1; I've seen on kernel list you tried
> > some fixes around raid?
>
> Yes, without these fixes I can't boot.
> But they should only be run during starting the arrays, so I doubt
> that this is that cause.
> (Also -rc3-mm2 did not need this fix)

You've written vanilla -rc6 is OK. Does it mean -rc6 with these fixes?
I think it would be easier just to start with this working -rc6 and
simply check if we have 'right' suspects, so: git-net.patch and
git-nfsd.patch from -mm1-broken-out, as suggested by Herbert (I hope,
can compile - otherwise you could try the other way: add the whole -mm
and revert these two). Using current gits could complicate this
"investigation".

> My skbuff-double-free-detector is still in there, but was never triggered.
>
> > - could you remind this lockdep warning; is it always and the same,
> > always before crash, or no rules?
>
> ???
> I see no lockdep warning before the crashes.
> I have seen a warning about the dst->__refcnt in dst_release and
> different warnings about list operations.
>
> I think I have always posted everything I have seen before the
> crashes. (captured via serial console)

So, you mean there are no more of these?:

"looked into the log in question and the only other warning was a
circular locking dependency that lockdep detected around 1.5 hour
before this warning."
...
"[ 7620.845168] INFO: lockdep is turned off."

> (If you mean the lockdep-problem in -rc6: That is more or less a
> missing annotation during early bootup. The only problem with that is,
> that it will causes lockdep to be turned off and so it can not be used
> to find any real problem. A fix for that is in -mm so I do have
> lockdep on the mm-kernels)
>
> > - I've seen you looked after double freeing, but this last debug list
> > warning could suggest locking problems during list modification too.
>
> Yes, but Herbert mentioned double freeing a skb explicit and so I
> tried to catch this.
> I do not know enough about the network core to verify the locking of
> the involved lists.

Right, the list corruption could be because of use after freeing too.

> > - above git-nfsd and git-net tests should be probably repeated with
> > -rc6-mm1 git versions: so vanilla rc6 plus both these -mm patches
> > only, and if bug triggers, with one reversed; btw., since in previous
> > message you mentioned that 50 packages could be not enough to trigger
> > this, these 54 above could make too little margin yet.
>
> Yes, I think I really need to redo the git-nfsd-test.
> With IOMMU_DEBUG enabled rc6-mm1worked for 52 packages, only a secound
> run of kde-packages triggered it after only 5 packages.
> I don't know what this bug hates about kdeartwork-wallpaper (triggered
> it this time) or kdeartwork-styles.

I didn't read all this thread, so probably I miss many points, but are
you sure there are no problems with filesystem corruption around these
packets or where you compile(?) them (e.g. after these raid problems)?

> Output from the crash with IOMMU_DEBUG (lockdep was enabled, but did
> not trigger):
> [15593.236374] Unable to handle kernel NULL pointer
> dereference<3>list_add corruption. prev->next should be next

Fine! I'll try to look at this. BTW, I guess/hope DEBUG_SLAB etc. are
also on...

Thanks,
Jarek P.

2008-01-05 08:01:18

by Torsten Kaiser

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

On Jan 5, 2008 1:07 AM, Jarek Poplawski <[email protected]> wrote:
> On Fri, Jan 04, 2008 at 04:21:26PM +0100, Torsten Kaiser wrote:
> > On Jan 4, 2008 2:30 PM, Jarek Poplawski <[email protected]> wrote:
> > The only thing that is sadly not practical is bisecting the borkenout
> > mm-patches, as triggering this error is to unreliable /
> > time-consuming.
>
> Right, but it seems there are these 2 main suspects here...
>
> > > - is it still vanilla -rc6-mm1; I've seen on kernel list you tried
> > > some fixes around raid?
> >
> > Yes, without these fixes I can't boot.
> > But they should only be run during starting the arrays, so I doubt
> > that this is that cause.
> > (Also -rc3-mm2 did not need this fix)
>
> You've written vanilla -rc6 is OK. Does it mean -rc6 with these fixes?

vanilla -rc6 is fine without these fixes.
The raid-bugs from -rc6-mm1 are probably introduced by
md-allow-devices-to-be-shared-between-md-arrays.patch and that patch
is new in this mm-release.

> I think it would be easier just to start with this working -rc6 and
> simply check if we have 'right' suspects, so: git-net.patch and
> git-nfsd.patch from -mm1-broken-out, as suggested by Herbert (I hope,
> can compile - otherwise you could try the other way: add the whole -mm
> and revert these two). Using current gits could complicate this
> "investigation".

OK, I will try this...

> > My skbuff-double-free-detector is still in there, but was never triggered.
> >
> > > - could you remind this lockdep warning; is it always and the same,
> > > always before crash, or no rules?
> >
> > ???
> > I see no lockdep warning before the crashes.
> > I have seen a warning about the dst->__refcnt in dst_release and
> > different warnings about list operations.
> >
> > I think I have always posted everything I have seen before the
> > crashes. (captured via serial console)
>
> So, you mean there are no more of these?:
>
> "looked into the log in question and the only other warning was a
> circular locking dependency that lockdep detected around 1.5 hour
> before this warning."
> ...
> "[ 7620.845168] INFO: lockdep is turned off."

Aha, I had forgotten about that one.
Looking at all the crashlogs, I do not find another one of this lockdep warning.
The only other lockdep related output was the bootup problem in vanilla -rc6.

> > (If you mean the lockdep-problem in -rc6: That is more or less a
> > missing annotation during early bootup. The only problem with that is,
> > that it will causes lockdep to be turned off and so it can not be used
> > to find any real problem. A fix for that is in -mm so I do have
> > lockdep on the mm-kernels)
> >
> > > - I've seen you looked after double freeing, but this last debug list
> > > warning could suggest locking problems during list modification too.
> >
> > Yes, but Herbert mentioned double freeing a skb explicit and so I
> > tried to catch this.
> > I do not know enough about the network core to verify the locking of
> > the involved lists.
>
> Right, the list corruption could be because of use after freeing too.

I had hoped that I could catch use-after-freeing by using
slub_debug=FZP, but that did not help.
(first oops in http://lkml.org/lkml/2007/12/28/159 )

I think that the main skb structs come from slub and should be
poisoned by this, so it might be some other data structure that is
allocated differently...

> > > - above git-nfsd and git-net tests should be probably repeated with
> > > -rc6-mm1 git versions: so vanilla rc6 plus both these -mm patches
> > > only, and if bug triggers, with one reversed; btw., since in previous
> > > message you mentioned that 50 packages could be not enough to trigger
> > > this, these 54 above could make too little margin yet.
> >
> > Yes, I think I really need to redo the git-nfsd-test.
> > With IOMMU_DEBUG enabled rc6-mm1worked for 52 packages, only a secound
> > run of kde-packages triggered it after only 5 packages.
> > I don't know what this bug hates about kdeartwork-wallpaper (triggered
> > it this time) or kdeartwork-styles.
>
> I didn't read all this thread, so probably I miss many points, but are
> you sure there are no problems with filesystem corruption around these
> packets or where you compile(?) them (e.g. after these raid problems)?

For my setup: It's a gentoo system, so compiling packages is the
normal way of installing something.
The compile itself is done on a tmpfs so a filesystem corruption there
should be rather impossible. ;)
(The system has 4Gb RAM, so it doesn't even need to swap)
The sources are taken from a nfsv4 share that is served from a
different system. Also gentoo checksums all sources it will use.

After the crashes I also did a checksum of the last installed
packages. Only in one instance there was corruption, all new files
where completely empty. Obviously XFS did not have the time to write
them back to disk before the system crashed.
Also as all crashes show network related traces and the system is
working fine otherwise, I doubt any permanent filesystem problems.

For the raid problems: I was just unable to even start the raid that
has / on it, because of a wrong check in the raid-autostart code.
( http://lkml.org/lkml/2007/12/27/45 )

> > Output from the crash with IOMMU_DEBUG (lockdep was enabled, but did
> > not trigger):
> > [15593.236374] Unable to handle kernel NULL pointer
> > dereference<3>list_add corruption. prev->next should be next
>
> Fine! I'll try to look at this. BTW, I guess/hope DEBUG_SLAB etc. are
> also on...

DEBUG_SLAB is off, because of:
CONFIG_SLUB_DEBUG=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y

But I'm currently did not have the slub_debug-option in my kernel
commandline, because:
a) slub_debug=FZP did not prevent the bug in -rc3-mm2
b) but it took a much longer time to trigger it
c) its a serious slowdown for these compiles

If you think some other slub_debug might catch it, I would try this...

Torsten

2008-01-05 10:11:20

by Jarek Poplawski

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

On Sat, Jan 05, 2008 at 09:01:02AM +0100, Torsten Kaiser wrote:
> On Jan 5, 2008 1:07 AM, Jarek Poplawski <[email protected]> wrote:
> > On Fri, Jan 04, 2008 at 04:21:26PM +0100, Torsten Kaiser wrote:
> > > On Jan 4, 2008 2:30 PM, Jarek Poplawski <[email protected]> wrote:
> > > The only thing that is sadly not practical is bisecting the borkenout
> > > mm-patches, as triggering this error is to unreliable /
> > > time-consuming.
> >
> > Right, but it seems there are these 2 main suspects here...
> >
> > > > - is it still vanilla -rc6-mm1; I've seen on kernel list you tried
> > > > some fixes around raid?
> > >
> > > Yes, without these fixes I can't boot.
> > > But they should only be run during starting the arrays, so I doubt
> > > that this is that cause.
> > > (Also -rc3-mm2 did not need this fix)
> >
> > You've written vanilla -rc6 is OK. Does it mean -rc6 with these fixes?
>
> vanilla -rc6 is fine without these fixes.
> The raid-bugs from -rc6-mm1 are probably introduced by
> md-allow-devices-to-be-shared-between-md-arrays.patch and that patch
> is new in this mm-release.
>
> > I think it would be easier just to start with this working -rc6 and
> > simply check if we have 'right' suspects, so: git-net.patch and
> > git-nfsd.patch from -mm1-broken-out, as suggested by Herbert (I hope,
> > can compile - otherwise you could try the other way: add the whole -mm
> > and revert these two). Using current gits could complicate this
> > "investigation".
>
> OK, I will try this...

It seems that this last report gives the third one: ieee1394 to the pack,
so probably, you can hold on a "minute" - this all needs some rethinking.
(But, if you've begun with this already, let it be clear at last too.)

> > I didn't read all this thread, so probably I miss many points, but are
> > you sure there are no problems with filesystem corruption around these
> > packets or where you compile(?) them (e.g. after these raid problems)?
>
> For my setup: It's a gentoo system, so compiling packages is the
> normal way of installing something.
> The compile itself is done on a tmpfs so a filesystem corruption there
> should be rather impossible. ;)
> (The system has 4Gb RAM, so it doesn't even need to swap)
> The sources are taken from a nfsv4 share that is served from a
> different system. Also gentoo checksums all sources it will use.

Yes, since this was no problem with vanilla 2.6.24-rc6, I've probably
gone astray...

> If you think some other slub_debug might catch it, I would try this...

OK! But, in the meantime could you send your current .config? I wonder
e.g. if there could be used this new ieee1394 code from
init_ohci1394_dma.c?

You are really helpful, thanks,
Jarek P.

2008-01-05 14:52:56

by Torsten Kaiser

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

On Jan 5, 2008 11:13 AM, Jarek Poplawski <[email protected]> wrote:
> On Sat, Jan 05, 2008 at 09:01:02AM +0100, Torsten Kaiser wrote:
> > On Jan 5, 2008 1:07 AM, Jarek Poplawski <[email protected]> wrote:
> > > I think it would be easier just to start with this working -rc6 and
> > > simply check if we have 'right' suspects, so: git-net.patch and
> > > git-nfsd.patch from -mm1-broken-out, as suggested by Herbert (I hope,
> > > can compile - otherwise you could try the other way: add the whole -mm
> > > and revert these two). Using current gits could complicate this
> > > "investigation".
> >
> > OK, I will try this...

still on the todo-list, I had no time to try this yet...

> It seems that this last report gives the third one: ieee1394 to the pack,
> so probably, you can hold on a "minute" - this all needs some rethinking.
> (But, if you've begun with this already, let it be clear at last too.)

I don't think ieee1394 is to blame here. See http://lkml.org/lkml/2007/11/29/372
This was the first report of these crashes.
The first one is a similar crash in the ieee1394 code and my first try
was to blame it. But switching to a real network card did not solve
this, as the second crash in that mail shows.
Also Stefan Richter said in http://lkml.org/lkml/2007/11/29/419 this:
"FWIW, eth1394 and the entire rest of the 1394 stack beneath eth1394
are identical between -mm and Linus' tree."

I'm still using the old ieee1394-stack and not the new firewire one,
as eth1394 had not been ported at that time.

It might be possible that these are two different bugs, but two bugs
with same symptom's of corrupted lists at the same time seem unlikely.
(Especially this last report of the oops in 1394 looks rather
strange. Things can only go onto hpsbpkt_queue if they have a non NULL
complete_routine. (see queue_packet_complete() in
drivers/ieee1394/ieee1394_core.c). But a call to a NULL
complete_routine seems to be the cause of one of the two oopses. So it
looks like the hpsbpkt_queue list got mangled. But this list is only
used in this file and all three places that access this list are
protected by spinlocking pending_packets_lock.

So my personal conclusion would be, that someone is writing to memory
that he no longer owns. Most probably 0-bytes. (the complete_routine
got NULLed and the warning about dst->__refcnt being 0).

Use-after-free or something else?

[snip]
> > If you think some other slub_debug might catch it, I would try this...
>
> OK! But, in the meantime could you send your current .config?

Attached. (Last one I was using with 2.6.24-rc6-mm1. For all other
tests I copied this one and did a make oldconfig)

> I wonder
> e.g. if there could be used this new ieee1394 code from
> init_ohci1394_dma.c?

Interesting. I didn't even know about this file / option.

But four things make an involvement rather doubtful:
a) I do not find a single line like "init_ohci1394_dma: initializing
OHCI-1394" in any of the syslogs.
b) I do not have the parameter ohci1394_dma=early set
c) # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
d) I have seen the crash in svc_xprt_enqueue() without eth1394 and at
that try there was not a single firewire device attached.

I will now try broken-out-patches...

Torsten


Attachments:
(No filename) (3.16 kB)
2.6.24-rc6-mm1-config.txt (50.28 kB)
Download all attachments

2008-01-05 15:29:49

by Evgeniy Polyakov

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 (build problem: gpio/W1)

Hi Randy.

Sorry for long delay.

On Mon, Dec 31, 2007 at 10:19:20AM -0800, Randy Dunlap ([email protected]) wrote:
> CC drivers/w1/masters/w1-gpio.o
> In file included from /local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c:19:
> include2/asm/gpio.h:4:18: error: gpio.h: No such file or directory
> /local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c: In function 'w1_gpio_write_bit_dir':
> /local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c:26: error: implicit declaration of function 'gpio_direction_input'
> /local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c:28: error: implicit declaration of function 'gpio_direction_output'

I believe w1-gpio it has to depend on generic gpio, Ville can you
confirm that?

--
Evgeniy Polyakov

2008-01-05 16:17:11

by Ville Syrjälä

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 (build problem: gpio/W1)

On Sat, Jan 05, 2008 at 06:29:04PM +0300, Evgeniy Polyakov wrote:
> Hi Randy.
>
> Sorry for long delay.
>
> On Mon, Dec 31, 2007 at 10:19:20AM -0800, Randy Dunlap ([email protected]) wrote:
> > CC drivers/w1/masters/w1-gpio.o
> > In file included from /local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c:19:
> > include2/asm/gpio.h:4:18: error: gpio.h: No such file or directory
> > /local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c: In function 'w1_gpio_write_bit_dir':
> > /local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c:26: error: implicit declaration of function 'gpio_direction_input'
> > /local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c:28: error: implicit declaration of function 'gpio_direction_output'
>
> I believe w1-gpio it has to depend on generic gpio, Ville can you
> confirm that?

The dependency is there:

config W1_MASTER_GPIO
tristate "GPIO 1-wire busmaster"
depends on GENERIC_GPIO

So it looks like the arch Kconfig has selected GENERIC_GPIO but failed
to provide the implementation.

--
Ville Syrj?l?
[email protected]
http://www.sci.fi/~syrjala/

2008-01-05 17:20:26

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 (build problem: gpio/W1)

Ville Syrj?l? wrote:
> On Sat, Jan 05, 2008 at 06:29:04PM +0300, Evgeniy Polyakov wrote:
>> Hi Randy.
>>
>> Sorry for long delay.
>>
>> On Mon, Dec 31, 2007 at 10:19:20AM -0800, Randy Dunlap ([email protected]) wrote:
>>> CC drivers/w1/masters/w1-gpio.o
>>> In file included from /local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c:19:
>>> include2/asm/gpio.h:4:18: error: gpio.h: No such file or directory
>>> /local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c: In function 'w1_gpio_write_bit_dir':
>>> /local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c:26: error: implicit declaration of function 'gpio_direction_input'
>>> /local/linsrc/linux-2.6.24-rc6-mm1/drivers/w1/masters/w1-gpio.c:28: error: implicit declaration of function 'gpio_direction_output'
>> I believe w1-gpio it has to depend on generic gpio, Ville can you
>> confirm that?
>
> The dependency is there:
>
> config W1_MASTER_GPIO
> tristate "GPIO 1-wire busmaster"
> depends on GENERIC_GPIO
>
> So it looks like the arch Kconfig has selected GENERIC_GPIO but failed
> to provide the implementation.

There was a follow-up patch in the thread that limits X86_RDC321X
to X86_32 instead of any X86.

--
~Randy
desserts: http://www.xenotime.net/linux/recipes/

2008-01-05 22:10:32

by Torsten Kaiser

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

On Jan 5, 2008 3:52 PM, Torsten Kaiser <[email protected]> wrote:
> On Jan 5, 2008 11:13 AM, Jarek Poplawski <[email protected]> wrote:
> > On Sat, Jan 05, 2008 at 09:01:02AM +0100, Torsten Kaiser wrote:
> > > On Jan 5, 2008 1:07 AM, Jarek Poplawski <[email protected]> wrote:
> > > > I think it would be easier just to start with this working -rc6 and
> > > > simply check if we have 'right' suspects, so: git-net.patch and
> > > > git-nfsd.patch from -mm1-broken-out, as suggested by Herbert (I hope,
> > > > can compile - otherwise you could try the other way: add the whole -mm
> > > > and revert these two). Using current gits could complicate this
> > > > "investigation".
> > >
> > > OK, I will try this...
>
> still on the todo-list, I had no time to try this yet...

working on it...
2.6.24-rc6 + mm-patches up to git.battery (includes git-net and
git-netdev-all) worked for 110 packages, then I proclaimed it good.
2.6.24-rc6 + mm-patches up to (including) git.nfsd is currently
getting testet (9 packages done...)

But the cause of my mail is the following question:
Regarding my "iommu-sg-merging-patches are new in -rc3-mm and could be
the cause"-suspicion I looked at these patches and came across these
hunks:

This is removed from arch/x86/lib/bitstr_64.c:
-/* Find string of zero bits in a bitmap */
-unsigned long
-find_next_zero_string(unsigned long *bitmap, long start, long nbits, int len)
-{
- unsigned long n, end, i;
-
- again:
- n = find_next_zero_bit(bitmap, nbits, start);
- if (n == -1)
- return -1;
-
- /* could test bitsliced, but it's hardly worth it */
- end = n+len;
- if (end > nbits)
- return -1;
- for (i = n+1; i < end; i++) {
- if (test_bit(i, bitmap)) {
- start = i+1;
- goto again;
- }
- }
- return n;
-}

This is added to lib/iommu-helper.c:
+static unsigned long find_next_zero_area(unsigned long *map,
+ unsigned long size,
+ unsigned long start,
+ unsigned int nr)
+{
+ unsigned long index, end, i;
+again:
+ index = find_next_zero_bit(map, size, start);
+ end = index + nr;
+ if (end > size)
+ return -1;
+ for (i = index + 1; i < end; i++) {
+ if (test_bit(i, map)) {
+ start = i+1;
+ goto again;
+ }
+ }
+ return index;
+}

The old version checks, if find_next_zero_bit returns -1, the new
version doesn't do this.
Is this intended and can find_next_zero_bit never fail?
Hmm... but in the worst case it should only loop forever if I'm
reading this right (index = -1 => for-loop counts from 0 to nr, if any
bit is set it will jump to "again:" and if the next call to
find_next_zero_bit also fails, its an endless loop)

So even if this can not explain my bug, could somebody check if this
is a real bug or not?

Torsten

2008-01-06 01:26:19

by Andrew Morton

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

On Sat, 5 Jan 2008 23:10:17 +0100 "Torsten Kaiser" <[email protected]> wrote:

> On Jan 5, 2008 3:52 PM, Torsten Kaiser <[email protected]> wrote:
> > On Jan 5, 2008 11:13 AM, Jarek Poplawski <[email protected]> wrote:
> > > On Sat, Jan 05, 2008 at 09:01:02AM +0100, Torsten Kaiser wrote:
> > > > On Jan 5, 2008 1:07 AM, Jarek Poplawski <[email protected]> wrote:
> > > > > I think it would be easier just to start with this working -rc6 and
> > > > > simply check if we have 'right' suspects, so: git-net.patch and
> > > > > git-nfsd.patch from -mm1-broken-out, as suggested by Herbert (I hope,
> > > > > can compile - otherwise you could try the other way: add the whole -mm
> > > > > and revert these two). Using current gits could complicate this
> > > > > "investigation".
> > > >
> > > > OK, I will try this...
> >
> > still on the todo-list, I had no time to try this yet...
>
> working on it...
> 2.6.24-rc6 + mm-patches up to git.battery (includes git-net and
> git-netdev-all) worked for 110 packages, then I proclaimed it good.
> 2.6.24-rc6 + mm-patches up to (including) git.nfsd is currently
> getting testet (9 packages done...)
>
> But the cause of my mail is the following question:
> Regarding my "iommu-sg-merging-patches are new in -rc3-mm and could be
> the cause"-suspicion I looked at these patches and came across these
> hunks:
>
> This is removed from arch/x86/lib/bitstr_64.c:
> -/* Find string of zero bits in a bitmap */
> -unsigned long
> -find_next_zero_string(unsigned long *bitmap, long start, long nbits, int len)
> -{
> - unsigned long n, end, i;
> -
> - again:
> - n = find_next_zero_bit(bitmap, nbits, start);
> - if (n == -1)
> - return -1;
> -
> - /* could test bitsliced, but it's hardly worth it */
> - end = n+len;
> - if (end > nbits)
> - return -1;
> - for (i = n+1; i < end; i++) {
> - if (test_bit(i, bitmap)) {
> - start = i+1;
> - goto again;
> - }
> - }
> - return n;
> -}
>
> This is added to lib/iommu-helper.c:
> +static unsigned long find_next_zero_area(unsigned long *map,
> + unsigned long size,
> + unsigned long start,
> + unsigned int nr)
> +{
> + unsigned long index, end, i;
> +again:
> + index = find_next_zero_bit(map, size, start);
> + end = index + nr;
> + if (end > size)
> + return -1;
> + for (i = index + 1; i < end; i++) {
> + if (test_bit(i, map)) {
> + start = i+1;
> + goto again;
> + }
> + }
> + return index;
> +}
>
> The old version checks, if find_next_zero_bit returns -1, the new
> version doesn't do this.
> Is this intended and can find_next_zero_bit never fail?
> Hmm... but in the worst case it should only loop forever if I'm
> reading this right (index = -1 => for-loop counts from 0 to nr, if any
> bit is set it will jump to "again:" and if the next call to
> find_next_zero_bit also fails, its an endless loop)

I susect these are doing different things.
iommu-sg-kill-__clear_bit_string-and-find_next_zero_string.patch says:

This kills unused __clear_bit_string and find_next_zero_string (they
were used by only gart and calgary IOMMUs).

iommu-sg-add-iommu-helper-functions-for-the-free-area-management.patch says:

This adds IOMMU helper functions for the free area management. These
functions take care of LLD's segment boundary limit for IOMMUs. They
would be useful for IOMMUs that use bitmap for the free area management.

> So even if this can not explain my bug, could somebody check if this
> is a real bug or not?

Let's cc the author of those changes.

Thanks for persisting with this bug.

2008-01-06 03:17:16

by Torsten Kaiser

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

On Jan 5, 2008 11:10 PM, Torsten Kaiser <[email protected]> wrote:
> 2.6.24-rc6 + mm-patches up to git.battery (includes git-net and
> git-netdev-all) worked for 110 packages, then I proclaimed it good.
> 2.6.24-rc6 + mm-patches up to (including) git.nfsd is currently
> getting testet (9 packages done...)
That kernel did also work for all 110 packages.

2.6.24-rc6 + mm-patches up to (including) git.xfs -> crash

[ 576.899332] ------------[ cut here ]------------
[ 576.903661] kernel BUG at lib/list_debug.c:33!
[ 576.903661] invalid opcode: 0000 [1] SMP
[ 576.903661] last sysfs file:
/devices/system/cpu/cpu3/cache/index2/shared_cpu_map
[ 576.903661] CPU 3
[ 576.903661] Modules linked in: radeon drm w83792d ipv6 tuner
tea5767 tda8290 tuner_xc2028 tda9887 tuner_simple mt20xx tea5761
tvaudio msp3400 bttv ir_common compat_ioctl32 videobuf_dma_sg
videobuf_core btcx_risc tveeprom videodev v4l2_common usbhid
v4l1_compat sg hid i2c_nforce2 pata_amd
[ 576.903661] Pid: 5559, comm: nfsv4-svc Not tainted 2.6.24-rc6-mm-git.xfs #2
[ 576.903661] RIP: 0010:[<ffffffff803c16e4>] [<ffffffff803c16e4>]
__list_add+0x54/0x60
[ 576.903661] RSP: 0018:ffff81007d4e1dc0 EFLAGS: 00010282
[ 576.903661] RAX: 0000000000000088 RBX: ffff81007e955800 RCX: fffffffffc6c7900
[ 576.903661] RDX: ffff81007d53eef0 RSI: 0000000000000001 RDI: ffffffff80760140
[ 576.903661] RBP: ffff81007d4e1dc0 R08: 0000000000000001 R09: 0000000000000000
[ 576.903661] R10: ffff810080062008 R11: 0000000000000001 R12: ffff81007ed00900
[ 576.903661] R13: ffff81007ed00938 R14: ffff81007ed00938 R15: ffff81007dd6f100
[ 576.903661] FS: 00007f1b7e6a36f0(0000) GS:ffff81011ff1b780(0000)
knlGS:0000000000000000
[ 576.903661] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 576.903661] CR2: 00007ffb28c2c000 CR3: 00000000741ab000 CR4: 00000000000006e0
[ 576.903661] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 576.903661] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 576.903661] Process nfsv4-svc (pid: 5559, threadinfo
ffff81007d4e0000, task ffff81007d53eef0)
[ 576.903661] Stack: ffff81007d4e1e00 ffffffff805c4dbb
ffff81007ed00908 ffff81007dd6f100
[ 576.903661] ffff81011ad7bc00 ffff81007d458000 ffff81007e955800
ffff81007dd6f110
[ 576.903661] ffff81007d4e1e10 ffffffff805c4ea7 ffff81007d4e1ee0
ffffffff805c5fd4
[ 576.903661] Call Trace:
[ 576.903661] [<ffffffff805c4dbb>] svc_xprt_enqueue+0x1ab/0x240
[ 576.903661] [<ffffffff805c4ea7>] svc_xprt_received+0x17/0x20
[ 576.903661] [<ffffffff805c5fd4>] svc_recv+0x394/0x7c0
[ 576.903661] [<ffffffff805c53de>] svc_send+0xae/0xd0
[ 576.903661] [<ffffffff80230ab0>] default_wake_function+0x0/0x10
[ 576.903661] [<ffffffff80316499>] nfs_callback_svc+0x79/0x130
[ 576.903662] [<ffffffff80232f8c>] finish_task_switch+0xcc/0xe0
[ 576.903662] [<ffffffff8020c818>] child_rip+0xa/0x12
[ 576.903662] [<ffffffff8020bf2f>] restore_args+0x0/0x30
[ 576.903662] [<ffffffff805b9ecd>] __svc_create_thread+0xdd/0x200
[ 576.903662] [<ffffffff80316420>] nfs_callback_svc+0x0/0x130
[ 576.903662] [<ffffffff8020c80e>] child_rip+0x0/0x12
[ 576.903662]
[ 576.903662]
[ 576.903662] Code: 0f 0b eb fe 0f 1f 84 00 00 00 00 00 55 48 8b 16
48 89 e5 e8
[ 576.903662] RIP [<ffffffff803c16e4>] __list_add+0x54/0x60
[ 576.903662] RSP <ffff81007d4e1dc0>
[ 576.903673] ---[ end trace d46de6b99ae8cd5a ]---
[ 576.913664] Kernel panic - not syncing: Aiee, killing interrupt handler!

Torsten

2008-01-06 03:28:37

by FUJITA Tomonori

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

On Sat, 5 Jan 2008 17:25:24 -0800
Andrew Morton <[email protected]> wrote:

> On Sat, 5 Jan 2008 23:10:17 +0100 "Torsten Kaiser" <[email protected]> wrote:
>
> > On Jan 5, 2008 3:52 PM, Torsten Kaiser <[email protected]> wrote:
> > > On Jan 5, 2008 11:13 AM, Jarek Poplawski <[email protected]> wrote:
> > > > On Sat, Jan 05, 2008 at 09:01:02AM +0100, Torsten Kaiser wrote:
> > > > > On Jan 5, 2008 1:07 AM, Jarek Poplawski <[email protected]> wrote:
> > > > > > I think it would be easier just to start with this working -rc6 and
> > > > > > simply check if we have 'right' suspects, so: git-net.patch and
> > > > > > git-nfsd.patch from -mm1-broken-out, as suggested by Herbert (I hope,
> > > > > > can compile - otherwise you could try the other way: add the whole -mm
> > > > > > and revert these two). Using current gits could complicate this
> > > > > > "investigation".
> > > > >
> > > > > OK, I will try this...
> > >
> > > still on the todo-list, I had no time to try this yet...
> >
> > working on it...
> > 2.6.24-rc6 + mm-patches up to git.battery (includes git-net and
> > git-netdev-all) worked for 110 packages, then I proclaimed it good.
> > 2.6.24-rc6 + mm-patches up to (including) git.nfsd is currently
> > getting testet (9 packages done...)
> >
> > But the cause of my mail is the following question:
> > Regarding my "iommu-sg-merging-patches are new in -rc3-mm and could be
> > the cause"-suspicion I looked at these patches and came across these
> > hunks:
> >
> > This is removed from arch/x86/lib/bitstr_64.c:
> > -/* Find string of zero bits in a bitmap */
> > -unsigned long
> > -find_next_zero_string(unsigned long *bitmap, long start, long nbits, int len)
> > -{
> > - unsigned long n, end, i;
> > -
> > - again:
> > - n = find_next_zero_bit(bitmap, nbits, start);
> > - if (n == -1)
> > - return -1;
> > -
> > - /* could test bitsliced, but it's hardly worth it */
> > - end = n+len;
> > - if (end > nbits)
> > - return -1;
> > - for (i = n+1; i < end; i++) {
> > - if (test_bit(i, bitmap)) {
> > - start = i+1;
> > - goto again;
> > - }
> > - }
> > - return n;
> > -}
> >
> > This is added to lib/iommu-helper.c:
> > +static unsigned long find_next_zero_area(unsigned long *map,
> > + unsigned long size,
> > + unsigned long start,
> > + unsigned int nr)
> > +{
> > + unsigned long index, end, i;
> > +again:
> > + index = find_next_zero_bit(map, size, start);
> > + end = index + nr;
> > + if (end > size)
> > + return -1;
> > + for (i = index + 1; i < end; i++) {
> > + if (test_bit(i, map)) {
> > + start = i+1;
> > + goto again;
> > + }
> > + }
> > + return index;
> > +}
> >
> > The old version checks, if find_next_zero_bit returns -1, the new
> > version doesn't do this.
> > Is this intended and can find_next_zero_bit never fail?
> > Hmm... but in the worst case it should only loop forever if I'm
> > reading this right (index = -1 => for-loop counts from 0 to nr, if any
> > bit is set it will jump to "again:" and if the next call to
> > find_next_zero_bit also fails, its an endless loop)

find_next_zero_bit returns -1?

It seems that x86_64 doesn't. POWER and SPARC64 IOMMUs use
find_next_zero_bit too but both doesn't check if find_next_zero_bit
returns -1. If find_next_zero_bit fails, it returns size. So it
doesn't leads to an endless loop.

But this patch has other bugs that break POWER IOMMUs.

If you use the IOMMUs on POWER, please try the following patch:

http://www.mail-archive.com/[email protected]/msg12702.html

>
> I susect these are doing different things.
> iommu-sg-kill-__clear_bit_string-and-find_next_zero_string.patch says:
>
> This kills unused __clear_bit_string and find_next_zero_string (they
> were used by only gart and calgary IOMMUs).
>
> iommu-sg-add-iommu-helper-functions-for-the-free-area-management.patch says:
>
> This adds IOMMU helper functions for the free area management. These
> functions take care of LLD's segment boundary limit for IOMMUs. They
> would be useful for IOMMUs that use bitmap for the free area management.
>
> > So even if this can not explain my bug, could somebody check if this
> > is a real bug or not?
>
> Let's cc the author of those changes.
>
> Thanks for persisting with this bug.

2008-01-06 08:25:19

by Jarek Poplawski

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

On Sat, Jan 05, 2008 at 03:52:32PM +0100, Torsten Kaiser wrote:
...
> So my personal conclusion would be, that someone is writing to memory
> that he no longer owns. Most probably 0-bytes. (the complete_routine
> got NULLed and the warning about dst->__refcnt being 0).
>
> Use-after-free or something else?

I agree: your conclusion seems to be the most probable explanation for
this. Then it could be really hard to solve this without bisection or
something similar. But there is some probabability this something could
try kfree later too, but simply this list debugging triggers earlier.

> > > If you think some other slub_debug might catch it, I would try this...

You can try to add "U" to these other slub_debug options. As a matter
of fact, if your above diagnose is right, it seems you risk to damage
your system or even the box with these tests, so if you want to
continue, you should probably turn any possible debugging on (not in
mm only).

BTW, you've written that some debugging options seem to delay the bug.
Since they often change sizes of some structures than such wrong
writes could have some 'safer' offsets. So, this could really delay
e.g. these list's bugs, but maybe this could also let to stay 'alive'
to such wrong kfree?

Cheers,
Jarek P.

2008-01-06 10:03:22

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: sparc64: undefined reference to `vmemmap_table'

Hello,

This is from allnoconfig on sparc64:

LD .tmp_vmlinux1
arch/sparc64/kernel/head.o: In function `kvmap_vmemmap':
(.text+0x34ec): undefined reference to `vmemmap_table'
arch/sparc64/kernel/head.o: In function `kvmap_vmemmap':
(.text+0x34f4): undefined reference to `vmemmap_table'
make: *** [.tmp_vmlinux1] Error 1

Regards,

Mariusz

Linux sparc64 2.6.23 #2 SMP PREEMPT Fri Dec 21 21:20:01 CET 2007 sparc64 sun4u TI UltraSparc II (BlackBird) GNU/Linux

Gnu C 4.1.2
Gnu make 3.81
binutils 2.18
util-linux 2.12r
mount 2.12r
module-init-tools 3.4
e2fsprogs 1.40.3
Linux C Library 2.6.1
Dynamic linker (ldd) 2.6.1
Procps 3.2.7
Net-tools 1.60
Kbd 1.13
Sh-utils 6.9
udev 115

2008-01-06 10:16:12

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: sparc64: undefined reference to `vmemmap_table'

On Sun, 6 Jan 2008 11:03:02 +0100 Mariusz Kozlowski <[email protected]> wrote:

> This is from allnoconfig on sparc64:
>
> LD .tmp_vmlinux1
> arch/sparc64/kernel/head.o: In function `kvmap_vmemmap':
> (.text+0x34ec): undefined reference to `vmemmap_table'
> arch/sparc64/kernel/head.o: In function `kvmap_vmemmap':
> (.text+0x34f4): undefined reference to `vmemmap_table'

Happens in mainline too. Maybe arch/sparc64/kernel/ktlb.S needs to be
taught about CONFIG_SPARSEMEM_VMEMMAP=n.

2008-01-06 10:31:01

by Torsten Kaiser

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

On Jan 6, 2008 9:27 AM, Jarek Poplawski <[email protected]> wrote:
> On Sat, Jan 05, 2008 at 03:52:32PM +0100, Torsten Kaiser wrote:
> ...
> > So my personal conclusion would be, that someone is writing to memory
> > that he no longer owns. Most probably 0-bytes. (the complete_routine
> > got NULLed and the warning about dst->__refcnt being 0).
> >
> > Use-after-free or something else?
>
> I agree: your conclusion seems to be the most probable explanation for
> this. Then it could be really hard to solve this without bisection or
> something similar. But there is some probabability this something could
> try kfree later too, but simply this list debugging triggers earlier.

As for example in the case when it dies in ieee1394-thread the list is
so corrupted that it will die anyway.

But I might try this anyway, as I don't really have a better idee.

> > > > If you think some other slub_debug might catch it, I would try this...
>
> You can try to add "U" to these other slub_debug options. As a matter
> of fact, if your above diagnose is right, it seems you risk to damage
> your system or even the box with these tests, so if you want to
> continue, you should probably turn any possible debugging on (not in
> mm only).

I did not add U, because I thought that would only needed to trace memory leaks.
And I hoped that using P (poison) would catch any later use (after free).

> BTW, you've written that some debugging options seem to delay the bug.
> Since they often change sizes of some structures than such wrong
> writes could have some 'safer' offsets. So, this could really delay
> e.g. these list's bugs, but maybe this could also let to stay 'alive'
> to such wrong kfree?

I think this bug is highly timing dependent. Its not always the same
package that dies and as this is a SMP system I would guess two CPUs
using the same data will trigger this.
And using the poison-option will definitily slow the system down and
mess up the timings.

What also speaks against the 'safer' offsets is, that after adding my
notfreed-byte to skbuff the bug still triggered in the same way.

I'm currently looking at
http://www.mail-archive.com/[email protected]/msg12702.html
,trying to understand if this is relevant for me on x86_64.

Torsten

2008-01-06 10:41:23

by Torsten Kaiser

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

On Jan 6, 2008 4:28 AM, FUJITA Tomonori <[email protected]> wrote:
> On Sat, 5 Jan 2008 17:25:24 -0800
> Andrew Morton <[email protected]> wrote:
> > On Sat, 5 Jan 2008 23:10:17 +0100 "Torsten Kaiser" <[email protected]> wrote:
> > > But the cause of my mail is the following question:
> > > Regarding my "iommu-sg-merging-patches are new in -rc3-mm and could be
> > > the cause"-suspicion I looked at these patches and came across these
> > > hunks:
> > >
> > > This is removed from arch/x86/lib/bitstr_64.c:
> > > -/* Find string of zero bits in a bitmap */
> > > -unsigned long
> > > -find_next_zero_string(unsigned long *bitmap, long start, long nbits, int len)
> > > -{
> > > - unsigned long n, end, i;
> > > -
> > > - again:
> > > - n = find_next_zero_bit(bitmap, nbits, start);
> > > - if (n == -1)
> > > - return -1;
> > > -
> > > - /* could test bitsliced, but it's hardly worth it */
> > > - end = n+len;
> > > - if (end > nbits)
> > > - return -1;
> > > - for (i = n+1; i < end; i++) {
> > > - if (test_bit(i, bitmap)) {
> > > - start = i+1;
> > > - goto again;
> > > - }
> > > - }
> > > - return n;
> > > -}
> > >
> > > This is added to lib/iommu-helper.c:
> > > +static unsigned long find_next_zero_area(unsigned long *map,
> > > + unsigned long size,
> > > + unsigned long start,
> > > + unsigned int nr)
> > > +{
> > > + unsigned long index, end, i;
> > > +again:
> > > + index = find_next_zero_bit(map, size, start);
> > > + end = index + nr;
> > > + if (end > size)
> > > + return -1;
> > > + for (i = index + 1; i < end; i++) {
> > > + if (test_bit(i, map)) {
> > > + start = i+1;
> > > + goto again;
> > > + }
> > > + }
> > > + return index;
> > > +}
> > >
> > > The old version checks, if find_next_zero_bit returns -1, the new
> > > version doesn't do this.
> > > Is this intended and can find_next_zero_bit never fail?
> > > Hmm... but in the worst case it should only loop forever if I'm
> > > reading this right (index = -1 => for-loop counts from 0 to nr, if any
> > > bit is set it will jump to "again:" and if the next call to
> > > find_next_zero_bit also fails, its an endless loop)
>
> find_next_zero_bit returns -1?
>
> It seems that x86_64 doesn't.

I'm sorry. I didn't look into find_next_zero_bit, I only noted that
the old version did check for -1 and the new one didn't.
Obviously the old check was superfluous.

> POWER and SPARC64 IOMMUs use
> find_next_zero_bit too but both doesn't check if find_next_zero_bit
> returns -1. If find_next_zero_bit fails, it returns size. So it
> doesn't leads to an endless loop.

Yes, this can't happen. It was a wrong assumption on my part.

> But this patch has other bugs that break POWER IOMMUs.
>
> If you use the IOMMUs on POWER, please try the following patch:

I'm using CONFIG_GART_IOMMU=y on x86_64.

> http://www.mail-archive.com/[email protected]/msg12702.html

I also noted the line "index = (index + align_mask) & ~align_mask;" in
iommu_area_alloc() and didn't understand what this was trying to do
and how this should work, but as arch/x86/kernel/pci-gart_64.c always
uses 0 as align_mask I just ignored it.

I will applie your patch and see if this hunk from
find_next_zero_area() makes a difference:

end = index + nr;
- if (end > size)
+ if (end >= size)
return -1;
- for (i = index + 1; i < end; i++) {
+ for (i = index; i < end; i++) {
if (test_bit(i, map)) {

Torsten

2008-01-06 11:23:57

by FUJITA Tomonori

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

On Sun, 6 Jan 2008 11:41:10 +0100
"Torsten Kaiser" <[email protected]> wrote:

> On Jan 6, 2008 4:28 AM, FUJITA Tomonori <[email protected]> wrote:
> > On Sat, 5 Jan 2008 17:25:24 -0800
> > Andrew Morton <[email protected]> wrote:
> > > On Sat, 5 Jan 2008 23:10:17 +0100 "Torsten Kaiser" <[email protected]> wrote:
> > > > But the cause of my mail is the following question:
> > > > Regarding my "iommu-sg-merging-patches are new in -rc3-mm and could be
> > > > the cause"-suspicion I looked at these patches and came across these
> > > > hunks:
> > > >
> > > > This is removed from arch/x86/lib/bitstr_64.c:
> > > > -/* Find string of zero bits in a bitmap */
> > > > -unsigned long
> > > > -find_next_zero_string(unsigned long *bitmap, long start, long nbits, int len)
> > > > -{
> > > > - unsigned long n, end, i;
> > > > -
> > > > - again:
> > > > - n = find_next_zero_bit(bitmap, nbits, start);
> > > > - if (n == -1)
> > > > - return -1;
> > > > -
> > > > - /* could test bitsliced, but it's hardly worth it */
> > > > - end = n+len;
> > > > - if (end > nbits)
> > > > - return -1;
> > > > - for (i = n+1; i < end; i++) {
> > > > - if (test_bit(i, bitmap)) {
> > > > - start = i+1;
> > > > - goto again;
> > > > - }
> > > > - }
> > > > - return n;
> > > > -}
> > > >
> > > > This is added to lib/iommu-helper.c:
> > > > +static unsigned long find_next_zero_area(unsigned long *map,
> > > > + unsigned long size,
> > > > + unsigned long start,
> > > > + unsigned int nr)
> > > > +{
> > > > + unsigned long index, end, i;
> > > > +again:
> > > > + index = find_next_zero_bit(map, size, start);
> > > > + end = index + nr;
> > > > + if (end > size)
> > > > + return -1;
> > > > + for (i = index + 1; i < end; i++) {
> > > > + if (test_bit(i, map)) {
> > > > + start = i+1;
> > > > + goto again;
> > > > + }
> > > > + }
> > > > + return index;
> > > > +}
> > > >
> > > > The old version checks, if find_next_zero_bit returns -1, the new
> > > > version doesn't do this.
> > > > Is this intended and can find_next_zero_bit never fail?
> > > > Hmm... but in the worst case it should only loop forever if I'm
> > > > reading this right (index = -1 => for-loop counts from 0 to nr, if any
> > > > bit is set it will jump to "again:" and if the next call to
> > > > find_next_zero_bit also fails, its an endless loop)
> >
> > find_next_zero_bit returns -1?
> >
> > It seems that x86_64 doesn't.
>
> I'm sorry. I didn't look into find_next_zero_bit, I only noted that
> the old version did check for -1 and the new one didn't.
> Obviously the old check was superfluous.
>
> > POWER and SPARC64 IOMMUs use
> > find_next_zero_bit too but both doesn't check if find_next_zero_bit
> > returns -1. If find_next_zero_bit fails, it returns size. So it
> > doesn't leads to an endless loop.
>
> Yes, this can't happen. It was a wrong assumption on my part.
>
> > But this patch has other bugs that break POWER IOMMUs.
> >
> > If you use the IOMMUs on POWER, please try the following patch:
>
> I'm using CONFIG_GART_IOMMU=y on x86_64.
>
> > http://www.mail-archive.com/[email protected]/msg12702.html
>
> I also noted the line "index = (index + align_mask) & ~align_mask;" in
> iommu_area_alloc() and didn't understand what this was trying to do
> and how this should work, but as arch/x86/kernel/pci-gart_64.c always
> uses 0 as align_mask I just ignored it.

Yeah, it's for only POWER IOMMUs. It's meaningless for gart and
calgary IOMMUs.


> I will applie your patch and see if this hunk from
> find_next_zero_area() makes a difference:
>
> end = index + nr;
> - if (end > size)
> + if (end >= size)
> return -1;
> - for (i = index + 1; i < end; i++) {
> + for (i = index; i < end; i++) {
> if (test_bit(i, map)) {

The patch should not make a difference for X86_64.

Can you try the patch to revert my IOMMU changes?

http://www.mail-archive.com/[email protected]/msg12694.html

2008-01-06 11:35:47

by Torsten Kaiser

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

On Jan 6, 2008 12:23 PM, FUJITA Tomonori <[email protected]> wrote:
> On Sun, 6 Jan 2008 11:41:10 +0100
> "Torsten Kaiser" <[email protected]> wrote:
> > I will applie your patch and see if this hunk from
> > find_next_zero_area() makes a difference:
> >
> > end = index + nr;
> > - if (end > size)
> > + if (end >= size)
> > return -1;
> > - for (i = index + 1; i < end; i++) {
> > + for (i = index; i < end; i++) {
> > if (test_bit(i, map)) {
>
> The patch should not make a difference for X86_64.

Hmm...
arch/x86/kernel/pci-gart_64.c:
alloc_iommu() calls iommu_area_alloc()
lib/iommu-helper.c:
iommu_area_alloc() calls find_next_zero_area()
-> so the above code should be called even on X86_64

And the change in the for loop means that 'index' will now be tested,
but with the old code it was not.

And double using something does fit with the errors I'm seeing...

> Can you try the patch to revert my IOMMU changes?
>
> http://www.mail-archive.com/[email protected]/msg12694.html

Testing for this bug is a little bit slow, as I'm compiling ~100
packages trying to trigger it.
If my current testrun with the patch from
http://www.mail-archive.com/[email protected]/msg12702.html
crashes, I will revert the hole IOMMU changes with above patch and try again.

Torsten

2008-01-06 13:34:18

by FUJITA Tomonori

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

On Sun, 6 Jan 2008 12:35:35 +0100
"Torsten Kaiser" <[email protected]> wrote:

> On Jan 6, 2008 12:23 PM, FUJITA Tomonori <[email protected]> wrote:
> > On Sun, 6 Jan 2008 11:41:10 +0100
> > "Torsten Kaiser" <[email protected]> wrote:
> > > I will applie your patch and see if this hunk from
> > > find_next_zero_area() makes a difference:
> > >
> > > end = index + nr;
> > > - if (end > size)
> > > + if (end >= size)
> > > return -1;
> > > - for (i = index + 1; i < end; i++) {
> > > + for (i = index; i < end; i++) {
> > > if (test_bit(i, map)) {
> >
> > The patch should not make a difference for X86_64.
>
> Hmm...
> arch/x86/kernel/pci-gart_64.c:
> alloc_iommu() calls iommu_area_alloc()
> lib/iommu-helper.c:
> iommu_area_alloc() calls find_next_zero_area()
> -> so the above code should be called even on X86_64

Oops, I meant that the patch fixes the align allocation (non zero
align_mask case). X86_64 doesn't use the align allocation.


> And the change in the for loop means that 'index' will now be tested,
> but with the old code it was not.

With the old code, 'index' is tested by find_next_zero_bit.

With the new code and non zero align_mask case, 'index' is not tested
by find_next_zero_bit. So test_bit needs to start with 'index'.

So If I understand the correctly, this patch should not make a
difference for x86_64 though I might miss something.


> And double using something does fit with the errors I'm seeing...
>
> > Can you try the patch to revert my IOMMU changes?
> >
> > http://www.mail-archive.com/[email protected]/msg12694.html
>
> Testing for this bug is a little bit slow, as I'm compiling ~100
> packages trying to trigger it.
> If my current testrun with the patch from
> http://www.mail-archive.com/[email protected]/msg12702.html
> crashes, I will revert the hole IOMMU changes with above patch and try again.

Thanks for testing,

2008-01-06 14:51:52

by Jarek Poplawski

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

On Sun, Jan 06, 2008 at 11:30:48AM +0100, Torsten Kaiser wrote:
...
> I think this bug is highly timing dependent. Its not always the same
> package that dies and as this is a SMP system I would guess two CPUs
> using the same data will trigger this.
> And using the poison-option will definitily slow the system down and
> mess up the timings.

Of course it looks like using the same data, but it seems there is no
reason to think it needs the same time: e.g. some timer or workqueue
could retrigger after it's supposed to be killed. Any additional
debugging/poisonning might help to see it earlier, so this should be
safer for your system, but, most probably this would show data from
the damaged side, so not necessarily very helpful.

> What also speaks against the 'safer' offsets is, that after adding my
> notfreed-byte to skbuff the bug still triggered in the same way.

We are not even sure skbuffs were directly affected by this or they
were incorrectly freed because of other structures beeing damaged?

IMHO, e.g. starting your system with limited memory should cause
faster memory reclaiming, and thus more often triggering of these bugs,
but of course I can be wrong.

Jarek P.

2008-01-06 20:03:55

by Torsten Kaiser

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

On Jan 6, 2008 2:33 PM, FUJITA Tomonori <[email protected]> wrote:
> On Sun, 6 Jan 2008 12:35:35 +0100
> "Torsten Kaiser" <[email protected]> wrote:
> > On Jan 6, 2008 12:23 PM, FUJITA Tomonori <[email protected]> wrote:
> > > On Sun, 6 Jan 2008 11:41:10 +0100
> > > "Torsten Kaiser" <[email protected]> wrote:
> > > > I will applie your patch and see if this hunk from
> > > > find_next_zero_area() makes a difference:
> > > >
> > > > end = index + nr;
> > > > - if (end > size)
> > > > + if (end >= size)
> > > > return -1;

-> that might still have made a difference, but ...

> > > > - for (i = index + 1; i < end; i++) {
> > > > + for (i = index; i < end; i++) {

... as you say below, the test for the index position is only needed
if index is modified after find_next_zero_bit().

> > > > if (test_bit(i, map)) {
> > >
> > > The patch should not make a difference for X86_64.
> >
> > Hmm...
> > arch/x86/kernel/pci-gart_64.c:
> > alloc_iommu() calls iommu_area_alloc()
> > lib/iommu-helper.c:
> > iommu_area_alloc() calls find_next_zero_area()
> > -> so the above code should be called even on X86_64
>
> Oops, I meant that the patch fixes the align allocation (non zero
> align_mask case). X86_64 doesn't use the align allocation.
>
>
> > And the change in the for loop means that 'index' will now be tested,
> > but with the old code it was not.
>
> With the old code, 'index' is tested by find_next_zero_bit.
>
> With the new code and non zero align_mask case, 'index' is not tested
> by find_next_zero_bit. So test_bit needs to start with 'index'.
>
> So If I understand the correctly, this patch should not make a
> difference for x86_64 though I might miss something.

You did not miss anything.
After 18 packages my system crashed again.

> > And double using something does fit with the errors I'm seeing...
> >
> > > Can you try the patch to revert my IOMMU changes?
> > >
> > > http://www.mail-archive.com/[email protected]/msg12694.html
> >
> > Testing for this bug is a little bit slow, as I'm compiling ~100
> > packages trying to trigger it.
> > If my current testrun with the patch from
> > http://www.mail-archive.com/[email protected]/msg12702.html
> > crashes, I will revert the hole IOMMU changes with above patch and try again.
>
> Thanks for testing,

OK, I'm still testing this, but after 95 completed packages I'm rather
certain that reverting the IOMMU changes with this patch fixes my
problem.
I didn't have time to look more into this, so I can't offer any
concrete ideas where the bug is.

If you send more patches, I'm willing to test them, but it might take
some more time during the next week.

Thanks for looking into this.

Torsten

2008-01-07 01:18:39

by David Miller

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1: sparc64: undefined reference to `vmemmap_table'

From: Andrew Morton <[email protected]>
Date: Sun, 6 Jan 2008 02:15:54 -0800

> On Sun, 6 Jan 2008 11:03:02 +0100 Mariusz Kozlowski <[email protected]> wrote:
>
> > This is from allnoconfig on sparc64:
> >
> > LD .tmp_vmlinux1
> > arch/sparc64/kernel/head.o: In function `kvmap_vmemmap':
> > (.text+0x34ec): undefined reference to `vmemmap_table'
> > arch/sparc64/kernel/head.o: In function `kvmap_vmemmap':
> > (.text+0x34f4): undefined reference to `vmemmap_table'
>
> Happens in mainline too. Maybe arch/sparc64/kernel/ktlb.S needs to be
> taught about CONFIG_SPARSEMEM_VMEMMAP=n.

It's pointless to support this thing being off. If possible
I'd like a method to force it always to be enabled and I'll
look into doing that.

2008-01-07 06:18:06

by FUJITA Tomonori

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

On Sun, 6 Jan 2008 21:03:42 +0100
"Torsten Kaiser" <[email protected]> wrote:

> On Jan 6, 2008 2:33 PM, FUJITA Tomonori <[email protected]> wrote:
> > On Sun, 6 Jan 2008 12:35:35 +0100
> > "Torsten Kaiser" <[email protected]> wrote:
> > > On Jan 6, 2008 12:23 PM, FUJITA Tomonori <[email protected]> wrote:
> > > > On Sun, 6 Jan 2008 11:41:10 +0100
> > > > "Torsten Kaiser" <[email protected]> wrote:
> > > > > I will applie your patch and see if this hunk from
> > > > > find_next_zero_area() makes a difference:
> > > > >
> > > > > end = index + nr;
> > > > > - if (end > size)
> > > > > + if (end >= size)
> > > > > return -1;
>
> -> that might still have made a difference, but ...
>
> > > > > - for (i = index + 1; i < end; i++) {
> > > > > + for (i = index; i < end; i++) {
>
> ... as you say below, the test for the index position is only needed
> if index is modified after find_next_zero_bit().
>
> > > > > if (test_bit(i, map)) {
> > > >
> > > > The patch should not make a difference for X86_64.
> > >
> > > Hmm...
> > > arch/x86/kernel/pci-gart_64.c:
> > > alloc_iommu() calls iommu_area_alloc()
> > > lib/iommu-helper.c:
> > > iommu_area_alloc() calls find_next_zero_area()
> > > -> so the above code should be called even on X86_64
> >
> > Oops, I meant that the patch fixes the align allocation (non zero
> > align_mask case). X86_64 doesn't use the align allocation.
> >
> >
> > > And the change in the for loop means that 'index' will now be tested,
> > > but with the old code it was not.
> >
> > With the old code, 'index' is tested by find_next_zero_bit.
> >
> > With the new code and non zero align_mask case, 'index' is not tested
> > by find_next_zero_bit. So test_bit needs to start with 'index'.
> >
> > So If I understand the correctly, this patch should not make a
> > difference for x86_64 though I might miss something.
>
> You did not miss anything.
> After 18 packages my system crashed again.
>
> > > And double using something does fit with the errors I'm seeing...
> > >
> > > > Can you try the patch to revert my IOMMU changes?
> > > >
> > > > http://www.mail-archive.com/[email protected]/msg12694.html
> > >
> > > Testing for this bug is a little bit slow, as I'm compiling ~100
> > > packages trying to trigger it.
> > > If my current testrun with the patch from
> > > http://www.mail-archive.com/[email protected]/msg12702.html
> > > crashes, I will revert the hole IOMMU changes with above patch and try again.
> >
> > Thanks for testing,
>
> OK, I'm still testing this, but after 95 completed packages I'm rather
> certain that reverting the IOMMU changes with this patch fixes my
> problem.
> I didn't have time to look more into this, so I can't offer any
> concrete ideas where the bug is.
>
> If you send more patches, I'm willing to test them, but it might take
> some more time during the next week.

Can you try 2.6.24-rc7 + the IOMMU changes?

The patches are available at:

http://www.kernel.org/pub/linux/kernel/people/tomo/iommu/

Or if you prefer the git tree:

git://git.kernel.org/pub/scm/linux/kernel/git/tomo/linux-2.6-misc.git iommu-sg-fixes



I've looked at the changes to GART but they are straightforward and
don't look wrong...


Thanks,

2008-01-07 13:51:15

by Dhaval Giani

[permalink] [raw]
Subject: [PATCH -mm/x86] revert i386: handle an initrd in highmem (Was Re: 2.6.24-rc6-mm1)

Hi Andrew, Ingo, Thomas, Peter,

x86: revert i386: handle an initrd in highmem

The patch caused a failure while booting a kexec kernel.
(http://lkml.org/lkml/2008/1/7/42 has the bisect details.)

The following patch reverts it.

Signed-off-by: Dhaval Giani <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: H. Peter Anvin <[email protected]>
---
arch/x86/boot/header.S | 5 -
arch/x86/kernel/setup_32.c | 113 +++++++--------------------------------------
2 files changed, 19 insertions(+), 99 deletions(-)

Index: linux-2.6.24-rc6/arch/x86/boot/header.S
===================================================================
--- linux-2.6.24-rc6.orig/arch/x86/boot/header.S
+++ linux-2.6.24-rc6/arch/x86/boot/header.S
@@ -195,13 +195,10 @@ cmd_line_ptr: .long 0 # (Header version
# can be located anywhere in
# low memory 0x10000 or higher.

-ramdisk_max: .long 0x7fffffff
+ramdisk_max: .long (-__PAGE_OFFSET-(512 << 20)-1) & 0x7fffffff
# (Header version 0x0203 or later)
# The highest safe address for
# the contents of an initrd
- # The current kernel allows up to 4 GB,
- # but leave it at 2 GB to avoid
- # possible bootloader bugs.

kernel_alignment: .long CONFIG_PHYSICAL_ALIGN #physical addr alignment
#required for protected mode
Index: linux-2.6.24-rc6/arch/x86/kernel/setup_32.c
===================================================================
--- linux-2.6.24-rc6.orig/arch/x86/kernel/setup_32.c
+++ linux-2.6.24-rc6/arch/x86/kernel/setup_32.c
@@ -583,95 +583,6 @@ static void __init relocate_initrd(void)

#endif /* CONFIG_BLK_DEV_INITRD */

-#ifdef CONFIG_BLK_DEV_INITRD
-
-static bool do_relocate_initrd = false;
-
-static void __init reserve_initrd(void)
-{
- unsigned long ramdisk_image = boot_params.hdr.ramdisk_image;
- unsigned long ramdisk_size = boot_params.hdr.ramdisk_size;
- unsigned long ramdisk_end = ramdisk_image + ramdisk_size;
- unsigned long end_of_lowmem = max_low_pfn << PAGE_SHIFT;
- unsigned long ramdisk_here;
-
- if (ramdisk_end < ramdisk_image) {
- printk(KERN_ERR "initrd wraps around end of memory\n"
- KERN_ERR "disabling initrd\n");
- initrd_start = 0;
- return;
- }
- if (ramdisk_size >= end_of_lowmem/2) {
- printk(KERN_ERR "initrd too large to handle\n"
- KERN_ERR "disabling initrd\n");
- initrd_start = 0;
- return;
- }
- if (ramdisk_end <= end_of_lowmem) {
- /* All in lowmem, easy case */
- reserve_bootmem(ramdisk_image, ramdisk_size);
- initrd_start = ramdisk_image + PAGE_OFFSET;
- initrd_end = initrd_start+ramdisk_size;
- return;
- }
-
- /* We need to move the initrd down into lowmem */
- ramdisk_here = (end_of_lowmem - ramdisk_size) & PAGE_MASK;
-
- /* Note: this includes all the lowmem currently occupied by
- the initrd, we rely on that fact to keep the data intact. */
- reserve_bootmem(ramdisk_here, ramdisk_size);
- initrd_start = ramdisk_here + PAGE_OFFSET;
- initrd_end = initrd_start + ramdisk_size;
-
- do_relocate_initrd = true;
-}
-
-#define MAX_MAP_CHUNK (NR_FIX_BTMAPS << PAGE_SHIFT)
-
-static void __init relocate_initrd(void)
-{
- unsigned long ramdisk_image = boot_params.hdr.ramdisk_image;
- unsigned long ramdisk_size = boot_params.hdr.ramdisk_size;
- unsigned long end_of_lowmem = max_low_pfn << PAGE_SHIFT;
- unsigned long ramdisk_here;
- unsigned long slop, clen, mapaddr;
- char *p, *q;
-
- if (!do_relocate_initrd)
- return; /* Nothing to do here... */
-
- ramdisk_here = initrd_start - PAGE_OFFSET;
- q = (char *)initrd_start;
-
- /* Copy any lowmem portion of the initrd */
- if (ramdisk_image < end_of_lowmem) {
- clen = end_of_lowmem - ramdisk_image;
- p = (char *)__va(ramdisk_image);
- memcpy(q, p, clen);
- q += clen;
- ramdisk_image += clen;
- ramdisk_size -= clen;
- }
-
- /* Copy the highmem portion of the initrd */
- while (ramdisk_size) {
- slop = ramdisk_image & ~PAGE_MASK;
- clen = ramdisk_size;
- if (clen > MAX_MAP_CHUNK-slop)
- clen = MAX_MAP_CHUNK-slop;
- mapaddr = ramdisk_image & PAGE_MASK;
- p = bt_ioremap(mapaddr, clen+slop);
- memcpy(q, p+slop, clen);
- bt_iounmap(p, clen+slop);
- q += clen;
- ramdisk_image += clen;
- ramdisk_size -= clen;
- }
-}
-
-#endif /* CONFIG_BLK_DEV_INITRD */
-
void __init setup_bootmem_allocator(void)
{
unsigned long bootmap_size;
@@ -730,8 +641,24 @@ void __init setup_bootmem_allocator(void
#endif
numa_kva_reserve();
#ifdef CONFIG_BLK_DEV_INITRD
- if (boot_params.hdr.type_of_loader && boot_params.hdr.ramdisk_image)
- reserve_initrd();
+ if (boot_params.hdr.type_of_loader && boot_params.hdr.ramdisk_image) {
+ unsigned long ramdisk_image = boot_params.hdr.ramdisk_image;
+ unsigned long ramdisk_size = boot_params.hdr.ramdisk_size;
+ unsigned long ramdisk_end = ramdisk_image + ramdisk_size;
+ unsigned long end_of_lowmem = max_low_pfn << PAGE_SHIFT;
+
+ if (ramdisk_end <= end_of_lowmem) {
+ reserve_bootmem(ramdisk_image, ramdisk_size,
+ BOOTMEM_DEFAULT);
+ initrd_start = ramdisk_image + PAGE_OFFSET;
+ initrd_end = initrd_start+ramdisk_size;
+ } else {
+ printk(KERN_ERR "initrd extends beyond end of memory "
+ "(0x%08lx > 0x%08lx)\ndisabling initrd\n",
+ ramdisk_end, end_of_lowmem);
+ initrd_start = 0;
+ }
+ }
#endif
reserve_crashkernel();
}
@@ -890,10 +817,6 @@ void __init setup_arch(char **cmdline_p)
relocate_initrd();
#endif

-#ifdef CONFIG_BLK_DEV_INITRD
- relocate_initrd();
-#endif
-
dmi_scan_machine();

io_delay_init();

--
regards
Dhaval

2008-01-07 13:54:50

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH -mm/x86] revert i386: handle an initrd in highmem (Was Re: 2.6.24-rc6-mm1)

On Mon, 7 Jan 2008, Dhaval Giani wrote:

> Hi Andrew, Ingo, Thomas, Peter,
>
> x86: revert i386: handle an initrd in highmem
>
> The patch caused a failure while booting a kexec kernel.
> (http://lkml.org/lkml/2008/1/7/42 has the bisect details.)
>
> The following patch reverts it.
>
> Signed-off-by: Dhaval Giani <[email protected]>

Thanks for tracking this down. I'll pull the patch from the x86 git
tree as well.

tglx

2008-01-07 14:56:43

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH -mm/x86] revert i386: handle an initrd in highmem (Was Re: 2.6.24-rc6-mm1)


* Thomas Gleixner <[email protected]> wrote:

> On Mon, 7 Jan 2008, Dhaval Giani wrote:
>
> > Hi Andrew, Ingo, Thomas, Peter,
> >
> > x86: revert i386: handle an initrd in highmem
> >
> > The patch caused a failure while booting a kexec kernel.
> > (http://lkml.org/lkml/2008/1/7/42 has the bisect details.)
> >
> > The following patch reverts it.
> >
> > Signed-off-by: Dhaval Giani <[email protected]>
>
> Thanks for tracking this down. I'll pull the patch from the x86 git
> tree as well.

Dhaval, how about the other problem you had - do you have any guess
what it might be related to?

i'm also wondering - what would be the easiest way to integrate kexec
into an automated test environment. If i have a bzImage kernel, is kexec
still supposed to work? Could i for example do a reboot into a new
(kexec-enabled) kernel via kexec in essence?

Ingo

2008-01-07 15:19:39

by Dhaval Giani

[permalink] [raw]
Subject: Re: [PATCH -mm/x86] revert i386: handle an initrd in highmem (Was Re: 2.6.24-rc6-mm1)

On Mon, Jan 07, 2008 at 03:56:09PM +0100, Ingo Molnar wrote:
>
> * Thomas Gleixner <[email protected]> wrote:
>
> > On Mon, 7 Jan 2008, Dhaval Giani wrote:
> >
> > > Hi Andrew, Ingo, Thomas, Peter,
> > >
> > > x86: revert i386: handle an initrd in highmem
> > >
> > > The patch caused a failure while booting a kexec kernel.
> > > (http://lkml.org/lkml/2008/1/7/42 has the bisect details.)
> > >
> > > The following patch reverts it.
> > >
> > > Signed-off-by: Dhaval Giani <[email protected]>
> >
> > Thanks for tracking this down. I'll pull the patch from the x86 git
> > tree as well.
>
> Dhaval, how about the other problem you had - do you have any guess
> what it might be related to?
>

other problem? The load_balance_monitor one? (We are still looking into
that one, just seems that se (as usual :) ) is turning out to be null).

> i'm also wondering - what would be the easiest way to integrate kexec
> into an automated test environment. If i have a bzImage kernel, is kexec
> still supposed to work? Could i for example do a reboot into a new
> (kexec-enabled) kernel via kexec in essence?
>

Yes, I use a bzImage kernel to reboot using kexec. I use a script which
just sets it up for me. (I can send it to you separately).

--
regards,
Dhaval

2008-01-07 16:24:53

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH -mm/x86] revert i386: handle an initrd in highmem (Was Re: 2.6.24-rc6-mm1)

On Mon, 7 Jan 2008 15:56:09 +0100 Ingo Molnar wrote:

>
> * Thomas Gleixner <[email protected]> wrote:
>
> > On Mon, 7 Jan 2008, Dhaval Giani wrote:
> >
> > > Hi Andrew, Ingo, Thomas, Peter,
> > >
> > > x86: revert i386: handle an initrd in highmem
> > >
> > > The patch caused a failure while booting a kexec kernel.
> > > (http://lkml.org/lkml/2008/1/7/42 has the bisect details.)
> > >
> > > The following patch reverts it.
> > >
> > > Signed-off-by: Dhaval Giani <[email protected]>
> >
> > Thanks for tracking this down. I'll pull the patch from the x86 git
> > tree as well.
>
> Dhaval, how about the other problem you had - do you have any guess
> what it might be related to?
>
> i'm also wondering - what would be the easiest way to integrate kexec
> into an automated test environment. If i have a bzImage kernel, is kexec
> still supposed to work? Could i for example do a reboot into a new
> (kexec-enabled) kernel via kexec in essence?

My daily/nightly kernel test runs use kexec to boot the test kernel.
Well, did thru 2.6.24-rc6-git9, but they fail after that.
Hopefully this patch fixes things.


---
~Randy

2008-01-07 16:33:14

by Dhaval Giani

[permalink] [raw]
Subject: Re: [PATCH -mm/x86] revert i386: handle an initrd in highmem (Was Re: 2.6.24-rc6-mm1)

On Mon, Jan 07, 2008 at 08:22:37AM -0800, Randy Dunlap wrote:
> On Mon, 7 Jan 2008 15:56:09 +0100 Ingo Molnar wrote:
>
> >
> > * Thomas Gleixner <[email protected]> wrote:
> >
> > > On Mon, 7 Jan 2008, Dhaval Giani wrote:
> > >
> > > > Hi Andrew, Ingo, Thomas, Peter,
> > > >
> > > > x86: revert i386: handle an initrd in highmem
> > > >
> > > > The patch caused a failure while booting a kexec kernel.
> > > > (http://lkml.org/lkml/2008/1/7/42 has the bisect details.)
> > > >
> > > > The following patch reverts it.
> > > >
> > > > Signed-off-by: Dhaval Giani <[email protected]>
> > >
> > > Thanks for tracking this down. I'll pull the patch from the x86 git
> > > tree as well.
> >
> > Dhaval, how about the other problem you had - do you have any guess
> > what it might be related to?
> >
> > i'm also wondering - what would be the easiest way to integrate kexec
> > into an automated test environment. If i have a bzImage kernel, is kexec
> > still supposed to work? Could i for example do a reboot into a new
> > (kexec-enabled) kernel via kexec in essence?
>
> My daily/nightly kernel test runs use kexec to boot the test kernel.
> Well, did thru 2.6.24-rc6-git9, but they fail after that.
> Hopefully this patch fixes things.
>

hmmm. I don't think so. This revert is from the x86 git tree (-mm) (I think
targetted for 2.6.25). Probably a bisect might help there.

--
regards,
Dhaval

2008-01-07 17:10:28

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH -mm/x86] revert i386: handle an initrd in highmem (Was Re: 2.6.24-rc6-mm1)

On Mon, 7 Jan 2008, Randy Dunlap wrote:
> On Mon, 7 Jan 2008 15:56:09 +0100 Ingo Molnar wrote:
> > i'm also wondering - what would be the easiest way to integrate kexec
> > into an automated test environment. If i have a bzImage kernel, is kexec
> > still supposed to work? Could i for example do a reboot into a new
> > (kexec-enabled) kernel via kexec in essence?
>
> My daily/nightly kernel test runs use kexec to boot the test kernel.
> Well, did thru 2.6.24-rc6-git9, but they fail after that.
> Hopefully this patch fixes things.

The patch in question is not in mainline, it's in the mm branch of
x86.git. So the problem in mainline is a different one. Could you
bisect it please ?

Thanks,

tglx

2008-01-07 22:24:38

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH -mm/x86] revert i386: handle an initrd in highmem (Was Re: 2.6.24-rc6-mm1)

On Mon, 7 Jan 2008 17:50:49 +0100 (CET) Thomas Gleixner wrote:

> On Mon, 7 Jan 2008, Randy Dunlap wrote:
> > On Mon, 7 Jan 2008 15:56:09 +0100 Ingo Molnar wrote:
> > > i'm also wondering - what would be the easiest way to integrate kexec
> > > into an automated test environment. If i have a bzImage kernel, is kexec
> > > still supposed to work? Could i for example do a reboot into a new
> > > (kexec-enabled) kernel via kexec in essence?
> >
> > My daily/nightly kernel test runs use kexec to boot the test kernel.
> > Well, did thru 2.6.24-rc6-git9, but they fail after that.
> > Hopefully this patch fixes things.
>
> The patch in question is not in mainline, it's in the mm branch of
> x86.git. So the problem in mainline is a different one. Could you
> bisect it please ?

Ugh. As happens during demos, this (kexec failure) won't happen for me
when I want it to. I'll keep an eye out for it...


---
~Randy

2008-01-08 16:01:10

by Ingo Molnar

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


* FUJITA Tomonori <[email protected]> wrote:

> The patches are available at:
>
> http://www.kernel.org/pub/linux/kernel/people/tomo/iommu/
>
> Or if you prefer the git tree:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/tomo/linux-2.6-misc.git
> iommu-sg-fixes

btw., these improvements to the IOMMU code are in -mm and will go into
v2.6.25, right? The changes look robust to me.

Ingo

2008-01-08 23:59:36

by FUJITA Tomonori

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

On Tue, 8 Jan 2008 16:59:48 +0100
Ingo Molnar <[email protected]> wrote:

>
> * FUJITA Tomonori <[email protected]> wrote:
>
> > The patches are available at:
> >
> > http://www.kernel.org/pub/linux/kernel/people/tomo/iommu/
> >
> > Or if you prefer the git tree:
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/tomo/linux-2.6-misc.git
> > iommu-sg-fixes
>
> btw., these improvements to the IOMMU code are in -mm and will go into
> v2.6.25, right? The changes look robust to me.

Thanks, they have been in -mm though the iommu helper fix hasn't
yet. Balbir Singh found the bug in 2.6.24-rc6-mm1. I've just check
mmotm and found that the IOMMU helper patch doesn't include the fix.

Andrew, can you replace

iommu-sg-add-iommu-helper-functions-for-the-free-area-management.patch

with the updated patch:

http://ozlabs.org/pipermail/linuxppc-dev/2007-December/048997.html

For your convenience I've attached the updated patch too.

Hopefully, they will go into v2.6.25. At least, I hope that the
patches (0001-0011) that make the IOMMUs respect segment size limits
when merging sg lists will be merged. They are simple and I got ACKs
on POWER and PARISC.


Thanks,

=
From: FUJITA Tomonori <[email protected]>
Subject: [PATCH] add IOMMU helper functions for the free area management

This adds IOMMU helper functions for the free area management. These
functions take care of LLD's segment boundary limit for IOMMUs. They would be
useful for IOMMUs that use bitmap for the free area management.

Signed-off-by: FUJITA Tomonori <[email protected]>
---
include/linux/iommu-helper.h | 7 ++++
lib/Makefile | 1 +
lib/iommu-helper.c | 80 ++++++++++++++++++++++++++++++++++++++++++
3 files changed, 88 insertions(+), 0 deletions(-)
create mode 100644 include/linux/iommu-helper.h
create mode 100644 lib/iommu-helper.c

diff --git a/include/linux/iommu-helper.h b/include/linux/iommu-helper.h
new file mode 100644
index 0000000..4dd4c04
--- /dev/null
+++ b/include/linux/iommu-helper.h
@@ -0,0 +1,7 @@
+extern unsigned long iommu_area_alloc(unsigned long *map, unsigned long size,
+ unsigned long start, unsigned int nr,
+ unsigned long shift,
+ unsigned long boundary_size,
+ unsigned long align_mask);
+extern void iommu_area_free(unsigned long *map, unsigned long start,
+ unsigned int nr);
diff --git a/lib/Makefile b/lib/Makefile
index b6793ed..0e7383f 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -64,6 +64,7 @@ obj-$(CONFIG_SMP) += percpu_counter.o
obj-$(CONFIG_AUDIT_GENERIC) += audit.o

obj-$(CONFIG_SWIOTLB) += swiotlb.o
+obj-$(CONFIG_IOMMU_HELPER) += iommu-helper.o
obj-$(CONFIG_FAULT_INJECTION) += fault-inject.o

lib-$(CONFIG_GENERIC_BUG) += bug.o
diff --git a/lib/iommu-helper.c b/lib/iommu-helper.c
new file mode 100644
index 0000000..495575a
--- /dev/null
+++ b/lib/iommu-helper.c
@@ -0,0 +1,80 @@
+/*
+ * IOMMU helper functions for the free area management
+ */
+
+#include <linux/module.h>
+#include <linux/bitops.h>
+
+static unsigned long find_next_zero_area(unsigned long *map,
+ unsigned long size,
+ unsigned long start,
+ unsigned int nr,
+ unsigned long align_mask)
+{
+ unsigned long index, end, i;
+again:
+ index = find_next_zero_bit(map, size, start);
+
+ /* Align allocation */
+ index = (index + align_mask) & ~align_mask;
+
+ end = index + nr;
+ if (end >= size)
+ return -1;
+ for (i = index; i < end; i++) {
+ if (test_bit(i, map)) {
+ start = i+1;
+ goto again;
+ }
+ }
+ return index;
+}
+
+static inline void set_bit_area(unsigned long *map, unsigned long i,
+ int len)
+{
+ unsigned long end = i + len;
+ while (i < end) {
+ __set_bit(i, map);
+ i++;
+ }
+}
+
+static inline int is_span_boundary(unsigned int index, unsigned int nr,
+ unsigned long shift,
+ unsigned long boundary_size)
+{
+ shift = (shift + index) & (boundary_size - 1);
+ return shift + nr > boundary_size;
+}
+
+unsigned long iommu_area_alloc(unsigned long *map, unsigned long size,
+ unsigned long start, unsigned int nr,
+ unsigned long shift, unsigned long boundary_size,
+ unsigned long align_mask)
+{
+ unsigned long index;
+again:
+ index = find_next_zero_area(map, size, start, nr, align_mask);
+ if (index != -1) {
+ if (is_span_boundary(index, nr, shift, boundary_size)) {
+ /* we could do more effectively */
+ start = index + 1;
+ goto again;
+ }
+ set_bit_area(map, index, nr);
+ }
+ return index;
+}
+EXPORT_SYMBOL(iommu_area_alloc);
+
+void iommu_area_free(unsigned long *map, unsigned long start, unsigned int nr)
+{
+ unsigned long end = start + nr;
+
+ while (start < end) {
+ __clear_bit(start, map);
+ start++;
+ }
+}
+EXPORT_SYMBOL(iommu_area_free);
--
1.5.3.4

2008-01-09 00:29:24

by Andrew Morton

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

On Wed, 09 Jan 2008 08:57:53 +0900
FUJITA Tomonori <[email protected]> wrote:

> Andrew, can you replace
>
> iommu-sg-add-iommu-helper-functions-for-the-free-area-management.patch
>
> with the updated patch:
>
> http://ozlabs.org/pipermail/linuxppc-dev/2007-December/048997.html
>
> For your convenience I've attached the updated patch too.

<generates the incremental>


> --- a/lib/iommu-helper.c~a
> +++ a/lib/iommu-helper.c
> @@ -8,15 +8,20 @@
> static unsigned long find_next_zero_area(unsigned long *map,
> unsigned long size,
> unsigned long start,
> - unsigned int nr)
> + unsigned int nr,
> + unsigned long align_mask)
> {
> unsigned long index, end, i;
> again:
> index = find_next_zero_bit(map, size, start);
> +
> + /* Align allocation */
> + index = (index + align_mask) & ~align_mask;

The ALIGN() macro is the approved way of doing this.

(I don't think ALIGN adds much value really, especially given that you've
commented what's going on, but I guess it does make reviewing and reading a
little easier).


> end = index + nr;
> - if (end > size)
> + if (end >= size)
> return -1;
> - for (i = index + 1; i < end; i++) {
> + for (i = index; i < end; i++) {
> if (test_bit(i, map)) {
> start = i+1;
> goto again;
> @@ -50,9 +55,8 @@ unsigned long iommu_area_alloc(unsigned
> {
> unsigned long index;
> again:
> - index = find_next_zero_area(map, size, start, nr);
> + index = find_next_zero_area(map, size, start, nr, align_mask);
> if (index != -1) {
> - index = (index + align_mask) & ~align_mask;
> if (is_span_boundary(index, nr, shift, boundary_size)) {
> /* we could do more effectively */
> start = index + 1;
> _
>
>

2008-01-09 01:04:23

by FUJITA Tomonori

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

On Tue, 8 Jan 2008 16:27:39 -0800
Andrew Morton <[email protected]> wrote:

> On Wed, 09 Jan 2008 08:57:53 +0900
> FUJITA Tomonori <[email protected]> wrote:
>
> > Andrew, can you replace
> >
> > iommu-sg-add-iommu-helper-functions-for-the-free-area-management.patch
> >
> > with the updated patch:
> >
> > http://ozlabs.org/pipermail/linuxppc-dev/2007-December/048997.html
> >
> > For your convenience I've attached the updated patch too.
>
> <generates the incremental>

Thanks for putting the fix to -mm.


> > --- a/lib/iommu-helper.c~a
> > +++ a/lib/iommu-helper.c
> > @@ -8,15 +8,20 @@
> > static unsigned long find_next_zero_area(unsigned long *map,
> > unsigned long size,
> > unsigned long start,
> > - unsigned int nr)
> > + unsigned int nr,
> > + unsigned long align_mask)
> > {
> > unsigned long index, end, i;
> > again:
> > index = find_next_zero_bit(map, size, start);
> > +
> > + /* Align allocation */
> > + index = (index + align_mask) & ~align_mask;
>
> The ALIGN() macro is the approved way of doing this.
>
> (I don't think ALIGN adds much value really, especially given that you've
> commented what's going on, but I guess it does make reviewing and reading a
> little easier).

Would be better to use __ALIGN_MASK? I can find only one user who
directly use __ALIGN_MASK. The POWER IOMMU calculates align_mask by
itself so it's easier to pass align_mask as an argument.

2008-01-09 01:08:44

by Andrew Morton

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

On Wed, 09 Jan 2008 09:54:45 +0900
FUJITA Tomonori <[email protected]> wrote:

> > > --- a/lib/iommu-helper.c~a
> > > +++ a/lib/iommu-helper.c
> > > @@ -8,15 +8,20 @@
> > > static unsigned long find_next_zero_area(unsigned long *map,
> > > unsigned long size,
> > > unsigned long start,
> > > - unsigned int nr)
> > > + unsigned int nr,
> > > + unsigned long align_mask)
> > > {
> > > unsigned long index, end, i;
> > > again:
> > > index = find_next_zero_bit(map, size, start);
> > > +
> > > + /* Align allocation */
> > > + index = (index + align_mask) & ~align_mask;
> >
> > The ALIGN() macro is the approved way of doing this.
> >
> > (I don't think ALIGN adds much value really, especially given that you've
> > commented what's going on, but I guess it does make reviewing and reading a
> > little easier).
>
> Would be better to use __ALIGN_MASK? I can find only one user who
> directly use __ALIGN_MASK. The POWER IOMMU calculates align_mask by
> itself so it's easier to pass align_mask as an argument.

ALIGN() should be OK - its aditional type coercion isn't useful in this
case but ALIGN() is the official interface.

I don't see any reason why vermilion.c had to reach for __ALIGN_MASK. I'll
switch it to ALIGN().

2008-01-09 08:58:48

by Jarek Poplawski

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

On Wed, Jan 09, 2008 at 08:57:53AM +0900, FUJITA Tomonori wrote:
...
> diff --git a/lib/iommu-helper.c b/lib/iommu-helper.c
> new file mode 100644
> index 0000000..495575a
> --- /dev/null
> +++ b/lib/iommu-helper.c
> @@ -0,0 +1,80 @@
> +/*
> + * IOMMU helper functions for the free area management
> + */
> +
> +#include <linux/module.h>
> +#include <linux/bitops.h>
> +
> +static unsigned long find_next_zero_area(unsigned long *map,
> + unsigned long size,
> + unsigned long start,
> + unsigned int nr,
> + unsigned long align_mask)
> +{
> + unsigned long index, end, i;
> +again:
> + index = find_next_zero_bit(map, size, start);
> +
> + /* Align allocation */
> + index = (index + align_mask) & ~align_mask;
> +
> + end = index + nr;
> + if (end >= size)
> + return -1;

This '>=' looks doubtful to me, e.g.:
map points to 0s only, size = 64, nr = 64,
we get: index = 0; end = 64;
and: return -1 ?!

Regards,
Jarek P.

2008-01-10 00:55:30

by FUJITA Tomonori

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

On Wed, 9 Jan 2008 10:04:42 +0100
Jarek Poplawski <[email protected]> wrote:

> On Wed, Jan 09, 2008 at 08:57:53AM +0900, FUJITA Tomonori wrote:
> ...
> > diff --git a/lib/iommu-helper.c b/lib/iommu-helper.c
> > new file mode 100644
> > index 0000000..495575a
> > --- /dev/null
> > +++ b/lib/iommu-helper.c
> > @@ -0,0 +1,80 @@
> > +/*
> > + * IOMMU helper functions for the free area management
> > + */
> > +
> > +#include <linux/module.h>
> > +#include <linux/bitops.h>
> > +
> > +static unsigned long find_next_zero_area(unsigned long *map,
> > + unsigned long size,
> > + unsigned long start,
> > + unsigned int nr,
> > + unsigned long align_mask)
> > +{
> > + unsigned long index, end, i;
> > +again:
> > + index = find_next_zero_bit(map, size, start);
> > +
> > + /* Align allocation */
> > + index = (index + align_mask) & ~align_mask;
> > +
> > + end = index + nr;
> > + if (end >= size)
> > + return -1;
>
> This '>=' looks doubtful to me, e.g.:
> map points to 0s only, size = 64, nr = 64,
> we get: index = 0; end = 64;
> and: return -1 ?!

You are right. I did it only because I didn't want to change the
original code (iommu_range_alloc in arch/powerpc/kernel/iommu.c). I
thought that there might be a mysterious reason for it so I let it
alone since it's tiny loss.

Thanks,

2008-01-12 01:05:45

by Greg KH

[permalink] [raw]
Subject: Re: 2.6.24-rc6-mm1 (driver core/sysfs)

On Mon, Dec 31, 2007 at 12:11:15PM -0800, Randy Dunlap wrote:
> On Sat, 22 Dec 2007 23:30:56 -0800 Andrew Morton wrote:
>
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc6/2.6.24-rc6-mm1/
>
>
> With CONFIG_BLOCK=n:
>
> LD drivers/block/built-in.o
> /local/linsrc/linux-2.6.24-rc6-mm1/drivers/base/core.c: In function 'device_add_class_symlinks':
> /local/linsrc/linux-2.6.24-rc6-mm1/drivers/base/core.c:707: error: 'part_type' undeclared (first use in this function)
> /local/linsrc/linux-2.6.24-rc6-mm1/drivers/base/core.c: In function 'device_remove_class_symlinks':
> /local/linsrc/linux-2.6.24-rc6-mm1/drivers/base/core.c:746: error: 'part_type' undeclared (first use in this function)
> make[3]: *** [drivers/base/core.o] Error 1
>
>
> and that is after fixing (in some sense) the first CONFIG_BLOCK=n
> problem with the patch below. Please test lots of configs.
> and/or use 'make randconfig' (automated, scripted, e.g., etc.).
> maybe check Documentation/SubmitChecklist. :)

Ingo seems to be saying that he has some kind of "automated" build
system to do this kind of checking. Ingo, did you ever post how you did
this anywhere? I have enough spare machines here that I should be able
to set up something to test my stuff this way easier than doing it by
hand all the time (as the above problem proves I do miss things :( )

> ---
>
> From: Randy Dunlap <[email protected]>
>
> Parts of driver core use blk_lookup_devt() when CONFIG_BLOCK=n,
> so provide an short inline version of it for that case.
>
> Signed-off-by: Randy Dunlap <[email protected]>

Thanks for this patch, I've merged it with the original block patch so
there is no regression along the way.

greg k-h

2008-01-14 16:12:19

by Ingo Molnar

[permalink] [raw]
Subject: [patch] auto-qa Kconfig


* Greg KH <[email protected]> wrote:

> > and that is after fixing (in some sense) the first CONFIG_BLOCK=n
> > problem with the patch below. Please test lots of configs. and/or
> > use 'make randconfig' (automated, scripted, e.g., etc.). maybe check
> > Documentation/SubmitChecklist. :)
>
> Ingo seems to be saying that he has some kind of "automated" build
> system to do this kind of checking. Ingo, did you ever post how you
> did this anywhere? I have enough spare machines here that I should be
> able to set up something to test my stuff this way easier than doing
> it by hand all the time (as the above problem proves I do miss things
> :( )

the crux of it is this patch:

http://redhat.com/~mingo/auto-qa-patches/Kconfig-qa.patch

(ontop of x86.git)

adjust your arch/x86/Kconfig.needed whitelist (should already work on
typical systems) and do a 'make randconfig'. Every config is supposed to
build and boot fine, including 'make allnoconfig' and 'make
allyesconfig'. And please let me know about any blacklist items as well.
(right now they are a bit hacky via a "depends on 0" line and a small
comment explaining why they are not suitable in a bzImage kernel.)

( the CONFIG_BOOTPARAM stuff is there to easily randomize boot options -
we frequently have regressions that only trigger with certain boot
option combinations. )

it's somewhat hackish in places. The rest of my scripts (to scp a new
kernel image, to reboot a testbox, etc.) tie in to my specific
environment quite closely and make no sense to be posted. (they are also
quite ugly)

Ingo

2008-01-15 22:13:38

by Pavel Machek

[permalink] [raw]
Subject: Re: [patch] auto-qa Kconfig

On Mon 2008-01-14 17:11:50, Ingo Molnar wrote:
>
> * Greg KH <[email protected]> wrote:
>
> > > and that is after fixing (in some sense) the first CONFIG_BLOCK=n
> > > problem with the patch below. Please test lots of configs. and/or
> > > use 'make randconfig' (automated, scripted, e.g., etc.). maybe check
> > > Documentation/SubmitChecklist. :)
> >
> > Ingo seems to be saying that he has some kind of "automated" build
> > system to do this kind of checking. Ingo, did you ever post how you
> > did this anywhere? I have enough spare machines here that I should be
> > able to set up something to test my stuff this way easier than doing
> > it by hand all the time (as the above problem proves I do miss things
> > :( )
>
> the crux of it is this patch:
>
> http://redhat.com/~mingo/auto-qa-patches/Kconfig-qa.patch
>
> (ontop of x86.git)
>
> adjust your arch/x86/Kconfig.needed whitelist (should already work on
> typical systems) and do a 'make randconfig'. Every config is supposed to
> build and boot fine, including 'make allnoconfig' and 'make
> allyesconfig'. And please let me know about any blacklist items as well.
> (right now they are a bit hacky via a "depends on 0" line and a small
> comment explaining why they are not suitable in a bzImage kernel.)

config X86_ELAN
bool "AMD Elan"
depends on X86_32
+
+ # dangerous to boot on non-Elan CPUs
+ depends on 0
+
help
Select this for an AMD Elan processor.


Hmmm... Most options like "support 386" are of "add support for 386,
but do not break support for pentium". ELAN etc seem to be
exceptions. Perhaps options that _take away_ functionality (like ELAN
-- takes ability to boot on normal 386) should be specifically marked
somehow?

depends on EXCLUSIVE_FEATURE

?

depends on NOT_A_FEATURE

?
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2008-01-25 21:06:39

by Torsten Kaiser

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

Sorry for the *really* late answer, but I did not have any time to do
linux things the last weeks. :-(

On Jan 7, 2008 7:16 AM, FUJITA Tomonori <[email protected]> wrote:
> On Sun, 6 Jan 2008 21:03:42 +0100
> "Torsten Kaiser" <[email protected]> wrote:
> > On Jan 6, 2008 2:33 PM, FUJITA Tomonori <[email protected]> wrote:
> > > On Sun, 6 Jan 2008 12:35:35 +0100
> > > "Torsten Kaiser" <[email protected]> wrote:
> > > > On Jan 6, 2008 12:23 PM, FUJITA Tomonori <[email protected]> wrote:
> > > > And double using something does fit with the errors I'm seeing...
> > > >
> > > > > Can you try the patch to revert my IOMMU changes?
> > > > >
> > > > > http://www.mail-archive.com/[email protected]/msg12694.html

-> This is the revert-patch I'm talking about later

> > > > Testing for this bug is a little bit slow, as I'm compiling ~100
> > > > packages trying to trigger it.
> > > > If my current testrun with the patch from
> > > > http://www.mail-archive.com/[email protected]/msg12702.html
> > > > crashes, I will revert the hole IOMMU changes with above patch and try again.
> > >
> > > Thanks for testing,
> >
> > OK, I'm still testing this, but after 95 completed packages I'm rather
> > certain that reverting the IOMMU changes with this patch fixes my
> > problem.
> > I didn't have time to look more into this, so I can't offer any
> > concrete ideas where the bug is.

Until my last mail from 7. Jan this was true, that I was not able to
crash 2.6.24-rc6-mm1 with above patch.
But after testing 2.6.24-rc7 with only the IOMMU changes applied it
did crash once again.

After looking at the patch that seems rather expected as it only
touches powerpc code.
(I only looked at its diffstat after testing it, so I was not aware of
that fact during testing)

> > If you send more patches, I'm willing to test them, but it might take
> > some more time during the next week.
>
> Can you try 2.6.24-rc7 + the IOMMU changes?
>
> The patches are available at:
>
> http://www.kernel.org/pub/linux/kernel/people/tomo/iommu/
>
> Or if you prefer the git tree:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/tomo/linux-2.6-misc.git iommu-sg-fixes
>
>
>
> I've looked at the changes to GART but they are straightforward and
> don't look wrong...

The resulting 2.6.24-rc7 kernel worked for me. I compiled 146 packages
without a crash.

Today I finally had some time for debugging again and tried the new
2.6.24-rc8-mm1.
The crash is still there, I will report that crash in current thread.

Torsten