ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc1/2.6.23-rc1-mm2/
- the git-block tree remains dropped due to disageement with the Vaio
- git-e1000new was withdrawn by the authors
- git-wireless is back. It is still a >3MB diff, and appears to compile.
- Is anyone testing the kgdb code in here?
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.
Changes since 2.6.23-rc1-mm1:
origin.patch
git-acpi.patch
git-alsa.patch
git-audit-master.patch
git-cifs.patch
git-dma.patch
git-drm.patch
git-dvb.patch
git-hwmon.patch
git-gfs2-nmw.patch
git-hid.patch
git-ia64.patch
git-ieee1394.patch
git-input.patch
git-jfs.patch
git-kvm.patch
git-libata-all.patch
git-md-accel.patch
git-mmc.patch
git-mtd.patch
git-ubi.patch
git-netdev-all.patch
git-ixgbe.patch
git-battery.patch
git-ocfs2.patch
git-r8169.patch
git-selinux.patch
git-s390.patch
git-sh.patch
git-scsi-misc.patch
git-unionfs.patch
git-v9fs.patch
git-watchdog.patch
git-wireless.patch
git-ipwireless_cs.patch
git-newsetup.patch
git-kgdb.patch
git trees
-tiny-signalfd-cleanup.patch
-kernel-doc-fix-for-kmodc.patch
-slab-maintainer-credits-update.patch
-rtc-stk17ta8-update-for-sysfs-api-change.patch
-use-ldflags_module-only-for-ko-links.patch
-pm-fix-compiler-error-of-ppc-dart_iommu.patch
-fixup-s3c24xx-build-after-arch-moves.patch
-rtc-ds1307-typo-fix-found-by-coverity.patch
-xen-xen-pageh-compile-fix.patch
-lguest-documentation-i-preparation.patch
-lguest-documentation-ii-guest.patch
-lguest-documentation-iii-drivers.patch
-lguest-documentation-iv-launcher.patch
-lguest-documentation-v-host.patch
-lguest-documentation-vi-switcher.patch
-lguest-documentation-vii-fixmes.patch
-x86_powernow_k8_acpi-must-depend-on-acpi.patch
-make-timerfd-return-a-u64-and-fix-the-__put_user.patch
-memory-unplug-v7-migration-by-kernel.patch
-memory-unplug-v7-isolate_lru_page-fix.patch
-revert-x86-serial-convert-legacy-com-ports-to-platform-devices.patch
-reorder-rtc-makefile.patch
-ufs-printk-warning-fix.patch
-i2c-ds1682-warning-fix.patch
-edac-is-bust-on-mips.patch
-xenbus_xsc-fix-a-use-after-free.patch
-fix-inode_table-test-in-ext234_check_descriptors.patch
-kdebugh-forward-declare-struct-struct-notifier_block.patch
-git-acpi-build-fix.patch
-acpi-remove-references-to-acpi_state_s2-from-acpi_pm_enter.patch
-acpi-fix-oops-due-to-typo-in-new-throttling-code.patch
-agk-dm-dm-crypt-drop-device-ref-in-ctr-error-path.patch
-agk-dm-dm-delay-fix-ctr-error-paths.patch
-agk-dm-dm-netlink.patch
-agk-dm-dm-netlink-add-to-core.patch
-agk-dm-dm-netlink-mpath.patch
-gregkh-driver-howto-adjust-translation-header-of-japanese-stable_api_nonsensetxt.patch
-gregkh-driver-howto-sync-japanese-howto.patch
-gregkh-driver-kobject-fix-link-error-when-config_hotplug-is-disabled.patch
-gregkh-driver-kobject-put-kobject_actions-in-kobjecth.patch
-stradis-and-zoran-depend-on-virt_to_bus.patch
-clean-up-duplicate-includes-in-drivers-hwmon.patch
-hid-fix-a-null-pointer-dereference-when-we-fail-to-allocate-memory.patch
-ia64-allow-smp_call_function_single-to-current-cpu.patch
-ia64-rename-partial_page.patch
-applesmc-add-temperature-sensors-set-for-macbook.patch
-ide-ide-add-ide-set-pio-take3.patch
-ide-icside-fix-speedproc-for-unsupported-modes-take4.patch
-mmc-build-fix.patch
-drivers-net-cxgb3-remove-several-unneeded-zero-initialization.patch
-dev-priv-to-netdev_privdev-drivers-net-tokenring.patch
-try-parent-numa_node-at-first-before-using-default-v2.patch
-try-parent-numa_node-at-first-before-using-default-v2-fix.patch
-more-request_queue_t-removal.patch
-gregkh-usb-usb-devices-misc-trivial-patch-to-build-the-iowarrior-when-it-is-selected-in-kconfig.patch
-gregkh-usb-usb-don-t-let-usb-storage-steal-blackberry-pearl.patch
-gregkh-usb-usb-more-quirky-devices.patch
-gregkh-usb-usb-usbh-kernel-doc-additions.patch
-gregkh-usb-usb-even-more-quirks.patch
-0-null-drivers-usb-gadget.patch
-clean-up-duplicate-includes-in-drivers-usb.patch
-geode-setup-correct-chipset-access-functions-fix.patch
-doc-kernel-parameters-use-x86-32-tag-instead-of-ia-32.patch
-remove-unused-tif_notify_resume-flag.patch
-whitelist-references-from-__dbe_table-to-init.patch
-fix-user-struct-leakage-with-locked-ipc-shem-segment.patch
-bpqether-fix-rcu-usage.patch
-afs-fix-file-locking.patch
-fix-leaks-on-proc-schedsched_debugtimer_listtimer_stats.patch
-fix-leak-on-proc-lockdep_stats.patch
-blktrace-use-cpu_clock-instead-of-sched_clock.patch
-futex-pass-nr_wake2-to-futex_wake_op.patch
-include-serial_regh-with-userspace-headers.patch
-trivial-in-string-typos-of-error.patch
-pure_initcall-id-inconsistency.patch
-serial-fix-section-mismatch-vr41xx_siu.patch
-serial-fix-vr41xx_siu-interface-select.patch
-serial-fix-vr41xx_siu-serial-console-support.patch
-remove-tx3912fb.patch
-isofs-mounting-to-regular-file-may-succeed.patch
-update-coredump-path-in-kernel-to-not-check-coredump-rlim-if-core_pattern-is-a-pipe.patch
-serial-mpsc-remove-race-between-rx-stop-restart.patch
-serial-mpsc-stop-rx-engine-when-cread-cleared.patch
-serial-mpsc-remove-duplicate-support_sysrq-definition.patch
-serial-mpsc-fix-coding-style-and-whitespace-issues.patch
-i2ch-kernel-doc-additions.patch
-irqh-fix-kernel-doc.patch
-docbook-bad-file-references.patch
-ipmi-fix-mem-leak-in-try_init_dmi.patch
-ncp-delete-test-of-long-deceased-config_ncpfs_debugdentry.patch
-broken-lilo-check-on-make-install.patch
-remove-one-more-leftover-reference-to-devfs.patch
-anon_inodes-shouldnt-be-user-visible.patch
-hpettxt-broken-link-fix.patch
-use-__val-in-__get_unaligned.patch
-vfs-fix-a-race-in-lease-breaking-during-truncate.patch
-fs-9p-convc-error-path-fix.patch
-kthread-silence-bogus-section-mismatch-warning.patch
-fix-a-use-after-free-bug-in-kernel-userspace-relay-file-support.patch
-idr_remove_all-kill-unused-variable.patch
-typo-fixes-errror-error.patch
-i386-include-asm-bugsh-in-bugsc-for-check_bugs-prototype.patch
-x86_64-include-asm-bugsh-in-bugsc-for-check_bugs.patch
-mark-sysrq_sched_debug_show-static.patch
-sb1250-duart-__maybe_unused-etc-fixes.patch
-rename-setleast-to-generic_setlease.patch
-remove-kconfig-setting-config_debug_shirq.patch
-videopix-frame-grabber-fix-unreleased-lock-in-vfc_debug.patch
-documentation-update-sched-stattxt.patch
-debug-handling-of-early-spurious-interrupts.patch
-allow-individual-core-dump-methods-to-be-unlimited-when-sending-to-a-pipe.patch
-allow-individual-core-dump-methods-to-be-unlimited-when-sending-to-a-pipe-fix.patch
-allow-individual-core-dump-methods-to-be-unlimited-when-sending-to-a-pipe-sparc64-fix.patch
-allow-individual-core-dump-methods-to-be-unlimited-when-sending-to-a-pipe-fix-2.patch
-allow-individual-core-dump-methods-to-be-unlimited-when-sending-to-a-pipe-fix-2-fix.patch
-allow-individual-core-dump-methods-to-be-unlimited-when-sending-to-a-pipe-fix-2-sparc64-fix.patch
-drivers-char-hpetc-integer-constant-is-too-large-for-long-type.patch
-kconfig-remove-top-level-menu-code-maturity-level-options.patch
-cciss-fix-memory-leak.patch
-udf-fix-uid-and-gid-mount-option-ignorance.patch
-ip2main-warning-fix.patch
-spi-kerneldoc-update.patch
-spi-device-setup-gets-better-error-checking.patch
-remove-isdn_-is-defined-but-unused-warnings.patch
-spi-kerneldoc-update.patch
-spi-device-setup-gets-better-error-checking.patch
-remove-isdn_-is-defined-but-unused-warnings.patch
-use-menuconfig-objects-rtc.patch
-rtc-m48t59-driver-no_irq-mode-fixup.patch
-sched2-sched-domain-sysctl.patch
-sched-add-above-background-load-function.patch
Merged into mainline or a subsystem tree
+blackfin-arch-after-removing-fsh-from-mmh-fix-the-broken-on-blackfin-arch.patch
+genirq-temporary-fix-for-level-triggered-irq-resend.patch
+genirq-temporary-fix-for-level-triggered-irq-resend-fix.patch
+fix-hpet-init-race.patch
+direct-io-fix-error-path-crashes.patch
+changing-include-asm-generic-pgtableh-for-non-mmu.patch
2.6.23 queue
+slow-down-printk-during-boot-fix-3.patch
Fix slow-down-printk-during-boot.patch some more
+git-acpi-mark_tsc_unstable-build-fix.patch
ACPI fix
+acpi-cure-run-together-printk-lines.patch
+make-drivers-acpi-eventcacpi_event_seqnum-static.patch
+make-struct-sony_nc_ids-static.patch
ACPi things
+kernel-auditscc-fix-an-off-by-one.patch
+fix-auditscc-kernel-doc.patch
audit fixes
+fs-cifs-connectc-kmalloc-memset-conversion-to-kzalloc.patch
CIFS cleanup
+cpufreq-move-policys-governor-initialisation-out-of-low-level-drivers-into-cpufreq-core.patch
+cpufreq-allow-ondemand-and-conservative-cpufreq-governors-to-be-used-as-default.patch
cpufreq: make ondemand the default
+drivers-md-dm-hw-handlerc-kmalloc-memset-conversion-to-kzalloc.patch
+drivers-md-dm-path-selectorc-kmalloc-memset-conversion-to-kzalloc.patch
+drivers-md-dm-tablec-kmalloc-memset-conversion-to-kzalloc.patch
+drivers-md-dm-targetc-kmalloc-memset-conversion-to-kzalloc.patch
device mapper cleanups
+powerpc-clean-out-a-bunch-of-duplicate-includes.patch
+powerpc-fix-num_cpus-calculation-in-smp_call_function_map.patch
powerpc things
+gregkh-driver-sysfs-filec-use-mutex-instead-of-semaphore.patch
+gregkh-driver-sysfs-cleanup-semaphoreh.patch
driver tree additions
+nozomi-shoot-defunct-label.patch
+drivers-base-power-make-2-functions-static.patch
driver tree fixes
+dma-intel_ioatdma-build-fix.patch
Fix git-dma.patch
+git-dvb-fixup.patch
Fix rejects in git-dvb
+drivers-media-video-msp3400-driverc-kmalloc-memset-conversion-to-kzalloc.patch
DVB fix
+drivers-i2c-i2c-corec-make-code-static.patch
i2c cleanup
+add-includes-to-scsi_transport_iscsih.patch
scsi fix
+drivers-input-serio-gscps2c-kmalloc-memset-conversion-to-kzalloc.patch
input fix
+include-linux-kbuild-remove-duplicate-entries.patch
kbuidl cleanup
+libata-acpi-checks-for-80wire-cable-headers.patch
+libata-acpi-checks-for-80wire-cable-implementation.patch
+libata-acpi-checks-for-80wire-cable-use-in-pata_amd.patch
+libata-acpi-checks-for-80wire-cable-use-in-pata_via.patch
+libata-sff-unbreak-non-dma-capable-controllers-again.patch
+pata_cmd64x-correct-the-speed-ranges.patch
+fix-libata-warnings-with-config_pm=n.patch
+libata-correct-iordy-handling.patch
+pata_sis-fix-mwdma-for-=-udma66-chipsets-and-udma-for-udma33-chipsets.patch
sata/pata things
-testing-patch-for-ali-pata-fixes-hopefully-for-the-problems-with-atapi-dma.patch
-pata_ali-more-work.patch
Dropped at Alan's request.
+ide-cs5535-fix-array-overrun.patch
+ide-ide-add-platform-ide-driver.patch
+ide-ide-make-config_ide_generic-default-to-n.patch
+ide-alim15x3-correct-hp-detect.patch
+ide-sis5513-add-fsc-amilo-a1630-pci-subvendor_dev-to-laptops.patch
+ide-ide-add-ide-set-pio-take-4.patch
+ide-icside-fix-speedproc-for-unsupported-modes-take-5.patch
+ide-ide-pmac-dont-check-kauai-lookup-timing-return-value.patch
+ide-ide-pmac-fix-pmac-ide-tune-chipset.patch
+ide-ide-pmac-fix-set-timings-mdma.patch
+ide-ide-pmac-remove-control-register-messing-from-pmac-ide-dma-check.patch
+ide-ide-pmac-remove-pmac-ide-dma-enable-take-2.patch
+ide-ide-config-drive-speed-bugfixes.patch
+ide-ide-add-__ide-wait-stat-helper.patch
+ide-ide-pmac-ide-do-setfeature-remove-pre-wait.patch
+ide-ide-pmac-use-__ide-wait-stat.patch
+ide-ide-pmac-remove-nien-clearing-from-pmac-ide-do-setfeature.patch
+ide-ide-pmac-remove-pmac-ide-do-setfeature-take-2.patch
+ide-ide-pmac-use-ide-tune-dma.patch
IDE tree updates
-ide-bodge-things-around-to-make-arm-work.patch
Otherwise fixed
+fix-runtogether-printks-in-cmd64x-ide-driver.patch
+fix-ide-ide-add-platform-ide-driver.patch
+eliminate-warnings-in-ide-tapec.patch
+drivers-ide-arm-icsidec-kmalloc-memset-conversion-to-kzalloc.patch
IDE things
+mips-remove-some-duplicate-includes.patch
MIPS cleanup
+mips-qemu-network-work-again.patch
MIPS fix
+drivers-mmc-core-busc-kmalloc-memset-conversion-to-kzalloc.patch
+drivers-mmc-core-hostc-kmalloc-memset-conversion-to-kzalloc.patch
+drivers-mmc-core-mmc_opsc-kmalloc-memset-conversion-to-kzalloc.patch
mmc cleanups
+mtd-fix-ctrl-alt-del-cant-reboot-for-intel-flash-bug.patch
+mtd-remove-redundant-dead-code-from-physmap_ofc.patch
+mtd-onenand_simc-make-struct-info-static.patch
+remove-fs-jffs2-ioctlc.patch
+drivers-mtd-inftlmountc-kmalloc-memset-conversion-to-kcalloc.patch
MTD things
+usb-remove-redundant-memset-from-amd5536udc.patch
+drivers-net-cxgb3-xgmacc-remove-dead-code.patch
+e1000-if-0-two-functions.patch
netdev things
+git-ixgbe-build-fix.patch
Fix git-ixgbe.patch for changes in mainline
-git-e1000new.patch
Dropped
-e1000new-build-fix.patch
-e1000new-build-fix-2.patch
Now unneeded
+fib_trie-cleanup.patch
+fib_trie-cleanup-fix.patch
+fib_trie-macro-cleanup.patch
+dccp-fix-memory-leak-and-clean-up-style-dccp_feat_empty_confirm.patch
+drivers-net-wan-hdlc_frc-kmalloc-memset-conversion-to-kzalloc.patch
+drivers-net-irda-irda-usbc-mostly-kmalloc-memset-conversion-to-kalloc.patch
+drivers-atm-iphasec-mostly-kmalloc-memset-conversion-to-kzalloc.patch
+netconsole-cleanups-codingstyle-prettyfication.patch
+netconsole-remove-bogus-check.patch
+netconsole-simplify-boot-module-option-setup-logic.patch
+netconsole-use-netif_running-in-write_msg.patch
+netconsole-add-some-useful-tips-to-documentation.patch
+netconsole-introduce-netconsole_target.patch
+netconsole-introduce-netconsole_netdev_notifier.patch
+netconsole-support-multiple-logging-targets.patch
+netconsole-support-dynamic-reconfiguration-using-configfs.patch
+introduce-u16_max-and-u32_max.patch
+introduce-u16_max-and-u32_max-fix.patch
+introduce-strtol_check_range.patch
+introduce-strtol_check_range-fix.patch
networking changes
+backlight-make-2-structs-static.patch
backlight cleanup
+parisc-extern-inline-static-inline.patch
parisc cleanup
+gregkh-pci-pci-hotplug-cpqphp_ctrlc-remove-stale-bkl-use.patch
PCI tree updates
+cpqphp_ctrlc-remove-dead-code.patch
+drivers-pci-hotplug-cpqphp_ctrlc-kmalloc-memset-conversion-to-kzalloc.patch
PCI things
+kernel-schedc-make-code-static.patch
+tiny-sched_getaffinity-cleanup.patch
sched cleanups
+sh64-arch-sh64-kernel-signalh-duplicate-include-removal.patch
SH fix
+scsi-fix-build-for-config_scsi_tgt=n-2.patch
+drivers-scsi-g_ncr5380c-ncr53c400_pseudo_dma-is-not.patch
+fix-drivers-scsi-fdomainc-config_pci=n-warnings.patch
+nsp32_restart_autoscsi-remove-error-check.patch
+dtc-clean-up-indent-damage-and-add-printk-levels.patch
+make-scsi_host_link_pm_policy-static.patch
+drivers-scsi-scsi_errorc-should-include.patch
+drivers-scsi-constantsc-make-2-functions-static.patch
+use-mutex-instead-of-semaphore-in-the-onstream-scsi-tape-driver.patch
+drivers-scsi-a4000tc-kmalloc-memset-conversion-to-kzalloc.patch
+drivers-scsi-bvme6000_scsic-kmalloc-memset-conversion-to-kzalloc.patch
+drivers-scsi-gdthc-kmalloc-memset-conversion-to-kzalloc.patch
+drivers-scsi-ide-scsic-kmalloc-memset-conversion-to-kzalloc.patch
+drivers-scsi-lpfc-lpfc_debugfsc-kmalloc-memset-conversion-to-kcalloc.patch
+drivers-scsi-lpfc-lpfc_initc-kmalloc-memset-conversion-to-kcalloc.patch
+drivers-scsi-lpfc-lpfc_scsic-kmalloc-memset-conversion-to-kzalloc.patch
+drivers-scsi-megaraidc-kmalloc-memset-conversion-to-kzalloc.patch
+drivers-scsi-dpt_i2oc-kmalloc-memset-conversion-to-kzalloc.patch
+drivers-message-fusion-mptctlc-mostly-kmalloc-memset-conversion-to-kzalloc.patch
scsi things
+clean-up-duplicate-includes-in-drivers-block.patch
+drivers-block-ccissc-kmalloc-memset-conversion-to-kzalloc.patch
+drivers-block-cpqarrayc-better-error-handling-and-kmalloc-memset-conversion-to-kalloc.patch
block things
+partially-fix-up-the-lookup_one_noperm-mess.patch
VFS cleanup
+git-unionfs-fixup.patch
+git-unionfs-build-fix.patch
unionfs touchups
+gregkh-usb-usb-nikon-d50-is-an-unusual-device.patch
+gregkh-usb-usb-clean-up-duplicate-includes-in-drivers-usb.patch
+gregkh-usb-usblp-implement-the-enospc-convention.patch
+gregkh-usb-usblp-make-use-of-urb_free_buffer.patch
USB tree updates
-merge-the-sonics-silicon-backplane-subsystem.patch
-merge-the-sonics-silicon-backplane-subsystem-fix.patch
-ssb-add-a-driver-for-the-broadcom-ohci-core.patch
Updated
+kl5kusb105-switch-to-new-speed-api.patch
+mct_u232-convert-to-proper-speed-handling-api-fix.patch
+fix-gregkh-usb-usb-add-the-concept-of-default-authorization-to-usb-hosts.patch
+drivers-usb-misc-ftdi-elanc-kmalloc-memset-conversion-to-kzalloc.patch
USB things
+merge-the-sonics-silicon-backplane-subsystem.patch
+merge-the-sonics-silicon-backplane-subsystem-fix.patch
+avoid-ssb-compililation-on-s390.patch
+b44-ssb-fix-irq-routing-bits-on-the-backplane.patch
+merge-the-sonics-silicon-backplane-subsystem-update.patch
+ssb-compile-fix.patch
+watchdog-support-3.patch
+ssb-add-a-driver-for-the-broadcom-ohci-core.patch
+use-mutex-instead-of-semaphore-in-the-host-ap-driver.patch
Wireless things (mainly SSB)
+x86_64-get-mp_bus_to_node-as-early-v2.patch
+x86_64-use-bus-conf-in-nb-conf-fun1-to-get-bus-range-on-node.patch
+try-parent-numa_node-at-first-before-using-default-v2.patch
+net-use-numa_node-in-net_devcice-dev-instead-of-parent.patch
+dma-use-dev_to_node-to-get-node-for-device-in-dma_alloc_pages.patch
+x86_64-store-core-id-bits-in-cpuinfo_x8.patch
+x86_64-use-core-id-bits-for-apicid_to_node-initialization.patch
+x86_64-remove-never-used-apic_mapped.patch
+x86_64-get-boot_cpu_id-as-early-for-k8_scan_nodes.patch
+x86_64-family-10h-and-11h-to-k8topology.patch
+x86-add-cpu-codenames-for-kconfigcpu.patch
+change-order-in-kconfigcpu-i386.patch
+i386-add-amd64-barcelona-pmu-msr-definitions.patch
+i386-remove-maccumulate-outgoing-args.patch
+arch-i386-mach-generic-probec-make-struct-apic_probe.patch
+arch-i386-mach-es7000-es7000platc-cleanups.patch
+i386-alternativec-really-stop-mces-during-code.patch
+i386-no-need-to-make-enable_cpu_hotplug-a-variable.patch
+arch-i386-mm-discontigc-make-some-variables-static.patch
+x86-expand-proc-interrupts-to-include-missing-vectors-v2.patch
+expand-proc-interrupts-to-include-missing-vectors-v3.patch
+x86-expand-proc-interrupts-to-include-missing-vectors.patch
+arch-x86_64-kernel-io_apicc-kmalloc-memset-conversion-to-kzalloc.patch
x86 fixes
+git-newsetup-fixup.patch
Fix rejects in git-newsetup.patch
+xtensa-consolec-remove-duplicate-include.patch
xtensa cleanup
+fix-kgdb-kernel-doc.patch
+serial-sh-sci-fix-build-failure-from-kgdb-fallout.patch
kgdb fixes
+dma_free_coherent-needs-irqs-enabled-sigh.patch
+usb-serial-fix-oti6858c-segfault-in-termios-handling.patch
+sparsemem-ensure-we-initialise-the-node-mapping-for-sparsemem_static.patch
+sparsemem-ensure-we-initialise-the-node-mapping-for-sparsemem_static-fix.patch
+tpmdd-maintainers.patch
+nfs-fix-put_nfs_open_context.patch
+make-oprofile-call-shutdown-only-once-per-session.patch
+perfctr_watchdog-do-not-bug_on-when-msr-is-unknown.patch
+acpi-bay-send-envp-with-uevent-fix.patch
+acpi-dock-send-key=value-pair-instead-of-plain-value.patch
+acpi_ec_remove-fix-use-after-free.patch
+acpi_battery_add-use-after-free.patch
Random things which I think should be in 2.6.23, but which should go in via
a subsystem maintainer.
I've been doing it this way fo rthe past few kernel releases. It is
worrisome how much stuff people are losing track of. People should cc me on
bugfixes...
+generic-virtual-memmap-support-for-sparsemem-fix.patch
Fix generic-virtual-memmap-support-for-sparsemem.patch
+vm-dont-run-touch_buffer-during-buffercache-lookups.patch
A little VM experiment. See changelog for details.
+fix-corruption-of-memmap-on-ia64-sparsemem-when-mem_section-is-not-a-power-of-2-fix.patch
+fix-corruption-of-memmap-on-ia64-sparsemem-when-mem_section-is-not-a-power-of-2-fix-fix.patch
Fix
fix-corruption-of-memmap-on-ia64-sparsemem-when-mem_section-is-not-a-power-of-2.patch
some more
+mm-page_allocc-make-code-static.patch
MM cleanup
+hugetlbfs-read-support-fix-2.patch
Fix hugetlbfs-read-support.patch some more
+mm-shmemc-make-3-functions-static.patch
+mm-migratec-cleanups.patch
+mm-mempolicyc-cleanups.patch
+mm-vmstatc-cleanups.patch
MM cleanups
+security-convert-lsm-into-a-static-interface-fix-2-fix.patch
Fix security-convert-lsm-into-a-static-interface.patch even more.
+remove-frv-usage-of-flush_tlb_pgtables.patch
+include-asm-frv-thread_infoh-kmalloc-memset-conversion-to-kzalloc.patch
frv minor things
+m68knommu-remove-unused-config-symbol-config_disktel.patch
nommu patch which Linus missed
+cleanup-arch-alpha-makefile.patch
alpha cleanup
-pm-fix-compilation-of-suspend-code-if-config_pm-is-unset.patch
Unneeded
+unexport-pm_power_off_prepare.patch
PM cleanup
+include-asm-m32r-thread_infoh-kmalloc-memset-conversion-to-kzalloc.patch
m32r cleanup
+uml-move-userspace-code-to-userspace-file.patch
+uml-tidy-recently-moved-code.patch
+uml-fix-error-cleanup-ordering.patch
+uml-console-subsystem-tidying.patch
UML updates for 2.6.24.
-hwrng-add-type-categories.patch
Dropped
-use-list_head-in-binfmt-handling.patch
-use-list_head-in-binfmt-handling-fix.patch
+use-list_head-in-binfmt-handling-update.patch
Updated
-loop-use-unlocked_ioctl.patch
Dropped, broken.
+fix-config_debug_shirq-trigger-on-free_irq.patch
+fs-remove-the-unused-mempages-parameter.patch
+remove-unused-bh-in-calls-to-ext234_get_group_desc.patch
+add-in-sunos-41x-compatible-mode-for-ufs.patch
+add-in-sunos-41x-compatible-mode-for-ufs-fix.patch
+ufs-implement-show_options.patch
+argv_split-allow-argv_split-to-handle-null-pointer-in-argcp-parameter-gracefully.patch
+core_pattern-ignore-rlimit_core-if-core_pattern-is-a-pipe.patch
+core_pattern-ignore-rlimit_core-if-core_pattern-is-a-pipe-fix.patch
+core_pattern-allow-passing-of-arguments-to-user-mode-helper-when-core_pattern-is-a-pipe.patch
+core_pattern-fix-up-a-few-miscellaneous-bugs.patch
+core_pattern-fix-up-a-few-miscellaneous-bugs-fix.patch
+epcac-reformat-comments-and-coding-style-improvements.patch
+fs-partitions-checkc-add-add_partition-error-handling.patch
+add-sys-module-name-notes.patch
+kernel-rtmutex-debugc-cleanups.patch
+fs-afs-possible-cleanups.patch
+lib-ioremapc-should-include-linux-ioh.patch
+ipc-shmc-make-2-functions-static.patch
+printk-add-interfaces-for-external-access-to-the-log-buffer.patch
+printk-add-interfaces-for-external-access-to-the-log-buffer-fix.patch
+drivers-char-consolemapc-kmalloc-memset-conversion-to-kzalloc.patch
+doc-firmware_sample_firmware_classc-kmalloc-memset-conversion-to-kzalloc.patch
+fs-autofs4-inodec-kmalloc-memset-conversion-to-kzalloc.patch
+drivers-char-ip2-ip2mainc-kmalloc-memset-conversion-to-kzalloc.patch
+tpm_tis-fix-interrupt-probing.patch
Misc random new things
+use-mutex-instead-of-semaphore-in-isdn-subsystem-common-functions.patch
ISDN cleanup
+fs-nfsd-exportc-make-3-functions-static.patch
nfsd cleanup
+ecryptfs-remove-unnecessary-bug_on.patch
+ecryptfs-collapse-flag-set-into-one-statement.patch
+ecryptfs-grammatical-fix-destruct-to-destroy.patch
+ecryptfs-comments-for-some-structs.patch
+ecryptfs-kerneldoc-fixes-for-cryptoc-and-keystorec.patch
+ecryptfs-remove-unnecessary-variable-initializations.patch
+ecryptfs-make-needlessly-global-symbols-static.patch
ecrypts fixes for things which were in rc1-mm1.
+fbdev-export-fb_destroy_modelist.patch
+connector-change-connectors-max-message-size.patch
+uvesafb-add-connector-entries.patch
+uvesafb-the-driver-core.patch
+uvesafb-documentation.patch
+pm3fb-copyarea-and-partial-imageblit-suppor.patch
+skeletonfb-wrong-field-name-fix.patch
+pm3fb-header-file-reduction.patch
+pm3fb-imageblit-improved.patch
+pm3fb-3-small-fixes.patch
+pm3fb-improvements-and-cleanups.patch
+pm3fb-mtrr-support-and-noaccel-option.patch
+pm2fb-mtrr-support-and-noaccel-option.patch
+pm2fb-accelerated-imageblit.patch
+pm2fb-source-code-improvements.patch
+pm2fb-permedia-2v-initialization-fixes.patch
+pm2fb-accelerated-24-bit-fillrect.patch
+sm501fb-update-suspend-and-resume-code.patch
+sm501fb-call-fb-suspend-function-during-suspend-and-resume.patch
+sm501fb-ensure-panel-interface-is-not-tristated-when-setup.patch
+mbxfb-improvements-and-new-features.patch
+pxafb-add-support-for-other-palette-formats.patch
+stifb-detect-cards-in-double-buffer-mode-more-reliably.patch
+tridentfb-coding-style-improvement.patch
+tdfxfb-coding-style-improvement.patch
+tdfxfb-3-fixes.patch
+tdfxfb-palette-fixes.patch
+radeon_driver_vblank_do_wait-static.patch
+unexport-fb_prepare_logo.patch
fbdev updates
+cpu-hotplug-slab-cleanup-cpuup_callback.patch
+cpu-hotplug-slab-fix-memory-leak-in-cpu-hotplug-error-path.patch
+cpu-hotplug-cpu-deliver-cpu_up_canceled-only-to-notify_oked-callbacks-with-cpu_up_prepare.patch
+cpu-hotplug-topology-remove-topology_dev_map.patch
+cpu-hotplug-thermal_throttle-fix-cpu-hotplug-error-handling.patch
+cpu-hotplug-msr-fix-cpu-hotplug-error-handling.patch
+cpu-hotplug-cpuid-fix-cpu-hotplug-error-handling.patch
+cpu-hotplug-mce-fix-cpu-hotplug-error-handling.patch
+cpu-hotplug-intel_cacheinfo-fix-cpu-hotplug-error-handling.patch
cpu hotplug rework
+fs-jbd2-journalc-kmalloc-memset-conversion-to-kzalloc.patch
ext4 cleanup
+task-containersv11-basic-task-container-framework-fix.patch
fix containers patches in -mm
+containers-implement-namespace-tracking-subsystem-fix-order-of-container-subsystems-in-init-kconfig.patch
Fix containers-implement-namespace-tracking-subsystem.patch
+pid-namespaces-define-is_global_init-and-is_container_init-m32r-fix.patch
+pid-namespaces-define-is_global_init-and-is_container_init-kernel-pidc-remove-unused-exports.patch
fix pid-namespaces patches in -mm.
+char-moxa-fix-and-optimise-empty-timer.patch
+char-cyclades-remove-bottom-half-processing.patch
+char-cyclades-make-the-isr-code-readable.patch
+char-cyclades-move-spin_lock-to-one-place.patch
+char-cyclades-fix-some-w-warnings.patch
char driver cleanups
+reiser4-cryptcompress-misc-fixups.patch
+reiser4-change-error-code-base.patch
+reiser4-use-lzo-library-functions.patch
+fs-reiser4-plugin-file-cryptcompressc-kmalloc-memset-conversion-to-kzalloc.patch
+reiser4-kmalloc-memset-conversion-to-kzalloc.patch
+fs-reiser4-init_superc-kmalloc-memset-conversion-to-kzalloc.patch
+fs-reiser4-plugin-inode_ops_renamec-kmalloc-memset-conversion-to-kzalloc.patch
+fs-reiser4-ktxnmgrdc-kmalloc-memset-conversion-to-kzalloc.patch
reiser4 updates
-alloc_pages-debug.patch
Dropped
+single_open-seq_release-leak-diagnostics.patch
Check for leaky seq_file users
All 942 patches:
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc1/2.6.23-rc1-mm2/patch-list
On Tue, Jul 31, 2007 at 11:09:32PM -0700, Andrew Morton wrote:
> - Is anyone testing the kgdb code in here?
>
Testing, yes. Succeeding, no. It's utterly hosed on SH in its present
condition at least. Presumably it's been tested on at least one platform
with some measure of success, but it's certainly not mine ;-)
I'll get you some patches that fix it up the rest of the way for SH
platforms in the next couple days. There's nothing too rough, though,
mostly serial driver fallout and changes in the current stub that aren't
reflected in the 'new' one.
On Tue, 2007-31-07 at 23:09 -0700, Andrew Morton wrote:
> +vm-dont-run-touch_buffer-during-buffercache-lookups.patch
>
> A little VM experiment. See changelog for details.
> We don't have any tests to determine the effects of this, and nobody will
> bother setting one up, so ho hum, this remains in -mm for ever.
> I don't think there's any point in doing this until we have some decent
> testcases.
Hi Andrew,
For which problem this patch was coded? Is it a potential fix to the
updatedb problem?
Is the patch effective without the filesystem dependant change you talk
about? (I use reiserfs)
I've been thinking about a test case for the updatedb problem:
1. Script or program that create a large number of directories and zero
sized files. Same setup for everyone to have reproducible results.
2. Run updatedb on those.
3. Observe the effects (with vmstat, slabinfo and meminfo) before,
during and after the updatedb run.
4. Do something to trigger some reclaim like copying a large file.
5. See the effects.
What do you think? What would be the ideal test case for the problem in
your opinion?
Best regards,
- Eric
On Wed, 01 Aug 2007 03:36:30 -0400 Eric St-Laurent <[email protected]> wrote:
> On Tue, 2007-31-07 at 23:09 -0700, Andrew Morton wrote:
>
> > +vm-dont-run-touch_buffer-during-buffercache-lookups.patch
> >
> > A little VM experiment. See changelog for details.
>
> > We don't have any tests to determine the effects of this, and nobody will
> > bother setting one up, so ho hum, this remains in -mm for ever.
>
> > I don't think there's any point in doing this until we have some decent
> > testcases.
>
>
> Hi Andrew,
>
>
> For which problem this patch was coded?
Good question. I think the current behaviour is just wrong. What the
effect of changing it will be is hard to predict - probably little.
> Is it a potential fix to the
> updatedb problem?
That's one workload which is particularly susceptible to the problemn which
that patch addresses, yes. But in my (brief) testing it didn't make musch
difference.
> Is the patch effective without the filesystem dependant change you talk
> about? (I use reiserfs)
Yes, it'll work as designed with reiserfs.
> I've been thinking about a test case for the updatedb problem:
>
> 1. Script or program that create a large number of directories and zero
> sized files. Same setup for everyone to have reproducible results.
>
> 2. Run updatedb on those.
>
> 3. Observe the effects (with vmstat, slabinfo and meminfo) before,
> during and after the updatedb run.
>
> 4. Do something to trigger some reclaim like copying a large file.
>
> 5. See the effects.
>
>
> What do you think? What would be the ideal test case for the problem in
> your opinion?
Sounds good, yes.
Or you could do something more real-worldly like start up OO, firefox and
friends, then run /etc/cron.daily/everything and see what the
before-and-after effects are. The aggregate info we're looking for is
captured in /proc/meminfo: swapped, Mapped, Cached, Buffers.
On 8/1/07, Paul Mundt <[email protected]> wrote:
> On Tue, Jul 31, 2007 at 11:09:32PM -0700, Andrew Morton wrote:
> > - Is anyone testing the kgdb code in here?
>
> Testing, yes. Succeeding, no. It's utterly hosed on SH in its present
> condition at least. Presumably it's been tested on at least one platform
> with some measure of success, but it's certainly not mine ;-)
does kgdb actually have a chance to get merged ? with the history of
it, i just assumed it was never going in, so we've been using our own
kgdb patch on Blackfin ... so the version *we have* works great :) but
if there's a chance of this actually going mainline, we can see about
testing that version as well ...
-mike
Hello,
I get this warning. Looking at the comment in kernel/irq/resend.c
it's harmless. Is it?
WARNING: at kernel/irq/resend.c:69 check_irq_resend()
[<c010456a>] show_trace_log_lvl+0x1a/0x30
[<c010508d>] show_trace+0x12/0x14
[<c01051e0>] dump_stack+0x15/0x17
[<c013b001>] check_irq_resend+0x91/0xa0
[<c013ab58>] enable_irq+0xb1/0xb3
[<c02d7b81>] ide_config_drive_speed+0xda/0x269
[<c02d391c>] ali15x3_tune_chipset+0xcc/0x161
[<c02dd367>] ide_tune_dma+0x43/0x4d
[<c02d29e0>] ali15x3_config_drive_for_dma+0xf/0x2a
[<c02dc89a>] ide_set_dma+0x11/0x40
[<c02d41cf>] set_using_dma+0x84/0xd1
[<c02d4dfe>] generic_ide_ioctl+0xb9/0x3fb
[<c02df7e4>] idedisk_ioctl+0x3f/0x10c
[<c023d779>] blkdev_driver_ioctl+0x55/0x5e
[<c023da3e>] blkdev_ioctl+0x2bc/0x83e
[<c017e5ca>] block_ioctl+0x1b/0x21
[<c01664c2>] do_ioctl+0x22/0x71
[<c0166566>] vfs_ioctl+0x55/0x28a
[<c01667ce>] sys_ioctl+0x33/0x51
[<c0103f32>] sysenter_past_esp+0x5f/0x85
=======================
Then reattaching a usb mouse caused this (only once)
usb 2-1: USB disconnect, address 2
BUG: atomic counter underflow at:
[<c010456a>] show_trace_log_lvl+0x1a/0x30
[<c010508d>] show_trace+0x12/0x14
[<c01051e0>] dump_stack+0x15/0x17
[<c01418cf>] __free_pages+0x50/0x52
[<c01418f0>] free_pages+0x1f/0x21
[<c010783d>] dma_free_coherent+0x43/0x9c
[<c0315067>] hcd_buffer_free+0x43/0x6a
[<c030b2b4>] usb_buffer_free+0x23/0x29
[<c0346db4>] hid_free_buffers+0x23/0x71
[<c0346eb2>] hid_disconnect+0xb0/0xc8
[<c0313676>] usb_unbind_interface+0x30/0x72
[<c02c6df0>] __device_release_driver+0x6a/0x92
[<c02c71c3>] device_release_driver+0x20/0x36
[<c02c6736>] bus_remove_device+0x62/0x85
[<c02c49f8>] device_del+0x16d/0x27c
[<c0310f25>] usb_disable_device+0x7a/0xe2
[<c030d0bc>] usb_disconnect+0x94/0xde
[<c030e030>] hub_thread+0x2fe/0xc1b
[<c0128aee>] kthread+0x36/0x58
[<c0104233>] kernel_thread_helper+0x7/0x14
=======================
uhci_hcd 0000:00:0c.0: dma_pool_free buffer-32, 6b6b6b6b/6b6b6b6b (bad dma)
Every new try shows:
usb 2-1: new low speed USB device using uhci_hcd and address 3
usb 2-1: new device found, idVendor=046d, idProduct=c00e
usb 2-1: new device strings: Mfr=1, Product=2, SerialNumber=0
usb 2-1: Product: USB-PS/2 Optical Mouse
usb 2-1: Manufacturer: Logitech
usb 2-1: configuration #1 chosen from 1 choice
input: Logitech USB-PS/2 Optical Mouse as /class/input/input9
input: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-0000:00:0c.0-1
usb 2-1: USB disconnect, address 3
uhci_hcd 0000:00:0c.0: dma_pool_free buffer-32, 6b6b6b6b/6b6b6b6b (bad dma)
But mouse works ok.
Second issue as reported earilier allmodconfig fails to build on imac g3.
CC arch/powerpc/kernel/lparmap.s
AS arch/powerpc/kernel/head_64.o
lparmap.c: Assembler messages:
lparmap.c:84: Error: file number 1 already allocated
make[1]: *** [arch/powerpc/kernel/head_64.o] Blad 1
make: *** [arch/powerpc/kernel] Blad 2
Regards,
Mariusz
On Wed, 2007-01-08 at 00:46 -0700, Andrew Morton wrote:
> Or you could do something more real-worldly like start up OO, firefox and
> friends, then run /etc/cron.daily/everything and see what the
> before-and-after effects are. The aggregate info we're looking for is
> captured in /proc/meminfo: swapped, Mapped, Cached, Buffers.
IMO it will be harder to come with reproducible numbers, everyone
desktop is different, as their filesystem contents.
Anyway I will cook up something and post it. It might be useful for
others to understand the updatedb problem.
I intend to try only this specific patch not the full -mm, is there any
other patch I need to apply too?
- Eric
On Wed, 1 Aug 2007 03:58:48 -0400 "Mike Frysinger" <[email protected]> wrote:
> On 8/1/07, Paul Mundt <[email protected]> wrote:
> > On Tue, Jul 31, 2007 at 11:09:32PM -0700, Andrew Morton wrote:
> > > - Is anyone testing the kgdb code in here?
> >
> > Testing, yes. Succeeding, no. It's utterly hosed on SH in its present
> > condition at least. Presumably it's been tested on at least one platform
> > with some measure of success, but it's certainly not mine ;-)
>
> does kgdb actually have a chance to get merged ?
I was hoping for a 2.6.24 merge. But I haven't actually looked at it yet.
Hopefully Jason is planning to get it all out for review soonish.
> with the history of
> it, i just assumed it was never going in, so we've been using our own
> kgdb patch on Blackfin ... so the version *we have* works great :) but
> if there's a chance of this actually going mainline, we can see about
> testing that version as well ...
Please, do so.
But runtime testing isn't actually the most important thing at this time -
if is doesn't work, well hey, we fix it, easy - we always have bugs. The
main emphasis right now should be on higher-level design/review/integration
stuff.
On Wed, 1 Aug 2007 10:02:30 +0200 Mariusz Kozlowski <[email protected]> wrote:
> Hello,
>
> I get this warning. Looking at the comment in kernel/irq/resend.c
> it's harmless. Is it?
>
> WARNING: at kernel/irq/resend.c:69 check_irq_resend()
> [<c010456a>] show_trace_log_lvl+0x1a/0x30
> [<c010508d>] show_trace+0x12/0x14
> [<c01051e0>] dump_stack+0x15/0x17
> [<c013b001>] check_irq_resend+0x91/0xa0
> [<c013ab58>] enable_irq+0xb1/0xb3
> [<c02d7b81>] ide_config_drive_speed+0xda/0x269
> [<c02d391c>] ali15x3_tune_chipset+0xcc/0x161
> [<c02dd367>] ide_tune_dma+0x43/0x4d
> [<c02d29e0>] ali15x3_config_drive_for_dma+0xf/0x2a
> [<c02dc89a>] ide_set_dma+0x11/0x40
> [<c02d41cf>] set_using_dma+0x84/0xd1
> [<c02d4dfe>] generic_ide_ioctl+0xb9/0x3fb
> [<c02df7e4>] idedisk_ioctl+0x3f/0x10c
> [<c023d779>] blkdev_driver_ioctl+0x55/0x5e
> [<c023da3e>] blkdev_ioctl+0x2bc/0x83e
> [<c017e5ca>] block_ioctl+0x1b/0x21
> [<c01664c2>] do_ioctl+0x22/0x71
> [<c0166566>] vfs_ioctl+0x55/0x28a
> [<c01667ce>] sys_ioctl+0x33/0x51
> [<c0103f32>] sysenter_past_esp+0x5f/0x85
> =======================
Ingo debug stuff.
> Then reattaching a usb mouse caused this (only once)
>
> usb 2-1: USB disconnect, address 2
> BUG: atomic counter underflow at:
> [<c010456a>] show_trace_log_lvl+0x1a/0x30
> [<c010508d>] show_trace+0x12/0x14
> [<c01051e0>] dump_stack+0x15/0x17
> [<c01418cf>] __free_pages+0x50/0x52
> [<c01418f0>] free_pages+0x1f/0x21
> [<c010783d>] dma_free_coherent+0x43/0x9c
> [<c0315067>] hcd_buffer_free+0x43/0x6a
> [<c030b2b4>] usb_buffer_free+0x23/0x29
> [<c0346db4>] hid_free_buffers+0x23/0x71
> [<c0346eb2>] hid_disconnect+0xb0/0xc8
> [<c0313676>] usb_unbind_interface+0x30/0x72
> [<c02c6df0>] __device_release_driver+0x6a/0x92
> [<c02c71c3>] device_release_driver+0x20/0x36
> [<c02c6736>] bus_remove_device+0x62/0x85
> [<c02c49f8>] device_del+0x16d/0x27c
> [<c0310f25>] usb_disable_device+0x7a/0xe2
> [<c030d0bc>] usb_disconnect+0x94/0xde
> [<c030e030>] hub_thread+0x2fe/0xc1b
> [<c0128aee>] kthread+0x36/0x58
> [<c0104233>] kernel_thread_helper+0x7/0x14
> =======================
> uhci_hcd 0000:00:0c.0: dma_pool_free buffer-32, 6b6b6b6b/6b6b6b6b (bad dma)
whoa. huuuuuuuuuuge USB bug!
> Every new try shows:
>
> usb 2-1: new low speed USB device using uhci_hcd and address 3
> usb 2-1: new device found, idVendor=046d, idProduct=c00e
> usb 2-1: new device strings: Mfr=1, Product=2, SerialNumber=0
> usb 2-1: Product: USB-PS/2 Optical Mouse
> usb 2-1: Manufacturer: Logitech
> usb 2-1: configuration #1 chosen from 1 choice
> input: Logitech USB-PS/2 Optical Mouse as /class/input/input9
> input: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-0000:00:0c.0-1
> usb 2-1: USB disconnect, address 3
> uhci_hcd 0000:00:0c.0: dma_pool_free buffer-32, 6b6b6b6b/6b6b6b6b (bad dma)
>
> But mouse works ok.
>
ok..
>
> Second issue as reported earilier allmodconfig fails to build on imac g3.
>
> CC arch/powerpc/kernel/lparmap.s
> AS arch/powerpc/kernel/head_64.o
> lparmap.c: Assembler messages:
> lparmap.c:84: Error: file number 1 already allocated
> make[1]: *** [arch/powerpc/kernel/head_64.o] Blad 1
> make: *** [arch/powerpc/kernel] Blad 2
hm, someone is working that, I think?
On Wed, Aug 01, 2007 at 03:58:48AM -0400, Mike Frysinger wrote:
> On 8/1/07, Paul Mundt <[email protected]> wrote:
> > On Tue, Jul 31, 2007 at 11:09:32PM -0700, Andrew Morton wrote:
> > > - Is anyone testing the kgdb code in here?
> >
> > Testing, yes. Succeeding, no. It's utterly hosed on SH in its present
> > condition at least. Presumably it's been tested on at least one platform
> > with some measure of success, but it's certainly not mine ;-)
>
> does kgdb actually have a chance to get merged ? with the history of
> it, i just assumed it was never going in, so we've been using our own
> kgdb patch on Blackfin ... so the version *we have* works great :) but
> if there's a chance of this actually going mainline, we can see about
> testing that version as well ...
The generic code has a better chance of being merged if it actually works
at least and doesn't break every platform out there that has an existing
stub. It offers quite a bit of new functionality and does clean things up
a bit, so it would certainly be nice to get things to use that, rather
than having to duplicate all of this crap in the architectures. If it's
not going to be merged, everyone will of course continue using the
existing in-tree stubs (sh, ppc, etc.).
It's generally advantageous to get these things working on your
architecture _before_ things are merged however, as it's one less thing
to catch up on after the fact. It also helps to figure out if there are
issues with the current implementation by trying it out on your platform
in advance, it's a lot more work to push back against it once it's
already merged.
The fact that no one has bothered to even compile for the platforms the
generic kgdb stuff is ported to does seem to suggest that the kgdb folks
aren't terribly serious about getting it merged, though.
* Andrew Morton <[email protected]> wrote:
> On Wed, 1 Aug 2007 10:02:30 +0200 Mariusz Kozlowski <[email protected]> wrote:
>
> > Hello,
> >
> > I get this warning. Looking at the comment in kernel/irq/resend.c
> > it's harmless. Is it?
yeah, harmless.
Ingo
On Wed, 01 Aug 2007 04:04:06 -0400 Eric St-Laurent <[email protected]> wrote:
> I intend to try only this specific patch not the full -mm, is there any
> other patch I need to apply too?
>
no, it is standalone.
On 8/1/07, Paul Mundt <[email protected]> wrote:
> The generic code has a better chance of being merged if it actually works
> at least and doesn't break every platform out there that has an existing
> stub. It offers quite a bit of new functionality and does clean things up
> a bit, so it would certainly be nice to get things to use that, rather
> than having to duplicate all of this crap in the architectures. If it's
> not going to be merged, everyone will of course continue using the
> existing in-tree stubs (sh, ppc, etc.).
ok, ive opened a tracker on our site for this
> It's generally advantageous to get these things working on your
> architecture _before_ things are merged however, as it's one less thing
> to catch up on after the fact. It also helps to figure out if there are
> issues with the current implementation by trying it out on your platform
> in advance, it's a lot more work to push back against it once it's
> already merged.
of course ... but if there isnt a serious chance of this being merged,
then it isnt in our (Blackfin's) interest to investigate it since our
current solution seems to be chugging alone fine
-mike
From: Heiko Carstens <[email protected]>
drivers/ssb/Kconfig has already a depends on HAS_IOMEM which should
prevent SSB from being selected. But appearantly it looks like this
doesn't matter at all if it gets selected from somewhere else.
So add an explicit depends on HAS_IOMEM to the Broadcom driver to
prevent selection on s390.
Cc: "John W. Linville" <[email protected]>
Cc: Michael Buesch <[email protected]>
Cc: Martin Schwidefsky <[email protected]>
Signed-off-by: Heiko Carstens <[email protected]>
---
drivers/net/Kconfig | 1 +
1 files changed, 1 insertion(+)
Index: linux-2.6.22/drivers/net/Kconfig
===================================================================
--- linux-2.6.22.orig/drivers/net/Kconfig
+++ linux-2.6.22/drivers/net/Kconfig
@@ -1434,6 +1434,7 @@ config APRICOT
config B44
tristate "Broadcom 440x/47xx ethernet support"
+ depends on HAS_IOMEM
select SSB
select MII
help
(CCs adjusted)
On Wed, 1 Aug 2007, Andrew Morton wrote:
> > usb 2-1: USB disconnect, address 2
> > BUG: atomic counter underflow at:
> > [<c010456a>] show_trace_log_lvl+0x1a/0x30
> > [<c010508d>] show_trace+0x12/0x14
> > [<c01051e0>] dump_stack+0x15/0x17
> > [<c01418cf>] __free_pages+0x50/0x52
> > [<c01418f0>] free_pages+0x1f/0x21
> > [<c010783d>] dma_free_coherent+0x43/0x9c
> > [<c0315067>] hcd_buffer_free+0x43/0x6a
> > [<c030b2b4>] usb_buffer_free+0x23/0x29
> > [<c0346db4>] hid_free_buffers+0x23/0x71
> > [<c0346eb2>] hid_disconnect+0xb0/0xc8
> > [<c0313676>] usb_unbind_interface+0x30/0x72
> > [<c02c6df0>] __device_release_driver+0x6a/0x92
> > [<c02c71c3>] device_release_driver+0x20/0x36
> > [<c02c6736>] bus_remove_device+0x62/0x85
> > [<c02c49f8>] device_del+0x16d/0x27c
> > [<c0310f25>] usb_disable_device+0x7a/0xe2
> > [<c030d0bc>] usb_disconnect+0x94/0xde
> > [<c030e030>] hub_thread+0x2fe/0xc1b
> > [<c0128aee>] kthread+0x36/0x58
> > [<c0104233>] kernel_thread_helper+0x7/0x14
> > =======================
> > uhci_hcd 0000:00:0c.0: dma_pool_free buffer-32, 6b6b6b6b/6b6b6b6b (bad dma)
Mariusz,
I guess the patch below (which I have just added to my tree) fixes that,
right? Thanks.
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index 6e73934..0a1f2b5 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -877,9 +877,9 @@ fail:
usb_free_urb(usbhid->urbin);
usb_free_urb(usbhid->urbout);
usb_free_urb(usbhid->urbctrl);
+ hid_free_buffers(dev, hid);
kfree(usbhid);
fail_no_usbhid:
- hid_free_buffers(dev, hid);
hid_free_device(hid);
return NULL;
@@ -913,9 +913,9 @@ static void hid_disconnect(struct usb_interface *intf)
usb_free_urb(usbhid->urbin);
usb_free_urb(usbhid->urbctrl);
usb_free_urb(usbhid->urbout);
- kfree(usbhid);
hid_free_buffers(hid_to_usb_dev(hid), hid);
+ kfree(usbhid);
hid_free_device(hid);
}
....
fs/unionfs/file.c:147: error: 'file_fsync' undeclared here (not in a function)
make[2]: *** [fs/unionfs/file.o] Error 1
make[1]: *** [fs/unionfs] Error 2
make: *** [fs] Error 2
make: *** Waiting for unfinished jobs....
...
Config can be found there -> http://194.231.229.228/MM/config-auto-3
Regards,
Gabriel
Andrew Morton wrote:
...
> - git-wireless is back. It is still a >3MB diff, and appears to compile.
>
...
allmodconfig on UML
...
In file included from drivers/net/wireless/bcm43xx-mac80211/bcm43xx_main.c:48:
drivers/net/wireless/bcm43xx-mac80211/bcm43xx_pio.h: In function 'bcm43xx_pio_write':
drivers/net/wireless/bcm43xx-mac80211/bcm43xx_pio.h:97: error: implicit declaration of function 'mmiowb'
drivers/net/wireless/bcm43xx-mac80211/bcm43xx_main.c: In function 'bcm43xx_init':
drivers/net/wireless/bcm43xx-mac80211/bcm43xx_main.c:4051: warning: label 'err_dfs_exit' defined but not used
make[4]: *** [drivers/net/wireless/bcm43xx-mac80211/bcm43xx_main.o] Error 1
make[3]: *** [drivers/net/wireless/bcm43xx-mac80211] Error 2
make[2]: *** [drivers/net/wireless] Error 2
make[1]: *** [drivers/net] Error 2
make: *** [drivers] Error 2
make: *** Waiting for unfinished jobs....
...
Gabriel
From: Heiko Carstens <[email protected]>
The slow-down-printk-during-boot patch depends on preset_lpj being
available. That's not the case for architectures that have it's own
calibrate_delay() function.
kernel/sched.c:3840: undefined reference to `preset_lpj'
Cc: Randy Dunlap <[email protected]>
Cc: Dave Jones <[email protected]>
Cc: Martin Schwidefsky <[email protected]>
Signed-off-by: Heiko Carstens <[email protected]>
---
lib/Kconfig.debug | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index: linux-2.6.22/lib/Kconfig.debug
===================================================================
--- linux-2.6.22.orig/lib/Kconfig.debug
+++ linux-2.6.22/lib/Kconfig.debug
@@ -436,7 +436,7 @@ config FORCED_INLINING
config BOOT_PRINTK_DELAY
bool "Delay each boot printk message by N milliseconds"
- depends on DEBUG_KERNEL && PRINTK
+ depends on DEBUG_KERNEL && PRINTK && GENERIC_CALIBRATE_DELAY
help
This build option allows you to read kernel boot messages
by inserting a short delay after each one. The delay is
Paul Mundt wrote:
> On Tue, Jul 31, 2007 at 11:09:32PM -0700, Andrew Morton wrote:
>
>> - Is anyone testing the kgdb code in here?
>>
>>
> Testing, yes. Succeeding, no. It's utterly hosed on SH in its present
> condition at least. Presumably it's been tested on at least one platform
> with some measure of success, but it's certainly not mine ;-)
>
> I'll get you some patches that fix it up the rest of the way for SH
> platforms in the next couple days. There's nothing too rough, though,
> mostly serial driver fallout and changes in the current stub that aren't
> reflected in the 'new' one.
>
Sh "not working" is a side effect of the fact that there is no one
maintaining the sh kgdb work. As an example, the sh-lite.patch which is
part of the kgdb git tree explicitly says that the sh-sci.c needs to be
"re-ported". There were many changes since the 2.6.17 code base that
KGDB was upreved from and the fact of the matter is that I have no sh
hardware, tool chain, or means to support it. I will happily merge in
the pieces to fix up the sh kgdb arch specifics. The same was true of
IA64 at first (meaning it did not work), but Bob Pico submitted some
further patches and IA64 is should compile build and work with kgdb.
In the development branch, the kgdb core is compiled and test and should
work for the archs i386, x86_64, ppc, powerpc (32 & 64), mips (32 & 64)
and arm.
Jason.
Mariusz Kozlowski writes:
> Second issue as reported earilier allmodconfig fails to build on imac g3.
Do you really mean g3? If so it's a 32-bit kernel and it shouldn't be
building lparmap.s. Or do you mean G5?
> CC arch/powerpc/kernel/lparmap.s
> AS arch/powerpc/kernel/head_64.o
> lparmap.c: Assembler messages:
> lparmap.c:84: Error: file number 1 already allocated
> make[1]: *** [arch/powerpc/kernel/head_64.o] Blad 1
> make: *** [arch/powerpc/kernel] Blad 2
Weird. Could you do make V=1 and send me the output?
Paul.
On Wed, Aug 01, 2007 at 11:34:04AM +0200, Heiko Carstens wrote:
> From: Heiko Carstens <[email protected]>
>
> drivers/ssb/Kconfig has already a depends on HAS_IOMEM which should
> prevent SSB from being selected. But appearantly it looks like this
> doesn't matter at all if it gets selected from somewhere else.
> So add an explicit depends on HAS_IOMEM to the Broadcom driver to
> prevent selection on s390.
>
> Cc: "John W. Linville" <[email protected]>
> Cc: Michael Buesch <[email protected]>
> Cc: Martin Schwidefsky <[email protected]>
> Signed-off-by: Heiko Carstens <[email protected]>
Note to reviewers: this is only relevant to -mm and wireless-dev at
the moment, AFAIK...
John
--
John W. Linville
[email protected]
Getting this with a randconfig ( http://194.231.229.228/MM/randconfig-auto-10 )
...
drivers/scsi/advansys.c:794:2: warning: #warning this driver is still not properly converted to the DMA API
drivers/scsi/advansys.c: In function 'advansys_board_found':
drivers/scsi/advansys.c:17781: error: implicit declaration of function 'to_pci_dev'
drivers/scsi/advansys.c:17781: warning: pointer/integer type mismatch in conditional expression
drivers/scsi/advansys.c:17788: warning: unused variable 'pci_memory_address'
drivers/scsi/advansys.c:17781: warning: unused variable 'pdev'
make[2]: *** [drivers/scsi/advansys.o] Error 1
make[1]: *** [drivers/scsi] Error 2
make[1]: *** Waiting for unfinished jobs....
...
Hi Gabriel,
Hope the following trivial patch helps.
<quote sender="Gabriel C">
> Getting this with a randconfig ( http://194.231.229.228/MM/randconfig-auto-10 )
>
[...]
> drivers/scsi/advansys.c:794:2: warning: #warning this driver is still not properly converted to the DMA API
> drivers/scsi/advansys.c: In function 'advansys_board_found':
> drivers/scsi/advansys.c:17781: error: implicit declaration of function 'to_pci_dev'
[...]
This patch fixes the following compile error:
drivers/scsi/advansys.c: In function 'advansys_board_found':
drivers/scsi/advansys.c:17781: error: implicit declaration of function
'to_pci_dev'
Signed-off-by: Eugene Teo <[email protected]>
---
drivers/scsi/advansys.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
index 79c0b6e..908f02b 100644
--- a/drivers/scsi/advansys.c
+++ b/drivers/scsi/advansys.c
@@ -774,6 +774,7 @@
#include <linux/stat.h>
#include <linux/spinlock.h>
#include <linux/dma-mapping.h>
+#include <linux/pci.h>
#include <asm/io.h>
#include <asm/system.h>
On Wed, Aug 01, 2007 at 01:10:33AM -0700, Andrew Morton wrote:
> I was hoping for a 2.6.24 merge. But I haven't actually looked at it yet.
> Hopefully Jason is planning to get it all out for review soonish.
The current version is quite messy. I'd be much happier if we could
start with a light version that doesn't have all the intrusions to random
code outside the kgdb core.
On Wed, Aug 01, 2007 at 09:39:12PM +0800, Eugene Teo wrote:
> This patch fixes the following compile error:
>
> drivers/scsi/advansys.c: In function 'advansys_board_found':
> drivers/scsi/advansys.c:17781: error: implicit declaration of function
> 'to_pci_dev'
Or just remove the ifdefs around the include ... which is done in this
patch:
http://www.kernel.org/pub/linux/kernel/people/willy/advansys-2007-07-30/0001-advansys-version-copyright-etc.txt
I'd be interested in seeing the results of the randconfig trials on the
driver with those 23 patches applied, but not particularly interested in
the intermediate result.
--
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."
Eugene Teo wrote:
> Hi Gabriel,
Hi Eugene,
> Hope the following trivial patch helps.
Yes it does , thx.
>
> <quote sender="Gabriel C">
>> Getting this with a randconfig ( http://194.231.229.228/MM/randconfig-auto-10 )
>>
> [...]
>> drivers/scsi/advansys.c:794:2: warning: #warning this driver is still not properly converted to the DMA API
>> drivers/scsi/advansys.c: In function 'advansys_board_found':
>> drivers/scsi/advansys.c:17781: error: implicit declaration of function 'to_pci_dev'
> [...]
>
> This patch fixes the following compile error:
>
> drivers/scsi/advansys.c: In function 'advansys_board_found':
> drivers/scsi/advansys.c:17781: error: implicit declaration of function
> 'to_pci_dev'
>
> Signed-off-by: Eugene Teo <[email protected]>
> ---
> drivers/scsi/advansys.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
> index 79c0b6e..908f02b 100644
> --- a/drivers/scsi/advansys.c
> +++ b/drivers/scsi/advansys.c
> @@ -774,6 +774,7 @@
> #include <linux/stat.h>
> #include <linux/spinlock.h>
> #include <linux/dma-mapping.h>
> +#include <linux/pci.h>
>
> #include <asm/io.h>
> #include <asm/system.h>
>
>
Christoph Hellwig wrote:
> On Wed, Aug 01, 2007 at 01:10:33AM -0700, Andrew Morton wrote:
>
>> I was hoping for a 2.6.24 merge. But I haven't actually looked at it yet.
>> Hopefully Jason is planning to get it all out for review soonish.
>>
>
> The current version is quite messy. I'd be much happier if we could
> start with a light version that doesn't have all the intrusions to random
> code outside the kgdb core.
>
>
I would disagree on at least one level. The KGDB tree is broken up into
incremental units each layer adding more functionality and or arch
specific pieces.
As an example, the KGDB core itself is:
http://git.kernel.org/?p=linux/kernel/git/jwessel/linux-2.6-kgdb.git;a=commit;h=53956620b1b293300c5ae99a783cf6a7ce8175f9
If you can point to some specific examples vs a blanket statement "is
quite messy" perhaps I can explain what the changes are for and why they
are needed.
Jason.
Hi,
move_msr_up() is used only on X86_64 and generates a warning on !X86_64
...
drivers/kvm/vmx.c:548: warning: 'move_msr_up' defined but not used
...
Signed-off-by: Gabriel Craciunescu <[email protected]>
---
PS: Btw Avi why do you think I'm mysterious ?:)
...
git-kvm.patch: Noted by the mysterious Gabriel C.
...
--- linux-2.6.23-rc1-mm/drivers/kvm/vmx.c.orig 2007-08-01 15:56:41.000000000 +0200
+++ linux-2.6.23-rc1-mm/drivers/kvm/vmx.c 2007-08-01 15:58:24.000000000 +0200
@@ -544,6 +544,7 @@ static void vmx_inject_gp(struct kvm_vcp
/*
* Swap MSR entry in host/guest MSR entry array.
*/
+#ifdef CONFIG_X86_64
static void move_msr_up(struct vcpu_vmx *vmx, int from, int to)
{
struct kvm_msr_entry tmp;
@@ -555,6 +556,7 @@ static void move_msr_up(struct vcpu_vmx
vmx->host_msrs[to] = vmx->host_msrs[from];
vmx->host_msrs[from] = tmp;
}
+#endif
/*
* Set up the vmcs to automatically save and restore system
Matthew Wilcox wrote:
> On Wed, Aug 01, 2007 at 09:39:12PM +0800, Eugene Teo wrote:
>> This patch fixes the following compile error:
>>
>> drivers/scsi/advansys.c: In function 'advansys_board_found':
>> drivers/scsi/advansys.c:17781: error: implicit declaration of function
>> 'to_pci_dev'
>
> Or just remove the ifdefs around the include ... which is done in this
> patch:
>
> http://www.kernel.org/pub/linux/kernel/people/willy/advansys-2007-07-30/0001-advansys-version-copyright-etc.txt
>
> I'd be interested in seeing the results of the randconfig trials on the
> driver with those 23 patches applied, but not particularly interested in
> the intermediate result.
>
I can do that on weekend.
Are the patches meant for -mm or git head ?
On Wed, Aug 01, 2007 at 04:27:15PM +0200, Gabriel C wrote:
> Matthew Wilcox wrote:
> > I'd be interested in seeing the results of the randconfig trials on the
> > driver with those 23 patches applied, but not particularly interested in
> > the intermediate result.
>
> I can do that on weekend.
Thanks
> Are the patches meant for -mm or git head ?
They were developed against git head as of a few days ago. Here's a git
tree, if that's easier for you:
http://git.kernel.org/?p=linux/kernel/git/willy/advansys.git;a=shortlog
--
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."
On Wed, Aug 01, 2007 at 11:34:04AM +0200, Heiko Carstens wrote:
> From: Heiko Carstens <[email protected]>
>
> drivers/ssb/Kconfig has already a depends on HAS_IOMEM which should
> prevent SSB from being selected. But appearantly it looks like this
> doesn't matter at all if it gets selected from somewhere else.
> So add an explicit depends on HAS_IOMEM to the Broadcom driver to
> prevent selection on s390.
>
> Cc: "John W. Linville" <[email protected]>
> Cc: Michael Buesch <[email protected]>
> Cc: Martin Schwidefsky <[email protected]>
> Signed-off-by: Heiko Carstens <[email protected]>
> ---
> drivers/net/Kconfig | 1 +
> 1 files changed, 1 insertion(+)
>
> Index: linux-2.6.22/drivers/net/Kconfig
> ===================================================================
> --- linux-2.6.22.orig/drivers/net/Kconfig
> +++ linux-2.6.22/drivers/net/Kconfig
> @@ -1434,6 +1434,7 @@ config APRICOT
>
> config B44
> tristate "Broadcom 440x/47xx ethernet support"
> + depends on HAS_IOMEM
> select SSB
> select MII
> help
By the way.. wouldn't something like depends on NET_PCI or something
similar more correct for this driver? Just wondering...
Matthew Wilcox wrote:
> On Wed, Aug 01, 2007 at 04:27:15PM +0200, Gabriel C wrote:
>> Matthew Wilcox wrote:
>>> I'd be interested in seeing the results of the randconfig trials on the
>>> driver with those 23 patches applied, but not particularly interested in
>>> the intermediate result.
>> I can do that on weekend.
>
> Thanks
>
>> Are the patches meant for -mm or git head ?
>
> They were developed against git head as of a few days ago. Here's a git
> tree, if that's easier for you:
>
> http://git.kernel.org/?p=linux/kernel/git/willy/advansys.git;a=shortlog
>
Ach nice , yes is a lot easier to work with git.
On Wednesday 01 August 2007, Heiko Carstens wrote:
> On Wed, Aug 01, 2007 at 11:34:04AM +0200, Heiko Carstens wrote:
> > From: Heiko Carstens <[email protected]>
> >
> > drivers/ssb/Kconfig has already a depends on HAS_IOMEM which should
> > prevent SSB from being selected. But appearantly it looks like this
> > doesn't matter at all if it gets selected from somewhere else.
> > So add an explicit depends on HAS_IOMEM to the Broadcom driver to
> > prevent selection on s390.
> >
> > Cc: "John W. Linville" <[email protected]>
> > Cc: Michael Buesch <[email protected]>
> > Cc: Martin Schwidefsky <[email protected]>
> > Signed-off-by: Heiko Carstens <[email protected]>
> > ---
> > drivers/net/Kconfig | 1 +
> > 1 files changed, 1 insertion(+)
> >
> > Index: linux-2.6.22/drivers/net/Kconfig
> > ===================================================================
> > --- linux-2.6.22.orig/drivers/net/Kconfig
> > +++ linux-2.6.22/drivers/net/Kconfig
> > @@ -1434,6 +1434,7 @@ config APRICOT
> >
> > config B44
> > tristate "Broadcom 440x/47xx ethernet support"
> > + depends on HAS_IOMEM
> > select SSB
> > select MII
> > help
>
> By the way.. wouldn't something like depends on NET_PCI or something
> similar more correct for this driver? Just wondering...
>
>
No, B44 does not depend on PCI. It does depend on the SSB bus.
(Of course the SSB PCI parts do depend on PCI)
...
WARNING: vmlinux.o(.text+0x8b9f): Section mismatch: reference to .init.text:cache_remove_shared_cpu_map (between 'cpuid4_cache_sysfs_exit' and 'unexpected_machine_check')
...
Signed-off-by: Gabriel Craciunescu <[email protected]>
---
--- linux-2.6.23-rc1-mm/arch/i386/kernel/cpu/intel_cacheinfo.c.orig 2007-08-01 17:10:27.000000000 +0200
+++ linux-2.6.23-rc1-mm/arch/i386/kernel/cpu/intel_cacheinfo.c 2007-08-01 17:11:37.000000000 +0200
@@ -681,7 +681,7 @@ static struct kobj_type ktype_percpu_ent
.sysfs_ops = &sysfs_ops,
};
-static void cpuid4_cache_sysfs_exit(unsigned int cpu)
+static void __cpuinit cpuid4_cache_sysfs_exit(unsigned int cpu)
{
kfree(cache_kobject[cpu]);
kfree(index_kobject[cpu]);
On Wed, 1 Aug 2007 13:16:44 +0200 Heiko Carstens wrote:
> From: Heiko Carstens <[email protected]>
>
> The slow-down-printk-during-boot patch depends on preset_lpj being
> available. That's not the case for architectures that have it's own
> calibrate_delay() function.
>
> kernel/sched.c:3840: undefined reference to `preset_lpj'
Thanks.
> Cc: Randy Dunlap <[email protected]>
> Cc: Dave Jones <[email protected]>
> Cc: Martin Schwidefsky <[email protected]>
> Signed-off-by: Heiko Carstens <[email protected]>
> ---
> lib/Kconfig.debug | 2 +-
> 1 files changed, 1 insertion(+), 1 deletion(-)
>
> Index: linux-2.6.22/lib/Kconfig.debug
> ===================================================================
> --- linux-2.6.22.orig/lib/Kconfig.debug
> +++ linux-2.6.22/lib/Kconfig.debug
> @@ -436,7 +436,7 @@ config FORCED_INLINING
>
> config BOOT_PRINTK_DELAY
> bool "Delay each boot printk message by N milliseconds"
> - depends on DEBUG_KERNEL && PRINTK
> + depends on DEBUG_KERNEL && PRINTK && GENERIC_CALIBRATE_DELAY
> help
> This build option allows you to read kernel boot messages
> by inserting a short delay after each one. The delay is
---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
On Wed, Aug 01, 2007 at 10:02:30AM +0200, Mariusz Kozlowski wrote:
> Then reattaching a usb mouse caused this (only once)
>
> usb 2-1: USB disconnect, address 2
> BUG: atomic counter underflow at:
> [<c010456a>] show_trace_log_lvl+0x1a/0x30
> [<c010508d>] show_trace+0x12/0x14
> [<c01051e0>] dump_stack+0x15/0x17
> [<c01418cf>] __free_pages+0x50/0x52
> [<c01418f0>] free_pages+0x1f/0x21
> [<c010783d>] dma_free_coherent+0x43/0x9c
> [<c0315067>] hcd_buffer_free+0x43/0x6a
> [<c030b2b4>] usb_buffer_free+0x23/0x29
> [<c0346db4>] hid_free_buffers+0x23/0x71
> [<c0346eb2>] hid_disconnect+0xb0/0xc8
> [<c0313676>] usb_unbind_interface+0x30/0x72
> [<c02c6df0>] __device_release_driver+0x6a/0x92
> [<c02c71c3>] device_release_driver+0x20/0x36
> [<c02c6736>] bus_remove_device+0x62/0x85
> [<c02c49f8>] device_del+0x16d/0x27c
> [<c0310f25>] usb_disable_device+0x7a/0xe2
> [<c030d0bc>] usb_disconnect+0x94/0xde
> [<c030e030>] hub_thread+0x2fe/0xc1b
> [<c0128aee>] kthread+0x36/0x58
> [<c0104233>] kernel_thread_helper+0x7/0x14
> =======================
> uhci_hcd 0000:00:0c.0: dma_pool_free buffer-32, 6b6b6b6b/6b6b6b6b (bad dma)
>
> Every new try shows:
>
> usb 2-1: new low speed USB device using uhci_hcd and address 3
> usb 2-1: new device found, idVendor=046d, idProduct=c00e
> usb 2-1: new device strings: Mfr=1, Product=2, SerialNumber=0
> usb 2-1: Product: USB-PS/2 Optical Mouse
> usb 2-1: Manufacturer: Logitech
> usb 2-1: configuration #1 chosen from 1 choice
> input: Logitech USB-PS/2 Optical Mouse as /class/input/input9
> input: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-0000:00:0c.0-1
> usb 2-1: USB disconnect, address 3
> uhci_hcd 0000:00:0c.0: dma_pool_free buffer-32, 6b6b6b6b/6b6b6b6b (bad dma)
>
> But mouse works ok.
Can you see if the patch posted by Jiri fixes this or not?
thanks,
greg k-h
On Wed, 01 Aug 2007 12:33:18 +0200 Gabriel C <[email protected]> wrote:
> ....
>
> fs/unionfs/file.c:147: error: 'file_fsync' undeclared here (not in a function)
> make[2]: *** [fs/unionfs/file.o] Error 1
> make[1]: *** [fs/unionfs] Error 2
> make: *** [fs] Error 2
> make: *** Waiting for unfinished jobs....
>
> ...
>
> Config can be found there -> http://194.231.229.228/MM/config-auto-3
>
This, I assume:
--- a/fs/unionfs/file.c~git-unionfs-fix-2
+++ a/fs/unionfs/file.c
@@ -17,6 +17,7 @@
*/
#include "union.h"
+#include <linux/buffer_head.h>
/*******************
* File Operations *
_
(and no, sorry, I will not be complicit in that
single-header-file-which-includes-the-whole-world junk).
On Wed, 01 Aug 2007 12:56:09 +0200 Gabriel C <[email protected]> wrote:
> Andrew Morton wrote:
> ...
> > - git-wireless is back. It is still a >3MB diff, and appears to compile.
> >
> ...
>
> allmodconfig on UML
>
> ...
>
>
> In file included from drivers/net/wireless/bcm43xx-mac80211/bcm43xx_main.c:48:
> drivers/net/wireless/bcm43xx-mac80211/bcm43xx_pio.h: In function 'bcm43xx_pio_write':
> drivers/net/wireless/bcm43xx-mac80211/bcm43xx_pio.h:97: error: implicit declaration of function 'mmiowb'
> drivers/net/wireless/bcm43xx-mac80211/bcm43xx_main.c: In function 'bcm43xx_init':
> drivers/net/wireless/bcm43xx-mac80211/bcm43xx_main.c:4051: warning: label 'err_dfs_exit' defined but not used
> make[4]: *** [drivers/net/wireless/bcm43xx-mac80211/bcm43xx_main.o] Error 1
> make[3]: *** [drivers/net/wireless/bcm43xx-mac80211] Error 2
> make[2]: *** [drivers/net/wireless] Error 2
> make[1]: *** [drivers/net] Error 2
> make: *** [drivers] Error 2
> make: *** Waiting for unfinished jobs....
>
(cc linux-wireless)
Probably Kconfig troubles again.
On Wed, Aug 01, 2007 at 10:22:07AM -0700, Andrew Morton wrote:
> On Wed, 01 Aug 2007 12:33:18 +0200 Gabriel C <[email protected]> wrote:
>
> > ....
> >
> > fs/unionfs/file.c:147: error: 'file_fsync' undeclared here (not in a function)
> > make[2]: *** [fs/unionfs/file.o] Error 1
> > make[1]: *** [fs/unionfs] Error 2
> > make: *** [fs] Error 2
> > make: *** Waiting for unfinished jobs....
> >
> > ...
> >
> > Config can be found there -> http://194.231.229.228/MM/config-auto-3
> >
>
> This, I assume:
>
> --- a/fs/unionfs/file.c~git-unionfs-fix-2
> +++ a/fs/unionfs/file.c
> @@ -17,6 +17,7 @@
> */
>
> #include "union.h"
> +#include <linux/buffer_head.h>
>
> /*******************
> * File Operations *
> _
>
> (and no, sorry, I will not be complicit in that
> single-header-file-which-includes-the-whole-world junk).
Ouch. I had a fix for this, and it managed to get lost in the pile of
patches.
I'll fix it up and push fix to kernel.org.
Jeff.
--
I abhor a system designed for the "user", if that word is a coded pejorative
meaning "stupid and unsophisticated."
- Ken Thompson
Andrew Morton wrote:
> On Wed, 01 Aug 2007 12:33:18 +0200 Gabriel C <[email protected]> wrote:
>
>> ....
>>
>> fs/unionfs/file.c:147: error: 'file_fsync' undeclared here (not in a function)
>> make[2]: *** [fs/unionfs/file.o] Error 1
>> make[1]: *** [fs/unionfs] Error 2
>> make: *** [fs] Error 2
>> make: *** Waiting for unfinished jobs....
>>
>> ...
>>
>> Config can be found there -> http://194.231.229.228/MM/config-auto-3
>>
>
> This, I assume:
Yes this fixes it.
>
> --- a/fs/unionfs/file.c~git-unionfs-fix-2
> +++ a/fs/unionfs/file.c
> @@ -17,6 +17,7 @@
> */
>
> #include "union.h"
> +#include <linux/buffer_head.h>
>
> /*******************
> * File Operations *
> _
>
> (and no, sorry, I will not be complicit in that
> single-header-file-which-includes-the-whole-world junk).
>
>
Andrew Morton wrote:
> On Wed, 01 Aug 2007 12:56:09 +0200 Gabriel C <[email protected]> wrote:
>
>> Andrew Morton wrote:
>> ...
>>> - git-wireless is back. It is still a >3MB diff, and appears to compile.
>>>
>> ...
>>
>> allmodconfig on UML
>>
>> ...
>>
>>
>> In file included from drivers/net/wireless/bcm43xx-mac80211/bcm43xx_main.c:48:
>> drivers/net/wireless/bcm43xx-mac80211/bcm43xx_pio.h: In function 'bcm43xx_pio_write':
>> drivers/net/wireless/bcm43xx-mac80211/bcm43xx_pio.h:97: error: implicit declaration of function 'mmiowb'
>> drivers/net/wireless/bcm43xx-mac80211/bcm43xx_main.c: In function 'bcm43xx_init':
>> drivers/net/wireless/bcm43xx-mac80211/bcm43xx_main.c:4051: warning: label 'err_dfs_exit' defined but not used
>> make[4]: *** [drivers/net/wireless/bcm43xx-mac80211/bcm43xx_main.o] Error 1
>> make[3]: *** [drivers/net/wireless/bcm43xx-mac80211] Error 2
>> make[2]: *** [drivers/net/wireless] Error 2
>> make[1]: *** [drivers/net] Error 2
>> make: *** [drivers] Error 2
>> make: *** Waiting for unfinished jobs....
>>
>
> (cc linux-wireless)
>
> Probably Kconfig troubles again.
>
Maybe something from SSB ?
...
scripts/kconfig/conf -s arch/um/Kconfig
net/bluetooth/hidp/Kconfig:4:warning: 'select' used by config symbol 'BT_HIDP' refers to undefined symbol 'HID'
drivers/net/Kconfig:1456:warning: 'select' used by config symbol 'B44_PCI' refers to undefined symbol 'SSB_PCIHOST'
drivers/net/Kconfig:1457:warning: 'select' used by config symbol 'B44_PCI' refers to undefined symbol 'SSB_DRIVER_PCICORE'
drivers/net/Kconfig:1437:warning: 'select' used by config symbol 'B44' refers to undefined symbol 'SSB'
drivers/net/Kconfig:2112:warning: 'select' used by config symbol 'R8169' refers to undefined symbol 'EEPROM_93CX6'
drivers/net/wireless/Kconfig:552:warning: 'select' used by config symbol 'RTL8187' refers to undefined symbol 'EEPROM_93CX6'
drivers/net/wireless/Kconfig:637:warning: 'select' used by config symbol 'RT2X00_LIB_RFKILL' refers to undefined symbol 'INPUT_POLLDEV'
drivers/net/wireless/Kconfig:643:warning: 'select' used by config symbol 'RT2400PCI' refers to undefined symbol 'EEPROM_93CX6'
drivers/net/wireless/Kconfig:662:warning: 'select' used by config symbol 'RT2500PCI' refers to undefined symbol 'EEPROM_93CX6'
drivers/net/wireless/Kconfig:682:warning: 'select' used by config symbol 'RT61PCI' refers to undefined symbol 'EEPROM_93CX6'
drivers/net/wireless/bcm43xx-mac80211/Kconfig:14:warning: 'select' used by config symbol 'BCM43XX_MAC80211_PCI' refers to undefined symbol 'SSB_PCIHOST'
drivers/net/wireless/bcm43xx-mac80211/Kconfig:15:warning: 'select' used by config symbol 'BCM43XX_MAC80211_PCI' refers to undefined symbol 'SSB_DRIVER_PCICORE'
drivers/net/wireless/bcm43xx-mac80211/Kconfig:28:warning: 'select' used by config symbol 'BCM43XX_MAC80211_PCMCIA' refers to undefined symbol 'SSB_PCMCIAHOST'
drivers/net/wireless/bcm43xx-mac80211/Kconfig:48:warning: 'select' used by config symbol 'BCM43XX_MAC80211_DEBUG' refers to undefined symbol 'SSB_DEBUG'
drivers/net/wireless/bcm43xx-mac80211/Kconfig:5:warning: 'select' used by config symbol 'BCM43XX_MAC80211' refers to undefined symbol 'SSB'
lib/Kconfig.kgdb:71:warning: 'select' used by config symbol 'KGDB_8250_NOMODULE' refers to undefined symbol 'SERIAL_8250'
...
Gabriel C wrote:
> Hi,
>
> move_msr_up() is used only on X86_64 and generates a warning on !X86_64
>
> ...
>
> drivers/kvm/vmx.c:548: warning: 'move_msr_up' defined but not used
>
Applied, thanks.
> ---
>
> PS: Btw Avi why do you think I'm mysterious ?:)
> ...
>
> git-kvm.patch: Noted by the mysterious Gabriel C.
>
>
Well, the C surname (maybe you're related to the programming language?)
and the email address.
--
error compiling committee.c: too many arguments to function
Le 01.08.2007 08:09, Andrew Morton a ?crit :
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc1/2.6.23-rc1-mm2/
...
> +libata-acpi-checks-for-80wire-cable-use-in-pata_via.patch
...
> sata/pata things
Alan,
this does not work after a suspend-resume cycle, I get a " ACPI get
timing mode failed (AE 0x1001)" error.
$ dmesg | grep ata
...
scsi0 : pata_via
scsi1 : pata_via
ata1: PATA max UDMA/100 cmd 0x000101f0 ctl 0x000103f6 bmdma
0x0001b800 irq 14
ata2: PATA max UDMA/100 cmd 0x00010170 ctl 0x00010376 bmdma
0x0001b808 irq 15
ata1.00: ATA-5: ST340016A, 3.75, max UDMA/100
ata1.00: 78165360 sectors, multi 16: LBA
ata1.01: ATA-7: Maxtor 6Y080L0, YAR41BW0, max UDMA/133
ata1.01: 160086528 sectors, multi 16: LBA
ata1.00: configured for UDMA/100
ata1.01: configured for UDMA/100
ata2.00: ATAPI: HL-DT-ST DVDRAM GSA-4165B, DL03, max UDMA/33
ata2.01: ATAPI: CD-950E/AKU, A4Q, max MWDMA2, CDB intr
ata2.00: configured for UDMA/33
ata2.01: configured for MWDMA2
ata1.00: Unable to set Link PM policy
ata1.01: Unable to set Link PM policy
ata2.00: Unable to set Link PM policy
ata2.01: Unable to set Link PM policy
...
[ suspend-to-disk/resume cycle happens here ]
...
ata1.00: Unable to set Link PM policy
ata1.01: Unable to set Link PM policy
ata2.00: Unable to set Link PM policy
ata2.01: Unable to set Link PM policy
ata1: ACPI get timing mode failed (AE 0x1001) <==========
ata1.00: limited to UDMA/33 due to 40-wire cable
ata1.01: limited to UDMA/33 due to 40-wire cable
ata1.00: configured for UDMA/33
ata1.01: configured for UDMA/33
ata2: ACPI get timing mode failed (AE 0x1001)
ata2.00: configured for UDMA/33
ata2.01: configured for MWDMA2
Anyway, long before 2.6.23-rc1-mm2, 80-wire cable detection was
already wrong after a suspend-resume cycle. So I cooked the
following patch 2 days ago.
It may be the wrong approach but it works for me.
--
pata_via: preserve cable detection bits in via_do_set_mode
via_cable_detect performs cable detection by checking bits in PCI
layer. But via_do_set_mode overwrites these bits. This behaviour
breaks cable detection after suspend/resume cycle.
So let's teach via_do_set_mode to preserve cable detection bits.
Signed-off-by: Laurent Riffard <[email protected]>
---
drivers/ata/pata_via.c | 7 +++++++
1 file changed, 7 insertions(+)
Index: linux-2.6-mm/drivers/ata/pata_via.c
===================================================================
--- linux-2.6-mm.orig/drivers/ata/pata_via.c
+++ linux-2.6-mm/drivers/ata/pata_via.c
@@ -238,6 +238,7 @@ static void via_do_set_mode(struct ata_p
unsigned long T = 1000000000 / via_clock;
unsigned long UT = T/tdiv;
int ut;
+ u8 cable80_status;
int offset = 3 - (2*ap->port_no) - adev->devno;
@@ -287,6 +288,12 @@ static void via_do_set_mode(struct ata_p
ut = t.udma ? (0xe0 | (FIT(t.udma, 2, 9) - 2)) : 0x07;
break;
}
+
+ /* Preserve cable detection bit */
+ pci_read_config_byte(pdev, 0x50 + offset, &cable80_status);
+ cable80_status &= 0x10;
+ ut |= cable80_status;
+
/* Set UDMA unless device is not UDMA capable */
if (udma_type)
pci_write_config_byte(pdev, 0x50 + offset, ut);
On Tue, 31 Jul 2007 23:09:32 PDT, Andrew Morton said:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc1/2.6.23-rc1-mm2/
Builds, boots, runs here. Dell Latitude D820, Core2 Duo T7200, x86_64 kernel.
> -loop-use-unlocked_ioctl.patch
>
> Dropped, broken.
Fixes one issue I had in -mm1 (I'm assuming somebody else spotting this one
as well, you dropped it before I reported it.. :)
> +tpm_tis-fix-interrupt-probing.patch
And the other...
As an aside, it looks like bits&pieces of dynticks-for-x86_64 are in there.
In particular, x86_64-enable-high-resolution-timers-and-dynticks.patch is in
there, adding a menu that depends on GENERIC_CLOCKEVENTS, but then nothing
in the x86_64 tree actually *sets* it. There's a few other dynticks-related
prep patches in there as well. Does this mean it's back to "coming soon to
a CPU near you" status? :)
On Wed, 01 Aug 2007 16:30:08 -0400
[email protected] wrote:
> As an aside, it looks like bits&pieces of dynticks-for-x86_64 are in there.
> In particular, x86_64-enable-high-resolution-timers-and-dynticks.patch is in
> there, adding a menu that depends on GENERIC_CLOCKEVENTS, but then nothing
> in the x86_64 tree actually *sets* it. There's a few other dynticks-related
> prep patches in there as well. Does this mean it's back to "coming soon to
> a CPU near you" status? :)
I've lost the plot on that stuff: I'm just leaving things as-is for now,
wait for Thomas to return from vacation so we can have another run at it.
On 8/1/07, Andrew Morton <[email protected]> wrote:
> On Wed, 01 Aug 2007 16:30:08 -0400
> [email protected] wrote:
>
> > As an aside, it looks like bits&pieces of dynticks-for-x86_64 are in there.
> > In particular, x86_64-enable-high-resolution-timers-and-dynticks.patch is in
> > there, adding a menu that depends on GENERIC_CLOCKEVENTS, but then nothing
> > in the x86_64 tree actually *sets* it. There's a few other dynticks-related
> > prep patches in there as well. Does this mean it's back to "coming soon to
> > a CPU near you" status? :)
>
> I've lost the plot on that stuff: I'm just leaving things as-is for now,
> wait for Thomas to return from vacation so we can have another run at it.
For what its worth: 2.6.22-rc6-mm1 with NO_HZ works for me on an AMD
SMP system without trouble.
Next try with 2.6.23-rc1-mm2 and SPARSEMEM:
Probably the same exception, but this time with Call Trace:
[ 0.000000] Bootmem setup node 0 0000000000000000-0000000080000000
[ 0.000000] Bootmem setup node 1 0000000080000000-0000000120000000
[ 0.000000] Zone PFN ranges:
[ 0.000000] DMA 0 -> 4096
[ 0.000000] DMA32 4096 -> 1048576
[ 0.000000] Normal 1048576 -> 1179648
[ 0.000000] Movable zone start PFN for each node
[ 0.000000] early_node_map[4] active PFN ranges
[ 0.000000] 0: 0 -> 159
[ 0.000000] 0: 256 -> 524288
[ 0.000000] 1: 524288 -> 917488
[ 0.000000] 1: 1048576 -> 1179648
PANIC: early exception rip ffffffff807cddb5 error 2 cr2 ffffe20003000010
[ 0.000000]
[ 0.000000] Call Trace:
[ 0.000000] [<ffffffff807cddb5>] memmap_init_zone+0xb5/0x130
[ 0.000000] [<ffffffff807ce874>] init_currently_empty_zone+0x84/0x110
[ 0.000000] [<ffffffff807cec93>] free_area_init_node+0x393/0x3e0
[ 0.000000] [<ffffffff807cefea>] free_area_init_nodes+0x2da/0x320
[ 0.000000] [<ffffffff807c9c97>] paging_init+0x87/0x90
[ 0.000000] [<ffffffff807c0f85>] setup_arch+0x355/0x470
[ 0.000000] [<ffffffff807bc967>] start_kernel+0x57/0x330
[ 0.000000] [<ffffffff807bc12d>] _sinittext+0x12d/0x140
[ 0.000000]
[ 0.000000] RIP memmap_init_zone+0xb5/0x130
(gdb) list *0xffffffff807cddb5
0xffffffff807cddb5 is in memmap_init_zone (include/linux/list.h:32).
27 #define LIST_HEAD(name) \
28 struct list_head name = LIST_HEAD_INIT(name)
29
30 static inline void INIT_LIST_HEAD(struct list_head *list)
31 {
32 list->next = list;
33 list->prev = list;
34 }
35
36 /*
I will test more tomorrow...
Torsten
On Wed, 1 Aug 2007 22:52:44 +0200
"Torsten Kaiser" <[email protected]> wrote:
> On 8/1/07, Andrew Morton <[email protected]> wrote:
> > On Wed, 01 Aug 2007 16:30:08 -0400
> > [email protected] wrote:
> >
> > > As an aside, it looks like bits&pieces of dynticks-for-x86_64 are in there.
> > > In particular, x86_64-enable-high-resolution-timers-and-dynticks.patch is in
> > > there, adding a menu that depends on GENERIC_CLOCKEVENTS, but then nothing
> > > in the x86_64 tree actually *sets* it. There's a few other dynticks-related
> > > prep patches in there as well. Does this mean it's back to "coming soon to
> > > a CPU near you" status? :)
> >
> > I've lost the plot on that stuff: I'm just leaving things as-is for now,
> > wait for Thomas to return from vacation so we can have another run at it.
>
> For what its worth: 2.6.22-rc6-mm1 with NO_HZ works for me on an AMD
> SMP system without trouble.
>
> Next try with 2.6.23-rc1-mm2 and SPARSEMEM:
> Probably the same exception, but this time with Call Trace:
> [ 0.000000] Bootmem setup node 0 0000000000000000-0000000080000000
> [ 0.000000] Bootmem setup node 1 0000000080000000-0000000120000000
> [ 0.000000] Zone PFN ranges:
> [ 0.000000] DMA 0 -> 4096
> [ 0.000000] DMA32 4096 -> 1048576
> [ 0.000000] Normal 1048576 -> 1179648
> [ 0.000000] Movable zone start PFN for each node
> [ 0.000000] early_node_map[4] active PFN ranges
> [ 0.000000] 0: 0 -> 159
> [ 0.000000] 0: 256 -> 524288
> [ 0.000000] 1: 524288 -> 917488
> [ 0.000000] 1: 1048576 -> 1179648
> PANIC: early exception rip ffffffff807cddb5 error 2 cr2 ffffe20003000010
It's cryptically telling us that the code tried to access 0xffffe20003000010
> [ 0.000000]
> [ 0.000000] Call Trace:
> [ 0.000000] [<ffffffff807cddb5>] memmap_init_zone+0xb5/0x130
> [ 0.000000] [<ffffffff807ce874>] init_currently_empty_zone+0x84/0x110
> [ 0.000000] [<ffffffff807cec93>] free_area_init_node+0x393/0x3e0
> [ 0.000000] [<ffffffff807cefea>] free_area_init_nodes+0x2da/0x320
> [ 0.000000] [<ffffffff807c9c97>] paging_init+0x87/0x90
> [ 0.000000] [<ffffffff807c0f85>] setup_arch+0x355/0x470
> [ 0.000000] [<ffffffff807bc967>] start_kernel+0x57/0x330
> [ 0.000000] [<ffffffff807bc12d>] _sinittext+0x12d/0x140
> [ 0.000000]
> [ 0.000000] RIP memmap_init_zone+0xb5/0x130
>
> (gdb) list *0xffffffff807cddb5
> 0xffffffff807cddb5 is in memmap_init_zone (include/linux/list.h:32).
> 27 #define LIST_HEAD(name) \
> 28 struct list_head name = LIST_HEAD_INIT(name)
> 29
> 30 static inline void INIT_LIST_HEAD(struct list_head *list)
> 31 {
> 32 list->next = list;
> 33 list->prev = list;
> 34 }
> 35
> 36 /*
>
> I will test more tomorrow...
Thanks. Please send the .config?
On (01/08/07 22:52), Torsten Kaiser didst pronounce:
> On 8/1/07, Andrew Morton <[email protected]> wrote:
> > On Wed, 01 Aug 2007 16:30:08 -0400
> > [email protected] wrote:
> >
> > > As an aside, it looks like bits&pieces of dynticks-for-x86_64 are in there.
> > > In particular, x86_64-enable-high-resolution-timers-and-dynticks.patch is in
> > > there, adding a menu that depends on GENERIC_CLOCKEVENTS, but then nothing
> > > in the x86_64 tree actually *sets* it. There's a few other dynticks-related
> > > prep patches in there as well. Does this mean it's back to "coming soon to
> > > a CPU near you" status? :)
> >
> > I've lost the plot on that stuff: I'm just leaving things as-is for now,
> > wait for Thomas to return from vacation so we can have another run at it.
>
> For what its worth: 2.6.22-rc6-mm1 with NO_HZ works for me on an AMD
> SMP system without trouble.
>
> Next try with 2.6.23-rc1-mm2 and SPARSEMEM:
> Probably the same exception, but this time with Call Trace:
> [ 0.000000] Bootmem setup node 0 0000000000000000-0000000080000000
> [ 0.000000] Bootmem setup node 1 0000000080000000-0000000120000000
> [ 0.000000] Zone PFN ranges:
> [ 0.000000] DMA 0 -> 4096
> [ 0.000000] DMA32 4096 -> 1048576
> [ 0.000000] Normal 1048576 -> 1179648
> [ 0.000000] Movable zone start PFN for each node
> [ 0.000000] early_node_map[4] active PFN ranges
> [ 0.000000] 0: 0 -> 159
> [ 0.000000] 0: 256 -> 524288
> [ 0.000000] 1: 524288 -> 917488
> [ 0.000000] 1: 1048576 -> 1179648
> PANIC: early exception rip ffffffff807cddb5 error 2 cr2 ffffe20003000010
> [ 0.000000]
> [ 0.000000] Call Trace:
> [ 0.000000] [<ffffffff807cddb5>] memmap_init_zone+0xb5/0x130
> [ 0.000000] [<ffffffff807ce874>] init_currently_empty_zone+0x84/0x110
> [ 0.000000] [<ffffffff807cec93>] free_area_init_node+0x393/0x3e0
> [ 0.000000] [<ffffffff807cefea>] free_area_init_nodes+0x2da/0x320
> [ 0.000000] [<ffffffff807c9c97>] paging_init+0x87/0x90
> [ 0.000000] [<ffffffff807c0f85>] setup_arch+0x355/0x470
> [ 0.000000] [<ffffffff807bc967>] start_kernel+0x57/0x330
> [ 0.000000] [<ffffffff807bc12d>] _sinittext+0x12d/0x140
> [ 0.000000]
> [ 0.000000] RIP memmap_init_zone+0xb5/0x130
>
> (gdb) list *0xffffffff807cddb5
> 0xffffffff807cddb5 is in memmap_init_zone (include/linux/list.h:32).
> 27 #define LIST_HEAD(name) \
> 28 struct list_head name = LIST_HEAD_INIT(name)
> 29
> 30 static inline void INIT_LIST_HEAD(struct list_head *list)
> 31 {
> 32 list->next = list;
> 33 list->prev = list;
> 34 }
> 35
> 36 /*
>
> I will test more tomorrow...
Well.... That doesn't make a whole pile of sense unless the memory map
is not present. Looking at your boot log, we see this gem
> [ 0.000000] 1: 524288 -> 917488
> [ 0.000000] 1: 1048576 -> 1179648
Node 1 spans a region with a nice little hole in the middle of DMA32. In our
test machines, we wouldn't see a hole like this, at least that I can recall
so it would appear to work on some machines. On SPARSEMEM, sparse_init()
is responsible for allocating memmap for each section. In 2.6.22-rc6-mm1,
it allocated the memory if the section was *valid*. In 2.6.23-rc1-mm1,
it allocates the memory if the section is *present* due to the patch
sparsemem-record-when-a-section-has-a-valid-mem_map.patch[1]. Much later in
the init process, memmap is initialised based on spanned memory, not present
memory so initialisation will init memmap that resides in holes if a zone
spans that area in a node which is the case on this machine. I think this
is why it kablamos - it's inits memmap that wasn't allocated because it's
not present and the suprise is that it doesn't blow up sooner. Please try
the patch below Torsten, thanks.
[1] yeah, I acked this patch and I had read through it. My bad if the
patch below does fix the problem
diff -rup -X /usr/src/patchset-0.6/bin//dontdiff linux-2.6.23-rc1-mm2-clean/mm/sparse.c linux-2.6.23-rc1-mm2-present_revert/mm/sparse.c
--- linux-2.6.23-rc1-mm2-clean/mm/sparse.c 2007-08-01 10:09:39.000000000 +0100
+++ linux-2.6.23-rc1-mm2-present_revert/mm/sparse.c 2007-08-02 00:27:00.000000000 +0100
@@ -483,7 +483,7 @@ void __init sparse_init(void)
unsigned long *usemap;
for (pnum = 0; pnum < NR_MEM_SECTIONS; pnum++) {
- if (!present_section_nr(pnum))
+ if (!valid_section_nr(pnum))
continue;
map = sparse_early_mem_map_alloc(pnum);
> Changes since 2.6.23-rc1-mm1:
>
...
> git-audit-master.patch
...
kernel/auditsc.c: In function 'handle_one':
kernel/auditsc.c:1411: error: 'const struct inode' has no member named 'inotify_watches'
kernel/auditsc.c:1411: error: 'const struct inode' has no member named 'inotify_watches'
kernel/auditsc.c:1411: error: 'const struct inode' has no member named 'inotify_watches'
kernel/auditsc.c: In function 'handle_path':
kernel/auditsc.c:1452: error: 'struct inode' has no member named 'inotify_watches'
kernel/auditsc.c:1452: error: 'struct inode' has no member named 'inotify_watches'
kernel/auditsc.c:1452: error: 'struct inode' has no member named 'inotify_watches'
make[1]: *** [kernel/auditsc.o] Error 1
make: *** [kernel] Error 2
make: *** Waiting for unfinished jobs....
...
Got that with a randconfig ( http://194.231.229.228/MM/randconfig-auto-34 )
Regards,
Gabriel
Signed-off-by: Gabriel Craciunescu <[email protected]>
---
--- linux-2.6.23-rc1-mm/MAINTAINERS.orig 2007-08-02 01:51:40.000000000 +0200
+++ linux-2.6.23-rc1-mm/MAINTAINERS 2007-08-02 01:52:17.000000000 +0200
@@ -672,7 +672,7 @@ S: Maintained
AUDIT SUBSYSTEM
P: David Woodhouse
M: [email protected]
-L: [email protected]
+L: [email protected] (subscribers-only)
W: http://people.redhat.com/sgrubb/audit/
T: git kernel.org:/pub/scm/linux/kernel/git/dwmw2/audit-2.6.git
S: Maintained
On Thu, 02 Aug 2007 01:59:54 +0200 Gabriel C wrote:
> Signed-off-by: Gabriel Craciunescu <[email protected]>
>
> ---
>
> --- linux-2.6.23-rc1-mm/MAINTAINERS.orig 2007-08-02 01:51:40.000000000 +0200
> +++ linux-2.6.23-rc1-mm/MAINTAINERS 2007-08-02 01:52:17.000000000 +0200
> @@ -672,7 +672,7 @@ S: Maintained
> AUDIT SUBSYSTEM
> P: David Woodhouse
> M: [email protected]
> -L: [email protected]
> +L: [email protected] (subscribers-only)
> W: http://people.redhat.com/sgrubb/audit/
> T: git kernel.org:/pub/scm/linux/kernel/git/dwmw2/audit-2.6.git
> S: Maintained
>
> -
Ack, I sent this patch last week...
---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
On 8/2/07, Mel Gorman <[email protected]> wrote:
> On (01/08/07 22:52), Torsten Kaiser didst pronounce:
> > Next try with 2.6.23-rc1-mm2 and SPARSEMEM:
> > Probably the same exception, but this time with Call Trace:
> > [ 0.000000] Bootmem setup node 0 0000000000000000-0000000080000000
> > [ 0.000000] Bootmem setup node 1 0000000080000000-0000000120000000
> > [ 0.000000] Zone PFN ranges:
> > [ 0.000000] DMA 0 -> 4096
> > [ 0.000000] DMA32 4096 -> 1048576
> > [ 0.000000] Normal 1048576 -> 1179648
> > [ 0.000000] Movable zone start PFN for each node
> > [ 0.000000] early_node_map[4] active PFN ranges
> > [ 0.000000] 0: 0 -> 159
> > [ 0.000000] 0: 256 -> 524288
> > [ 0.000000] 1: 524288 -> 917488
> > [ 0.000000] 1: 1048576 -> 1179648
> > PANIC: early exception rip ffffffff807cddb5 error 2 cr2 ffffe20003000010
> > [ 0.000000]
> > [ 0.000000] Call Trace:
> > [ 0.000000] [<ffffffff807cddb5>] memmap_init_zone+0xb5/0x130
> > [ 0.000000] [<ffffffff807ce874>] init_currently_empty_zone+0x84/0x110
> > [ 0.000000] [<ffffffff807cec93>] free_area_init_node+0x393/0x3e0
> > [ 0.000000] [<ffffffff807cefea>] free_area_init_nodes+0x2da/0x320
> > [ 0.000000] [<ffffffff807c9c97>] paging_init+0x87/0x90
> > [ 0.000000] [<ffffffff807c0f85>] setup_arch+0x355/0x470
> > [ 0.000000] [<ffffffff807bc967>] start_kernel+0x57/0x330
> > [ 0.000000] [<ffffffff807bc12d>] _sinittext+0x12d/0x140
> > [ 0.000000]
> > [ 0.000000] RIP memmap_init_zone+0xb5/0x130
> >
> > (gdb) list *0xffffffff807cddb5
> > 0xffffffff807cddb5 is in memmap_init_zone (include/linux/list.h:32).
> > 27 #define LIST_HEAD(name) \
> > 28 struct list_head name = LIST_HEAD_INIT(name)
> > 29
> > 30 static inline void INIT_LIST_HEAD(struct list_head *list)
> > 31 {
> > 32 list->next = list;
> > 33 list->prev = list;
> > 34 }
> > 35
> > 36 /*
> >
> > I will test more tomorrow...
>
> Well.... That doesn't make a whole pile of sense unless the memory map
> is not present. Looking at your boot log, we see this gem
>
> > [ 0.000000] 1: 524288 -> 917488
> > [ 0.000000] 1: 1048576 -> 1179648
Complete bootlog, if you need more info about the memmaps...
[ 0.000000] Linux version 2.6.23-rc1-mm2 (root@treogen) (gcc
version 4.2.1 (Gentoo 4.2.1 p1.4)) #1 SMP Wed Aug 1 21:56:36 CEST 2007
[ 0.000000] Command line: earlyprintk=serial,ttyS0,38400
console=ttyS0,38400 console=tty1 crypt_root=/dev/md1
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
[ 0.000000] BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 00000000dfff0000 (usable)
[ 0.000000] BIOS-e820: 00000000dfff0000 - 00000000dfffe000 (ACPI data)
[ 0.000000] BIOS-e820: 00000000dfffe000 - 00000000e0000000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
[ 0.000000] BIOS-e820: 00000000fee00000 - 00000000fef00000 (reserved)
[ 0.000000] BIOS-e820: 00000000ff700000 - 0000000100000000 (reserved)
[ 0.000000] BIOS-e820: 0000000100000000 - 0000000120000000 (usable)
[ 0.000000] console [earlyser0] enabled
[ 0.000000] end_pfn_map = 1179648
kernel direct mapping tables up to 120000000 @ 8000-e000
[ 0.000000] DMI present.
[ 0.000000] ACPI: RSDP 000FB5E0, 0014 (r0 ACPIAM)
[ 0.000000] ACPI: RSDT DFFF0000, 003C (r1 A M I OEMRSDT 6000626
MSFT 97)
[ 0.000000] ACPI: FACP DFFF0200, 0084 (r2 A M I OEMFACP 6000626
MSFT 97)
[ 0.000000] ACPI: DSDT DFFF0450, 48E1 (r1 S0027 S0027000 0
INTL 20051117)
[ 0.000000] ACPI: FACS DFFFE000, 0040
[ 0.000000] ACPI: APIC DFFF0390, 0080 (r1 A M I OEMAPIC 6000626
MSFT 97)
[ 0.000000] ACPI: MCFG DFFF0410, 003C (r1 A M I OEMMCFG 6000626
MSFT 97)
[ 0.000000] ACPI: OEMB DFFFE040, 0060 (r1 A M I AMI_OEM 6000626
MSFT 97)
[ 0.000000] ACPI: SRAT DFFF4D40, 0110 (r1 AMD HAMMER 1
AMD 1)
[ 0.000000] ACPI: SSDT DFFF4E50, 04F0 (r1 A M I ACPI2PPC 1
AMI 1)
[ 0.000000] SRAT: PXM 0 -> APIC 0 -> Node 0
[ 0.000000] SRAT: PXM 0 -> APIC 1 -> Node 0
[ 0.000000] SRAT: PXM 1 -> APIC 2 -> Node 1
[ 0.000000] SRAT: PXM 1 -> APIC 3 -> Node 1
[ 0.000000] SRAT: Node 0 PXM 0 0-a0000
[ 0.000000] SRAT: Node 0 PXM 0 0-80000000
[ 0.000000] SRAT: Node 1 PXM 1 80000000-e0000000
[ 0.000000] SRAT: Node 1 PXM 1 80000000-120000000
[ 0.000000] Bootmem setup node 0 0000000000000000-0000000080000000
[ 0.000000] Bootmem setup node 1 0000000080000000-0000000120000000
[ 0.000000] Zone PFN ranges:
[ 0.000000] DMA 0 -> 4096
[ 0.000000] DMA32 4096 -> 1048576
[ 0.000000] Normal 1048576 -> 1179648
[ 0.000000] Movable zone start PFN for each node
[ 0.000000] early_node_map[4] active PFN ranges
[ 0.000000] 0: 0 -> 159
[ 0.000000] 0: 256 -> 524288
[ 0.000000] 1: 524288 -> 917488
[ 0.000000] 1: 1048576 -> 1179648
PANIC: early exception rip ffffffff807cddb5 error 2 cr2 ffffe20003000010
[ 0.000000]
[ 0.000000] Call Trace:
[ 0.000000] [<ffffffff807cddb5>] memmap_init_zone+0xb5/0x130
[ 0.000000] [<ffffffff807ce874>] init_currently_empty_zone+0x84/0x110
[ 0.000000] [<ffffffff807cec93>] free_area_init_node+0x393/0x3e0
[ 0.000000] [<ffffffff807cefea>] free_area_init_nodes+0x2da/0x320
[ 0.000000] [<ffffffff807c9c97>] paging_init+0x87/0x90
[ 0.000000] [<ffffffff807c0f85>] setup_arch+0x355/0x470
[ 0.000000] [<ffffffff807bc967>] start_kernel+0x57/0x330
[ 0.000000] [<ffffffff807bc12d>] _sinittext+0x12d/0x140
[ 0.000000]
[ 0.000000] RIP memmap_init_zone+0xb5/0x130
> Node 1 spans a region with a nice little hole in the middle of DMA32. In our
> test machines, we wouldn't see a hole like this, at least that I can recall
> so it would appear to work on some machines. On SPARSEMEM, sparse_init()
> is responsible for allocating memmap for each section. In 2.6.22-rc6-mm1,
> it allocated the memory if the section was *valid*. In 2.6.23-rc1-mm1,
> it allocates the memory if the section is *present* due to the patch
> sparsemem-record-when-a-section-has-a-valid-mem_map.patch[1].
The working 2.6.22-rc6-mm1 is still using DISCONTIGMEM. If I switch to
that from SPARSEMEM I can also boot 2.6.23-rc1-mm1. I had not tried
SPARSEMEM before 2.6.23-rc1-mm1.
> Much later in
> the init process, memmap is initialised based on spanned memory, not present
> memory so initialisation will init memmap that resides in holes if a zone
> spans that area in a node which is the case on this machine. I think this
> is why it kablamos - it's inits memmap that wasn't allocated because it's
> not present and the suprise is that it doesn't blow up sooner. Please try
> the patch below Torsten, thanks.
>
> [1] yeah, I acked this patch and I had read through it. My bad if the
> patch below does fix the problem
>
> diff -rup -X /usr/src/patchset-0.6/bin//dontdiff linux-2.6.23-rc1-mm2-clean/mm/sparse.c linux-2.6.23-rc1-mm2-present_revert/mm/sparse.c
> --- linux-2.6.23-rc1-mm2-clean/mm/sparse.c 2007-08-01 10:09:39.000000000 +0100
> +++ linux-2.6.23-rc1-mm2-present_revert/mm/sparse.c 2007-08-02 00:27:00.000000000 +0100
> @@ -483,7 +483,7 @@ void __init sparse_init(void)
> unsigned long *usemap;
>
> for (pnum = 0; pnum < NR_MEM_SECTIONS; pnum++) {
> - if (!present_section_nr(pnum))
> + if (!valid_section_nr(pnum))
> continue;
>
> map = sparse_early_mem_map_alloc(pnum);
>
That patch does not really help. It fixes the first exception, but
last I get this:
[ 25.977074] Checking aperture...
[ 25.986750] CPU 0: aperture @ 4000000 size 32 MB
[ 26.000579] Aperture too small (32 MB)
[ 26.016270] No AGP bridge found
[ 26.025666] Your BIOS doesn't leave a aperture memory hole
[ 26.042089] Please enable the IOMMU option in the BIOS setup
[ 26.059030] This costs you 64 MB of RAM
[ 26.092364] Mapping aperture over 65536 KB of RAM @ 4000000
[ 26.109039] Unable to handle kernel paging request at ffffe20000000070 RIP:
[ 26.122847] [<ffffffff807cf37c>] __free_pages_bootmem+0x5c/0x70
[ 26.148195] PGD 0
[ 26.154265] Oops: 0002 [1] SMP
[ 26.163761] CPU 0
[ 26.169832] Modules linked in:
[ 26.179018] Pid: 0, comm: swapper Not tainted 2.6.23-rc1-mm2 #2
[ 26.196710] RIP: 0010:[<ffffffff807cf37c>] [<ffffffff807cf37c>]
__free_pages_bootmem+0x5c/0x70
[ 26.222758] RSP: 0018:ffffffff807b1ed0 EFLAGS: 00010246
[ 26.238635] RAX: 0000000000000001 RBX: ffffe20000000070 RCX: 0000000000000006
[ 26.259962] RDX: ffff810000012001 RSI: 0000000000000000 RDI: ffffe20000000070
[ 26.281288] RBP: 0000000000000004 R08: 0000000000000002 R09: 0000000000000000
[ 26.302614] R10: ffffffff8080a000 R11: 0000000000001000 R12: fffffffc0000003c
[ 26.323940] R13: 0000000000000002 R14: 0000000000080000 R15: ffffe20000000000
[ 26.345266] FS: 0000000000000000(0000) GS:ffffffff80796000(0000)
knlGS:0000000000000000
[ 26.369445] CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
[ 26.386621] CR2: ffffe20000000070 CR3: 0000000000201000 CR4: 00000000000006a0
[ 26.407973] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 26.429299] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 26.450625] Process swapper (pid: 0, threadinfo ffffffff807b0000,
task ffffffff8071f380)
[ 26.474805] Stack: ffffffff807cd3bb 0000000604000000
ffff810000012000 ffffffff8081d200
[ 26.498984] 0000000000000001 01000000ffffff01 0000000000000000
0000000000000000
[ 26.521296] ffffffff8080a000 0000000000000000 ffffffff80795810
0000000000000000
[ 26.543039] Call Trace:
[ 26.550927] [<ffffffff807cd3bb>] free_all_bootmem_core+0x11b/0x200
[ 26.569659] [<ffffffff807ca220>] numa_free_all_bootmem+0x40/0x80
[ 26.587873] [<ffffffff805b68bd>] _etext+0x0/0x4093
[ 26.602451] [<ffffffff807c91f4>] mem_init+0x54/0x190
[ 26.617552] [<ffffffff807bcb25>] start_kernel+0x215/0x330
[ 26.633947] [<ffffffff807bc12d>] _sinittext+0x12d/0x140
[ 26.649824]
[ 26.654287]
[ 26.654287] Code: 0f ba 37 0a c7 47 08 01 00 00 00 e9 f4 b2 a9 ff 00 00 00 00
[ 26.681424] RIP [<ffffffff807cf37c>] __free_pages_bootmem+0x5c/0x70
[ 26.700468] RSP <ffffffff807b1ed0>
[ 26.710897] CR2: ffffe20000000070
[ 26.720809] Kernel panic - not syncing: Attempted to kill the idle task!
My .config (generated from the -mm1 .config with oldconfig, so it
should still be more or less the same)
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.23-rc1-mm2
# Wed Aug 1 21:48:46 2007
#
CONFIG_X86_64=y
CONFIG_64BIT=y
CONFIG_X86=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_ZONE_DMA32=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_QUICKLIST=y
CONFIG_NR_QUICK=2
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_X86_CMPXCHG=y
CONFIG_EARLY_PRINTK=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_DMI=y
CONFIG_AUDIT_ARCH=y
CONFIG_GENERIC_BUG=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# 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_SWAP_PREFETCH=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 is not set
# CONFIG_USER_NS is not set
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=18
# CONFIG_CONTAINERS is not set
# CONFIG_SYSFS_DEPRECATED is not set
CONFIG_RELAY=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_PROC_KPAGEMAP=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_BLK_DEV_IO_TRACE=y
CONFIG_BLK_DEV_BSG=y
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=m
CONFIG_IOSCHED_DEADLINE=m
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"
#
# Processor type and features
#
# CONFIG_TICK_ONESHOT is not set
CONFIG_X86_PC=y
# CONFIG_X86_VSMP is not set
CONFIG_MK8=y
# CONFIG_MPSC is not set
# CONFIG_MCORE2 is not set
# CONFIG_GENERIC_CPU is not set
CONFIG_X86_L1_CACHE_BYTES=64
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_INTERNODE_CACHE_BYTES=64
CONFIG_X86_TSC=y
CONFIG_X86_GOOD_APIC=y
# CONFIG_MICROCODE is not set
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_MTRR=y
CONFIG_SMP=y
# CONFIG_SCHED_SMT is not set
CONFIG_SCHED_MC=y
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_BKL=y
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_NUMA=y
# CONFIG_K8_NUMA is not set
CONFIG_NODES_SHIFT=6
CONFIG_X86_64_ACPI_NUMA=y
# CONFIG_NUMA_EMU is not set
CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_ARCH_POPULATES_SPARSEMEM_VMEMMAP_PMD=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_NEED_MULTIPLE_NODES=y
CONFIG_HAVE_MEMORY_PRESENT=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPARSEMEM_EXTREME=y
# CONFIG_MEMORY_HOTPLUG is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_MIGRATION=y
CONFIG_RESOURCES_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
CONFIG_NR_CPUS=4
CONFIG_PHYSICAL_ALIGN=0x200000
CONFIG_HOTPLUG_CPU=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_HPET_TIMER=y
# CONFIG_HPET_EMULATE_RTC is not set
CONFIG_IOMMU=y
# CONFIG_CALGARY_IOMMU is not set
CONFIG_SWIOTLB=y
CONFIG_X86_MCE=y
# CONFIG_X86_MCE_INTEL is not set
CONFIG_X86_MCE_AMD=y
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_START=0x200000
# CONFIG_SECCOMP is not set
# CONFIG_CC_STACKPROTECTOR is not set
# 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_K8_NB=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_ISA_DMA_API=y
CONFIG_GENERIC_PENDING_IRQ=y
#
# Power management options
#
CONFIG_PM=y
# CONFIG_PM_LEGACY is not set
# CONFIG_PM_DEBUG is not set
CONFIG_SUSPEND_SMP_POSSIBLE=y
# CONFIG_SUSPEND is not set
# CONFIG_HIBERNATION is not set
CONFIG_ACPI=y
# CONFIG_ACPI_PROCFS is not set
# CONFIG_ACPI_AC is not set
# CONFIG_ACPI_BATTERY is not set
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_FAN=y
# CONFIG_ACPI_DOCK is not set
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_NUMA=y
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_TOSHIBA is not set
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=y
# CONFIG_ACPI_SBS is not set
#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
# CONFIG_CPU_FREQ_DEBUG is not set
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_STAT_DETAILS=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
# 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=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
#
# CPUFreq processor drivers
#
CONFIG_X86_POWERNOW_K8=y
CONFIG_X86_POWERNOW_K8_ACPI=y
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
CONFIG_X86_ACPI_CPUFREQ=m
#
# shared options
#
# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
# CONFIG_X86_SPEEDSTEP_LIB is not set
#
# CPU idle PM support
#
CONFIG_CPU_IDLE=y
#
# Governors
#
CONFIG_CPU_IDLE_GOV_LADDER=y
#
# Bus options (PCI etc.)
#
CONFIG_PCI=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
# CONFIG_DMAR is not set
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
CONFIG_HT_IRQ=y
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set
#
# Executable file formats / Emulations
#
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=y
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=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=y
CONFIG_XFRM_SUB_POLICY=y
# CONFIG_XFRM_MIGRATE is not set
CONFIG_NET_KEY=y
# 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=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
CONFIG_INET_AH=y
CONFIG_INET_ESP=y
CONFIG_INET_IPCOMP=y
CONFIG_INET_XFRM_TUNNEL=y
CONFIG_INET_TUNNEL=y
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=m
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
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=m
CONFIG_TCP_CONG_VENO=m
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 is not set
# CONFIG_IPV6_ROUTER_PREF is not set
CONFIG_IPV6_OPTIMISTIC_DAD=y
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
# CONFIG_IPV6_MIP6 is not set
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 is not set
CONFIG_NETLABEL=y
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CONNTRACK_ENABLED=m
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CT_ACCT=y
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CT_PROTO_GRE=m
CONFIG_NF_CT_PROTO_SCTP=m
CONFIG_NF_CT_PROTO_UDPLITE=m
CONFIG_NF_CONNTRACK_AMANDA=m
CONFIG_NF_CONNTRACK_FTP=m
CONFIG_NF_CONNTRACK_H323=m
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
CONFIG_NF_CONNTRACK_PPTP=m
CONFIG_NF_CONNTRACK_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 is not set
# 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=m
# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
CONFIG_NETFILTER_XT_TARGET_TRACE=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
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_POLICY=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_NETFILTER_XT_MATCH_REALM=m
CONFIG_NETFILTER_XT_MATCH_SCTP=m
CONFIG_NETFILTER_XT_MATCH_STATE=m
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_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 is not set
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_IPRANGE=m
CONFIG_IP_NF_MATCH_TOS=m
CONFIG_IP_NF_MATCH_RECENT=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_OWNER=m
CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_SAME=m
CONFIG_NF_NAT_SNMP_BASIC=m
CONFIG_NF_NAT_PROTO_GRE=m
CONFIG_NF_NAT_FTP=m
CONFIG_NF_NAT_IRC=m
CONFIG_NF_NAT_TFTP=m
CONFIG_NF_NAT_AMANDA=m
CONFIG_NF_NAT_PPTP=m
CONFIG_NF_NAT_H323=m
CONFIG_NF_NAT_SIP=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_TOS=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
#
# IPv6: Netfilter Configuration (EXPERIMENTAL)
#
CONFIG_NF_CONNTRACK_IPV6=m
# CONFIG_IP6_NF_QUEUE is not set
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_OWNER=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=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=y
# CONFIG_SCTP_HMAC_MD5 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
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
CONFIG_NET_SCH_FIFO=y
CONFIG_NET_CLS_ROUTE=y
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
#
# Wireless
#
CONFIG_CFG80211=m
CONFIG_NL80211=y
CONFIG_WIRELESS_EXT=y
CONFIG_MAC80211=m
CONFIG_MAC80211_LEDS=y
# CONFIG_MAC80211_HT is not set
# CONFIG_MAC80211_DEBUGFS is not set
# CONFIG_MAC80211_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 is not set
CONFIG_RFKILL=m
CONFIG_RFKILL_INPUT=m
CONFIG_NET_9P=m
# CONFIG_NET_9P_DEBUG is not set
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y
# CONFIG_MTD 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 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=m
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_NBD=m
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_UB is not set
# CONFIG_BLK_DEV_RAM is not set
CONFIG_CDROM_PKTCDVD=m
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=m
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_THINKPAD_ACPI is not set
# CONFIG_IDE is not set
#
# SCSI device support
#
CONFIG_RAID_ATTRS=y
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_TGT=m
# CONFIG_SCSI_NETLINK is not set
# CONFIG_SCSI_PROC_FS is not set
#
# 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=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=m
# CONFIG_CHR_DEV_SCH is not set
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
CONFIG_SCSI_CONSTANTS=y
# CONFIG_SCSI_LOGGING is not set
CONFIG_SCSI_SCAN_ASYNC=y
CONFIG_SCSI_WAIT_SCAN=m
#
# SCSI Transports
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
CONFIG_SCSI_ISCSI_ATTRS=m
# CONFIG_SCSI_SAS_ATTRS is not set
# 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_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 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 is not set
# CONFIG_SATA_MV is not set
CONFIG_SATA_NV=y
# CONFIG_PDC_ADMA is not set
# CONFIG_SATA_QSTOR is not set
# CONFIG_SATA_PROMISE is not set
# CONFIG_SATA_SX4 is not set
CONFIG_SATA_SIL=y
CONFIG_SATA_SIL24=y
# CONFIG_SATA_SIS is not set
# CONFIG_SATA_ULI is not set
# CONFIG_SATA_VIA is not set
# CONFIG_SATA_VITESSE is not set
# CONFIG_SATA_INIC162X is not set
# CONFIG_PATA_ALI is not set
CONFIG_PATA_AMD=m
# 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_NS87410 is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_OPTIDMA is not set
# CONFIG_PATA_PDC_OLD is not set
# CONFIG_PATA_RADISYS is not set
# CONFIG_PATA_RZ1000 is not set
# CONFIG_PATA_SC1200 is not set
# CONFIG_PATA_SERVERWORKS is not set
# CONFIG_PATA_PDC2027X is not set
# CONFIG_PATA_SIL680 is not set
# CONFIG_PATA_SIS is not set
# CONFIG_PATA_VIA is not set
# CONFIG_PATA_WINBOND is not set
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
# CONFIG_MD_LINEAR is not set
# CONFIG_MD_RAID0 is not set
CONFIG_MD_RAID1=y
# CONFIG_MD_RAID10 is not set
CONFIG_MD_RAID456=y
CONFIG_MD_RAID5_RESHAPE=y
# CONFIG_MD_MULTIPATH is not set
# CONFIG_MD_FAULTY is not set
CONFIG_BLK_DEV_DM=y
# CONFIG_DM_DEBUG is not set
CONFIG_DM_CRYPT=y
# CONFIG_DM_SNAPSHOT is not set
# CONFIG_DM_MIRROR is not set
# CONFIG_DM_ZERO is not set
# CONFIG_DM_MULTIPATH is not set
# CONFIG_DM_DELAY is not set
# CONFIG_FUSION is not set
#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
CONFIG_IEEE1394=y
#
# Subsystem Options
#
# CONFIG_IEEE1394_VERBOSEDEBUG is not set
#
# Controllers
#
# CONFIG_IEEE1394_PCILYNX is not set
CONFIG_IEEE1394_OHCI1394=y
#
# Protocols
#
CONFIG_IEEE1394_VIDEO1394=m
CONFIG_IEEE1394_SBP2=m
# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y
CONFIG_IEEE1394_ETH1394=y
CONFIG_IEEE1394_DV1394=m
CONFIG_IEEE1394_RAWIO=m
CONFIG_I2O=y
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 is not set
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 is not set
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_NET_SB1000 is not set
# CONFIG_ARCNET is not set
# CONFIG_NET_ETHERNET is not set
CONFIG_MII=m
CONFIG_NETDEV_1000=y
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SKGE is not set
# CONFIG_SKY2 is not set
# CONFIG_VIA_VELOCITY is not set
CONFIG_TIGON3=y
# CONFIG_BNX2 is not set
# 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=y
CONFIG_STRIP=m
CONFIG_WLAN_80211=y
CONFIG_IPW2100=m
CONFIG_IPW2100_MONITOR=y
# CONFIG_IPW2100_DEBUG is not set
CONFIG_IPW2200=m
CONFIG_IPW2200_MONITOR=y
CONFIG_IPW2200_RADIOTAP=y
CONFIG_IPW2200_PROMISCUOUS=y
CONFIG_IPW2200_QOS=y
# CONFIG_IPW2200_DEBUG is not set
# CONFIG_LIBERTAS is not set
CONFIG_AIRO=m
CONFIG_HERMES=m
CONFIG_PLX_HERMES=m
CONFIG_TMD_HERMES=m
CONFIG_NORTEL_HERMES=m
CONFIG_PCI_HERMES=m
CONFIG_ATMEL=m
CONFIG_PCI_ATMEL=m
CONFIG_PRISM54=m
CONFIG_USB_ZD1201=m
CONFIG_RTL8187=m
CONFIG_ADM8211=m
CONFIG_P54_COMMON=m
CONFIG_P54_USB=m
CONFIG_P54_PCI=m
CONFIG_RT2X00=m
CONFIG_RT2X00_LIB=m
CONFIG_RT2X00_LIB_PCI=m
CONFIG_RT2X00_LIB_USB=m
CONFIG_RT2X00_LIB_FIRMWARE=y
CONFIG_RT2X00_LIB_RFKILL=y
CONFIG_RT2400PCI=m
CONFIG_RT2400PCI_RFKILL=y
CONFIG_RT2500PCI=m
CONFIG_RT2500PCI_RFKILL=y
CONFIG_RT61PCI=m
CONFIG_RT61PCI_RFKILL=y
CONFIG_RT2500USB=m
CONFIG_RT73USB=m
# CONFIG_RT2X00_DEBUG is not set
CONFIG_IWLWIFI=y
# CONFIG_IWLWIFI_DEBUG is not set
CONFIG_IWL4965=m
CONFIG_IWL3945=m
CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y
CONFIG_HOSTAP_FIRMWARE_NVRAM=y
CONFIG_HOSTAP_PLX=m
CONFIG_HOSTAP_PCI=m
# CONFIG_BCM43XX is not set
CONFIG_BCM43XX_MAC80211=m
CONFIG_BCM43XX_MAC80211_PCI=y
CONFIG_BCM43XX_MAC80211_DEBUG=y
CONFIG_BCM43XX_MAC80211_DMA=y
CONFIG_BCM43XX_MAC80211_PIO=y
CONFIG_BCM43XX_MAC80211_DMA_AND_PIO_MODE=y
# CONFIG_BCM43XX_MAC80211_DMA_MODE is not set
# CONFIG_BCM43XX_MAC80211_PIO_MODE is not set
# CONFIG_ZD1211RW is not set
CONFIG_ZD1211RW_MAC80211=m
# CONFIG_ZD1211RW_MAC80211_DEBUG 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_MII=m
CONFIG_USB_USBNET=m
CONFIG_USB_NET_CDCETHER=m
CONFIG_USB_NET_DM9601=m
CONFIG_USB_NET_GL620A=m
CONFIG_USB_NET_NET1080=m
CONFIG_USB_NET_PLUSB=m
CONFIG_USB_NET_MCS7830=m
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_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
CONFIG_PPP=m
# CONFIG_PPP_MULTILINK is not set
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
CONFIG_PPP_MPPE=m
CONFIG_PPPOE=m
CONFIG_PPPOL2TP=m
# CONFIG_SLIP is not set
CONFIG_SLHC=m
# CONFIG_NET_FC is not set
CONFIG_SHAPER=m
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_ISDN is not set
# CONFIG_PHONE is not set
#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
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 is not set
# CONFIG_INPUT_TSDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_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_SERIAL is not set
# 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_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 is not set
#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_GAMEPORT is not set
#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
# 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=1
CONFIG_SERIAL_8250_RUNTIME_UARTS=1
# 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 is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_WATCHDOG is not set
CONFIG_HW_RANDOM=m
CONFIG_HW_RANDOM_INTEL=m
# CONFIG_HW_RANDOM_AMD is not set
# CONFIG_NVRAM is not set
CONFIG_RTC=y
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
CONFIG_AGP=y
CONFIG_AGP_AMD64=y
# CONFIG_AGP_INTEL is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_VIA is not set
CONFIG_DRM=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_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_RAW_DRIVER is not set
CONFIG_HPET=y
CONFIG_HPET_RTC_IRQ=y
CONFIG_HPET_MMAP=y
CONFIG_HANGCHECK_TIMER=y
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
CONFIG_DEVPORT=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CHARDEV=y
#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=y
CONFIG_I2C_ALGOPCF=m
CONFIG_I2C_ALGOPCA=m
#
# I2C Hardware Bus support
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
CONFIG_I2C_AMD756=m
# CONFIG_I2C_AMD756_S4882 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_I810 is not set
# CONFIG_I2C_PIIX4 is not set
CONFIG_I2C_NFORCE2=m
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_PROSAVAGE is not set
# CONFIG_I2C_SAVAGE4 is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_TINY_USB is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
# CONFIG_I2C_VOODOO3 is not set
#
# Miscellaneous I2C Chip support
#
CONFIG_SENSORS_DS1337=m
CONFIG_SENSORS_DS1374=m
# CONFIG_DS1682 is not set
CONFIG_SENSORS_EEPROM=m
CONFIG_SENSORS_PCF8574=m
CONFIG_SENSORS_PCA9539=m
CONFIG_SENSORS_PCF8591=m
CONFIG_SENSORS_MAX6875=m
# CONFIG_SENSORS_TSL2550 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 is not set
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 is not set
# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=y
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 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1029 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ADM9240 is not set
CONFIG_SENSORS_K8TEMP=y
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_FSCHER is not set
# CONFIG_SENSORS_FSCPOS is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
# CONFIG_SENSORS_CORETEMP is not set
# CONFIG_SENSORS_IT87 is not set
CONFIG_SENSORS_LM63=m
CONFIG_SENSORS_LM70=m
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 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_SIS5595 is not set
# CONFIG_SENSORS_DME1737 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_VT8231 is not set
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
CONFIG_SENSORS_W83793=m
CONFIG_SENSORS_W83L785TS=m
CONFIG_SENSORS_W83627HF=m
CONFIG_SENSORS_W83627EHF=m
# CONFIG_SENSORS_HDAPS is not set
# CONFIG_SENSORS_APPLESMC is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
#
# Sonics Silicon Backplane
#
CONFIG_SSB=m
CONFIG_SSB_PCIHOST=y
# CONFIG_SSB_SILENT is not set
CONFIG_SSB_DEBUG=y
CONFIG_SSB_DRIVER_PCICORE=y
#
# 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_TVAUDIO=m
CONFIG_VIDEO_TDA7432=m
CONFIG_VIDEO_TDA9875=m
CONFIG_VIDEO_MSP3400=m
CONFIG_VIDEO_WM8775=m
CONFIG_VIDEO_SAA711X=m
CONFIG_VIDEO_TVP5150=m
CONFIG_VIDEO_CX25840=m
CONFIG_VIDEO_CX2341X=m
# CONFIG_VIDEO_VIVI is not set
CONFIG_VIDEO_BT848=m
# CONFIG_VIDEO_SAA6588 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_TUNER_TEA5761 is not set
# CONFIG_VIDEO_STRADIS is not set
# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIDEO_SAA7134 is not set
# CONFIG_VIDEO_MXB is not set
# CONFIG_VIDEO_DPC is not set
# 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_29XXX=y
CONFIG_VIDEO_PVRUSB2_24XXX=y
CONFIG_VIDEO_PVRUSB2_SYSFS=y
# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
CONFIG_VIDEO_EM28XX=m
CONFIG_VIDEO_USBVISION=m
CONFIG_VIDEO_USBVIDEO=m
CONFIG_USB_VICAM=m
CONFIG_USB_IBMCAM=m
CONFIG_USB_KONICAWC=m
CONFIG_USB_QUICKCAM_MESSENGER=m
CONFIG_USB_ET61X251=m
CONFIG_VIDEO_OVCAMCHIP=m
CONFIG_USB_W9968CF=m
CONFIG_USB_OV511=m
CONFIG_USB_SE401=m
CONFIG_USB_SN9C102=m
CONFIG_USB_STV680=m
CONFIG_USB_ZC0301=m
CONFIG_USB_PWC=m
# CONFIG_USB_PWC_DEBUG is not set
CONFIG_USB_ZR364XX=m
# CONFIG_RADIO_ADAPTERS is not set
# CONFIG_DVB_CORE is not set
CONFIG_VIDEO_TUNER=m
CONFIG_VIDEO_BUF=m
CONFIG_VIDEO_BTCX=m
CONFIG_VIDEO_IR_I2C=m
CONFIG_VIDEO_IR=m
CONFIG_VIDEO_TVEEPROM=m
# CONFIG_DAB is not set
#
# Graphics support
#
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set
# CONFIG_VGASTATE is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
# CONFIG_FB is not set
#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_VGACON_SOFT_SCROLLBACK is not set
CONFIG_VIDEO_SELECT=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_FONT_8x16=y
#
# Sound
#
CONFIG_SOUND=y
#
# Advanced Linux Sound Architecture
#
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_HWDEP=y
CONFIG_SND_RAWMIDI=m
# CONFIG_SND_SEQUENCER is not set
# CONFIG_SND_MIXER_OSS is not set
# CONFIG_SND_PCM_OSS is not set
# CONFIG_SND_RTCTIMER is not set
# CONFIG_SND_DYNAMIC_MINORS is not set
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
#
# Generic devices
#
# CONFIG_SND_DUMMY is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set
#
# PCI devices
#
# CONFIG_SND_AD1889 is not set
# CONFIG_SND_ALS300 is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AZT3328 is not set
CONFIG_SND_BT87X=y
# CONFIG_SND_BT87X_OVERCLOCK 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=y
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 is not set
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_HDSP is not set
# CONFIG_SND_HDSPM is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
# CONFIG_SND_INTEL8X0 is not set
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_PCXHR is not set
# CONFIG_SND_RIPTIDE is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_YMFPCI is not set
#
# SPI devices
#
#
# USB devices
#
# CONFIG_SND_USB_AUDIO is not set
# CONFIG_SND_USB_USX2Y is not set
CONFIG_SND_USB_CAIAQ=m
CONFIG_SND_USB_CAIAQ_INPUT=y
#
# 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=m
# 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 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=y
# CONFIG_USB_DEBUG is not set
#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DEVICE_CLASS is not set
CONFIG_USB_DYNAMIC_MINORS=y
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=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=y
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=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=m
CONFIG_USB_MICROTEK=m
# CONFIG_USB_MON is not set
#
# USB port drivers
#
#
# USB Serial Converter support
#
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_AIRCABLE=m
CONFIG_USB_SERIAL_AIRPRIME=m
CONFIG_USB_SERIAL_ARK3116=m
CONFIG_USB_SERIAL_BELKIN=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 is not set
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_KEYSPAN_PDA=m
# CONFIG_USB_SERIAL_KEYSPAN is not set
CONFIG_USB_SERIAL_KLSI=m
CONFIG_USB_SERIAL_KOBIL_SCT=m
CONFIG_USB_SERIAL_MCT_U232=m
CONFIG_USB_SERIAL_MOS7720=m
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=m
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 is not set
CONFIG_USB_EZUSB=y
#
# USB Miscellaneous drivers
#
CONFIG_USB_EMI62=m
CONFIG_USB_EMI26=m
CONFIG_USB_ADUTUX=m
CONFIG_USB_AUERSWALD=m
CONFIG_USB_RIO500=m
CONFIG_USB_LEGOTOWER=m
CONFIG_USB_LCD=m
CONFIG_USB_BERRY_CHARGE=m
CONFIG_USB_LED=m
CONFIG_USB_CYPRESS_CY7C63=m
CONFIG_USB_CYTHERM=m
CONFIG_USB_PHIDGET=m
CONFIG_USB_PHIDGETKIT=m
CONFIG_USB_PHIDGETMOTORCONTROL=m
CONFIG_USB_PHIDGETSERVO=m
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=m
CONFIG_USB_IOWARRIOR=m
# CONFIG_USB_TEST is not set
CONFIG_USB_GOTEMP=m
#
# USB DSL modem support
#
#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
# CONFIG_MMC is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=m
#
# LED drivers
#
#
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
# CONFIG_INFINIBAND is not set
CONFIG_EDAC=y
#
# Reporting subsystems
#
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_MM_EDAC=y
# CONFIG_EDAC_E752X is not set
# CONFIG_EDAC_I82975X is not set
# CONFIG_EDAC_I5000 is not set
# CONFIG_RTC_CLASS is not set
#
# DMA Engine support
#
CONFIG_DMA_ENGINE=y
#
# DMA Clients
#
CONFIG_NET_DMA=y
#
# DMA Devices
#
# CONFIG_INTEL_IOATDMA is not set
# CONFIG_DCA is not set
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=m
# CONFIG_KVM_INTEL is not set
CONFIG_KVM_AMD=m
#
# Userspace I/O
#
# CONFIG_UIO is not set
#
# Firmware Drivers
#
# CONFIG_EDD is not set
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
CONFIG_DMIID=y
#
# File systems
#
CONFIG_EXT2_FS=m
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 is not set
CONFIG_FS_MBCACHE=m
# CONFIG_REISER4_FS is not set
# CONFIG_REISERFS_FS is not set
CONFIG_JFS_FS=m
CONFIG_JFS_POSIX_ACL=y
CONFIG_JFS_SECURITY=y
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_FS=y
CONFIG_XFS_QUOTA=y
CONFIG_XFS_SECURITY=y
CONFIG_XFS_POSIX_ACL=y
# CONFIG_XFS_RT is not set
CONFIG_GFS2_FS=m
CONFIG_GFS2_FS_LOCKING_NOLOCK=m
CONFIG_GFS2_FS_LOCKING_DLM=m
CONFIG_OCFS2_FS=m
# CONFIG_OCFS2_DEBUG_MASKLOG is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
CONFIG_QFMT_V2=y
CONFIG_QUOTACTL=y
CONFIG_DNOTIFY=y
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=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=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
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 is not set
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
CONFIG_RAMFS=y
CONFIG_CONFIGFS_FS=m
#
# Layered filesystems
#
# 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_CRAMFS=m
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
CONFIG_UFS_FS=m
CONFIG_UFS_FS_WRITE=y
# CONFIG_UFS_DEBUG is not set
#
# Network File Systems
#
CONFIG_NFS_FS=y
# CONFIG_NFS_V3 is not set
CONFIG_NFS_V4=y
CONFIG_NFS_DIRECTIO=y
CONFIG_NFSD=m
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=m
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
CONFIG_SUNRPC_BIND34=y
CONFIG_RPCSEC_GSS_KRB5=y
# CONFIG_RPCSEC_GSS_SPKM3 is not set
# 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
CONFIG_9P_FS=m
#
# 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=y
# 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
#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="cp850"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=y
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
CONFIG_NLS_CODEPAGE_1250=m
# CONFIG_NLS_CODEPAGE_1251 is not set
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=m
# 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=m
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=m
#
# Distributed Lock Manager
#
CONFIG_DLM=m
# CONFIG_DLM_DEBUG is not set
#
# Instrumentation Support
#
# CONFIG_PROFILING is not set
# CONFIG_KPROBES is not set
#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_PRINTK_TIME=y
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
# 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 is not set
# CONFIG_SCHEDSTATS is not set
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 is not set
# CONFIG_DEBUG_LIST is not set
# CONFIG_FRAME_POINTER is not set
# CONFIG_PROFILE_LIKELY is not set
# CONFIG_FORCED_INLINING is not set
# 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_WANT_EXTRA_DEBUG_INFORMATION is not set
# CONFIG_UNWIND_INFO is not set
# CONFIG_KGDB is not set
# CONFIG_DEBUG_RODATA is not set
# CONFIG_IOMMU_DEBUG is not set
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_STACK_USAGE is not set
#
# Security options
#
# CONFIG_KEYS is not set
CONFIG_SECURITY=y
# CONFIG_SECURITY_NETWORK is not set
CONFIG_SECURITY_CAPABILITIES=y
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
# CONFIG_SECURITY_ROOTPLUG is not set
CONFIG_XOR_BLOCKS=y
CONFIG_ASYNC_CORE=y
CONFIG_ASYNC_MEMCPY=y
CONFIG_ASYNC_XOR=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ABLKCIPHER=y
CONFIG_CRYPTO_BLKCIPHER=y
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=y
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=y
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_LRW=m
CONFIG_CRYPTO_CRYPTD=y
CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=y
CONFIG_CRYPTO_TWOFISH_X86_64=y
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_DEFLATE=y
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
CONFIG_CRYPTO_CAMELLIA=m
# CONFIG_CRYPTO_TEST is not set
# CONFIG_CRYPTO_HW is not set
#
# Library routines
#
CONFIG_BITREVERSE=m
CONFIG_CRC_CCITT=m
CONFIG_CRC16=m
CONFIG_CRC_ITU_T=m
CONFIG_CRC32=m
CONFIG_CRC7=m
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
Torsten
Hello,
> > > usb 2-1: USB disconnect, address 2
> > > BUG: atomic counter underflow at:
> > > [<c010456a>] show_trace_log_lvl+0x1a/0x30
> > > [<c010508d>] show_trace+0x12/0x14
> > > [<c01051e0>] dump_stack+0x15/0x17
> > > [<c01418cf>] __free_pages+0x50/0x52
> > > [<c01418f0>] free_pages+0x1f/0x21
> > > [<c010783d>] dma_free_coherent+0x43/0x9c
> > > [<c0315067>] hcd_buffer_free+0x43/0x6a
> > > [<c030b2b4>] usb_buffer_free+0x23/0x29
> > > [<c0346db4>] hid_free_buffers+0x23/0x71
> > > [<c0346eb2>] hid_disconnect+0xb0/0xc8
> > > [<c0313676>] usb_unbind_interface+0x30/0x72
> > > [<c02c6df0>] __device_release_driver+0x6a/0x92
> > > [<c02c71c3>] device_release_driver+0x20/0x36
> > > [<c02c6736>] bus_remove_device+0x62/0x85
> > > [<c02c49f8>] device_del+0x16d/0x27c
> > > [<c0310f25>] usb_disable_device+0x7a/0xe2
> > > [<c030d0bc>] usb_disconnect+0x94/0xde
> > > [<c030e030>] hub_thread+0x2fe/0xc1b
> > > [<c0128aee>] kthread+0x36/0x58
> > > [<c0104233>] kernel_thread_helper+0x7/0x14
> > > =======================
> > > uhci_hcd 0000:00:0c.0: dma_pool_free buffer-32, 6b6b6b6b/6b6b6b6b (bad dma)
>
> Mariusz,
>
> I guess the patch below (which I have just added to my tree) fixes that,
> right? Thanks.
Yes - that's correct. This patch fixes the bug. Thanks.
Mariusz
> > Second issue as reported earilier allmodconfig fails to build on imac g3.
>
> Do you really mean g3? If so it's a 32-bit kernel and it shouldn't be
> building lparmap.s. Or do you mean G5?
Yes it is iMac G3. More or less sth like this:
http://upload.wikimedia.org/wikipedia/commons/c/c0/IMac_Bondi_Blue.jpg
processor : 0
cpu : 740/750
temperature : 47-49 C (uncalibrated)
clock : 400MHz
revision : 2.2 (pvr 0008 0202)
bogomips : 796.67
machine : PowerMac2,1
motherboard : PowerMac2,1 MacRISC2 MacRISC Power Macintosh
detected as : 66 (iMac FireWire)
pmac flags : 00000005
L2 cache : 512K unified
memory : 256MB
pmac-generation : NewWorld
> > CC arch/powerpc/kernel/lparmap.s
> > AS arch/powerpc/kernel/head_64.o
> > lparmap.c: Assembler messages:
> > lparmap.c:84: Error: file number 1 already allocated
> > make[1]: *** [arch/powerpc/kernel/head_64.o] Blad 1
> > make: *** [arch/powerpc/kernel] Blad 2
>
> Weird. Could you do make V=1 and send me the output?
Ok. Here it goes. The last screen. If you need all / more feel free to mail
me. Config is attached - please note that this is default allmodconfig.
gcc -m64 -Wp,-MD,arch/powerpc/kernel/.machine_kexec.o.d -nostdinc -isystem /usr/lib/gcc/powerpc-linux-gnu/4.1.2/include -D__KERNEL__ -Iinclude -include
include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -msoft-float -pipe -mminimal-toc -mtraceback=none -mcall-aixdesc -mcpu=power4 -mno-altivec -funit-at-a-time -mno-string -Wa,-maltivec -fomit-frame-pointer -g -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -mno-minimal-toc -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(machine_kexec)" -D"KBUILD_MODNAME=KBUILD_STR(machine_kexec)" -c -o
arch/powerpc/kernel/.tmp_machine_kexec.o arch/powerpc/kernel/machine_kexec.c
gcc -m64 -Wp,-MD,arch/powerpc/kernel/.crash.o.d -nostdinc -isystem /usr/lib/gcc/powerpc-linux-gnu/4.1.2/include -D__KERNEL__ -Iinclude -include
include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -msoft-float -pipe -mminimal-toc -mtraceback=none -mcall-aixdesc -mcpu=power4 -mno-altivec -funit-at-a-time -mno-string -Wa,-maltivec -fomit-frame-pointer -g -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -mno-minimal-toc -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(crash)" -D"KBUILD_MODNAME=KBUILD_STR(crash)" -c -o
arch/powerpc/kernel/.tmp_crash.o arch/powerpc/kernel/crash.c
gcc -m64 -Wp,-MD,arch/powerpc/kernel/.machine_kexec_64.o.d -nostdinc -isystem /usr/lib/gcc/powerpc-linux-gnu/4.1.2/include -D__KERNEL__ -Iinclude -include
include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -msoft-float -pipe -mminimal-toc -mtraceback=none -mcall-aixdesc -mcpu=power4 -mno-altivec -funit-at-a-time -mno-string -Wa,-maltivec -fomit-frame-pointer -g -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -mno-minimal-toc -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(machine_kexec_64)" -D"KBUILD_MODNAME=KBUILD_STR(machine_kexec_64)" -c -o
arch/powerpc/kernel/.tmp_machine_kexec_64.o
arch/powerpc/kernel/machine_kexec_64.c
gcc -m64 -Wp,-MD,arch/powerpc/kernel/.audit.o.d -nostdinc -isystem /usr/lib/gcc/powerpc-linux-gnu/4.1.2/include -D__KERNEL__ -Iinclude -include
include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -msoft-float -pipe -mminimal-toc -mtraceback=none -mcall-aixdesc -mcpu=power4 -mno-altivec -funit-at-a-time -mno-string -Wa,-maltivec -fomit-frame-pointer -g -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -mno-minimal-toc -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(audit)" -D"KBUILD_MODNAME=KBUILD_STR(audit)" -c -o
arch/powerpc/kernel/.tmp_audit.o arch/powerpc/kernel/audit.c
gcc -m64 -Wp,-MD,arch/powerpc/kernel/.swsusp_64.o.d -nostdinc -isystem /usr/lib/gcc/powerpc-linux-gnu/4.1.2/include -D__KERNEL__ -Iinclude -include
include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -msoft-float -pipe -mminimal-toc -mtraceback=none -mcall-aixdesc -mcpu=power4 -mno-altivec -funit-at-a-time -mno-string -Wa,-maltivec -fomit-frame-pointer -g -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -mno-minimal-toc -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(swsusp_64)" -D"KBUILD_MODNAME=KBUILD_STR(swsusp_64)" -c -o
arch/powerpc/kernel/.tmp_swsusp_64.o arch/powerpc/kernel/swsusp_64.c
gcc -m64 -Wp,-MD,arch/powerpc/kernel/.swsusp_asm64.o.d -nostdinc -isystem /usr/lib/gcc/powerpc-linux-gnu/4.1.2/include -D__KERNEL__ -Iinclude -include
include/linux/autoconf.h -D__ASSEMBLY__ -Wa,-maltivec -gdwarf2 -c -o
arch/powerpc/kernel/swsusp_asm64.o arch/powerpc/kernel/swsusp_asm64.S
gcc -m64 -Wp,-MD,arch/powerpc/kernel/.compat_audit.o.d -nostdinc -isystem /usr/lib/gcc/powerpc-linux-gnu/4.1.2/include -D__KERNEL__ -Iinclude -include
include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -msoft-float -pipe -mminimal-toc -mtraceback=none -mcall-aixdesc -mcpu=power4 -mno-altivec -funit-at-a-time -mno-string -Wa,-maltivec -fomit-frame-pointer -g -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -mno-minimal-toc -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(compat_audit)" -D"KBUILD_MODNAME=KBUILD_STR(compat_audit)" -c -o
arch/powerpc/kernel/.tmp_compat_audit.o arch/powerpc/kernel/compat_audit.c
ld -m elf64ppc -r -o arch/powerpc/kernel/built-in.o
arch/powerpc/kernel/semaphore.o arch/powerpc/kernel/cputable.o
arch/powerpc/kernel/ptrace.o arch/powerpc/kernel/syscalls.o
arch/powerpc/kernel/irq.o arch/powerpc/kernel/align.o
arch/powerpc/kernel/signal_32.o arch/powerpc/kernel/pmc.o
arch/powerpc/kernel/vdso.o arch/powerpc/kernel/init_task.o
arch/powerpc/kernel/process.o arch/powerpc/kernel/systbl.o
arch/powerpc/kernel/idle.o arch/powerpc/kernel/signal.o
arch/powerpc/kernel/vdso32/built-in.o arch/powerpc/kernel/setup_64.o
arch/powerpc/kernel/binfmt_elf32.o arch/powerpc/kernel/sys_ppc32.o
arch/powerpc/kernel/signal_64.o arch/powerpc/kernel/ptrace32.o
arch/powerpc/kernel/paca.o arch/powerpc/kernel/cpu_setup_ppc970.o
arch/powerpc/kernel/cpu_setup_pa6t.o arch/powerpc/kernel/firmware.o
arch/powerpc/kernel/sysfs.o arch/powerpc/kernel/nvram_64.o
arch/powerpc/kernel/vdso64/built-in.o arch/powerpc/kernel/vecemu.o
arch/powerpc/kernel/vector.o arch/powerpc/kernel/idle_power4.o
arch/powerpc/kernel/of_device.o arch/powerpc/kernel/of_platform.o
arch/powerpc/kernel/prom_parse.o arch/powerpc/kernel/proc_ppc64.o
arch/powerpc/kernel/rtas.o arch/powerpc/kernel/rtas-rtc.o
arch/powerpc/kernel/rtas_pci.o arch/powerpc/kernel/rtas-proc.o
arch/powerpc/kernel/lparcfg.o arch/powerpc/kernel/vio.o
arch/powerpc/kernel/ibmebus.o arch/powerpc/kernel/smp-tbsync.o
arch/powerpc/kernel/crash_dump.o arch/powerpc/kernel/swsusp.o
arch/powerpc/kernel/suspend.o arch/powerpc/kernel/time.o
arch/powerpc/kernel/prom.o arch/powerpc/kernel/traps.o
arch/powerpc/kernel/setup-common.o arch/powerpc/kernel/udbg.o
arch/powerpc/kernel/misc.o arch/powerpc/kernel/io.o
arch/powerpc/kernel/misc_64.o arch/powerpc/kernel/dma_64.o
arch/powerpc/kernel/iommu.o arch/powerpc/kernel/prom_init.o
arch/powerpc/kernel/ppc_ksyms.o arch/powerpc/kernel/btext.o
arch/powerpc/kernel/smp.o arch/powerpc/kernel/kprobes.o
arch/powerpc/kernel/legacy_serial.o arch/powerpc/kernel/udbg_16550.o
arch/powerpc/kernel/kgdb.o arch/powerpc/kernel/kgdb_setjmp64.o
arch/powerpc/kernel/module_64.o arch/powerpc/kernel/pci_64.o
arch/powerpc/kernel/pci_dn.o arch/powerpc/kernel/isa-bridge.o
arch/powerpc/kernel/pci-common.o arch/powerpc/kernel/msi.o
arch/powerpc/kernel/machine_kexec.o arch/powerpc/kernel/crash.o
arch/powerpc/kernel/machine_kexec_64.o arch/powerpc/kernel/audit.o
arch/powerpc/kernel/swsusp_64.o arch/powerpc/kernel/swsusp_asm64.o
arch/powerpc/kernel/compat_audit.o
gcc -m64 -Wp,-MD,arch/powerpc/kernel/.lparmap.s.d -nostdinc -isystem /usr/lib/gcc/powerpc-linux-gnu/4.1.2/include -D__KERNEL__ -Iinclude -include
include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -msoft-float -pipe -mminimal-toc -mtraceback=none -mcall-aixdesc -mcpu=power4 -mno-altivec -funit-at-a-time -mno-string -Wa,-maltivec -fomit-frame-pointer -g -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -mno-minimal-toc -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(lparmap)" -D"KBUILD_MODNAME=KBUILD_STR(lparmap)" -fverbose-asm -S -o
arch/powerpc/kernel/lparmap.s arch/powerpc/kernel/lparmap.c
gcc -m64 -Wp,-MD,arch/powerpc/kernel/.head_64.o.d -nostdinc -isystem /usr/lib/gcc/powerpc-linux-gnu/4.1.2/include -D__KERNEL__ -Iinclude -include
include/linux/autoconf.h -D__ASSEMBLY__ -Wa,-maltivec -gdwarf2 -Iarch/powerpc/kernel -c -o
arch/powerpc/kernel/head_64.o arch/powerpc/kernel/head_64.S
lparmap.c: Assembler messages:
lparmap.c:84: Error: file number 1 already allocated
make[1]: *** [arch/powerpc/kernel/head_64.o] Blad 1
make: *** [arch/powerpc/kernel] Blad 2
This patch fixes the following section mismatch warnings for sound/pci/hda/*
...
WARNING: vmlinux.o(.text+0x28d5f7): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'alc_build_controls' and 'alc662_auto_set_output_and_unmute')
WARNING: vmlinux.o(.text+0x28d621): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'alc_build_controls' and 'alc662_auto_set_output_and_unmute')
WARNING: vmlinux.o(.text+0x28d63d): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'alc_build_controls' and 'alc662_auto_set_output_and_unmute')
WARNING: vmlinux.o(.text+0x2904ca): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'alc880_parse_auto_config' and 'alc882_gpio_mute')
WARNING: vmlinux.o(.text+0x290e5e): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc268' and 'patch_alc662')
WARNING: vmlinux.o(.text+0x290e7c): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc268' and 'patch_alc662')
WARNING: vmlinux.o(.text+0x291248): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc662' and 'alc_mux_enum_info')
WARNING: vmlinux.o(.text+0x291315): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc662' and 'alc_mux_enum_info')
WARNING: vmlinux.o(.text+0x2919ca): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc880' and 'patch_alc260')
WARNING: vmlinux.o(.text+0x291b96): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc260' and 'patch_alc882')
WARNING: vmlinux.o(.text+0x291c2c): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc260' and 'patch_alc882')
WARNING: vmlinux.o(.text+0x292010): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc882' and 'patch_alc883')
WARNING: vmlinux.o(.text+0x2922da): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc883' and 'patch_alc262')
WARNING: vmlinux.o(.text+0x29244a): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc262' and 'patch_alc861')
WARNING: vmlinux.o(.text+0x292517): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc262' and 'patch_alc861')
WARNING: vmlinux.o(.text+0x292806): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc861' and 'patch_alc861vd')
WARNING: vmlinux.o(.text+0x29289c): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc861' and 'patch_alc861vd')
WARNING: vmlinux.o(.text+0x292c26): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_alc861vd' and 'cmi9880_build_pcms')
WARNING: vmlinux.o(.text+0x292cf5): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_alc861vd' and 'cmi9880_build_pcms')
WARNING: vmlinux.o(.text+0x2932dd): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'cmi9880_build_controls' and 'cmi_ch_mode_put')
WARNING: vmlinux.o(.text+0x2932f6): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'cmi9880_build_controls' and 'cmi_ch_mode_put')
WARNING: vmlinux.o(.text+0x293326): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'cmi9880_build_controls' and 'cmi_ch_mode_put')
WARNING: vmlinux.o(.text+0x293346): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'cmi9880_build_controls' and 'cmi_ch_mode_put')
WARNING: vmlinux.o(.text+0x29349e): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_cmi9880' and 'cmi_mux_enum_get')
WARNING: vmlinux.o(.text+0x293614): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_cmi9880' and 'cmi_mux_enum_get')
WARNING: vmlinux.o(.text+0x293e41): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'ad198x_build_controls' and 'ad1988_laptop_unsol_event')
WARNING: vmlinux.o(.text+0x293e6b): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'ad198x_build_controls' and 'ad1988_laptop_unsol_event')
WARNING: vmlinux.o(.text+0x293e87): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'ad198x_build_controls' and 'ad1988_laptop_unsol_event')
WARNING: vmlinux.o(.text+0x294cdb): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1882' and 'patch_ad1884')
WARNING: vmlinux.o(.text+0x294e4d): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1984' and 'ad198x_mux_enum_get')
WARNING: vmlinux.o(.text+0x294f96): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1986a' and 'patch_ad1983')
WARNING: vmlinux.o(.text+0x295226): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1981' and 'patch_ad1988')
WARNING: vmlinux.o(.text+0x295355): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_ad1988' and 'stac92xx_dmux_enum_get')
WARNING: vmlinux.o(.text+0x29553c): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_ad1988' and 'stac92xx_dmux_enum_get')
WARNING: vmlinux.o(.text+0x29680c): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'stac92xx_build_controls' and 'stac92xx_mux_enum_put')
WARNING: vmlinux.o(.text+0x296835): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'stac92xx_build_controls' and 'stac92xx_mux_enum_put')
WARNING: vmlinux.o(.text+0x29685f): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'stac92xx_build_controls' and 'stac92xx_mux_enum_put')
WARNING: vmlinux.o(.text+0x29687b): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'stac92xx_build_controls' and 'stac92xx_mux_enum_put')
WARNING: vmlinux.o(.text+0x296e0f): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'stac92xx_parse_auto_config' and 'patch_stac9872')
WARNING: vmlinux.o(.text+0x2975b9): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac9872' and 'vaio_master_sw_put')
WARNING: vmlinux.o(.text+0x29791c): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac9200' and 'patch_stac925x')
WARNING: vmlinux.o(.text+0x297991): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_stac9200' and 'patch_stac925x')
WARNING: vmlinux.o(.text+0x297cfb): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac925x' and 'patch_stac922x')
WARNING: vmlinux.o(.text+0x297e6c): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac922x' and 'patch_stac927x')
WARNING: vmlinux.o(.text+0x29809f): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac927x' and 'patch_stac9205')
WARNING: vmlinux.o(.text+0x29822f): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_stac9205' and 'si3054_build_pcms')
WARNING: vmlinux.o(.text+0x298846): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'si3054_build_controls' and 'patch_si3054')
WARNING: vmlinux.o(.text+0x298978): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'atihdmi_build_controls' and 'patch_atihdmi')
WARNING: vmlinux.o(.text+0x299361): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'conexant_build_controls' and 'patch_cxt5047')
WARNING: vmlinux.o(.text+0x29938b): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'conexant_build_controls' and 'patch_cxt5047')
WARNING: vmlinux.o(.text+0x2993a7): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'conexant_build_controls' and 'patch_cxt5047')
WARNING: vmlinux.o(.text+0x2994a9): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_cxt5047' and 'cxt5047_hp_automic')
WARNING: vmlinux.o(.text+0x299a39): Section mismatch: reference to .init.text:snd_hda_check_board_config (between 'patch_cxt5045' and 'via_build_pcms')
WARNING: vmlinux.o(.text+0x299d27): Section mismatch: reference to .init.text:snd_hda_add_new_ctls (between 'via_build_controls' and 'via_mux_enum_put')
WARNING: vmlinux.o(.text+0x299d51): Section mismatch: reference to .init.text:snd_hda_create_spdif_in_ctls (between 'via_build_controls' and 'via_mux_enum_put')
WARNING: vmlinux.o(.text+0x299d6d): Section mismatch: reference to .init.text:snd_hda_create_spdif_out_ctls (between 'via_build_controls' and 'via_mux_enum_put')
WARNING: vmlinux.o(.text+0x29a1c3): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'vt1709_parse_auto_config' and 'patch_vt1709_6ch')
WARNING: vmlinux.o(.text+0x29a9ad): Section mismatch: reference to .init.text:snd_hda_parse_pin_def_config (between 'patch_vt1708' and 'patch_vt1709_10ch')
...
Signed-off-by: Gabriel Craciunescu <[email protected]>
---
The same problem exists in mainline.
A patch to fix the mainline warnings can be found there : http://lkml.org/lkml/2007/7/31/643.
diff -Nurp linux2.6.23-mm/sound/pci/hda/hda_patch.h linux2.6.23-mm-p/sound/pci/hda/hda_patch.h
--- linux2.6.23-mm/sound/pci/hda/hda_patch.h 2007-08-02 14:37:42.000000000 +0200
+++ linux2.6.23-mm-p/sound/pci/hda/hda_patch.h 2007-08-02 14:45:02.000000000 +0200
@@ -19,7 +19,7 @@ extern struct hda_codec_preset snd_hda_p
/* VIA codecs */
extern struct hda_codec_preset snd_hda_preset_via[];
-static const struct hda_codec_preset *hda_preset_tables[] = {
+static const struct hda_codec_preset *hda_preset_tables[] __devinitdata = {
#ifdef CONFIG_SND_HDA_CODEC_REALTEK
snd_hda_preset_realtek,
#endif
diff -Nurp linux2.6.23-mm/sound/pci/hda/patch_analog.c linux2.6.23-mm-p/sound/pci/hda/patch_analog.c
--- linux2.6.23-mm/sound/pci/hda/patch_analog.c 2007-08-02 14:37:42.000000000 +0200
+++ linux2.6.23-mm-p/sound/pci/hda/patch_analog.c 2007-08-02 14:44:13.000000000 +0200
@@ -120,7 +120,7 @@ static int ad198x_init(struct hda_codec
return 0;
}
-static int ad198x_build_controls(struct hda_codec *codec)
+static int __devinit ad198x_build_controls(struct hda_codec *codec)
{
struct ad198x_spec *spec = codec->spec;
unsigned int i;
@@ -756,7 +756,7 @@ static struct snd_pci_quirk ad1986a_cfg_
{}
};
-static int patch_ad1986a(struct hda_codec *codec)
+static int __devinit patch_ad1986a(struct hda_codec *codec)
{
struct ad198x_spec *spec;
int board_config;
@@ -1364,7 +1364,7 @@ static struct snd_pci_quirk ad1981_cfg_t
{}
};
-static int patch_ad1981(struct hda_codec *codec)
+static int __devinit patch_ad1981(struct hda_codec *codec)
{
struct ad198x_spec *spec;
int board_config;
@@ -2569,7 +2569,7 @@ static struct snd_pci_quirk ad1988_cfg_t
{}
};
-static int patch_ad1988(struct hda_codec *codec)
+static int __devinit patch_ad1988(struct hda_codec *codec)
{
struct ad198x_spec *spec;
int board_config;
@@ -2999,7 +2999,7 @@ static struct snd_pci_quirk ad1984_cfg_t
{}
};
-static int patch_ad1984(struct hda_codec *codec)
+static int __devinit patch_ad1984(struct hda_codec *codec)
{
struct ad198x_spec *spec;
int board_config, err;
@@ -3258,7 +3258,7 @@ static const char *ad1882_models[AD1986A
};
-static int patch_ad1882(struct hda_codec *codec)
+static int __devinit patch_ad1882(struct hda_codec *codec)
{
struct ad198x_spec *spec;
int board_config;
@@ -3312,7 +3312,7 @@ static int patch_ad1882(struct hda_codec
/*
* patch entries
*/
-struct hda_codec_preset snd_hda_preset_analog[] = {
+struct hda_codec_preset snd_hda_preset_analog[] __devinitdata = {
{ .id = 0x11d41882, .name = "AD1882", .patch = patch_ad1882 },
{ .id = 0x11d41884, .name = "AD1884", .patch = patch_ad1884 },
{ .id = 0x11d41981, .name = "AD1981", .patch = patch_ad1981 },
diff -Nurp linux2.6.23-mm/sound/pci/hda/patch_atihdmi.c linux2.6.23-mm-p/sound/pci/hda/patch_atihdmi.c
--- linux2.6.23-mm/sound/pci/hda/patch_atihdmi.c 2007-07-22 22:41:00.000000000 +0200
+++ linux2.6.23-mm-p/sound/pci/hda/patch_atihdmi.c 2007-08-02 14:44:13.000000000 +0200
@@ -44,7 +44,7 @@ static struct hda_verb atihdmi_basic_ini
/*
* Controls
*/
-static int atihdmi_build_controls(struct hda_codec *codec)
+static int __devinit atihdmi_build_controls(struct hda_codec *codec)
{
struct atihdmi_spec *spec = codec->spec;
int err;
diff -Nurp linux2.6.23-mm/sound/pci/hda/patch_cmedia.c linux2.6.23-mm-p/sound/pci/hda/patch_cmedia.c
--- linux2.6.23-mm/sound/pci/hda/patch_cmedia.c 2007-07-22 22:41:00.000000000 +0200
+++ linux2.6.23-mm-p/sound/pci/hda/patch_cmedia.c 2007-08-02 14:44:13.000000000 +0200
@@ -315,7 +315,7 @@ static struct hda_verb cmi9880_allout_in
/*
*/
-static int cmi9880_build_controls(struct hda_codec *codec)
+static int __devinit cmi9880_build_controls(struct hda_codec *codec)
{
struct cmi_spec *spec = codec->spec;
int err;
@@ -640,7 +640,7 @@ static struct hda_codec_ops cmi9880_patc
#endif
};
-static int patch_cmi9880(struct hda_codec *codec)
+static int __devinit patch_cmi9880(struct hda_codec *codec)
{
struct cmi_spec *spec;
@@ -753,7 +753,7 @@ static int patch_cmi9880(struct hda_code
/*
* patch entries
*/
-struct hda_codec_preset snd_hda_preset_cmedia[] = {
+struct hda_codec_preset snd_hda_preset_cmedia[] __devinitdata = {
{ .id = 0x13f69880, .name = "CMI9880", .patch = patch_cmi9880 },
{ .id = 0x434d4980, .name = "CMI9880", .patch = patch_cmi9880 },
{} /* terminator */
diff -Nurp linux2.6.23-mm/sound/pci/hda/patch_conexant.c linux2.6.23-mm-p/sound/pci/hda/patch_conexant.c
--- linux2.6.23-mm/sound/pci/hda/patch_conexant.c 2007-08-02 14:37:42.000000000 +0200
+++ linux2.6.23-mm-p/sound/pci/hda/patch_conexant.c 2007-08-02 14:44:13.000000000 +0200
@@ -328,7 +328,7 @@ static int conexant_resume(struct hda_co
}
#endif
-static int conexant_build_controls(struct hda_codec *codec)
+static int __devinit conexant_build_controls(struct hda_codec *codec)
{
struct conexant_spec *spec = codec->spec;
unsigned int i;
@@ -800,7 +800,7 @@ static struct snd_pci_quirk cxt5045_cfg_
{}
};
-static int patch_cxt5045(struct hda_codec *codec)
+static int __devinit patch_cxt5045(struct hda_codec *codec)
{
struct conexant_spec *spec;
int board_config;
@@ -1309,7 +1309,7 @@ static struct snd_pci_quirk cxt5047_cfg_
{}
};
-static int patch_cxt5047(struct hda_codec *codec)
+static int __devinit patch_cxt5047(struct hda_codec *codec)
{
struct conexant_spec *spec;
int board_config;
@@ -1366,12 +1366,12 @@ static int patch_cxt5047(struct hda_code
spec->mixers[0] = cxt5047_test_mixer;
spec->init_verbs[0] = cxt5047_test_init_verbs;
codec->patch_ops.unsol_event = cxt5047_hp_unsol_event;
-#endif
+#endif
}
return 0;
}
-struct hda_codec_preset snd_hda_preset_conexant[] = {
+struct hda_codec_preset snd_hda_preset_conexant[] __devinitdata = {
{ .id = 0x14f15045, .name = "CX20549 (Venice)",
.patch = patch_cxt5045 },
{ .id = 0x14f15047, .name = "CX20551 (Waikiki)",
diff -Nurp linux2.6.23-mm/sound/pci/hda/patch_realtek.c linux2.6.23-mm-p/sound/pci/hda/patch_realtek.c
--- linux2.6.23-mm/sound/pci/hda/patch_realtek.c 2007-08-02 14:37:42.000000000 +0200
+++ linux2.6.23-mm-p/sound/pci/hda/patch_realtek.c 2007-08-02 14:44:13.000000000 +0200
@@ -1237,7 +1237,7 @@ static struct snd_kcontrol_new alc880_un
/*
* build control elements
*/
-static int alc_build_controls(struct hda_codec *codec)
+static int __devinit alc_build_controls(struct hda_codec *codec)
{
struct alc_spec *spec = codec->spec;
int err;
@@ -3253,7 +3253,7 @@ static void alc880_auto_init_analog_inpu
/* return 1 if successful, 0 if the proper config is not found,
* or a negative error code
*/
-static int alc880_parse_auto_config(struct hda_codec *codec)
+static int __devinit alc880_parse_auto_config(struct hda_codec *codec)
{
struct alc_spec *spec = codec->spec;
int err;
@@ -3315,7 +3315,7 @@ static void alc880_auto_init(struct hda_
* OK, here we have finally the patch for ALC880
*/
-static int patch_alc880(struct hda_codec *codec)
+static int __devinit patch_alc880(struct hda_codec *codec)
{
struct alc_spec *spec;
int board_config;
@@ -4686,7 +4686,7 @@ static struct alc_config_preset alc260_p
#endif
};
-static int patch_alc260(struct hda_codec *codec)
+static int __devinit patch_alc260(struct hda_codec *codec)
{
struct alc_spec *spec;
int err, board_config;
@@ -5614,7 +5614,7 @@ static void alc882_auto_init(struct hda_
alc882_auto_init_analog_input(codec);
}
-static int patch_alc882(struct hda_codec *codec)
+static int __devinit patch_alc882(struct hda_codec *codec)
{
struct alc_spec *spec;
int err, board_config;
@@ -6977,7 +6977,7 @@ static void alc883_auto_init(struct hda_
alc883_auto_init_analog_input(codec);
}
-static int patch_alc883(struct hda_codec *codec)
+static int __devinit patch_alc883(struct hda_codec *codec)
{
struct alc_spec *spec;
int err, board_config;
@@ -8047,7 +8047,7 @@ static struct alc_config_preset alc262_p
},
};
-static int patch_alc262(struct hda_codec *codec)
+static int __devinit patch_alc262(struct hda_codec *codec)
{
struct alc_spec *spec;
int board_config;
@@ -8565,7 +8565,7 @@ static struct alc_config_preset alc268_p
},
};
-static int patch_alc268(struct hda_codec *codec)
+static int __devinit patch_alc268(struct hda_codec *codec)
{
struct alc_spec *spec;
int board_config;
@@ -9736,7 +9736,7 @@ static struct alc_config_preset alc861_p
};
-static int patch_alc861(struct hda_codec *codec)
+static int __devinit patch_alc861(struct hda_codec *codec)
{
struct alc_spec *spec;
int board_config;
@@ -10670,7 +10670,7 @@ static void alc861vd_auto_init(struct hd
alc861vd_auto_init_analog_input(codec);
}
-static int patch_alc861vd(struct hda_codec *codec)
+static int __devinit patch_alc861vd(struct hda_codec *codec)
{
struct alc_spec *spec;
int err, board_config;
@@ -11524,7 +11524,7 @@ static void alc662_auto_init(struct hda_
alc662_auto_init_analog_input(codec);
}
-static int patch_alc662(struct hda_codec *codec)
+static int __devinit patch_alc662(struct hda_codec *codec)
{
struct alc_spec *spec;
int err, board_config;
@@ -11584,7 +11584,7 @@ static int patch_alc662(struct hda_codec
/*
* patch entries
*/
-struct hda_codec_preset snd_hda_preset_realtek[] = {
+struct hda_codec_preset snd_hda_preset_realtek[] __devinitdata = {
{ .id = 0x10ec0260, .name = "ALC260", .patch = patch_alc260 },
{ .id = 0x10ec0262, .name = "ALC262", .patch = patch_alc262 },
{ .id = 0x10ec0268, .name = "ALC268", .patch = patch_alc268 },
diff -Nurp linux2.6.23-mm/sound/pci/hda/patch_si3054.c linux2.6.23-mm-p/sound/pci/hda/patch_si3054.c
--- linux2.6.23-mm/sound/pci/hda/patch_si3054.c 2007-08-02 14:37:42.000000000 +0200
+++ linux2.6.23-mm-p/sound/pci/hda/patch_si3054.c 2007-08-02 14:44:13.000000000 +0200
@@ -135,7 +135,7 @@ static struct snd_kcontrol_new si3054_mo
{}
};
-static int si3054_build_controls(struct hda_codec *codec)
+static int __devinit si3054_build_controls(struct hda_codec *codec)
{
return snd_hda_add_new_ctls(codec, si3054_modem_mixer);
}
diff -Nurp linux2.6.23-mm/sound/pci/hda/patch_sigmatel.c linux2.6.23-mm-p/sound/pci/hda/patch_sigmatel.c
--- linux2.6.23-mm/sound/pci/hda/patch_sigmatel.c 2007-08-02 14:37:42.000000000 +0200
+++ linux2.6.23-mm-p/sound/pci/hda/patch_sigmatel.c 2007-08-02 14:44:13.000000000 +0200
@@ -419,7 +419,7 @@ static struct snd_kcontrol_new stac9205_
{ } /* end */
};
-static int stac92xx_build_controls(struct hda_codec *codec)
+static int __devinit stac92xx_build_controls(struct hda_codec *codec)
{
struct sigmatel_spec *spec = codec->spec;
int err;
@@ -1570,7 +1570,7 @@ static void stac92xx_auto_init_hp_out(st
}
}
-static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out, hda_nid_t dig_in)
+static int __devinit stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out, hda_nid_t dig_in)
{
struct sigmatel_spec *spec = codec->spec;
int err;
@@ -1964,7 +1964,7 @@ static struct hda_codec_ops stac92xx_pat
#endif
};
-static int patch_stac9200(struct hda_codec *codec)
+static int __devinit patch_stac9200(struct hda_codec *codec)
{
struct sigmatel_spec *spec;
int err;
@@ -2014,7 +2014,7 @@ static int patch_stac9200(struct hda_cod
return 0;
}
-static int patch_stac925x(struct hda_codec *codec)
+static int __devinit patch_stac925x(struct hda_codec *codec)
{
struct sigmatel_spec *spec;
int err;
@@ -2086,7 +2086,7 @@ static int patch_stac925x(struct hda_cod
return 0;
}
-static int patch_stac922x(struct hda_codec *codec)
+static int __devinit patch_stac922x(struct hda_codec *codec)
{
struct sigmatel_spec *spec;
int err;
@@ -2187,7 +2187,7 @@ static int patch_stac922x(struct hda_cod
return 0;
}
-static int patch_stac927x(struct hda_codec *codec)
+static int __devinit patch_stac927x(struct hda_codec *codec)
{
struct sigmatel_spec *spec;
int err;
@@ -2267,7 +2267,7 @@ static int patch_stac927x(struct hda_cod
return 0;
}
-static int patch_stac9205(struct hda_codec *codec)
+static int __devinit patch_stac9205(struct hda_codec *codec)
{
struct sigmatel_spec *spec;
int err;
@@ -2532,7 +2532,7 @@ static struct snd_pci_quirk stac9872_cfg
{}
};
-static int patch_stac9872(struct hda_codec *codec)
+static int __devinit patch_stac9872(struct hda_codec *codec)
{
struct sigmatel_spec *spec;
int board_config;
@@ -2543,7 +2543,7 @@ static int patch_stac9872(struct hda_cod
if (board_config < 0)
/* unknown config, let generic-parser do its job... */
return snd_hda_parse_generic_codec(codec);
-
+
spec = kzalloc(sizeof(*spec), GFP_KERNEL);
if (spec == NULL)
return -ENOMEM;
@@ -2564,7 +2564,7 @@ static int patch_stac9872(struct hda_cod
spec->input_mux = &vaio_mux;
spec->mux_nids = vaio_mux_nids;
break;
-
+
case CXD9872AKD_VAIO:
spec->mixer = vaio_ar_mixer;
spec->init = vaio_ar_init;
@@ -2587,7 +2587,7 @@ static int patch_stac9872(struct hda_cod
/*
* patch entries
*/
-struct hda_codec_preset snd_hda_preset_sigmatel[] = {
+struct hda_codec_preset snd_hda_preset_sigmatel[] __devinitdata = {
{ .id = 0x83847690, .name = "STAC9200", .patch = patch_stac9200 },
{ .id = 0x83847882, .name = "STAC9220 A1", .patch = patch_stac922x },
{ .id = 0x83847680, .name = "STAC9221 A1", .patch = patch_stac922x },
diff -Nurp linux2.6.23-mm/sound/pci/hda/patch_via.c linux2.6.23-mm-p/sound/pci/hda/patch_via.c
--- linux2.6.23-mm/sound/pci/hda/patch_via.c 2007-07-22 22:41:00.000000000 +0200
+++ linux2.6.23-mm-p/sound/pci/hda/patch_via.c 2007-08-02 14:44:13.000000000 +0200
@@ -455,7 +455,7 @@ static struct hda_pcm_stream vt1708_pcm_
.channels_max = 2,
};
-static int via_build_controls(struct hda_codec *codec)
+static int __devinit via_build_controls(struct hda_codec *codec)
{
struct via_spec *spec = codec->spec;
int err;
@@ -813,7 +813,7 @@ static int via_auto_init(struct hda_code
return 0;
}
-static int patch_vt1708(struct hda_codec *codec)
+static int __devinit patch_vt1708(struct hda_codec *codec)
{
struct via_spec *spec;
int err;
@@ -1212,7 +1212,7 @@ static int vt1709_auto_create_analog_inp
return 0;
}
-static int vt1709_parse_auto_config(struct hda_codec *codec)
+static int __devinit vt1709_parse_auto_config(struct hda_codec *codec)
{
struct via_spec *spec = codec->spec;
int err;
@@ -1251,7 +1251,7 @@ static int vt1709_parse_auto_config(stru
return 1;
}
-static int patch_vt1709_10ch(struct hda_codec *codec)
+static int __devinit patch_vt1709_10ch(struct hda_codec *codec)
{
struct via_spec *spec;
int err;
@@ -1341,7 +1341,7 @@ static struct hda_verb vt1709_6ch_volume
{ }
};
-static int patch_vt1709_6ch(struct hda_codec *codec)
+static int __devinit patch_vt1709_6ch(struct hda_codec *codec)
{
struct via_spec *spec;
int err;
@@ -1390,7 +1390,7 @@ static int patch_vt1709_6ch(struct hda_c
/*
* patch entries
*/
-struct hda_codec_preset snd_hda_preset_via[] = {
+struct hda_codec_preset snd_hda_preset_via[] __devinitdata = {
{ .id = 0x11061708, .name = "VIA VT1708", .patch = patch_vt1708},
{ .id = 0x11061709, .name = "VIA VT1708", .patch = patch_vt1708},
{ .id = 0x1106170A, .name = "VIA VT1708", .patch = patch_vt1708},
At Thu, 02 Aug 2007 15:11:59 +0200,
Gabriel C wrote:
>
> This patch fixes the following section mismatch warnings for sound/pci/hda/*
>
> ...
Hold on this. I have other changes in my tree with removal of
__devinit in relevant places.
Takashi
On Thu, Aug 02, 2007 at 12:40:59AM +0100, Mel Gorman wrote:
> On (01/08/07 22:52), Torsten Kaiser didst pronounce:
> > On 8/1/07, Andrew Morton <[email protected]> wrote:
> > > On Wed, 01 Aug 2007 16:30:08 -0400
> > > [email protected] wrote:
> > >
> > > > As an aside, it looks like bits&pieces of dynticks-for-x86_64 are in there.
> > > > In particular, x86_64-enable-high-resolution-timers-and-dynticks.patch is in
> > > > there, adding a menu that depends on GENERIC_CLOCKEVENTS, but then nothing
> > > > in the x86_64 tree actually *sets* it. There's a few other dynticks-related
> > > > prep patches in there as well. Does this mean it's back to "coming soon to
> > > > a CPU near you" status? :)
> > >
> > > I've lost the plot on that stuff: I'm just leaving things as-is for now,
> > > wait for Thomas to return from vacation so we can have another run at it.
> >
> > For what its worth: 2.6.22-rc6-mm1 with NO_HZ works for me on an AMD
> > SMP system without trouble.
> >
> > Next try with 2.6.23-rc1-mm2 and SPARSEMEM:
> > Probably the same exception, but this time with Call Trace:
> > [ 0.000000] Bootmem setup node 0 0000000000000000-0000000080000000
> > [ 0.000000] Bootmem setup node 1 0000000080000000-0000000120000000
> > [ 0.000000] Zone PFN ranges:
> > [ 0.000000] DMA 0 -> 4096
> > [ 0.000000] DMA32 4096 -> 1048576
> > [ 0.000000] Normal 1048576 -> 1179648
> > [ 0.000000] Movable zone start PFN for each node
> > [ 0.000000] early_node_map[4] active PFN ranges
> > [ 0.000000] 0: 0 -> 159
> > [ 0.000000] 0: 256 -> 524288
> > [ 0.000000] 1: 524288 -> 917488
> > [ 0.000000] 1: 1048576 -> 1179648
> > PANIC: early exception rip ffffffff807cddb5 error 2 cr2 ffffe20003000010
> > [ 0.000000]
> > [ 0.000000] Call Trace:
> > [ 0.000000] [<ffffffff807cddb5>] memmap_init_zone+0xb5/0x130
> > [ 0.000000] [<ffffffff807ce874>] init_currently_empty_zone+0x84/0x110
> > [ 0.000000] [<ffffffff807cec93>] free_area_init_node+0x393/0x3e0
> > [ 0.000000] [<ffffffff807cefea>] free_area_init_nodes+0x2da/0x320
> > [ 0.000000] [<ffffffff807c9c97>] paging_init+0x87/0x90
> > [ 0.000000] [<ffffffff807c0f85>] setup_arch+0x355/0x470
> > [ 0.000000] [<ffffffff807bc967>] start_kernel+0x57/0x330
> > [ 0.000000] [<ffffffff807bc12d>] _sinittext+0x12d/0x140
> > [ 0.000000]
> > [ 0.000000] RIP memmap_init_zone+0xb5/0x130
> >
> > (gdb) list *0xffffffff807cddb5
> > 0xffffffff807cddb5 is in memmap_init_zone (include/linux/list.h:32).
> > 27 #define LIST_HEAD(name) \
> > 28 struct list_head name = LIST_HEAD_INIT(name)
> > 29
> > 30 static inline void INIT_LIST_HEAD(struct list_head *list)
> > 31 {
> > 32 list->next = list;
> > 33 list->prev = list;
> > 34 }
> > 35
> > 36 /*
> >
> > I will test more tomorrow...
>
> Well.... That doesn't make a whole pile of sense unless the memory map
> is not present. Looking at your boot log, we see this gem
This implies that &page->lru is invalid. Which implies that the memory
map is indeed not present. However, if we look at the code in detail we
have actually already updated several fields in the struct page already.
Particularly we have already updated the flags, _count, and _mapcount.
It is when we touch lru which we blammo. All of the good entries are in
the first 24 bytes of the struct page, lru is in the 8th 64bit word, or
+64 bytes. Looking at the faulting address it is ffffe20003000010, ie
the fault is 16 bytes into a page. So the first three elements of this
struct page are in one PMD mapped page, and the lru the next.
As this has SPARSEMEM_VMEMMAP enabled that implies that the vemmmap has
not been filled out correctly. Looking at the x86_64 initialiser it
appears that we have the same bug that Kame-san reported against the
generic initialisers. At the end of this email is a proposed patch for
this, could you apply that to a clean 2.6.23-rc1-mm2 tree and give it
a test for me. I have boot tested this on our x86_64 boxes, but they
happen to be sized and layed out to not trip this bug.
Let me know if it fixes things up for you and I will push it upstream.
If this patch does not fix it could you please get us a boot log at
loglevel=8 of an unmodified 2.6.23-rc1-mm2 kernel, this should give
sufficient debug on how the vmemmap is initialised.
> > [ 0.000000] 1: 524288 -> 917488
> > [ 0.000000] 1: 1048576 -> 1179648
[...]
-apw
=== 8< ===
vmemmap x86_64: ensure end of section memmap is initialised
Similar to the generic initialisers, the x86_64 vmemmap
initialisation may incorrectly skip the last page of a section if
the section start is not aligned to the page.
Where we have a section spanning the end of a PMD we will check the
start of the section at A populating it. We will then move on 1
PMD page to C and find ourselves beyond the end of the section which
ends at B we will complete without checking the second PMD page.
| PMD | PMD |
| SECTION |
A B C
We should round ourselves to the end of the PMD as we iterate.
Signed-off-by: Andy Whitcroft <[email protected]>
---
arch/x86_64/mm/init.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/arch/x86_64/mm/init.c b/arch/x86_64/mm/init.c
index ac49df0..5d1ed03 100644
--- a/arch/x86_64/mm/init.c
+++ b/arch/x86_64/mm/init.c
@@ -792,9 +792,10 @@ int __meminit vmemmap_populate_pmd(pud_t *pud, unsigned long addr,
unsigned long end, int node)
{
pmd_t *pmd;
+ unsigned long next;
- for (pmd = pmd_offset(pud, addr); addr < end;
- pmd++, addr += PMD_SIZE)
+ for (pmd = pmd_offset(pud, addr); addr < end; pmd++, addr = next) {
+ next = pmd_addr_end(addr, end);
if (pmd_none(*pmd)) {
pte_t entry;
void *p = vmemmap_alloc_block(PMD_SIZE, node);
@@ -808,8 +809,8 @@ int __meminit vmemmap_populate_pmd(pud_t *pud, unsigned long addr,
printk(KERN_DEBUG " [%lx-%lx] PMD ->%p on node %d\n",
addr, addr + PMD_SIZE - 1, p, node);
} else
- vmemmap_verify((pte_t *)pmd, node,
- pmd_addr_end(addr, end), end);
+ vmemmap_verify((pte_t *)pmd, node, next, end);
+ }
return 0;
}
#endif
On Thu, 2 Aug 2007, Mariusz Kozlowski wrote:
> > > > =======================
> > > > uhci_hcd 0000:00:0c.0: dma_pool_free buffer-32, 6b6b6b6b/6b6b6b6b (bad dma)
> >
> > Mariusz,
> >
> > I guess the patch below (which I have just added to my tree) fixes that,
> > right? Thanks.
>
> Yes - that's correct. This patch fixes the bug. Thanks.
Does it also fix the "dma_pool_free" error?
Alan Stern
> > > > > =======================
> > > > > uhci_hcd 0000:00:0c.0: dma_pool_free buffer-32, 6b6b6b6b/6b6b6b6b
> > > > > (bad dma)
> > >
> > > Mariusz,
> > >
> > > I guess the patch below (which I have just added to my tree) fixes
> > > that, right? Thanks.
> >
> > Yes - that's correct. This patch fixes the bug. Thanks.
>
> Does it also fix the "dma_pool_free" error?
Yes - it does.
Regards,
Mariusz
On Thu, 2 Aug 2007, Alan Stern wrote:
> > > > > uhci_hcd 0000:00:0c.0: dma_pool_free buffer-32, 6b6b6b6b/6b6b6b6b (bad dma)
> > > I guess the patch below (which I have just added to my tree) fixes that,
> > > right? Thanks.
> > Yes - that's correct. This patch fixes the bug. Thanks.
> Does it also fix the "dma_pool_free" error?
I believe it should -- caused by calling usb_buffer_free() with bogus
dma_addr_t, as corresponding usbhid_device has been already kfree()d.
--
Jiri Kosina
In message <[email protected]>, Josef Sipek writes:
> On Wed, Aug 01, 2007 at 10:22:07AM -0700, Andrew Morton wrote:
> > On Wed, 01 Aug 2007 12:33:18 +0200 Gabriel C <[email protected]> wrote:
> >
> > > ....
> > >
> > > fs/unionfs/file.c:147: error: 'file_fsync' undeclared here (not in a function)
> > > make[2]: *** [fs/unionfs/file.o] Error 1
> > > make[1]: *** [fs/unionfs] Error 2
> > > make: *** [fs] Error 2
> > > make: *** Waiting for unfinished jobs....
> > >
> > > ...
> > >
> > > Config can be found there -> http://194.231.229.228/MM/config-auto-3
> > >
> >
> > This, I assume:
> >
> > --- a/fs/unionfs/file.c~git-unionfs-fix-2
> > +++ a/fs/unionfs/file.c
> > @@ -17,6 +17,7 @@
> > */
> >
> > #include "union.h"
> > +#include <linux/buffer_head.h>
> >
> > /*******************
> > * File Operations *
> > _
> >
> > (and no, sorry, I will not be complicit in that
> > single-header-file-which-includes-the-whole-world junk).
>
> Ouch. I had a fix for this, and it managed to get lost in the pile of
> patches.
>
> I'll fix it up and push fix to kernel.org.
Jeff, make sure you push my fix which will work even if CONFIG_BLOCK=n is
set.
> Jeff.
Erez.
On Thu, Aug 02, 2007 at 03:24:29PM +0200, Takashi Iwai wrote:
> At Thu, 02 Aug 2007 15:11:59 +0200,
> Gabriel C wrote:
> >
> > This patch fixes the following section mismatch warnings for sound/pci/hda/*
> >
> > ...
>
> Hold on this. I have other changes in my tree with removal of
> __devinit in relevant places.
Can I ask you to text-compile with and without HOTPLUG before submitting.
This catches most cases of section mismatch.
Sam
At Thu, 2 Aug 2007 18:32:26 +0200,
Sam Ravnborg wrote:
>
> On Thu, Aug 02, 2007 at 03:24:29PM +0200, Takashi Iwai wrote:
> > At Thu, 02 Aug 2007 15:11:59 +0200,
> > Gabriel C wrote:
> > >
> > > This patch fixes the following section mismatch warnings for sound/pci/hda/*
> > >
> > > ...
> >
> > Hold on this. I have other changes in my tree with removal of
> > __devinit in relevant places.
>
> Can I ask you to text-compile with and without HOTPLUG before submitting.
> This catches most cases of section mismatch.
Yep, checked that.
thanks,
Takashi
From: Rafael J. Wysocki <[email protected]>
My test box crashes during suspend, while the nonboot CPUs are being disabled,
because sysfs_hash_and_remove() doesn't check if dir_sd passed to it is not
NULL. Fix it.
Signed-off-by: Rafael J. Wysocki <[email protected]>
---
fs/sysfs/inode.c | 2 ++
1 file changed, 2 insertions(+)
Index: linux-2.6.23-rc1-mm2/fs/sysfs/inode.c
===================================================================
--- linux-2.6.23-rc1-mm2.orig/fs/sysfs/inode.c
+++ linux-2.6.23-rc1-mm2/fs/sysfs/inode.c
@@ -191,6 +191,8 @@ int sysfs_hash_and_remove(struct kobject
struct sysfs_addrm_cxt acxt;
struct sysfs_dirent **pos, *sd;
+ if (!dir_sd)
+ return -ENOENT;
sysfs_addrm_start(&acxt, dir_sd);
if (!sysfs_resolve_for_remove(kobj, &acxt.parent_sd))
goto addrm_finish;
Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <[email protected]>
>
> My test box crashes during suspend, while the nonboot CPUs are being disabled,
> because sysfs_hash_and_remove() doesn't check if dir_sd passed to it is not
> NULL. Fix it.
>
> Signed-off-by: Rafael J. Wysocki <[email protected]>
It got broken when shadow support was added. The shadow support in -mm1
will be dropped and Eric is preparing a new version. So, this fix
probably won't be necessary from -mm2.
Thanks.
--
tejun
On 8/2/07, Andy Whitcroft <[email protected]> wrote:
> vmemmap x86_64: ensure end of section memmap is initialised
>
> Similar to the generic initialisers, the x86_64 vmemmap
> initialisation may incorrectly skip the last page of a section if
> the section start is not aligned to the page.
>
> Where we have a section spanning the end of a PMD we will check the
> start of the section at A populating it. We will then move on 1
> PMD page to C and find ourselves beyond the end of the section which
> ends at B we will complete without checking the second PMD page.
>
> | PMD | PMD |
> | SECTION |
> A B C
>
> We should round ourselves to the end of the PMD as we iterate.
>
> Signed-off-by: Andy Whitcroft <[email protected]>
> ---
> arch/x86_64/mm/init.c | 9 +++++----
> 1 files changed, 5 insertions(+), 4 deletions(-)
> diff --git a/arch/x86_64/mm/init.c b/arch/x86_64/mm/init.c
> index ac49df0..5d1ed03 100644
> --- a/arch/x86_64/mm/init.c
> +++ b/arch/x86_64/mm/init.c
> @@ -792,9 +792,10 @@ int __meminit vmemmap_populate_pmd(pud_t *pud, unsigned long addr,
> unsigned long end, int node)
> {
> pmd_t *pmd;
> + unsigned long next;
>
> - for (pmd = pmd_offset(pud, addr); addr < end;
> - pmd++, addr += PMD_SIZE)
> + for (pmd = pmd_offset(pud, addr); addr < end; pmd++, addr = next) {
> + next = pmd_addr_end(addr, end);
> if (pmd_none(*pmd)) {
> pte_t entry;
> void *p = vmemmap_alloc_block(PMD_SIZE, node);
> @@ -808,8 +809,8 @@ int __meminit vmemmap_populate_pmd(pud_t *pud, unsigned long addr,
> printk(KERN_DEBUG " [%lx-%lx] PMD ->%p on node %d\n",
> addr, addr + PMD_SIZE - 1, p, node);
> } else
> - vmemmap_verify((pte_t *)pmd, node,
> - pmd_addr_end(addr, end), end);
> + vmemmap_verify((pte_t *)pmd, node, next, end);
> + }
> return 0;
> }
> #endif
>
That patch applied to 2.6.23-rc1-mm2 boots.
But I still the the MP-BIOS bug, now with an additional Call Trace:
[ 27.034907] ACPI: Core revision 20070126
[ 27.082090] ..MP-BIOS bug: 8254 timer not connected to IO-APIC
[ 27.132617] WARNING: at kernel/irq/resend.c:69 check_irq_resend()
[ 27.150837]
[ 27.150837] Call Trace:
[ 27.162621] [<ffffffff80261c4c>] check_irq_resend+0xbc/0xd0
[ 27.179558] [<ffffffff802617c0>] enable_irq+0xf0/0x100
[ 27.195177] [<ffffffff807c6984>] setup_IO_APIC+0x6c4/0x9a0
[ 27.211833] [<ffffffff80234e74>] set_cpus_allowed+0x64/0xc0
[ 27.228749] [<ffffffff807c4e14>] smp_prepare_cpus+0x434/0x460
[ 27.246183] [<ffffffff807bc627>] kernel_init+0x67/0x350
[ 27.262062] [<ffffffff8020cac8>] child_rip+0xa/0x12
[ 27.276928] [<ffffffff803d4f80>] acpi_ds_init_one_object+0x0/0x7c
[ 27.295425] [<ffffffff807bc5c0>] kernel_init+0x0/0x350
[ 27.311043] [<ffffffff8020cabe>] child_rip+0x0/0x12
[ 27.325881]
[ 27.463199] Using local APIC timer interrupts.
[ 27.514874] result 12500129
[ 27.523240] Detected 12.500 MHz APIC timer.
It does no longer seem to matter if it was a warm or cold start.
Otherwise the system seems to be working normal.
Torsten
Tejun Heo <[email protected]> writes:
> Rafael J. Wysocki wrote:
>> From: Rafael J. Wysocki <[email protected]>
>>
>> My test box crashes during suspend, while the nonboot CPUs are being disabled,
>> because sysfs_hash_and_remove() doesn't check if dir_sd passed to it is not
>> NULL. Fix it.
>>
>> Signed-off-by: Rafael J. Wysocki <[email protected]>
>
> It got broken when shadow support was added. The shadow support in -mm1
> will be dropped and Eric is preparing a new version. So, this fix
> probably won't be necessary from -mm2.
Agreed. That check is in my current development tree.
Eric
On Aug 2, 2007, at 5:14 AM, Mariusz Kozlowski wrote:
>>> Second issue as reported earilier allmodconfig fails to build on
>>> imac g3.
>>
>> Do you really mean g3? If so it's a 32-bit kernel and it
>> shouldn't be
>> building lparmap.s. Or do you mean G5?
>
> Yes it is iMac G3. More or less sth like this:
> http://upload.wikimedia.org/wikipedia/commons/c/c0/IMac_Bondi_Blue.jpg
>
> processor : 0
> cpu : 740/750
> temperature : 47-49 C (uncalibrated)
> clock : 400MHz
> revision : 2.2 (pvr 0008 0202)
> bogomips : 796.67
> machine : PowerMac2,1
> motherboard : PowerMac2,1 MacRISC2 MacRISC Power Macintosh
> detected as : 66 (iMac FireWire)
> pmac flags : 00000005
> L2 cache : 512K unified
> memory : 256MB
> pmac-generation : NewWorld
>
>>> CC arch/powerpc/kernel/lparmap.s
>>> AS arch/powerpc/kernel/head_64.o
>>> lparmap.c: Assembler messages:
>>> lparmap.c:84: Error: file number 1 already allocated
>>> make[1]: *** [arch/powerpc/kernel/head_64.o] Blad 1
>>> make: *** [arch/powerpc/kernel] Blad 2
>>
>> Weird. Could you do make V=1 and send me the output?
>
> Ok. Here it goes. The last screen. If you need all / more feel free
> to mail
> me. Config is attached - please note that this is default
> allmodconfig.
>
>
>
> gcc -m64 -Wp,-MD,arch/powerpc/kernel/.machine_kexec.o.d -nostdinc -
> isystem /usr/lib/gcc/powerpc-linux-gnu/4.1.2/include -D__KERNEL__ -
> Iinclude -include
> include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-
> trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-
> function-declaration -Os -msoft-float -pipe -mminimal-toc -
> mtraceback=none -mcall-aixdesc -mcpu=power4 -mno-altivec -funit-at-
> a-time -mno-string -Wa,-maltivec -fomit-frame-pointer -g -fno-
> stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -
> mno-minimal-toc -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR
> (machine_kexec)" -D"KBUILD_MODNAME=KBUILD_STR(machine_kexec)" -c -o
> arch/powerpc/kernel/.tmp_machine_kexec.o arch/powerpc/kernel/
> machine_kexec.c
>
> gcc -m64 -Wp,-MD,arch/powerpc/kernel/.crash.o.d -nostdinc -
> isystem /usr/lib/gcc/powerpc-linux-gnu/4.1.2/include -D__KERNEL__ -
> Iinclude -include
> include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-
> trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-
> function-declaration -Os -msoft-float -pipe -mminimal-toc -
> mtraceback=none -mcall-aixdesc -mcpu=power4 -mno-altivec -funit-at-
> a-time -mno-string -Wa,-maltivec -fomit-frame-pointer -g -fno-
> stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -
> mno-minimal-toc -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR
> (crash)" -D"KBUILD_MODNAME=KBUILD_STR(crash)" -c -o
> arch/powerpc/kernel/.tmp_crash.o arch/powerpc/kernel/crash.c
>
> gcc -m64 -Wp,-MD,arch/powerpc/kernel/.machine_kexec_64.o.d -
> nostdinc -isystem /usr/lib/gcc/powerpc-linux-gnu/4.1.2/include -
> D__KERNEL__ -Iinclude -include
> include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-
> trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-
> function-declaration -Os -msoft-float -pipe -mminimal-toc -
> mtraceback=none -mcall-aixdesc -mcpu=power4 -mno-altivec -funit-at-
> a-time -mno-string -Wa,-maltivec -fomit-frame-pointer -g -fno-
> stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -
> mno-minimal-toc -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR
> (machine_kexec_64)" -D"KBUILD_MODNAME=KBUILD_STR
> (machine_kexec_64)" -c -o
> arch/powerpc/kernel/.tmp_machine_kexec_64.o
> arch/powerpc/kernel/machine_kexec_64.c
>
> gcc -m64 -Wp,-MD,arch/powerpc/kernel/.audit.o.d -nostdinc -
> isystem /usr/lib/gcc/powerpc-linux-gnu/4.1.2/include -D__KERNEL__ -
> Iinclude -include
> include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-
> trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-
> function-declaration -Os -msoft-float -pipe -mminimal-toc -
> mtraceback=none -mcall-aixdesc -mcpu=power4 -mno-altivec -funit-at-
> a-time -mno-string -Wa,-maltivec -fomit-frame-pointer -g -fno-
> stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -
> mno-minimal-toc -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR
> (audit)" -D"KBUILD_MODNAME=KBUILD_STR(audit)" -c -o
> arch/powerpc/kernel/.tmp_audit.o arch/powerpc/kernel/audit.c
>
> gcc -m64 -Wp,-MD,arch/powerpc/kernel/.swsusp_64.o.d -nostdinc -
> isystem /usr/lib/gcc/powerpc-linux-gnu/4.1.2/include -D__KERNEL__ -
> Iinclude -include
> include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-
> trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-
> function-declaration -Os -msoft-float -pipe -mminimal-toc -
> mtraceback=none -mcall-aixdesc -mcpu=power4 -mno-altivec -funit-at-
> a-time -mno-string -Wa,-maltivec -fomit-frame-pointer -g -fno-
> stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -
> mno-minimal-toc -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR
> (swsusp_64)" -D"KBUILD_MODNAME=KBUILD_STR(swsusp_64)" -c -o
> arch/powerpc/kernel/.tmp_swsusp_64.o arch/powerpc/kernel/swsusp_64.c
>
> gcc -m64 -Wp,-MD,arch/powerpc/kernel/.swsusp_asm64.o.d -nostdinc -
> isystem /usr/lib/gcc/powerpc-linux-gnu/4.1.2/include -D__KERNEL__ -
> Iinclude -include
> include/linux/autoconf.h -D__ASSEMBLY__ -Wa,-maltivec -
> gdwarf2 -c -o
> arch/powerpc/kernel/swsusp_asm64.o arch/powerpc/kernel/swsusp_asm64.S
>
> gcc -m64 -Wp,-MD,arch/powerpc/kernel/.compat_audit.o.d -nostdinc -
> isystem /usr/lib/gcc/powerpc-linux-gnu/4.1.2/include -D__KERNEL__ -
> Iinclude -include
> include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-
> trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-
> function-declaration -Os -msoft-float -pipe -mminimal-toc -
> mtraceback=none -mcall-aixdesc -mcpu=power4 -mno-altivec -funit-at-
> a-time -mno-string -Wa,-maltivec -fomit-frame-pointer -g -fno-
> stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -
> mno-minimal-toc -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR
> (compat_audit)" -D"KBUILD_MODNAME=KBUILD_STR(compat_audit)" -c -o
> arch/powerpc/kernel/.tmp_compat_audit.o arch/powerpc/kernel/
> compat_audit.c
> ld -m elf64ppc -r -o arch/powerpc/kernel/built-in.o
> arch/powerpc/kernel/semaphore.o arch/powerpc/kernel/cputable.o
> arch/powerpc/kernel/ptrace.o arch/powerpc/kernel/syscalls.o
> arch/powerpc/kernel/irq.o arch/powerpc/kernel/align.o
> arch/powerpc/kernel/signal_32.o arch/powerpc/kernel/pmc.o
> arch/powerpc/kernel/vdso.o arch/powerpc/kernel/init_task.o
> arch/powerpc/kernel/process.o arch/powerpc/kernel/systbl.o
> arch/powerpc/kernel/idle.o arch/powerpc/kernel/signal.o
> arch/powerpc/kernel/vdso32/built-in.o arch/powerpc/kernel/setup_64.o
> arch/powerpc/kernel/binfmt_elf32.o arch/powerpc/kernel/sys_ppc32.o
> arch/powerpc/kernel/signal_64.o arch/powerpc/kernel/ptrace32.o
> arch/powerpc/kernel/paca.o arch/powerpc/kernel/cpu_setup_ppc970.o
> arch/powerpc/kernel/cpu_setup_pa6t.o arch/powerpc/kernel/firmware.o
> arch/powerpc/kernel/sysfs.o arch/powerpc/kernel/nvram_64.o
> arch/powerpc/kernel/vdso64/built-in.o arch/powerpc/kernel/vecemu.o
> arch/powerpc/kernel/vector.o arch/powerpc/kernel/idle_power4.o
> arch/powerpc/kernel/of_device.o arch/powerpc/kernel/of_platform.o
> arch/powerpc/kernel/prom_parse.o arch/powerpc/kernel/proc_ppc64.o
> arch/powerpc/kernel/rtas.o arch/powerpc/kernel/rtas-rtc.o
> arch/powerpc/kernel/rtas_pci.o arch/powerpc/kernel/rtas-proc.o
> arch/powerpc/kernel/lparcfg.o arch/powerpc/kernel/vio.o
> arch/powerpc/kernel/ibmebus.o arch/powerpc/kernel/smp-tbsync.o
> arch/powerpc/kernel/crash_dump.o arch/powerpc/kernel/swsusp.o
> arch/powerpc/kernel/suspend.o arch/powerpc/kernel/time.o
> arch/powerpc/kernel/prom.o arch/powerpc/kernel/traps.o
> arch/powerpc/kernel/setup-common.o arch/powerpc/kernel/udbg.o
> arch/powerpc/kernel/misc.o arch/powerpc/kernel/io.o
> arch/powerpc/kernel/misc_64.o arch/powerpc/kernel/dma_64.o
> arch/powerpc/kernel/iommu.o arch/powerpc/kernel/prom_init.o
> arch/powerpc/kernel/ppc_ksyms.o arch/powerpc/kernel/btext.o
> arch/powerpc/kernel/smp.o arch/powerpc/kernel/kprobes.o
> arch/powerpc/kernel/legacy_serial.o arch/powerpc/kernel/udbg_16550.o
> arch/powerpc/kernel/kgdb.o arch/powerpc/kernel/kgdb_setjmp64.o
> arch/powerpc/kernel/module_64.o arch/powerpc/kernel/pci_64.o
> arch/powerpc/kernel/pci_dn.o arch/powerpc/kernel/isa-bridge.o
> arch/powerpc/kernel/pci-common.o arch/powerpc/kernel/msi.o
> arch/powerpc/kernel/machine_kexec.o arch/powerpc/kernel/crash.o
> arch/powerpc/kernel/machine_kexec_64.o arch/powerpc/kernel/audit.o
> arch/powerpc/kernel/swsusp_64.o arch/powerpc/kernel/swsusp_asm64.o
> arch/powerpc/kernel/compat_audit.o
>
> gcc -m64 -Wp,-MD,arch/powerpc/kernel/.lparmap.s.d -nostdinc -
> isystem /usr/lib/gcc/powerpc-linux-gnu/4.1.2/include -D__KERNEL__ -
> Iinclude -include
> include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-
> trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-
> function-declaration -Os -msoft-float -pipe -mminimal-toc -
> mtraceback=none -mcall-aixdesc -mcpu=power4 -mno-altivec -funit-at-
> a-time -mno-string -Wa,-maltivec -fomit-frame-pointer -g -fno-
> stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -
> mno-minimal-toc -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR
> (lparmap)" -D"KBUILD_MODNAME=KBUILD_STR(lparmap)" -fverbose-asm -S -o
> arch/powerpc/kernel/lparmap.s arch/powerpc/kernel/lparmap.c
>
> gcc -m64 -Wp,-MD,arch/powerpc/kernel/.head_64.o.d -nostdinc -
> isystem /usr/lib/gcc/powerpc-linux-gnu/4.1.2/include -D__KERNEL__ -
> Iinclude -include
> include/linux/autoconf.h -D__ASSEMBLY__ -Wa,-maltivec -gdwarf2 -
> Iarch/powerpc/kernel -c -o
> arch/powerpc/kernel/head_64.o arch/powerpc/kernel/head_64.S
> lparmap.c: Assembler messages:
> lparmap.c:84: Error: file number 1 already allocated
> make[1]: *** [arch/powerpc/kernel/head_64.o] Blad 1
> make: *** [arch/powerpc/kernel] Blad 2
Some how your defconfig is targeting a PPC64 box:
CONFIG_PPC64=y
shouldn't be set if you want to build a kernel for a G3 imac.
- k
Hi,
Am Wednesday 01 August 2007 08:09 schrieb Andrew Morton:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc1/2.
>6.23-rc1-mm2/
>
>
> - the git-block tree remains dropped due to disageement with the Vaio
>
> - git-e1000new was withdrawn by the authors
>
> - git-wireless is back. It is still a >3MB diff, and appears to compile.
>
> - Is anyone testing the kgdb code in here?
I still get some nfs related locking bug.
I applied
linux-2.6.23-001-fix_rpciod_down_race.dif
linux-2.6.23-003-fix_locking_regression.dif
linux-2.6.23-004-fix_stateid_regression.dif
=============================================
[ INFO: possible recursive locking detected ]
2.6.23-rc1-mm2 #3
---------------------------------------------
events/0/5 is trying to acquire lock:
(events){--..}, at: [<c012ed90>] flush_workqueue+0x0/0x70
but task is already holding lock:
(events){--..}, at: [<c012e5c4>] run_workqueue+0xd4/0x1e0
other info that might help us debug this:
2 locks held by events/0/5:
#0: (events){--..}, at: [<c012e5c4>] run_workqueue+0xd4/0x1e0
#1: ((nfs_automount_task).work){--..}, at: [<c012e5c4>]
run_workqueue+0xd4/0x1e0
stack backtrace:
[<c0104fda>] show_trace_log_lvl+0x1a/0x30
[<c0105c02>] show_trace+0x12/0x20
[<c0105d15>] dump_stack+0x15/0x20
[<c013ee42>] __lock_acquire+0xc22/0x1030
[<c013f2b1>] lock_acquire+0x61/0x80
[<c012edd9>] flush_workqueue+0x49/0x70
[<c012ee0d>] flush_scheduled_work+0xd/0x10
[<dcf55c0c>] nfs_release_automount_timer+0x2c/0x30 [nfs]
[<dcf45d8e>] nfs_free_server+0x9e/0xd0 [nfs]
[<dcf4e626>] nfs_kill_super+0x16/0x20 [nfs]
[<c017b38d>] deactivate_super+0x7d/0xa0
[<c018f94b>] mntput_no_expire+0x4b/0x80
[<c018fd94>] expire_mount_list+0xe4/0x140
[<c0191219>] mark_mounts_for_expiry+0x99/0xb0
[<dcf55d1d>] nfs_expire_automounts+0xd/0x40 [nfs]
[<c012e61b>] run_workqueue+0x12b/0x1e0
[<c012f05b>] worker_thread+0x9b/0x100
[<c0131c72>] kthread+0x42/0x70
[<c0104c0f>] kernel_thread_helper+0x7/0x18
=======================
thanks
Marc
--
"The enemy uses unauthorized weapons."
Lord Arthur Ponsonby, "Falsehood in Wartime: Propaganda Lies of the First
World War", 1928
On Fri, 3 Aug 2007 13:00:46 +0200 Marc Dietrich <[email protected]> wrote:
>
> Hi,
>
> Am Wednesday 01 August 2007 08:09 schrieb Andrew Morton:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc1/2.
> >6.23-rc1-mm2/
> >
> >
> > - the git-block tree remains dropped due to disageement with the Vaio
> >
> > - git-e1000new was withdrawn by the authors
> >
> > - git-wireless is back. It is still a >3MB diff, and appears to compile.
> >
> > - Is anyone testing the kgdb code in here?
>
> I still get some nfs related locking bug.
>
> I applied
>
> linux-2.6.23-001-fix_rpciod_down_race.dif
> linux-2.6.23-003-fix_locking_regression.dif
> linux-2.6.23-004-fix_stateid_regression.dif
>
> =============================================
> [ INFO: possible recursive locking detected ]
> 2.6.23-rc1-mm2 #3
> ---------------------------------------------
> events/0/5 is trying to acquire lock:
> (events){--..}, at: [<c012ed90>] flush_workqueue+0x0/0x70
>
> but task is already holding lock:
> (events){--..}, at: [<c012e5c4>] run_workqueue+0xd4/0x1e0
>
> other info that might help us debug this:
> 2 locks held by events/0/5:
> #0: (events){--..}, at: [<c012e5c4>] run_workqueue+0xd4/0x1e0
> #1: ((nfs_automount_task).work){--..}, at: [<c012e5c4>]
> run_workqueue+0xd4/0x1e0
>
> stack backtrace:
> [<c0104fda>] show_trace_log_lvl+0x1a/0x30
> [<c0105c02>] show_trace+0x12/0x20
> [<c0105d15>] dump_stack+0x15/0x20
> [<c013ee42>] __lock_acquire+0xc22/0x1030
> [<c013f2b1>] lock_acquire+0x61/0x80
> [<c012edd9>] flush_workqueue+0x49/0x70
> [<c012ee0d>] flush_scheduled_work+0xd/0x10
> [<dcf55c0c>] nfs_release_automount_timer+0x2c/0x30 [nfs]
> [<dcf45d8e>] nfs_free_server+0x9e/0xd0 [nfs]
> [<dcf4e626>] nfs_kill_super+0x16/0x20 [nfs]
> [<c017b38d>] deactivate_super+0x7d/0xa0
> [<c018f94b>] mntput_no_expire+0x4b/0x80
> [<c018fd94>] expire_mount_list+0xe4/0x140
> [<c0191219>] mark_mounts_for_expiry+0x99/0xb0
> [<dcf55d1d>] nfs_expire_automounts+0xd/0x40 [nfs]
> [<c012e61b>] run_workqueue+0x12b/0x1e0
> [<c012f05b>] worker_thread+0x9b/0x100
> [<c0131c72>] kthread+0x42/0x70
> [<c0104c0f>] kernel_thread_helper+0x7/0x18
> =======================
>
There is new debugging stuff in -mm: deadlockable usage of workqueue
primitives will now trigger lockdep warnings. See
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc1/2.6.23-rc1-mm2/broken-out/workqueue-debug-flushing-deadlocks-with-lockdep.patch
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc1/2.6.23-rc1-mm2/broken-out/workqueue-debug-work-related-deadlocks-with-lockdep.patch
I am suspecting that running flush_scheduled_work() from within run_workqueue()
isn't good.
On Fri, 2007-08-03 at 09:38 -0700, Andrew Morton wrote:
> On Fri, 3 Aug 2007 13:00:46 +0200 Marc Dietrich <[email protected]> wrote:
>
> >
> > Hi,
> >
> > Am Wednesday 01 August 2007 08:09 schrieb Andrew Morton:
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc1/2.
> > >6.23-rc1-mm2/
> > >
> > >
> > > - the git-block tree remains dropped due to disageement with the Vaio
> > >
> > > - git-e1000new was withdrawn by the authors
> > >
> > > - git-wireless is back. It is still a >3MB diff, and appears to compile.
> > >
> > > - Is anyone testing the kgdb code in here?
> >
> > I still get some nfs related locking bug.
> >
> > I applied
> >
> > linux-2.6.23-001-fix_rpciod_down_race.dif
> > linux-2.6.23-003-fix_locking_regression.dif
> > linux-2.6.23-004-fix_stateid_regression.dif
> >
> > =============================================
> > [ INFO: possible recursive locking detected ]
> > 2.6.23-rc1-mm2 #3
> > ---------------------------------------------
> > events/0/5 is trying to acquire lock:
> > (events){--..}, at: [<c012ed90>] flush_workqueue+0x0/0x70
> >
> > but task is already holding lock:
> > (events){--..}, at: [<c012e5c4>] run_workqueue+0xd4/0x1e0
> >
> > other info that might help us debug this:
> > 2 locks held by events/0/5:
> > #0: (events){--..}, at: [<c012e5c4>] run_workqueue+0xd4/0x1e0
> > #1: ((nfs_automount_task).work){--..}, at: [<c012e5c4>]
> > run_workqueue+0xd4/0x1e0
> >
> > stack backtrace:
> > [<c0104fda>] show_trace_log_lvl+0x1a/0x30
> > [<c0105c02>] show_trace+0x12/0x20
> > [<c0105d15>] dump_stack+0x15/0x20
> > [<c013ee42>] __lock_acquire+0xc22/0x1030
> > [<c013f2b1>] lock_acquire+0x61/0x80
> > [<c012edd9>] flush_workqueue+0x49/0x70
> > [<c012ee0d>] flush_scheduled_work+0xd/0x10
> > [<dcf55c0c>] nfs_release_automount_timer+0x2c/0x30 [nfs]
> > [<dcf45d8e>] nfs_free_server+0x9e/0xd0 [nfs]
> > [<dcf4e626>] nfs_kill_super+0x16/0x20 [nfs]
> > [<c017b38d>] deactivate_super+0x7d/0xa0
> > [<c018f94b>] mntput_no_expire+0x4b/0x80
> > [<c018fd94>] expire_mount_list+0xe4/0x140
> > [<c0191219>] mark_mounts_for_expiry+0x99/0xb0
> > [<dcf55d1d>] nfs_expire_automounts+0xd/0x40 [nfs]
> > [<c012e61b>] run_workqueue+0x12b/0x1e0
> > [<c012f05b>] worker_thread+0x9b/0x100
> > [<c0131c72>] kthread+0x42/0x70
> > [<c0104c0f>] kernel_thread_helper+0x7/0x18
> > =======================
> >
>
> There is new debugging stuff in -mm: deadlockable usage of workqueue
> primitives will now trigger lockdep warnings. See
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc1/2.6.23-rc1-mm2/broken-out/workqueue-debug-flushing-deadlocks-with-lockdep.patch
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc1/2.6.23-rc1-mm2/broken-out/workqueue-debug-work-related-deadlocks-with-lockdep.patch
>
> I am suspecting that running flush_scheduled_work() from within run_workqueue()
> isn't good.
I'll have a look at this. I suspect that most if not all of our calls to
run_workqueue()/flush_scheduled_work() can now be replaced by more
targeted calls to cancel_work_sync() and cancel_delayed_work_sync().
Trond
On 08/03, Trond Myklebust wrote:
>
> On Fri, 2007-08-03 at 09:38 -0700, Andrew Morton wrote:
> > > stack backtrace:
> > > [<c0104fda>] show_trace_log_lvl+0x1a/0x30
> > > [<c0105c02>] show_trace+0x12/0x20
> > > [<c0105d15>] dump_stack+0x15/0x20
> > > [<c013ee42>] __lock_acquire+0xc22/0x1030
> > > [<c013f2b1>] lock_acquire+0x61/0x80
> > > [<c012edd9>] flush_workqueue+0x49/0x70
> > > [<c012ee0d>] flush_scheduled_work+0xd/0x10
> > > [<dcf55c0c>] nfs_release_automount_timer+0x2c/0x30 [nfs]
> > > [<dcf45d8e>] nfs_free_server+0x9e/0xd0 [nfs]
> > > [<dcf4e626>] nfs_kill_super+0x16/0x20 [nfs]
> > > [<c017b38d>] deactivate_super+0x7d/0xa0
> > > [<c018f94b>] mntput_no_expire+0x4b/0x80
> > > [<c018fd94>] expire_mount_list+0xe4/0x140
> > > [<c0191219>] mark_mounts_for_expiry+0x99/0xb0
> > > [<dcf55d1d>] nfs_expire_automounts+0xd/0x40 [nfs]
> > > [<c012e61b>] run_workqueue+0x12b/0x1e0
> > > [<c012f05b>] worker_thread+0x9b/0x100
> > > [<c0131c72>] kthread+0x42/0x70
> > > [<c0104c0f>] kernel_thread_helper+0x7/0x18
> > > =======================
> > >
> >
> > There is new debugging stuff in -mm: deadlockable usage of workqueue
> > primitives will now trigger lockdep warnings. See
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc1/2.6.23-rc1-mm2/broken-out/workqueue-debug-flushing-deadlocks-with-lockdep.patch
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc1/2.6.23-rc1-mm2/broken-out/workqueue-debug-work-related-deadlocks-with-lockdep.patch
> >
> > I am suspecting that running flush_scheduled_work() from within run_workqueue()
> > isn't good.
>
> I'll have a look at this. I suspect that most if not all of our calls to
> run_workqueue()/flush_scheduled_work() can now be replaced by more
> targeted calls to cancel_work_sync() and cancel_delayed_work_sync().
Yes, please, if possible.
To avoid a possible confusion: it is still OK if work->func() flushes
its own workqueue, so strictly speaking this trace is false positive,
but it would be very nice if we can get rid of this practice.
Oleg.
On Fri, 2007-08-03 at 21:21 +0400, Oleg Nesterov wrote:
> To avoid a possible confusion: it is still OK if work->func() flushes
> its own workqueue, so strictly speaking this trace is false positive,
> but it would be very nice if we can get rid of this practice.
I just had a thought: we could get rid of this warning by using a
read-lock here. That way, flushing from within a work function (which
would be seen as read-after-read recursive lock) won't trigger this
warning. Patch below. This would, however, also get rid of any warnings
for run_workqueue recursion. Which again we may or may not want, the
code inidicates that it should be allowed up to a depth of three.
However, the question whether we should allow flush_workqueue from
within a struct work is mainly an API policy issue; it doesn't hurt to
flush a workqueue from within a work, but it is probably nearer the
intent to use targeted cancel_work_sync() or such. OTOH, one could
imagine situations where multiple different work structs are on that
workqueue belonging to the same subsystem and then the general
flush_scheduled_work() call is the only way to guarantee nothing is on
scheduled at a given point... I don't feel qualified to make the
decision for or against allowing this use of the API at this point.
Marc, do you have an easy way to trigger this warning? Could you verify
that it goes away with the patch below applied?
johannes
---
kernel/workqueue.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- wireless-dev.orig/kernel/workqueue.c 2007-08-06 08:11:23.297846657 +0200
+++ wireless-dev/kernel/workqueue.c 2007-08-06 08:19:54.727846657 +0200
@@ -272,7 +272,7 @@ static void run_workqueue(struct cpu_wor
BUG_ON(get_wq_data(work) != cwq);
work_clear_pending(work);
- lock_acquire(&cwq->wq->lockdep_map, 0, 0, 0, 2, _THIS_IP_);
+ lock_acquire(&cwq->wq->lockdep_map, 0, 0, 1, 2, _THIS_IP_);
lock_acquire(&lockdep_map, 0, 0, 0, 2, _THIS_IP_);
f(work);
lock_release(&lockdep_map, 1, _THIS_IP_);
@@ -395,7 +395,7 @@ void fastcall flush_workqueue(struct wor
int cpu;
might_sleep();
- lock_acquire(&wq->lockdep_map, 0, 0, 0, 2, _THIS_IP_);
+ lock_acquire(&wq->lockdep_map, 0, 0, 1, 2, _THIS_IP_);
lock_release(&wq->lockdep_map, 1, _THIS_IP_);
for_each_cpu_mask(cpu, *cpu_map)
flush_cpu_workqueue(per_cpu_ptr(wq->cpu_wq, cpu));
@@ -779,7 +779,7 @@ static void cleanup_workqueue_thread(str
if (cwq->thread == NULL)
return;
- lock_acquire(&cwq->wq->lockdep_map, 0, 0, 0, 2, _THIS_IP_);
+ lock_acquire(&cwq->wq->lockdep_map, 0, 0, 1, 2, _THIS_IP_);
lock_release(&cwq->wq->lockdep_map, 1, _THIS_IP_);
flush_cpu_workqueue(cwq);
On 08/06, Johannes Berg wrote:
>
> On Fri, 2007-08-03 at 21:21 +0400, Oleg Nesterov wrote:
>
> > To avoid a possible confusion: it is still OK if work->func() flushes
> > its own workqueue, so strictly speaking this trace is false positive,
> > but it would be very nice if we can get rid of this practice.
>
> However, the question whether we should allow flush_workqueue from
> within a struct work is mainly an API policy issue; it doesn't hurt to
> flush a workqueue from within a work,
I am not sure, but currently I hope we can forbid this eventually, so I
personally think it is good that your patch complains.
> --- wireless-dev.orig/kernel/workqueue.c 2007-08-06 08:11:23.297846657 +0200
> +++ wireless-dev/kernel/workqueue.c 2007-08-06 08:19:54.727846657 +0200
> @@ -272,7 +272,7 @@ static void run_workqueue(struct cpu_wor
>
> BUG_ON(get_wq_data(work) != cwq);
> work_clear_pending(work);
> - lock_acquire(&cwq->wq->lockdep_map, 0, 0, 0, 2, _THIS_IP_);
> + lock_acquire(&cwq->wq->lockdep_map, 0, 0, 1, 2, _THIS_IP_);
> lock_acquire(&lockdep_map, 0, 0, 0, 2, _THIS_IP_);
> f(work);
> lock_release(&lockdep_map, 1, _THIS_IP_);
> @@ -395,7 +395,7 @@ void fastcall flush_workqueue(struct wor
> int cpu;
>
> might_sleep();
> - lock_acquire(&wq->lockdep_map, 0, 0, 0, 2, _THIS_IP_);
> + lock_acquire(&wq->lockdep_map, 0, 0, 1, 2, _THIS_IP_);
> lock_release(&wq->lockdep_map, 1, _THIS_IP_);
> for_each_cpu_mask(cpu, *cpu_map)
> flush_cpu_workqueue(per_cpu_ptr(wq->cpu_wq, cpu));
> @@ -779,7 +779,7 @@ static void cleanup_workqueue_thread(str
> if (cwq->thread == NULL)
> return;
>
> - lock_acquire(&cwq->wq->lockdep_map, 0, 0, 0, 2, _THIS_IP_);
> + lock_acquire(&cwq->wq->lockdep_map, 0, 0, 1, 2, _THIS_IP_);
> lock_release(&cwq->wq->lockdep_map, 1, _THIS_IP_);
>
> flush_cpu_workqueue(cwq);
But this makes ->lockdep_map meaningless? We always take wq->lockdep_map
for reading, now we can't detect deadlocks.
read_lock(A);
lock(B);
vs
lock(B);
read_lock(A);
is valid, kernel/lockdep.c should not complain.
No?
Oleg.
On Mon, 2007-08-06 at 14:53 +0400, Oleg Nesterov wrote:
> But this makes ->lockdep_map meaningless? We always take wq->lockdep_map
> for reading, now we can't detect deadlocks.
>
> read_lock(A);
> lock(B);
>
> vs
> lock(B);
> read_lock(A);
>
> is valid, kernel/lockdep.c should not complain.
Ah, hmm. Good point, I guess you can always have multiple read locks.
Then we'd have to make a new parameter or such to get rid of the
recursive locking try message. But if you want to deprecate the API
anyway then this is a good way to find it.
johannes
Hi,
Am Monday 06 August 2007 08:24 schrieb Johannes Berg:
> On Fri, 2007-08-03 at 21:21 +0400, Oleg Nesterov wrote:
> > To avoid a possible confusion: it is still OK if work->func() flushes
> > its own workqueue, so strictly speaking this trace is false positive,
> > but it would be very nice if we can get rid of this practice.
>
> I just had a thought: we could get rid of this warning by using a
> read-lock here. That way, flushing from within a work function (which
> would be seen as read-after-read recursive lock) won't trigger this
> warning. Patch below. This would, however, also get rid of any warnings
> for run_workqueue recursion. Which again we may or may not want, the
> code inidicates that it should be allowed up to a depth of three.
>
> However, the question whether we should allow flush_workqueue from
> within a struct work is mainly an API policy issue; it doesn't hurt to
> flush a workqueue from within a work, but it is probably nearer the
> intent to use targeted cancel_work_sync() or such. OTOH, one could
> imagine situations where multiple different work structs are on that
> workqueue belonging to the same subsystem and then the general
> flush_scheduled_work() call is the only way to guarantee nothing is on
> scheduled at a given point... I don't feel qualified to make the
> decision for or against allowing this use of the API at this point.
>
> Marc, do you have an easy way to trigger this warning? Could you verify
> that it goes away with the patch below applied?
just booting into X is enough.
I applied the patch, but now I get:
=================================
[ INFO: inconsistent lock state ]
2.6.23-rc1-mm2 #4
---------------------------------
inconsistent {softirq-on-W} -> {in-softirq-W} usage.
swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
(rpc_credcache_lock){-+..}, at: [<c01dc487>] _atomic_dec_and_lock+0x17/0x60
{softirq-on-W} state was registered at:
[<c013e870>] __lock_acquire+0x650/0x1030
[<c013f2b1>] lock_acquire+0x61/0x80
[<c02db9ac>] _spin_lock+0x2c/0x40
[<c01dc487>] _atomic_dec_and_lock+0x17/0x60
[<dced55fd>] put_rpccred+0x5d/0x100 [sunrpc]
[<dced56c1>] rpcauth_unbindcred+0x21/0x60 [sunrpc]
[<dced3fd4>] a0 [sunrpc]
[<dcecefe0>] rpc_call_sync+0x30/0x40 [sunrpc]
[<dcedc73b>] rpcb_register+0xdb/0x180 [sunrpc]
[<dced65b3>] svc_register+0x93/0x160 [sunrpc]
[<dced6ebe>] __svc_create+0x1ee/0x220 [sunrpc]
[<dced7053>] svc_create+0x13/0x20 [sunrpc]
[<dcf6d722>] nfs_callback_up+0x82/0x120 [nfs]
[<dcf48f36>] nfs_get_client+0x176/0x390 [nfs]
[<dcf49181>] nfs4_set_client+0x31/0x190 [nfs]
[<dcf49983>] nfs4_create_server+0x63/0x3b0 [nfs]
[<dcf52426>] nfs4_get_sb+0x346/0x5b0 [nfs]
[<c017b444>] vfs_kern_mount+0x94/0x110
[<c0190a62>] do_mount+0x1f2/0x7d0
[<c01910a6>] sys_mount+0x66/0xa0
[<c0104046>] syscall_call+0x7/0xb
[<ffffffff>] 0xffffffff
irq event stamp: 5277830
hardirqs last enabled at (5277830): [<c017530a>] kmem_cache_free+0x8a/0xc0
hardirqs last disabled at (5277829): [<c01752d2>] kmem_cache_free+0x52/0xc0
softirqs last enabled at (5277798): [<c0124173>] __do_softirq+0xa3/0xc0
softirqs last disabled at (5277817): [<c01241d7>] do_softirq+0x47/0x50
other info that might help us debug this:
no locks held by swapper/0.
stack backtrace:
[<c0104fda>] show_trace_log_lvl+0x1a/0x30
[<c0105c02>] show_trace+0x12/0x20
[<c0105d15>] dump_stack+0x15/0x20
[<c013ccc3>] print_usage_bug+0x153/0x160
[<c013d8b9>] mark_lock+0x449/0x620
[<c013e824>] __lock_acquire+0x604/0x1030
[<c013f2b1>] lock_acquire+0x61/0x80
[<c02db9ac>] _spin_lock+0x2c/0x40
[<c01dc487>] _atomic_dec_and_lock+0x17/0x60
[<dced55fd>] put_rpccred+0x5d/0x100 [sunrpc]
[<dcf6bf83>] nfs_free_delegation_callback+0x13/0x20 [nfs]
[<c012f9ea>] __rcu_process_callbacks+0x6a/0x1c0
[<c012fb52>] rcu_process_callbacks+0x12/0x30
[<c0124218>] tasklet_action+0x38/0x80
[<c0124125>] __do_softirq+0x55/0xc0
[<c01241d7>] do_softirq+0x47/0x50
[<c0124605>] irq_exit+0x35/0x40
[<c0112463>] smp_apic_timer_interrupt+0x43/0x80
[<c0104a77>] apic_timer_interrupt+0x33/0x38
[<c02690df>] cpuidle_idle_call+0x6f/0x90
[<c01023c3>] cpu_idle+0x43/0x70
[<c02d8c27>] rest_init+0x47/0x50
[<c03bcb6a>] start_kernel+0x22a/0x2b0
[<00000000>] 0x0
=======================
also, sometimes this kernel hangs because of nfs accessing processes remain in
D state.
Marc
> johannes
>
> ---
> kernel/workqueue.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> --- wireless-dev.orig/kernel/workqueue.c 2007-08-06 08:11:23.297846657
> +0200 +++ wireless-dev/kernel/workqueue.c 2007-08-06 08:19:54.727846657
> +0200 @@ -272,7 +272,7 @@ static void run_workqueue(struct cpu_wor
>
> BUG_ON(get_wq_data(work) != cwq);
> work_clear_pending(work);
> - lock_acquire(&cwq->wq->lockdep_map, 0, 0, 0, 2, _THIS_IP_);
> + lock_acquire(&cwq->wq->lockdep_map, 0, 0, 1, 2, _THIS_IP_);
> lock_acquire(&lockdep_map, 0, 0, 0, 2, _THIS_IP_);
> f(work);
> lock_release(&lockdep_map, 1, _THIS_IP_);
> @@ -395,7 +395,7 @@ void fastcall flush_workqueue(struct wor
> int cpu;
>
> might_sleep();
> - lock_acquire(&wq->lockdep_map, 0, 0, 0, 2, _THIS_IP_);
> + lock_acquire(&wq->lockdep_map, 0, 0, 1, 2, _THIS_IP_);
> lock_release(&wq->lockdep_map, 1, _THIS_IP_);
> for_each_cpu_mask(cpu, *cpu_map)
> flush_cpu_workqueue(per_cpu_ptr(wq->cpu_wq, cpu));
> @@ -779,7 +779,7 @@ static void cleanup_workqueue_thread(str
> if (cwq->thread == NULL)
> return;
>
> - lock_acquire(&cwq->wq->lockdep_map, 0, 0, 0, 2, _THIS_IP_);
> + lock_acquire(&cwq->wq->lockdep_map, 0, 0, 1, 2, _THIS_IP_);
> lock_release(&cwq->wq->lockdep_map, 1, _THIS_IP_);
>
> flush_cpu_workqueue(cwq);
--
"The enemy uses unauthorized weapons."
Lord Arthur Ponsonby, "Falsehood in Wartime: Propaganda Lies of the First
World War", 1928
On Mon, 2007-08-06 at 13:05 +0200, Marc Dietrich wrote:
> I applied the patch, but now I get:
>
> =================================
> [ INFO: inconsistent lock state ]
> 2.6.23-rc1-mm2 #4
> ---------------------------------
> inconsistent {softirq-on-W} -> {in-softirq-W} usage.
> swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
> (rpc_credcache_lock){-+..}, at: [<c01dc487>] _atomic_dec_and_lock+0x17/0x60
Interesting, but doesn't seem related to this at all. As Oleg just
pointed out this basically disabled checking for workqueue stuff so this
should be looked into by somebody familiar with the NFS code.
johannes
On Mon, 2007-08-06 at 13:05 +0200, Marc Dietrich wrote:
> Hi,
>
> Am Monday 06 August 2007 08:24 schrieb Johannes Berg:
> > On Fri, 2007-08-03 at 21:21 +0400, Oleg Nesterov wrote:
> > > To avoid a possible confusion: it is still OK if work->func() flushes
> > > its own workqueue, so strictly speaking this trace is false positive,
> > > but it would be very nice if we can get rid of this practice.
> >
> > I just had a thought: we could get rid of this warning by using a
> > read-lock here. That way, flushing from within a work function (which
> > would be seen as read-after-read recursive lock) won't trigger this
> > warning. Patch below. This would, however, also get rid of any warnings
> > for run_workqueue recursion. Which again we may or may not want, the
> > code inidicates that it should be allowed up to a depth of three.
> >
> > However, the question whether we should allow flush_workqueue from
> > within a struct work is mainly an API policy issue; it doesn't hurt to
> > flush a workqueue from within a work, but it is probably nearer the
> > intent to use targeted cancel_work_sync() or such. OTOH, one could
> > imagine situations where multiple different work structs are on that
> > workqueue belonging to the same subsystem and then the general
> > flush_scheduled_work() call is the only way to guarantee nothing is on
> > scheduled at a given point... I don't feel qualified to make the
> > decision for or against allowing this use of the API at this point.
> >
> > Marc, do you have an easy way to trigger this warning? Could you verify
> > that it goes away with the patch below applied?
>
> just booting into X is enough.
>
> I applied the patch, but now I get:
>
> =================================
> [ INFO: inconsistent lock state ]
> 2.6.23-rc1-mm2 #4
> ---------------------------------
> inconsistent {softirq-on-W} -> {in-softirq-W} usage.
> swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
> (rpc_credcache_lock){-+..}, at: [<c01dc487>] _atomic_dec_and_lock+0x17/0x60
> {softirq-on-W} state was registered at:
> [<c013e870>] __lock_acquire+0x650/0x1030
> [<c013f2b1>] lock_acquire+0x61/0x80
> [<c02db9ac>] _spin_lock+0x2c/0x40
> [<c01dc487>] _atomic_dec_and_lock+0x17/0x60
> [<dced55fd>] put_rpccred+0x5d/0x100 [sunrpc]
> [<dced56c1>] rpcauth_unbindcred+0x21/0x60 [sunrpc]
> [<dced3fd4>] a0 [sunrpc]
> [<dcecefe0>] rpc_call_sync+0x30/0x40 [sunrpc]
> [<dcedc73b>] rpcb_register+0xdb/0x180 [sunrpc]
> [<dced65b3>] svc_register+0x93/0x160 [sunrpc]
> [<dced6ebe>] __svc_create+0x1ee/0x220 [sunrpc]
> [<dced7053>] svc_create+0x13/0x20 [sunrpc]
> [<dcf6d722>] nfs_callback_up+0x82/0x120 [nfs]
> [<dcf48f36>] nfs_get_client+0x176/0x390 [nfs]
> [<dcf49181>] nfs4_set_client+0x31/0x190 [nfs]
> [<dcf49983>] nfs4_create_server+0x63/0x3b0 [nfs]
> [<dcf52426>] nfs4_get_sb+0x346/0x5b0 [nfs]
> [<c017b444>] vfs_kern_mount+0x94/0x110
> [<c0190a62>] do_mount+0x1f2/0x7d0
> [<c01910a6>] sys_mount+0x66/0xa0
> [<c0104046>] syscall_call+0x7/0xb
> [<ffffffff>] 0xffffffff
> irq event stamp: 5277830
> hardirqs last enabled at (5277830): [<c017530a>] kmem_cache_free+0x8a/0xc0
> hardirqs last disabled at (5277829): [<c01752d2>] kmem_cache_free+0x52/0xc0
> softirqs last enabled at (5277798): [<c0124173>] __do_softirq+0xa3/0xc0
> softirqs last disabled at (5277817): [<c01241d7>] do_softirq+0x47/0x50
>
> other info that might help us debug this:
> no locks held by swapper/0.
>
> stack backtrace:
> [<c0104fda>] show_trace_log_lvl+0x1a/0x30
> [<c0105c02>] show_trace+0x12/0x20
> [<c0105d15>] dump_stack+0x15/0x20
> [<c013ccc3>] print_usage_bug+0x153/0x160
> [<c013d8b9>] mark_lock+0x449/0x620
> [<c013e824>] __lock_acquire+0x604/0x1030
> [<c013f2b1>] lock_acquire+0x61/0x80
> [<c02db9ac>] _spin_lock+0x2c/0x40
> [<c01dc487>] _atomic_dec_and_lock+0x17/0x60
> [<dced55fd>] put_rpccred+0x5d/0x100 [sunrpc]
> [<dcf6bf83>] nfs_free_delegation_callback+0x13/0x20 [nfs]
> [<c012f9ea>] __rcu_process_callbacks+0x6a/0x1c0
> [<c012fb52>] rcu_process_callbacks+0x12/0x30
> [<c0124218>] tasklet_action+0x38/0x80
> [<c0124125>] __do_softirq+0x55/0xc0
> [<c01241d7>] do_softirq+0x47/0x50
> [<c0124605>] irq_exit+0x35/0x40
> [<c0112463>] smp_apic_timer_interrupt+0x43/0x80
> [<c0104a77>] apic_timer_interrupt+0x33/0x38
> [<c02690df>] cpuidle_idle_call+0x6f/0x90
> [<c01023c3>] cpu_idle+0x43/0x70
> [<c02d8c27>] rest_init+0x47/0x50
> [<c03bcb6a>] start_kernel+0x22a/0x2b0
> [<00000000>] 0x0
> =======================
That is a different matter. I assume this patch should suffice to fix
the above problem.
Trond
> Second issue as reported earilier allmodconfig fails to build on imac
> g3.
>
> CC arch/powerpc/kernel/lparmap.s
> AS arch/powerpc/kernel/head_64.o
> lparmap.c: Assembler messages:
> lparmap.c:84: Error: file number 1 already allocated
> make[1]: *** [arch/powerpc/kernel/head_64.o] Blad 1
> make: *** [arch/powerpc/kernel] Blad 2
Please send me the full output of:
gcc --version (or whatever your gcc is called)
ld --version
ld --help (I know no better way to get the supported binutils
targets, and the default target)
and the lparmap.s file. You might want to skip sending it
to the lists, it will be a bit big (and off-topic on most
of those lists, anyway).
Segher
On 2 aug 2007, at 12:14, Mariusz Kozlowski wrote:
>>> Second issue as reported earilier allmodconfig fails to build on
>>> imac g3.
>>
>> Do you really mean g3? If so it's a 32-bit kernel and it shouldn't be
>> building lparmap.s.
It might be a bug nevertheless, there are more "issues" with
the interesting way lparmap.s is built and used.
Segher
> Some how your defconfig is targeting a PPC64 box:
>
> CONFIG_PPC64=y
>
> shouldn't be set if you want to build a kernel for a G3 imac.
allyesconfig/allmodconfig select a 64-bit build always. Maybe
it shouldn't.
Segher
> > Second issue as reported earilier allmodconfig fails to build on imac
> > g3.
> >
> > CC arch/powerpc/kernel/lparmap.s
> > AS arch/powerpc/kernel/head_64.o
> > lparmap.c: Assembler messages:
> > lparmap.c:84: Error: file number 1 already allocated
> > make[1]: *** [arch/powerpc/kernel/head_64.o] Blad 1
> > make: *** [arch/powerpc/kernel] Blad 2
>
> Please send me the full output of:
>
> gcc --version (or whatever your gcc is called)
> ld --version
> ld --help (I know no better way to get the supported binutils
> targets, and the default target)
>
> and the lparmap.s file. You might want to skip sending it
> to the lists, it will be a bit big (and off-topic on most
> of those lists, anyway).
Well ... its 66kB. Not that bad. Please find it attached.
Needed gcc and ld info below.
Regards,
Mariusz
$ gcc --version
gcc (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ ld --version
GNU ld version 2.17 Debian GNU/Linux
Copyright 2005 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License. This program has absolutely no warranty.
$ ld --help
Usage: ld [options] file...
Options:
-a KEYWORD Shared library control for HP/UX compatibility
-A ARCH, --architecture ARCH
Set architecture
-b TARGET, --format TARGET Specify target for following input files
-c FILE, --mri-script FILE Read MRI format linker script
-d, -dc, -dp Force common symbols to be defined
-e ADDRESS, --entry ADDRESS Set start address
-E, --export-dynamic Export all dynamic symbols
-EB Link big-endian objects
-EL Link little-endian objects
-f SHLIB, --auxiliary SHLIB Auxiliary filter for shared object symbol table
-F SHLIB, --filter SHLIB Filter for shared object symbol table
-g Ignored
-G SIZE, --gpsize SIZE Small data size (if no size, same as --shared)
-h FILENAME, -soname FILENAME
Set internal name of shared library
-I PROGRAM, --dynamic-linker PROGRAM
Set PROGRAM as the dynamic linker to use
-l LIBNAME, --library LIBNAME
Search for library LIBNAME
-L DIRECTORY, --library-path DIRECTORY
Add DIRECTORY to library search path
--sysroot=<DIRECTORY> Override the default sysroot location
-m EMULATION Set emulation
-M, --print-map Print map file on standard output
-n, --nmagic Do not page align data
-N, --omagic Do not page align data, do not make text readonly
--no-omagic Page align data, make text readonly
-o FILE, --output FILE Set output file name
-O Optimize output file
-Qy Ignored for SVR4 compatibility
-q, --emit-relocs Generate relocations in final output
-r, -i, --relocatable Generate relocatable output
-R FILE, --just-symbols FILE
Just link symbols (if directory, same as --rpath)
-s, --strip-all Strip all symbols
-S, --strip-debug Strip debugging symbols
--strip-discarded Strip symbols in discarded sections
--no-strip-discarded Do not strip symbols in discarded sections
-t, --trace Trace file opens
-T FILE, --script FILE Read linker script
-u SYMBOL, --undefined SYMBOL
Start with undefined reference to SYMBOL
--unique [=SECTION] Don't merge input [SECTION | orphan] sections
-Ur Build global constructor/destructor tables
-v, --version Print version information
-V Print version and emulation information
-x, --discard-all Discard all local symbols
-X, --discard-locals Discard temporary local symbols (default)
--discard-none Don't discard any local symbols
-y SYMBOL, --trace-symbol SYMBOL
Trace mentions of SYMBOL
-Y PATH Default search path for Solaris compatibility
-(, --start-group Start a group
-), --end-group End a group
--accept-unknown-input-arch Accept input files whose architecture cannot be determined
--no-accept-unknown-input-arch
Reject input files whose architecture is unknown
--add-needed Set DT_NEEDED tags for DT_NEEDED entries in
following dynamic libs
--no-add-needed Do not set DT_NEEDED tags for DT_NEEDED entries
in following dynamic libs
--as-needed Only set DT_NEEDED for following dynamic libs if used
--no-as-needed Always set DT_NEEDED for following dynamic libs
-assert KEYWORD Ignored for SunOS compatibility
-Bdynamic, -dy, -call_shared
Link against shared libraries
-Bstatic, -dn, -non_shared, -static
Do not link against shared libraries
-Bsymbolic Bind global references locally
--check-sections Check section addresses for overlaps (default)
--no-check-sections Do not check section addresses for overlaps
--cref Output cross reference table
--defsym SYMBOL=EXPRESSION Define a symbol
--demangle [=STYLE] Demangle symbol names [using STYLE]
--embedded-relocs Generate embedded relocs
--fatal-warnings Treat warnings as errors
-fini SYMBOL Call SYMBOL at unload-time
--force-exe-suffix Force generation of file with .exe suffix
--gc-sections Remove unused sections (on some targets)
--no-gc-sections Don't remove unused sections (default)
--hash-size=<NUMBER> Set default hash table size close to <NUMBER>
--help Print option help
-init SYMBOL Call SYMBOL at load-time
-Map FILE Write a map file
--no-define-common Do not define Common storage
--no-demangle Do not demangle symbol names
--no-keep-memory Use less memory and more disk I/O
--no-undefined Do not allow unresolved references in object files
--allow-shlib-undefined Allow unresolved references in shared libaries
--no-allow-shlib-undefined Do not allow unresolved references in shared libs
--allow-multiple-definition Allow multiple definitions
--no-undefined-version Disallow undefined version
--default-symver Create default symbol version
--default-imported-symver Create default symbol version for imported symbols
--no-warn-mismatch Don't warn about mismatched input files
--no-whole-archive Turn off --whole-archive
--noinhibit-exec Create an output file even if errors occur
-nostdlib Only use library directories specified on
the command line
--oformat TARGET Specify target of output file
-qmagic Ignored for Linux compatibility
--reduce-memory-overheads Reduce memory overheads, possibly taking much longer
--relax Relax branches on certain targets
--retain-symbols-file FILE Keep only symbols listed in FILE
-rpath PATH Set runtime shared library search path
-rpath-link PATH Set link time shared library search path
-shared, -Bshareable Create a shared library
-pie, --pic-executable Create a position independent executable
--sort-common Sort common symbols by size
--sort-section name|alignment
Sort sections by name or maximum alignment
--spare-dynamic-tags COUNT How many tags to reserve in .dynamic section
--split-by-file [=SIZE] Split output sections every SIZE octets
--split-by-reloc [=COUNT] Split output sections every COUNT relocs
--stats Print memory usage statistics
--target-help Display target specific options
--task-link SYMBOL Do task level linking
--traditional-format Use same format as native linker
--section-start SECTION=ADDRESS
Set address of named section
-Tbss ADDRESS Set address of .bss section
-Tdata ADDRESS Set address of .data section
-Ttext ADDRESS Set address of .text section
--unresolved-symbols=<method>
How to handle unresolved symbols. <method> is:
ignore-all, report-all, ignore-in-object-files,
ignore-in-shared-libs
--verbose Output lots of information during link
--version-script FILE Read version information script
--version-exports-section SYMBOL
Take export symbols list from .exports, using
SYMBOL as the version.
--warn-common Warn about duplicate common symbols
--warn-constructors Warn if global constructors/destructors are seen
--warn-multiple-gp Warn if the multiple GP values are used
--warn-once Warn only once per undefined symbol
--warn-section-align Warn if start of section changes due to alignment
--warn-shared-textrel Warn if shared object has DT_TEXTREL
--warn-unresolved-symbols Report unresolved symbols as warnings
--error-unresolved-symbols Report unresolved symbols as errors
--whole-archive Include all objects from following archives
--wrap SYMBOL Use wrapper functions for SYMBOL
@FILE Read options from FILE
ld: supported targets: elf32-powerpc aixcoff-rs6000 elf32-powerpcle ppcboot elf32-little elf32-big elf64-powerpc elf64-powerpcle aixcoff64-rs6000 elf64-little elf64-big srec symbolsrec tekhex binary ihex
ld: supported emulations: elf32ppclinux elf32ppc elf32ppcsim elf64ppc
ld: emulation specific options:
elf32ppclinux:
-Bgroup Selects group name lookup rules for DSO
--disable-new-dtags Disable new dynamic tags
--enable-new-dtags Enable new dynamic tags
--eh-frame-hdr Create .eh_frame_hdr section
-z combreloc Merge dynamic relocs into one section and sort
-z defs Report unresolved symbols in object files.
-z execstack Mark executable as requiring executable stack
-z initfirst Mark DSO to be initialized first at runtime
-z interpose Mark object to interpose all DSOs but executable
-z loadfltr Mark object requiring immediate process
-z muldefs Allow multiple definitions
-z nocombreloc Don't merge dynamic relocs into one section
-z nocopyreloc Don't create copy relocs
-z nodefaultlib Mark object not to use default search paths
-z nodelete Mark DSO non-deletable at runtime
-z nodlopen Mark DSO not available to dlopen
-z nodump Mark DSO not available to dldump
-z noexecstack Mark executable as not requiring executable stack
-z norelro Don't create RELRO program header
-z now Mark object non-lazy runtime binding
-z origin Mark object requiring immediate $ORIGIN processing
at runtime
-z relro Create RELRO program header
-z KEYWORD Ignored for Solaris compatibility
--emit-stub-syms Label linker stubs with a symbol.
--no-tls-optimize Don't try to optimize TLS accesses.
--bss-plt Force old-style BSS PLT.
--sdata-got Force GOT location just before .sdata.
elf32ppc:
-Bgroup Selects group name lookup rules for DSO
--disable-new-dtags Disable new dynamic tags
--enable-new-dtags Enable new dynamic tags
--eh-frame-hdr Create .eh_frame_hdr section
-z combreloc Merge dynamic relocs into one section and sort
-z defs Report unresolved symbols in object files.
-z execstack Mark executable as requiring executable stack
-z initfirst Mark DSO to be initialized first at runtime
-z interpose Mark object to interpose all DSOs but executable
-z loadfltr Mark object requiring immediate process
-z muldefs Allow multiple definitions
-z nocombreloc Don't merge dynamic relocs into one section
-z nocopyreloc Don't create copy relocs
-z nodefaultlib Mark object not to use default search paths
-z nodelete Mark DSO non-deletable at runtime
-z nodlopen Mark DSO not available to dlopen
-z nodump Mark DSO not available to dldump
-z noexecstack Mark executable as not requiring executable stack
-z norelro Don't create RELRO program header
-z now Mark object non-lazy runtime binding
-z origin Mark object requiring immediate $ORIGIN processing
at runtime
-z relro Create RELRO program header
-z KEYWORD Ignored for Solaris compatibility
--emit-stub-syms Label linker stubs with a symbol.
--no-tls-optimize Don't try to optimize TLS accesses.
--bss-plt Force old-style BSS PLT.
--sdata-got Force GOT location just before .sdata.
elf32ppcsim:
-Bgroup Selects group name lookup rules for DSO
--disable-new-dtags Disable new dynamic tags
--enable-new-dtags Enable new dynamic tags
--eh-frame-hdr Create .eh_frame_hdr section
-z combreloc Merge dynamic relocs into one section and sort
-z defs Report unresolved symbols in object files.
-z execstack Mark executable as requiring executable stack
-z initfirst Mark DSO to be initialized first at runtime
-z interpose Mark object to interpose all DSOs but executable
-z loadfltr Mark object requiring immediate process
-z muldefs Allow multiple definitions
-z nocombreloc Don't merge dynamic relocs into one section
-z nocopyreloc Don't create copy relocs
-z nodefaultlib Mark object not to use default search paths
-z nodelete Mark DSO non-deletable at runtime
-z nodlopen Mark DSO not available to dlopen
-z nodump Mark DSO not available to dldump
-z noexecstack Mark executable as not requiring executable stack
-z norelro Don't create RELRO program header
-z now Mark object non-lazy runtime binding
-z origin Mark object requiring immediate $ORIGIN processing
at runtime
-z relro Create RELRO program header
-z KEYWORD Ignored for Solaris compatibility
--emit-stub-syms Label linker stubs with a symbol.
--no-tls-optimize Don't try to optimize TLS accesses.
--bss-plt Force old-style BSS PLT.
--sdata-got Force GOT location just before .sdata.
elf64ppc:
-Bgroup Selects group name lookup rules for DSO
--disable-new-dtags Disable new dynamic tags
--enable-new-dtags Enable new dynamic tags
--eh-frame-hdr Create .eh_frame_hdr section
-z combreloc Merge dynamic relocs into one section and sort
-z defs Report unresolved symbols in object files.
-z execstack Mark executable as requiring executable stack
-z initfirst Mark DSO to be initialized first at runtime
-z interpose Mark object to interpose all DSOs but executable
-z loadfltr Mark object requiring immediate process
-z muldefs Allow multiple definitions
-z nocombreloc Don't merge dynamic relocs into one section
-z nocopyreloc Don't create copy relocs
-z nodefaultlib Mark object not to use default search paths
-z nodelete Mark DSO non-deletable at runtime
-z nodlopen Mark DSO not available to dlopen
-z nodump Mark DSO not available to dldump
-z noexecstack Mark executable as not requiring executable stack
-z norelro Don't create RELRO program header
-z now Mark object non-lazy runtime binding
-z origin Mark object requiring immediate $ORIGIN processing
at runtime
-z relro Create RELRO program header
-z KEYWORD Ignored for Solaris compatibility
--stub-group-size=N Maximum size of a group of input sections that can be
handled by one stub section. A negative value
locates all stubs before their branches (with a
group size of -N), while a positive value allows
two groups of input sections, one before, and one
after each stub section. Values of +/-1 indicate
the linker should choose suitable defaults.
--emit-stub-syms Label linker stubs with a symbol.
--dotsyms For every version pattern "foo" in a version script,
add ".foo" so that function code symbols are
treated the same as function descriptor symbols.
Defaults to on.
--no-dotsyms Don't do anything special in version scripts.
--no-tls-optimize Don't try to optimize TLS accesses.
--no-opd-optimize Don't optimize the OPD section.
--no-toc-optimize Don't optimize the TOC section.
--no-multi-toc Disallow automatic multiple toc sections.
--non-overlapping-opd Canonicalize .opd, so that there are no overlapping
.opd entries.
Report bugs to <URL:http://www.sourceware.org/bugzilla/>
>>> Second issue as reported earilier allmodconfig fails to build on imac
>>> g3.
>>>
>>> CC arch/powerpc/kernel/lparmap.s
>>> AS arch/powerpc/kernel/head_64.o
>>> lparmap.c: Assembler messages:
>>> lparmap.c:84: Error: file number 1 already allocated
>>> make[1]: *** [arch/powerpc/kernel/head_64.o] Blad 1
>>> make: *** [arch/powerpc/kernel] Blad 2
>>
>> Please send me the full output of:
>>
>> gcc --version (or whatever your gcc is called)
>> ld --version
>> ld --help (I know no better way to get the supported binutils
>> targets, and the default target)
>>
>> and the lparmap.s file. You might want to skip sending it
>> to the lists, it will be a bit big (and off-topic on most
>> of those lists, anyway).
>
> Well ... its 66kB. Not that bad. Please find it attached.
> Needed gcc and ld info below.
Thanks.
It seems like things go wrong when lparmap.s is generated with
(DWARF) debug info; could you try building it (manually) with -g0
added on the end of the compile line, and see if head_64.o compiles
okay for you then? If so, I'll prepare a proper patch for it, I
have a similar one (also for lparmap!) in my queue already...
Segher
> >>> Second issue as reported earilier allmodconfig fails to build on imac
> >>> g3.
> >>>
> >>> CC arch/powerpc/kernel/lparmap.s
> >>> AS arch/powerpc/kernel/head_64.o
> >>> lparmap.c: Assembler messages:
> >>> lparmap.c:84: Error: file number 1 already allocated
> >>> make[1]: *** [arch/powerpc/kernel/head_64.o] Blad 1
> >>> make: *** [arch/powerpc/kernel] Blad 2
> >>
> >> Please send me the full output of:
> >>
> >> gcc --version (or whatever your gcc is called)
> >> ld --version
> >> ld --help (I know no better way to get the supported binutils
> >> targets, and the default target)
> >>
> >> and the lparmap.s file. You might want to skip sending it
> >> to the lists, it will be a bit big (and off-topic on most
> >> of those lists, anyway).
> >
> > Well ... its 66kB. Not that bad. Please find it attached.
> > Needed gcc and ld info below.
>
> Thanks.
>
> It seems like things go wrong when lparmap.s is generated with
> (DWARF) debug info; could you try building it (manually) with -g0
> added on the end of the compile line, and see if head_64.o compiles
> okay for you then? If so, I'll prepare a proper patch for it, I
> have a similar one (also for lparmap!) in my queue already...
Ok it worked. I had to add -g0 to Makefile under arch/powerpc/kernel because
-g0 was added before -g and didn't have any effect when adding to Makefile
in top dir. But yes - it compiles now.
Thanks,
Mariusz
>> It seems like things go wrong when lparmap.s is generated with
>> (DWARF) debug info; could you try building it (manually) with -g0
>> added on the end of the compile line, and see if head_64.o compiles
>> okay for you then? If so, I'll prepare a proper patch for it, I
>> have a similar one (also for lparmap!) in my queue already...
>
> Ok it worked. I had to add -g0 to Makefile under arch/powerpc/kernel
> because
> -g0 was added before -g and didn't have any effect when adding to
> Makefile
> in top dir.
Yeah, that's why I said "build lparmap.s manually" :-)
> But yes - it compiles now.
Great, I'll combine it with my other lparmap build patch then.
Thanks for the report and testing!
Segher
Am Monday 06 August 2007 18:24 schrieb Trond Myklebust:
> On Mon, 2007-08-06 at 13:05 +0200, Marc Dietrich wrote:
> > Hi,
> >
> > > (...)
> >
> > just booting into X is enough.
> >
> > I applied the patch, but now I get:
> >
> > =================================
> > [ INFO: inconsistent lock state ]
> > 2.6.23-rc1-mm2 #4
> > ---------------------------------
> > inconsistent {softirq-on-W} -> {in-softirq-W} usage.
> > swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
> > (rpc_credcache_lock){-+..}, at: [<c01dc487>]
> > _atomic_dec_and_lock+0x17/0x60 {softirq-on-W} state was registered at:
> > [<c013e870>] __lock_acquire+0x650/0x1030
> > [<c013f2b1>] lock_acquire+0x61/0x80
> > [<c02db9ac>] _spin_lock+0x2c/0x40
> > [<c01dc487>] _atomic_dec_and_lock+0x17/0x60
> > [<dced55fd>] put_rpccred+0x5d/0x100 [sunrpc]
> > [<dced56c1>] rpcauth_unbindcred+0x21/0x60 [sunrpc]
> > [<dced3fd4>] a0 [sunrpc]
> > [<dcecefe0>] rpc_call_sync+0x30/0x40 [sunrpc]
> > [<dcedc73b>] rpcb_register+0xdb/0x180 [sunrpc]
> > [<dced65b3>] svc_register+0x93/0x160 [sunrpc]
> > [<dced6ebe>] __svc_create+0x1ee/0x220 [sunrpc]
> > [<dced7053>] svc_create+0x13/0x20 [sunrpc]
> > [<dcf6d722>] nfs_callback_up+0x82/0x120 [nfs]
> > [<dcf48f36>] nfs_get_client+0x176/0x390 [nfs]
> > [<dcf49181>] nfs4_set_client+0x31/0x190 [nfs]
> > [<dcf49983>] nfs4_create_server+0x63/0x3b0 [nfs]
> > [<dcf52426>] nfs4_get_sb+0x346/0x5b0 [nfs]
> > [<c017b444>] vfs_kern_mount+0x94/0x110
> > [<c0190a62>] do_mount+0x1f2/0x7d0
> > [<c01910a6>] sys_mount+0x66/0xa0
> > [<c0104046>] syscall_call+0x7/0xb
> > [<ffffffff>] 0xffffffff
> > irq event stamp: 5277830
> > hardirqs last enabled at (5277830): [<c017530a>]
> > kmem_cache_free+0x8a/0xc0 hardirqs last disabled at (5277829):
> > [<c01752d2>] kmem_cache_free+0x52/0xc0 softirqs last enabled at
> > (5277798): [<c0124173>] __do_softirq+0xa3/0xc0 softirqs last disabled at
> > (5277817): [<c01241d7>] do_softirq+0x47/0x50
> >
> > other info that might help us debug this:
> > no locks held by swapper/0.
> >
> > stack backtrace:
> > [<c0104fda>] show_trace_log_lvl+0x1a/0x30
> > [<c0105c02>] show_trace+0x12/0x20
> > [<c0105d15>] dump_stack+0x15/0x20
> > [<c013ccc3>] print_usage_bug+0x153/0x160
> > [<c013d8b9>] mark_lock+0x449/0x620
> > [<c013e824>] __lock_acquire+0x604/0x1030
> > [<c013f2b1>] lock_acquire+0x61/0x80
> > [<c02db9ac>] _spin_lock+0x2c/0x40
> > [<c01dc487>] _atomic_dec_and_lock+0x17/0x60
> > [<dced55fd>] put_rpccred+0x5d/0x100 [sunrpc]
> > [<dcf6bf83>] nfs_free_delegation_callback+0x13/0x20 [nfs]
> > [<c012f9ea>] __rcu_process_callbacks+0x6a/0x1c0
> > [<c012fb52>] rcu_process_callbacks+0x12/0x30
> > [<c0124218>] tasklet_action+0x38/0x80
> > [<c0124125>] __do_softirq+0x55/0xc0
> > [<c01241d7>] do_softirq+0x47/0x50
> > [<c0124605>] irq_exit+0x35/0x40
> > [<c0112463>] smp_apic_timer_interrupt+0x43/0x80
> > [<c0104a77>] apic_timer_interrupt+0x33/0x38
> > [<c02690df>] cpuidle_idle_call+0x6f/0x90
> > [<c01023c3>] cpu_idle+0x43/0x70
> > [<c02d8c27>] rest_init+0x47/0x50
> > [<c03bcb6a>] start_kernel+0x22a/0x2b0
> > [<00000000>] 0x0
> > =======================
>
> That is a different matter. I assume this patch should suffice to fix
> the above problem.
>
> Trond
yes - it does.
thanks.
Marc
--
"Our cause has a sacred nature."
Lord Arthur Ponsonby, "Falsehood in Wartime: Propaganda Lies of the First
World War", 1928
On Fri, 2007-08-03 at 21:21 +0400, Oleg Nesterov wrote:
> On 08/03, Trond Myklebust wrote:
> > I'll have a look at this. I suspect that most if not all of our calls to
> > run_workqueue()/flush_scheduled_work() can now be replaced by more
> > targeted calls to cancel_work_sync() and cancel_delayed_work_sync().
>
> Yes, please, if possible.
All the NFS and SUNRPC cases appear to be trivial. IOW: the only reason
for the flush_workqueue()/flush_scheduled_work() calls was to ensure
that the cancel_work()/cancel_delayed_work() calls preceding them have
completed. Nevertheless I've split the conversion into two patches,
since one touches only the NFS code, whereas the other touches the
SUNRPC client and server code.
The two patches have been tested, and appear to work...
Trond
On 08/07, Trond Myklebust wrote:
>
> On Fri, 2007-08-03 at 21:21 +0400, Oleg Nesterov wrote:
> > On 08/03, Trond Myklebust wrote:
> > > I'll have a look at this. I suspect that most if not all of our calls to
> > > run_workqueue()/flush_scheduled_work() can now be replaced by more
> > > targeted calls to cancel_work_sync() and cancel_delayed_work_sync().
> >
> > Yes, please, if possible.
>
> All the NFS and SUNRPC cases appear to be trivial. IOW: the only reason
> for the flush_workqueue()/flush_scheduled_work() calls was to ensure
> that the cancel_work()/cancel_delayed_work() calls preceding them have
> completed. Nevertheless I've split the conversion into two patches,
> since one touches only the NFS code, whereas the other touches the
> SUNRPC client and server code.
>
> The two patches have been tested, and appear to work...
Great!
> void
> nfs4_kill_renewd(struct nfs_client *clp)
> {
> down_read(&clp->cl_sem);
> - cancel_delayed_work(&clp->cl_renewd);
> + cancel_delayed_work_sync(&clp->cl_renewd);
> up_read(&clp->cl_sem);
> - flush_scheduled_work();
> }
this looks unsafe to me, the window is very small, but afaics this can
deadlock if called when nfs4_renew_state() has already started, but didn't
take ->cl_sem yet.
Can't we avoid taking clp->cl_sem here?
Btw, unless I missed something, the code without this patch looks incorrect
too: cancel_delayed_work() can fail if the timer expired, but the ->cl_renewd
didn't run yet. In that case nfs4_renew_state() can run and re-schedule itself
after flush_scheduled_work() returns.
Oleg.
On Wed, 2007-08-08 at 01:37 +0400, Oleg Nesterov wrote:
> On 08/07, Trond Myklebust wrote:
> >
> > On Fri, 2007-08-03 at 21:21 +0400, Oleg Nesterov wrote:
> > > On 08/03, Trond Myklebust wrote:
> > > > I'll have a look at this. I suspect that most if not all of our calls to
> > > > run_workqueue()/flush_scheduled_work() can now be replaced by more
> > > > targeted calls to cancel_work_sync() and cancel_delayed_work_sync().
> > >
> > > Yes, please, if possible.
> >
> > All the NFS and SUNRPC cases appear to be trivial. IOW: the only reason
> > for the flush_workqueue()/flush_scheduled_work() calls was to ensure
> > that the cancel_work()/cancel_delayed_work() calls preceding them have
> > completed. Nevertheless I've split the conversion into two patches,
> > since one touches only the NFS code, whereas the other touches the
> > SUNRPC client and server code.
> >
> > The two patches have been tested, and appear to work...
>
> Great!
>
> > void
> > nfs4_kill_renewd(struct nfs_client *clp)
> > {
> > down_read(&clp->cl_sem);
> > - cancel_delayed_work(&clp->cl_renewd);
> > + cancel_delayed_work_sync(&clp->cl_renewd);
> > up_read(&clp->cl_sem);
> > - flush_scheduled_work();
> > }
>
> this looks unsafe to me, the window is very small, but afaics this can
> deadlock if called when nfs4_renew_state() has already started, but didn't
> take ->cl_sem yet.
Not really. We have removed the nfs_client from the public lists, and we
are guaranteed that there are no more active superblocks attached to it
so nothing can call the reclaimer routine (which is the only routine
that takes a write lock on clp->cl_sem).
> Can't we avoid taking clp->cl_sem here?
Yes, I believe that we can, for the same reasons as above: the race with
the reclaimer is impossible, hence the read lock on cl_sem is redundant.
> Btw, unless I missed something, the code without this patch looks incorrect
> too: cancel_delayed_work() can fail if the timer expired, but the ->cl_renewd
> didn't run yet. In that case nfs4_renew_state() can run and re-schedule itself
> after flush_scheduled_work() returns.
No, that should not be possible. Again, see above: there are no active
superblocks, so clp->cl_superblocks is empty.
Cheers
Trond
On 08/07, Trond Myklebust wrote:
>
> On Wed, 2007-08-08 at 01:37 +0400, Oleg Nesterov wrote:
> > On 08/07, Trond Myklebust wrote:
> > >
> > > On Fri, 2007-08-03 at 21:21 +0400, Oleg Nesterov wrote:
> > > > On 08/03, Trond Myklebust wrote:
> > > > > I'll have a look at this. I suspect that most if not all of our calls to
> > > > > run_workqueue()/flush_scheduled_work() can now be replaced by more
> > > > > targeted calls to cancel_work_sync() and cancel_delayed_work_sync().
> > > >
> > > > Yes, please, if possible.
> > >
> > > All the NFS and SUNRPC cases appear to be trivial. IOW: the only reason
> > > for the flush_workqueue()/flush_scheduled_work() calls was to ensure
> > > that the cancel_work()/cancel_delayed_work() calls preceding them have
> > > completed. Nevertheless I've split the conversion into two patches,
> > > since one touches only the NFS code, whereas the other touches the
> > > SUNRPC client and server code.
> > >
> > > The two patches have been tested, and appear to work...
> >
> > Great!
> >
> > > void
> > > nfs4_kill_renewd(struct nfs_client *clp)
> > > {
> > > down_read(&clp->cl_sem);
> > > - cancel_delayed_work(&clp->cl_renewd);
> > > + cancel_delayed_work_sync(&clp->cl_renewd);
> > > up_read(&clp->cl_sem);
> > > - flush_scheduled_work();
> > > }
> >
> > this looks unsafe to me, the window is very small, but afaics this can
> > deadlock if called when nfs4_renew_state() has already started, but didn't
> > take ->cl_sem yet.
>
> Not really. We have removed the nfs_client from the public lists, and we
> are guaranteed that there are no more active superblocks attached to it
> so nothing can call the reclaimer routine (which is the only routine
> that takes a write lock on clp->cl_sem).
Thanks for your explanation. Not that I was able to understand, nfs is a
black magic to me :)
But. nfs4_renew_state() checks list_empty(&clp->cl_superblocks) under
clp->cl_sem? So, if it is possible that clp->cl_renewd was scheduled
at the time when nfs4_kill_renewd(), we can deadlock, no? Because
nfs4_renew_state() needs clp->cl_sem to complete, but nfs4_kill_renewd()
holds this sem, and waits for nfs4_renew_state() completion.
> > Btw, unless I missed something, the code without this patch looks incorrect
> > too: cancel_delayed_work() can fail if the timer expired, but the ->cl_renewd
> > didn't run yet. In that case nfs4_renew_state() can run and re-schedule itself
> > after flush_scheduled_work() returns.
>
> No, that should not be possible. Again, see above: there are no active
> superblocks, so clp->cl_superblocks is empty.
Yes, thanks. I missed "goto out" in nfs4_renew_state().
Oleg.
On Wed, 2007-08-08 at 02:20 +0400, Oleg Nesterov wrote:
> But. nfs4_renew_state() checks list_empty(&clp->cl_superblocks) under
> clp->cl_sem? So, if it is possible that clp->cl_renewd was scheduled
> at the time when nfs4_kill_renewd(), we can deadlock, no? Because
> nfs4_renew_state() needs clp->cl_sem to complete, but nfs4_kill_renewd()
> holds this sem, and waits for nfs4_renew_state() completion.
They both take read locks, which means that they can take them
simultaneously. AFAICS, the deadlock can only occur if something manages
to insert a request for a write lock after nfs4_kill_renewd() takes its
read lock, but before nfs4_renew_state() takes its read lock:
1) nfs4_kill_renewd() 2) nfs4_renew_state() 3) somebody else
------------------- ------------------ -------------
read lock
wait on (2) to complete
write lock <waits on (1)>
read lock <waits on (3),
because rw_semaphores
don't allow a read lock
request to jump a write
lock request>
however as I explained earlier, the only process that can take a write
lock is the reclaimer daemon, but we _know_ that cannot be running (for
one thing, the reference count on nfs_client is zero, for the other,
there are no superblocks).
Cheers
Trond
On 08/07, Trond Myklebust wrote:
>
> On Wed, 2007-08-08 at 02:20 +0400, Oleg Nesterov wrote:
>
> > But. nfs4_renew_state() checks list_empty(&clp->cl_superblocks) under
> > clp->cl_sem? So, if it is possible that clp->cl_renewd was scheduled
> > at the time when nfs4_kill_renewd(), we can deadlock, no? Because
> > nfs4_renew_state() needs clp->cl_sem to complete, but nfs4_kill_renewd()
> > holds this sem, and waits for nfs4_renew_state() completion.
>
> They both take read locks,
Aaaaaaaaaah. Please ignore me, thanks!
> which means that they can take them
> simultaneously. AFAICS, the deadlock can only occur if something manages
> to insert a request for a write lock after nfs4_kill_renewd() takes its
> read lock, but before nfs4_renew_state() takes its read lock:
>
> 1) nfs4_kill_renewd() 2) nfs4_renew_state() 3) somebody else
> ------------------- ------------------ -------------
> read lock
> wait on (2) to complete
> write lock <waits on (1)>
> read lock <waits on (3),
> because rw_semaphores
> don't allow a read lock
> request to jump a write
> lock request>
>
> however as I explained earlier, the only process that can take a write
> lock is the reclaimer daemon, but we _know_ that cannot be running (for
> one thing, the reference count on nfs_client is zero, for the other,
> there are no superblocks).
Oleg.
On Tue, Jul 31, 2007 at 11:09:32PM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.23-rc1-mm1:
>...
> git-mmc.patch
>...
> git trees
>...
CONFIG_MMC_ARMMMCI=m/y results in the following compile error:
<-- snip -->
...
CC [M] drivers/mmc/host/mmci.o
/home/bunk/linux/kernel-2.6/linux-2.6.23-rc1-mm2/drivers/mmc/host/mmci.c: In function 'mmci_request':
/home/bunk/linux/kernel-2.6/linux-2.6.23-rc1-mm2/drivers/mmc/host/mmci.c:398: error: implicit declaration of function 'mmc_end_request'
make[4]: *** [drivers/mmc/host/mmci.o] Error 1
<-- snip -->
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
On Wed, 8 Aug 2007 23:31:14 +0200
Adrian Bunk <[email protected]> wrote:
>
> CONFIG_MMC_ARMMMCI=m/y results in the following compile error:
>
> <-- snip -->
>
> ...
> CC [M] drivers/mmc/host/mmci.o
> /home/bunk/linux/kernel-2.6/linux-2.6.23-rc1-mm2/drivers/mmc/host/mmci.c:
> In function
> 'mmci_request': /home/bunk/linux/kernel-2.6/linux-2.6.23-rc1-mm2/drivers/mmc/host/mmci.c:398:
> error: implicit declaration of function 'mmc_end_request' make[4]:
> *** [drivers/mmc/host/mmci.o] Error 1
>
Thanks. That wasn't the only bug in there. Hopefully fixed now.
Rgds
--
-- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org
On Tue, Jul 31, 2007 at 11:09:32PM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.23-rc1-mm1:
>...
> +pm3fb-mtrr-support-and-noaccel-option.patch
>...
> fbdev updates
>...
pm3fb_init() needlessly became global.
Signed-off-by: Adrian Bunk <[email protected]>
---
drivers/video/pm3fb.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
9d0fd36d6429c19ac4377c19172d021b3aaa52e8
diff --git a/drivers/video/pm3fb.c b/drivers/video/pm3fb.c
index 3f004e8..195bcdb 100644
--- a/drivers/video/pm3fb.c
+++ b/drivers/video/pm3fb.c
@@ -798,8 +798,6 @@ static void pm3fb_write_mode(struct fb_info *info)
/*
* hardware independent functions
*/
-int pm3fb_init(void);
-
static int pm3fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
{
u32 lpitch;
@@ -1419,7 +1417,7 @@ static int __init pm3fb_setup(char *options)
}
#endif /* MODULE */
-int __init pm3fb_init(void)
+static int __init pm3fb_init(void)
{
/*
* For kernel boot options (in 'video=pm3fb:<options>' format)
On Tue, Jul 31, 2007 at 11:09:32PM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.23-rc1-mm1:
>...
> +reiser4-cryptcompress-misc-fixups.patch
>...
> reiser4 updates
>...
This patch makes the following needlessly global functions static:
- file/cryptcompress.c: __put_page_cluster()
- file/cryptcompress.c: put_hint_cluster()
- item/ctail.c: ctail_read_disk_cluster()
Signed-off-by: Adrian Bunk <[email protected]>
---
fs/reiser4/plugin/cluster.h | 4 ----
fs/reiser4/plugin/file/cryptcompress.c | 8 ++++----
fs/reiser4/plugin/file/cryptcompress.h | 2 --
fs/reiser4/plugin/item/ctail.c | 5 +++--
4 files changed, 7 insertions(+), 12 deletions(-)
dcbd29fcda0d6143ab0ec5f91e347d6e540f27bd
diff --git a/fs/reiser4/plugin/cluster.h b/fs/reiser4/plugin/cluster.h
index 7856074..af7a305 100644
--- a/fs/reiser4/plugin/cluster.h
+++ b/fs/reiser4/plugin/cluster.h
@@ -326,8 +326,6 @@ int reiser4_deflate_cluster(struct cluster_handle *, struct inode *);
void truncate_complete_page_cluster(struct inode *inode, cloff_t start,
int even_cows);
void invalidate_hint_cluster(struct cluster_handle * clust);
-void put_hint_cluster(struct cluster_handle * clust, struct inode *inode,
- znode_lock_mode mode);
int get_disk_cluster_locked(struct cluster_handle * clust, struct inode * inode,
znode_lock_mode lock_mode);
void reset_cluster_params(struct cluster_handle * clust);
@@ -335,8 +333,6 @@ int set_cluster_by_page(struct cluster_handle * clust, struct page * page,
int count);
int prepare_page_cluster(struct inode *inode, struct cluster_handle * clust,
rw_op rw);
-void __put_page_cluster(int from, int to, struct page ** pages,
- struct inode * inode);
void put_page_cluster(struct cluster_handle * clust,
struct inode * inode, rw_op rw);
void put_cluster_handle(struct cluster_handle * clust);
diff --git a/fs/reiser4/plugin/file/cryptcompress.c b/fs/reiser4/plugin/file/cryptcompress.c
index f0f0bee..9724d64 100644
--- a/fs/reiser4/plugin/file/cryptcompress.c
+++ b/fs/reiser4/plugin/file/cryptcompress.c
@@ -1378,8 +1378,8 @@ static void truncate_page_cluster_range(struct inode * inode,
}
/* Put @count pages starting from @from offset */
-void __put_page_cluster(int from, int count,
- struct page ** pages, struct inode * inode)
+static void __put_page_cluster(int from, int count,
+ struct page ** pages, struct inode * inode)
{
int i;
assert("edward-1468", pages != NULL);
@@ -1975,8 +1975,8 @@ void invalidate_hint_cluster(struct cluster_handle * clust)
hint_clr_valid(clust->hint);
}
-void put_hint_cluster(struct cluster_handle * clust, struct inode *inode,
- znode_lock_mode mode)
+static void put_hint_cluster(struct cluster_handle * clust,
+ struct inode *inode, znode_lock_mode mode)
{
assert("edward-1286", clust != NULL);
assert("edward-1287", clust->hint != NULL);
diff --git a/fs/reiser4/plugin/file/cryptcompress.h b/fs/reiser4/plugin/file/cryptcompress.h
index 5984e3c..117d377 100644
--- a/fs/reiser4/plugin/file/cryptcompress.h
+++ b/fs/reiser4/plugin/file/cryptcompress.h
@@ -530,8 +530,6 @@ int equal_to_rdk(znode *, const reiser4_key *);
int goto_right_neighbor(coord_t *, lock_handle *);
int cryptcompress_inode_ok(struct inode *inode);
int coord_is_unprepped_ctail(const coord_t * coord);
-extern int ctail_read_disk_cluster (struct cluster_handle *, struct inode *,
- struct page *, znode_lock_mode mode);
extern int do_readpage_ctail(struct inode *, struct cluster_handle *,
struct page * page, znode_lock_mode mode);
extern int ctail_insert_unprepped_cluster(struct cluster_handle * clust,
diff --git a/fs/reiser4/plugin/item/ctail.c b/fs/reiser4/plugin/item/ctail.c
index a931392..33ab44a 100644
--- a/fs/reiser4/plugin/item/ctail.c
+++ b/fs/reiser4/plugin/item/ctail.c
@@ -551,8 +551,9 @@ int read_ctail(struct file *file UNUSED_ARG, flow_t * f, hint_t * hint)
* Prepare transform stream with plain text for page
* @page taking into account synchronization issues.
*/
-int ctail_read_disk_cluster(struct cluster_handle * clust, struct inode * inode,
- struct page * page, znode_lock_mode mode)
+static int ctail_read_disk_cluster(struct cluster_handle * clust,
+ struct inode * inode, struct page * page,
+ znode_lock_mode mode)
{
int result;