2008-01-17 10:35:22

by Andrew Morton

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


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

- selinux is busted on one of my two selinux-enabled test machines.

- suspend-to-ram and suspend-to-disk are totally hosed on one of my test
machines. I guess I get to bisect this.

- git-nfsd is dropped due to conflicts with git-nfs

- git-newsetup is dropped due to conflicts with git-x86 (I think)

- git-perfmon is dropped due to conflicts with git-x86 (I think)

- git-kgdb is dropped due to conflicts with git-damn-near-everything

- git-block is dropped due to conflicts with the IDE tree

- kvm probably doesn't work properly because I couldn't be bothered fixing
the conflicts between git-kvm and the driver tree

- the volume of rejects and build errors which are caused by subsystem
maintainers fiddling with other people's stuff is quite out of control.
Something needs to happen 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. These probably are at least compilable.

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



Changes since 2.6.24-rc6-mm1:


git-acpi.patch
git-alsa.patch
git-agpgart.patch
git-arm.patch
git-audit-master.patch
git-avr32.patch
git-cifs.patch
git-cpufreq.patch
git-powerpc.patch
git-drm.patch
git-dvb.patch
git-hwmon.patch
git-gfs2-nmw.patch
git-hid.patch
git-hrt.patch
git-ieee1394.patch
git-infiniband.patch
git-input.patch
git-jfs.patch
git-kbuild.patch
git-kvm.patch
git-lblnet.patch
git-leds.patch
git-libata-all.patch
git-md-accel.patch
git-mips.patch
git-mmc.patch
git-mtd.patch
git-net.patch
git-netdev-all.patch
git-backlight.patch
git-battery.patch
git-nfs.patch
git-ocfs2.patch
git-selinux.patch
git-s390.patch
git-sched.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-x86.patch
git-xfs.patch
git-cryptodev.patch
git-xtensa.patch

git trees

-quicklists-do-not-release-off-node-pages-early.patch
-ecryptfs-fix-string-overflow-on-long-cipher-names.patch
-fix-computation-of-skb-size-for-quota-messages.patch
-dont-send-quota-messages-repeatedly-when-hardlimit-reached.patch
-ecryptfs-fix-unlocking-in-error-paths.patch
-ecryptfs-redo-dgetmntget-on-dentry_open-failure.patch
-maintainers-mailing-list-archives-are-web-links.patch
-ps3-vuart-fix-error-path-locking.patch
-lib-proportion-fix-underflow-in-prop_norm_percpu.patch
-pcmcia-remove-pxa2xx_lubbock-build-warning.patch
-kconfig-obey-kconfig_allconfig-choices-with-randconfig.patch
-fix-crash-with-flat_memory-and-arch_pfn_offset-=-0.patch
-hfs-handle-more-on-disk-corruptions-without-oopsing.patch
-hfs-handle-more-on-disk-corruptions-without-oopsing-fix.patch
-tty-fix-logic-change-introduced-by-wait_event_interruptible_timeout.patch
-rtc-dont-write-rtc-century-when-setting-a-wake-alarm.patch
-sound-usb-usbaudioc-fix-build-with-config_pm=n.patch
-kernel-auditc-warning-fix.patch
-kernel-compliment-va_copy-with-va_end.patch
-jdelvare-i2c-i2c-omap-fix-reset-on-error.patch
-jdelvare-i2c-i2c-spelling-fixes.patch
-jdelvare-i2c-i2c-id-document-optional.patch
-hp6xx-hp7xx-clean-up-drivers-input-keyboardtouchscreen-kconfigs.patch
-input-handle-ev_pwr-in-input_set_capability.patch
-kconfig-use-getopt-in-confc-for-handling-command-line.patch
-git-libata-all-fix-pata_winbond-borkage.patch
-git-libata-all-wtf.patch
-libata-xfer_mask-is-unsigned-int-not-unsigned-long.patch
-libata-add-toshiba-mk1637gsx-to-spurious-command-completion-list.patch
-libata-set-proper-ata-udma-mode-for-bf548-according-to-system-clock-checkpatch-fixes.patch
-libata-fix-early-use-of-port-printk-checkpatch-fixes.patch
-ide-mm-ide-spelling-fixes.patch
-ide-mm-ide-cd-fix-samsung-cd-rom-scr-3231-quirk.patch
-ide-mm-ide-cd-fix-acer-aopen-24x-cdrom-speed-reporting-on-big-endian-machines.patch
-ide-mm-ide-cd-use-ide_cd_release-in-ide_cd_probe.patch
-ide-mm-ide-cd-fix-error-messages-in-cdrom_read-write_check_ireason.patch
-ide-mm-ide-cd-add-missing-ireason-masking-to-cdrom_write_intr.patch
-ide-mm-ide-cd-fix-error-messages-in-cdrom_write_intr.patch
-ide-mm-ide-cd-add-error-message-for-dma-error-to-cdrom_read_intr.patch
-ide-mm-ide-cd-fix-error-message-in-cdrom_pc_intr.patch
-ide-mm-ide-cd-fix-ireason-reporting-in-cdrom_pc_intr.patch
-ide-mm-ide-cd-remove-struct-atapi_capabilities_page.patch
-backlight-omap1-backlight-driver.patch
-nfs-stop-sillyname-renames-and-unmounts-from-racing-2.patch
-nfs-fix-up-problems-with-steves-sillyrename-fix.patch
-nfs-fix-nfs_free_unlinkdata.patch
-gregkh-pci-pci-add-pci-quirk-function-for-some-chipsets.patch
-git-sched-fix-preempt-rcu-on-non-preemptible-architectures.patch
-scsi-qla2xxx-qla_osc-section-fix.patch
-scsi-megaraidc-__devexit-annotation.patch
-gregkh-usb-usb-unbreak-fsl_usb2_udc.patch
-gregkh-usb-usb-vid-pid-update-for-sierra.patch
-gregkh-usb-usb-new-device-id-for-the-cp2101-driver.patch
-gregkh-usb-usb-update-pxa27x-ohci-driver-to-use-clk-support.patch
-add-support-for-sb1-hardware-watchdog.patch
-watchdog-use-sgi_has_indydog-for-indydog-depends.patch
-git-x86-arch-x86-math-emu-errorsc-fix-printk-warnings.patch
-git-x86-drivers-pnp-pnpbios-bioscallsc-build-fix.patch
-git-x86-export-leave_mm.patch
-arch-x86-kernel-cpu-mcheck-p4c-kernel-2624-rc5.patch
-arch-x86-kernel-cpu-mcheck-p4c-kernel-2624-rc5-checkpatch-fixes.patch
-arch-x86-kernel-cpu-mcheck-p4c-kernel-2624-rc5-checkpatch-fixes-checkpatch-fixes.patch
-drm-i915-fix-oops-after-killing-x.patch
-usbtouchscreen-fix-buffer-overflow-make-more-egalax-work-checkpatch-fixes.patch
-fix-rtc_aie-with-config_hpet_emulate_rtc.patch
-cpufreq-initialise-default-governor-before-use.patch
-arch-cris-arch-v10-vmlinuxldss-fix-boot-problem.patch
-a-few-corrections-to-include-linux-kbuild.patch
-add-dma-engine-driver-for-freescale-mpc85xx-processors.patch
-add-dma-engine-driver-for-freescale-mpc85xx-processors-fix.patch
-add-dma-engine-driver-for-freescale-mpc85xx-processors-fix-fix.patch
-modules-fold-percpu_modcopy-into-modulec-and-get-rid-of-the-macro-from-hell.patch

Merged into mainline or a subsystem tree

+cpufreq-initialise-default-governor-before-use.patch
+hfs-fix-coverity-found-null-deref.patch
+address-hfs-on-disk-corruption-robustness-review-comments.patch
+address-hfs-on-disk-corruption-robustness-review-comments-checkpatch-fixes.patch
+pnpacpi-print-resource-shortage-message-only-once-more.patch
+cris-v10-vmlinuxldss-fix-kernel-oops-on-boot-and-use-common-defines.patch
+mm-fix-section-mismatch-warning-in-page_allocc.patch
+jbd-do-not-try-lock_acquire-after-handle-made-invalid.patch
+alpha-fix-conversion-from-denormal-float-to-double.patch
+ifdef-very-expensive-debug-check-in-page-fault-path.patch
+fix-radeonfb-regression-with-xpress-200m-5955.patch
+revert-local_t-documentation-update.patch
+fix-unbalanced-helper_lock-in-kernel-kmodc.patch

2.6.24 queue

+acpi-ignore-acpi-video-devices-that-arent-present-in-hardware.patch
+acpi-ignore-acpi-video-devices-that-arent-present-in-hardware-checkpatch-fixes.patch

ACPI fixes

+git-alsa-disable-sound-pci-ice1712-ice1724c.patch

ALSA workaround

+intel_agp-add-new-chipset-ids.patch
+intel_agp-add-new-chipset-ids-checkpatch-fixes.patch

agp device support

+git-audit-printk-warning-fix.patch

Fix git-audit-master.patch

+drivers-cpufreq-add-calls-to-cpufreq_cpu_put.patch

cpufreq fix

+agk-dm-dm-add-missing-memory-barrier-to-dm_suspend.patch
+agk-dm-dm-table-use-uninitialized_var.patch
+agk-dm-dm-ioctl-use-uninitialized_var.patch
+agk-dm-dm-tidy-alloc_dev-labels.patch
+agk-dm-dm-refactor-deferred-bio_list-processing.patch
+agk-dm-dm-tidy-dm_suspend.patch
+agk-dm-dm-split-dm_suspend-io_lock-hold-into-two.patch
+agk-dm-dm-refactor-dm_suspend-completion-wait.patch
+agk-dm-dm-targets-no-longer-experimental.patch
+agk-dm-dm-mpath-add-missing-static.patch
+agk-dm-dm-crypt-add-async-request-mempool.patch
+agk-dm-dm-crypt-add-completion-for-async.patch
+agk-dm-dm-crypt-prepare-async-callback-fn.patch
+agk-dm-dm-crypt-use-async-crypto.patch
+agk-dm-dm-move-deferred-bio-flushing-to-workqueue.patch
+agk-dm-dm-log-auto-load-modules.patch
+agk-dm-dm-stripe-trigger-event-on-failure.patch
+agk-dm-dm-stripe-enhanced-status-return.patch
+agk-dm-dm-loop.patch

device mapper tree updates

+revert-agk-dm-dm-loop.patch

Drop this - filp_open gets removed by another patch and breaks it.

+git-powerpc-fixup.patch

Fix git conflicts in git-powerpc.patch

+arch-powerpc-platforms-pseries-add-missing-of_node_put.patch
+arch-powerpc-sysdev-add-missing-of_node_put.patch
+arch-powerpc-platforms-82xx-add-missing-of_node_put.patch

powerpc stuff

#GREGKH-DRIVER-START
+gregkh-driver-chinese-add-the-known_regression-uri-to-the-howto.patch
+gregkh-driver-chinese-rephrase-english-introduction-in-howto.patch
+gregkh-driver-chinese-change-man-pages-maintainer-address-in-howoto.patch
+gregkh-driver-chinese-add-translation-of-submittingpatches.patch
+gregkh-driver-chinese-add-translation-of-submittingdrivers.patch
+gregkh-driver-chinese-add-translation-of-oops-tracingtxt.patch
+gregkh-driver-chinese-add-translation-of-stable_kernel_rulestxt.patch
+gregkh-driver-chinese-add-translation-of-volatile-considered-harmfultxt.patch
+gregkh-driver-chinese-add-translation-of-sparsetxt.patch
+gregkh-driver-chinese-add-translation-of-codingstyle.patch
+gregkh-driver-sysfs-fix-a-copy-n-paste-typo-in-comment.patch
+gregkh-driver-modules-remove-unneeded-release-function.patch
+gregkh-driver-sysfs-make-sysfs_deprecated-depend-on-sysfs.patch
+gregkh-driver-driver-core-fix-build-with-sysfs-n.patch

Driver tree updates

+revert-gregkh-driver-atm-convert-struct-class_device-to-struct-device.patch

Drop a patch which conflicts with other trees

+pm-acquire-device-locks-on-suspend-rev-3.patch
+pm-acquire-device-locks-on-suspend-rev-3-checkpatch-fixes.patch
+pm-acquire-device-locks-on-suspend-rev-3-checkpatch-fixes-2.patch

PM stuff

+gregkh-driver-kset-move-sys-slab-to-sys-kernel-slab-slabinfo-fallback-from-sys-kernel-slab-to-sys-slab.patch

driver tree fix

+drm-convert-from-nopage-to-fault.patch
+drm-convert-from-nopage-to-fault-checkpatch-fixes.patch
+drm-i915-fix-oops-after-killing-x.patch

DRM things

+drivers-media-dvb-frontends-xc5000c-dont-return-garbage-from-xc5000_init.patch
+drivers-media-video-em28xx-em28xx-corec-fix-use-of-potentially-uninitialized-variable.patch
+git-dvb-fix-drivers-media-video-bt8xx-bttv-driverc-build.patch

DVB fixes

+jdelvare-i2c-ixp4xx-i2c-gpio.patch
+jdelvare-i2c-i2c-sibyte-remove-bus-scan-parameter.patch
+jdelvare-i2c-i2c-transfer-support-atomic.patch
+jdelvare-i2c-i2c-pxa-add-polling-transfer.patch

I2C tree updates

+oz99x-i2c-button-and-led-support-driver-update.patch

Update oz99x-i2c-button-and-led-support-driver.patch

+i2c-isp1301_omap-new-style-i2c-driver-updates-part-1.patch
+i2c-isp1301_omap-new-style-i2c-driver-updates-part-2.patch

New i2c driver

+hwmon-new-chip-driver-for-ti-ads7828-a-d.patch
+hwmon-new-chip-driver-for-ti-ads7828-a-d-checkpatch-fixes.patch
+hwmon-new-chip-driver-for-ti-ads7828-a-d-update.patch

New hwmon driver

(why are these things in my tree??)

+git-infiniband-fix-build-with-config_infiniband_ipoib_cm=n.patch

Fix git-infiniband.

-wistron_btns-add-support-for-x86_64-systems.patch

Dropped.

+drivers-input-touchscreen-ads7846c-fix-uninitialized-var-warning.patch

input fix

-kvm-ist-kaput.patch

Unneeded (but it's probably still kaput)

-git-lblnet-fixup.patch

Unneeded

+ide-mm-ide-cd-remove-struct-atapi_capabilities_page-take-2.patch
+ide-mm-ide-add-ide_dump_identify-debug-helper.patch
+ide-mm-ide-floppy-tape-remove-debug-code-for-dumping-identify-data.patch
+ide-mm-ide-cd-move-the-remaining-cdrom-c-ioctl-handling-code-to-ide-cd_ioctl-c-v2.patch
+ide-mm-trm290-cannot-call-ide_setup_dma.patch
+ide-mm-ide-ide_setup_dma-assumes-8-ports.patch
+ide-mm-amd74xx-remove-amd_ide_chips-table.patch
+ide-mm-ide-add-ide_hflag_clear_simplex-host-flag.patch
+ide-mm-ide-add-ide_hflag_no_dsc-host-flag.patch
+ide-mm-piix-remove-stale-comments.patch
+ide-mm-ide-fix-ide_intr-for-non-pci-devices-and-config_blk_dev_idepci-y.patch
+ide-mm-ide-remove-bug_on-from-ide_build_sglist.patch
+ide-mm-ide-use-ide_destroy_dmatable-instead-of-pci_unmap_sg.patch
+ide-mm-ide-keep-pointer-to-struct-device-instead-of-struct-pci_dev-in-ide_hwif_t.patch
+ide-mm-au1xxx-ide-use-hwif-dev.patch
+ide-mm-icside-use-hwif-dev.patch
+ide-mm-ide-switch-to-dma-mapping-api.patch
+ide-mm-ide-use-ide_build_sglist-and-ide_destroy_dmatable-in-non-pci-host-drivers.patch
+ide-mm-au1xxx-ide-device-tree-bugfix.patch
+ide-mm-ide-pmac-macio-resource-freeing-bugfix.patch
+ide-mm-au1xxx-ide-rapide-use-hwif-index-for-ide_unregister.patch
+ide-mm-ide-delete-filenames-versions-from-comments.patch
+ide-mm-ide-update-add-my-copyrights.patch
+ide-mm-ide-floppy-cleanup-header.patch
+ide-mm-ide-dont-include-linux-hdsmart-h.patch
+ide-mm-linux-hdsmart-h-is-not-used-by-kernel-code.patch
+ide-mm-ide-fix-handling-of-busy-io-resources-in-probe_hwif.patch
+ide-mm-ide-move-wait_hwif_ready-documentation-in-the-right-place.patch
+ide-mm-ide-remove-hwif-present-manipulations-from-hwif_init.patch
+ide-mm-ide_platform-remove-struct-hwif_prop.patch
+ide-mm-ide-remove-unused-ide_hwgroup_t-fields.patch
+ide-mm-ide-remove-needless-zeroing-of-hwgroup-fields-from-init_irq.patch
+ide-mm-ide-cleanup-ide_system_bus_speed.patch
+ide-mm-ide-io-resources-are-released-too-early-in-ide_unregister.patch
+ide-mm-ide-factor-out-code-removing-port-from-hwgroup-from-ide_unregister.patch
+ide-mm-ide-prepare-init_irq-for-using-ide_remove_port_from_hwgroup.patch
+ide-mm-ide-use-ide_remove_port_from_hwgroup-in-init_irq.patch
+ide-mm-ide-make-probe_hwif-return-an-error-value.patch
+ide-mm-ide-move-handling-of-io-resources-out-of-ide_probe_port.patch
+ide-mm-ide-factor-out-code-for-tuning-devices-from-ide_probe_port.patch
+ide-mm-ide-move-hwif_register-call-out-of-ide_probe_port.patch
+ide-mm-dtc2278-fix-io_32bit-handling.patch
+ide-mm-au1xxx-ide-fix-io_32bit-handling.patch
+ide-mm-atiixp-cs5535-scc_pata-fix-idex-ata66-parameter-handling.patch
+ide-mm-macide-remove-drive-capacity64-quirk.patch
+ide-mm-ide-always-set-dma-masks-in-ide_pci_setup_ports.patch
+ide-mm-ide-separate-pci-specific-init-from-generic-init-in-ide_pci_setup_ports.patch
+ide-mm-ide-add-struct-ide_port_info-instances-to-legacy-host-drivers.patch
+ide-mm-ide-add-cable-detect-method-to-ide_hwif_t.patch
+ide-mm-ide-remove-needless-includes-from-pci-host-drivers.patch
+ide-mm-ide-floppy-convert-to-generic-packet-commands.patch
+ide-mm-ide-floppy-replace-ntoh-s-l-and-hton-s-l-calls-with-the-generic-byteorder.patch
+ide-mm-ide-floppy-remove-unnecessary-handler-ne-null-check.patch
+ide-mm-ide-floppy-disambiguate-function-names.patch
+ide-mm-ide-floppy-include-the-proper-headers.patch
+ide-mm-ide-floppy-cleanup-and-unify-debugging-macro-calls.patch
+ide-mm-ide-floppy-remove-struct-idefloppy_capabilities_page.patch
+ide-mm-ide-floppy-remove-struct-idefloppy_inquiry_result.patch
+ide-mm-ide-floppy-remove-struct-idefloppy_request_sense_result.patch
+ide-mm-ide-floppy-remove-struct-idefloppy_mode_parameter_header.patch
+ide-mm-ide-floppy-remove-struct-idefloppy_flexible_disk_page.patch
+ide-mm-ide-floppy-remove-struct-idefloppy_capacity_descriptor.patch
+ide-mm-ide-floppy-factor-out-ioctl-handlers-from-idefloppy_ioctl.patch
+ide-mm-ide-floppy-report-dma-handling-in-idefloppy_pc_intr-properly.patch
+ide-mm-ide-floppy-mv-idefloppy_-should_-report_error.patch
+ide-mm-ide-floppy-remove-idefloppy_debug_bugs-macro.patch
+ide-mm-ide-floppy-use-an-xfer_func_t-and-io_buf_t-typedefs-in-order-to-unify-rw.patch
+ide-mm-ide-floppy-merge-idefloppy_-input-output-_buffers.patch
+ide-mm-ide-floppy-remove-unused-idefloppy_use_read12.patch
+ide-mm-ide-floppy-remove-idefloppy_debug_info.patch

IDE tree updates

+fix-ide-mm-ide-use-ide_destroy_dmatable-instead-of-pci_unmap_sg.patch
+drivers-ide-ide-acpic-fix-uninitialized-var-warning.patch
+drivers-ide-legacy-hdc-fix-uninitialized-var-warning.patch

Fix it

+memstick-initial-commit-for-sony-memorystick-support.patch
+memstick-initial-commit-for-sony-memorystick-support-fix.patch
+memstick-initial-commit-for-sony-memorystick-support-fix-2.patch

Memory stick driver

+fix-misparenthesization-introduced-by-commit-78b65179d08e7e4466ba69d5ede85035a2c96358.patch
+drivers-mtd-ubi-wlc-fix-uninitialized-var-warning.patch
+drivers-mtd-ubi-scanc-fix-uninitialized-var-warning.patch
+drivers-mtd-ubi-cdevc-unused-var.patch

MTD fixes

-git-net-fixup.patch

Unneeded

+git-net-fix-conflicts.patch

Fix git conflicts in git-net

+git-netdev-all-fix-conflicts.patch

Fix git conflicts in git-netdev-all

+git-netdev-all-fix-conflicts-fix.patch

And fix the fix

+net-sunrpc-schedc-revert-git-net-changes.patch
+net-sunrpc-schedc-reapply-git-net-changes.patch

futz around to make git-nfs apply

+at91_cf-use-generic-gpio-calls.patch
+drivers-pcmcia-add-missing-iounmap.patch
+drivers-pcmcia-add-missing-pci_dev_get.patch

pcmcia things

+avoid-waking-up-closed-serial-ports-on-resume.patch
+serial-avoid-stalling-suspend-if-serial-port-wont-drain.patch
+serial-speed-setup-failure-reporting.patch
+serial-coding-style.patch

serial driver things

+gregkh-pci-pci-remove-pci_enable_device_bars-from-documentation.patch
+gregkh-pci-pciehp-wait-for-1000ms-before-led-operation-after-power-off.patch
+gregkh-pci-pciehp-workaround-against-bad-dllp-during-power-off.patch
+gregkh-pci-pciehp-block-new-requests-from-the-device-before-power-off.patch
+gregkh-pci-pci-convert-drivers-pci-procc-to-use-unlocked_ioctl.patch
+gregkh-pci-pci-make-pci-extended-config-space-a-driver-opt-in.patch

PCI tree updates

+revert-gregkh-pci-pci-use-dev_printk-in-x86-quirk-messages.patch
+fix-gregkh-pci-pci-make-pci-extended-config-space-a-driver-opt-in.patch

Fix it.

+quirks-set-en-bit-of-msi-mapping-for-devices-onht-based-nvidia-platform.patch
+quirks-set-en-bit-of-msi-mapping-for-devices-onht-based-nvidia-platform-checkpatch-fixes.patch

nvidia PCI fix

+x86-validate-against-acpi-motherboard-resources.patch

PCI thing

+git-scsi-misc-vs-gregkh-pci-pci-remove-users-of-pci_enable_device_bars.patch

Fix yet another subsystem smashup

+scsi-arcmsr-updates-1200015.patch
+drivers-scsi-dc395xc-fix-uninitialized-var-warning.patch

scsi things

-scsi-scsi_data_buffer.patch
-scsi-bidi-support.patch

I was told to drop these

+powerpc-export-copy_page-on-32bit.patch

For unionfs

+gregkh-usb-usb-keyspan-fix-oops.patch
+gregkh-usb-usb-gadget-fix-fsl_usb2_udc-potential-oops.patch
+gregkh-usb-usb-cp2101-new-device-ids.patch
+gregkh-usb-usb-add-support-for-4348-5523-winchiphead-usb-rs-232-adapter.patch
+gregkh-usb-usb-sierra-add-support-for-aircard-881u.patch
+gregkh-usb-usb-adding-yc-cable-usb-serial-device-to-pl2303.patch
+gregkh-usb-usb-sierra-driver-add-devices.patch
+gregkh-usb-usb-correct-comments-in-usb-core-notifyc.patch
+gregkh-usb-usb-ftdi_sio-enabling-multiple-elv-devices-adding-em1010pc.patch
+gregkh-usb-usb-ftdi-sio-patch-to-add-vendor-device-id-for-atk_16ic-ccd.patch
+gregkh-usb-usb-use-gfp_noio-in-reset-path.patch
+gregkh-usb-usb-mos7720-clean-up-termios.patch
+gregkh-usb-usb-ti_usb-termios-cleanups.patch
+gregkh-usb-usb-io_ti-clean-up-termios-handling.patch
+gregkh-usb-usb-ftdi_sio-support-for-more-jtag-adaptors.patch
+gregkh-usb-usb-sierra-driver-add-update-dtr-logic.patch
+gregkh-usb-usb-export-suspend-statistics.patch
+gregkh-usb-usb-ohci-at91-uses-generic-gpio-calls.patch
+gregkh-usb-usb-at91_udc-uses-generic-gpio-calls-minor-cleanup.patch
+gregkh-usb-usb-pxa2xx_udc-use-debugfs-not-procfs.patch
+gregkh-usb-usb-add-ehci-ppc-of-bus-glue.patch
+gregkh-usb-usb-misc-legousbtower-semaphore-to-mutex.patch
+gregkh-usb-usb-add-ehci-ixp-bus-glue.patch
+gregkh-usb-usb-ehci-saves-some-memory-in-iso-transfer-descriptors.patch
+gregkh-usb-usb-ehci-minor-iso-updates-always-support-split-iso.patch
+gregkh-usb-usb-ehci-completes-high-speed-iso-urbs-sooner.patch
+gregkh-usb-usb-usbfs-struct-async-is-a-fixed-size-structure.patch
+gregkh-usb-usb-ehci-move-del_timer_sync-calls-outside-spinlocked-region.patch
+gregkh-usb-usb-ehci-add-a-short-delay-to-the-bus_suspend-routine.patch

USB tree updates

+fix-gregkh-usb-usb-ti_usb-termios-cleanups.patch

Fix it

+usb-make-usb_storage_onetouch-available-with-pm.patch
+drivers-usb-storage-sddr55c-fix-uninitialized-var-warnings.patch

USB stuff

+wdt-fix-locking.patch
+wdt-fix-locking-checkpatch-fixes.patch

Watchdog fixes

+iwlwifi-fix-typo-in-drivers-net-wireless-iwlwifi-kconfig.patch
+hostap-section-mismatch-warning.patch
+ssb-add-ssb_pcihost_set_power_state-function.patch
+b44-power-down-phy-when-interface-down.patch
+drivers-net-wireless-iwlwifi-iwl-3945c-fix-printk-warning.patch
+drivers-net-wireless-iwlwifi-iwl-4965c-fix-printk-warning.patch
+drivers-net-wireless-rt2x00-rt2x00usbc-fix-uninitialized-var-warning.patch

wireless stuff

+revert-kvm-stuff-to-make-git-x86-apply.patch

futz around with yet another subsystem tree wreck.

+git-x86-fixup-2.patch

Fix git conflicts

+acpi-default-unmap-fixpatch.patch

fix ia64 build

+git-x86-vs-pm-acquire-device-locks-on-suspend-rev-3.patch

More patch intersections

+pci-dont-load-acpi_php-when-acpi-is-disabled-fix.patch

PCI patch which was in the x86 tree and now isn't. Needs to go into the PCI
tree

+iommu-sg-add-iommu-helper-functions-for-the-free-area-management-update.patch

Update iommu-sg-add-iommu-helper-functions-for-the-free-area-management.patch

+keyspan-fix-oops.patch
+sky2-wake-on-lan-configuration-issues.patch

Might be 2.6.24 stuff

+include-count-of-pagecache-pages-in-show_mem-output.patch
+check-advice-of-fadvice64_64-even-if-get_xip_page-is-given.patch

MM updates

-uml-runtime-detection-of-host-vmsplit-on-i386.patch

Dropped - buggy

+uml-style-fixes-in-arch-um-kernel.patch
+uml-fix-hostfs-tv_usec-calculations.patch
+uml-signal-handling-tidying.patch
+uml-remove-init_irq_signals.patch

UML updates

-bugh-remove-have_arch_bug--have_arch_warn.patch
-powerpc-switch-to-generic-warn_on-bug_on.patch

Dropped

-fat-optimize-fat_count_free_clusters.patch

Dropped, I think.

-avoid-overflows-in-kernel-timec.patch
-avoid-overflows-in-kernel-timec-fix.patch

Dropped

+make-sys_poll-wait-at-least-timeout-ms.patch
+ds1wm-decouple-host-irq-and-intr-active-state-settings.patch
+documentation-add-hint-about-call-traces-module-symbols-to-bug-hunting.patch
+claim-maintainership-for-block2mtd-and-update-email-addresses.patch
+phantom-dont-grab-other-devices.patch
+system-timer-fix-crash-in-100hz-system-timer.patch
+system-timer-fix-crash-in-100hz-system-timer-cleanup.patch
+speed-up-jiffies-conversion-functions-if-hz==user_hz.patch
+tpm-infineon-section-mismatch.patch
+w1-remove-unused-and-confusing-variable.patch

Misc

-sync_sb_inodes-propagate-errors.patch

Dropped

-move-kconfiginstrumentation-to-arch-kconfig-and-init-kconfig.patch

Dropped

+fix-and-typo-in-eicons-addinfo.patch
+drivers-isdn-hardware-eicon-debugc-fix-uninitialized-var-warning.patch

i4l things

-ecryptfs-load-each-file-decryption-key-only-once.patch

Dropped

+ecryptfs-check-for-existing-key_tfm-at-mount-time.patch

ecryptfs work

+restore-jdelvare-i2c-i2c-add-i2c_new_dummy-utility.patch

This patch got dropped from the I2C tree, but
rtc-add-support-for-the-s-35390a-rtc-chip.patch needs it

-rtc-add-support-for-the-s-35390a-rtc-chip-fix.patch

Folded into rtc-add-support-for-the-s-35390a-rtc-chip.patch

+rtc-add-support-for-the-s-35390a-rtc-chip-update.patch
+rtc-add-support-for-the-s-35390a-rtc-chip-update2.patch

Fix rtc-add-support-for-the-s-35390a-rtc-chip.patch some more

-generic-gpio-gpio_chip-support.patch
-generic-gpio-gpio_chip-support-fix.patch
-generic-gpio-gpio_chip-support-gpiolib-locking-simplified.patch
-avr32-uses-gpio_chip.patch
-mcp23s08-spi-gpio-expander.patch
-mcp23s08-spi-gpio-expander-checkpatch-fixes.patch
-arm-pxa-gpiolib-support.patch
-arm-pxa-gpiolib-support-make-pxa_gpio_chip-static.patch

These got updated

+w1-gpio-add-gpio-w1-bus-master-driver.patch
+w1-gpio-add-gpio-w1-bus-master-driver-v3.patch

New gpio driver

+gpiolib-add-drivers-gpio-directory.patch
+gpiolib-add-gpio-provider-infrastructure.patch
+gpiolib-update-documentation-gpiotxt.patch
+gpiolib-pxa-platform-support.patch
+gpiolib-pcf857x-i2c-gpio-expander-support.patch
+gpiolib-mcp23s08-spi-gpio-expander-support.patch
+gpiolib-pca9539-i2c-gpio-expander-support.patch
+gpiolib-deprecate-obsolete-pca9539-driver.patch
+gpiolib-avr32-at32ap-platform-support.patch

gpio work

+vermilionc-use-align-not-__align_mask.patch
+fb-nvidiafb-try-harder-at-initial-mode-setting.patch
+tdfxfb-fix-section-mismatch-warnings.patch
+uvesafb-small-cleanups.patch
+drivers-video-add-missing-pci_dev_get.patch

fbdev updates

+md-fix-use-after-free-bug-when-dropping-an-rdev-from-an-md-array.patch
+md-change-a-few-int-to-size_t-in-md.patch
+md-change-interate_mddev-to-for_each_mddev.patch
+md-change-iterate_rdev-to-rdev_for_each.patch
+md-change-iterate_rdev_generic-to-rdev_for_each_list-and-remove-iterate_rdev_pending.patch
+md-fix-an-occasional-deadlock-in-raid5.patch

RAID updates

-pnp-do-not-stop-start-devices-in-suspend-resume-path.patch

Dropped

+pnp-do-not-test-pnp_driver_res_do_not_change-on-suspend-resume.patch

pnp fix

+ext4-check-for-return-value-from-sb_set_blocksize.patch

ext4 fixlet

+documentation-move-dnotifytxt-to-filesystems.patch
+documentation-move-sharedsubtreestxt-to-filesystems.patch
+documentation-create-new-scheduler-subdirectory.patch
+reporting-bugs-cc-the-mailing-list-too.patch

Documentation

-memory-controller-memory-accounting-v7-move-page_assign_page_cgroup-to-vm_bug_on-in-free_hot_cold_page.patch

Folded into memory-controller-memory-accounting-v7.patch

-memory-controller-add-per-container-lru-and-reclaim-v7-memcgroup-fix-try_to_free-order.patch

Folded into memory-controller-add-per-container-lru-and-reclaim-v7.patch

-memory-controller-improve-user-interface-memory-controller-enhancements-for-reclaiming-take2-possible-race-fix-in-res_counter.patch

Folded into memory-controller-improve-user-interface.patch

-memory-controller-make-charging-gfp-mask-aware-fix.patch

Folded into memory-controller-make-charging-gfp-mask-aware.patch

-memory-cgroup-enhancements-fix-zone-handling-in-try_to_free_mem_cgroup_page-warning-fix.patch

Folded into memory-cgroup-enhancements-fix-zone-handling-in-try_to_free_mem_cgroup_page.patch

-memory-cgroup-enhancements-add-status-accounting-function-for-memory-cgroup-checkpatch-fixes.patch
-memory-cgroup-enhancements-add-status-accounting-function-for-memory-cgroup-fix-1.patch
-memory-cgroup-enhancements-add-status-accounting-function-for-memory-cgroup-uninlining.patch
-memory-cgroup-enhancements-add-status-accounting-function-for-memory-cgroup-fix-2.patch

Folded into memory-cgroup-enhancements-add-status-accounting-function-for-memory-cgroup.patch

-memory-cgroup-enhancements-add-memorystat-file-checkpatch-fixes.patch
-memory-cgroup-enhancements-add-memorystat-file-printk-fix.patch

Folded into memory-cgroup-enhancements-add-memorystat-file.patch

-per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-active-inactive-counter-memory-controller-enhancements-for-reclaiming-take2-clean-up-remove-unused-variable.patch
-per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-active-inactive-counter-memory-controller-enhancements-for-reclaiming-take2-add-bug_on-in-mem_cgroup_zoneinfo.patch

Folded into per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-active-inactive-counter.patch

-per-zone-and-reclaim-enhancements-for-memory-controller-take-3-remember-reclaim-priority-in-memory-cgroup-fix.patch
-per-zone-and-reclaim-enhancements-for-memory-controller-take-3-remember-reclaim-priority-in-memory-cgroup-fix-2.patch

Folded into per-zone-and-reclaim-enhancements-for-memory-controller-take-3-remember-reclaim-priority-in-memory-cgroup.patch

-per-zone-and-reclaim-enhancements-for-memory-controller-take-3-modifies-vmscanc-for-isolate-globa-cgroup-lru-activity-fix.patch
-per-zone-and-reclaim-enhancements-for-memory-controller-take-3-modifies-vmscanc-for-isolate-globa-cgroup-lru-activity-fix-accounting-in-vmscanc-for-memory-controller.patch

Folded into per-zone-and-reclaim-enhancements-for-memory-controller-take-3-modifies-vmscanc-for-isolate-globa-cgroup-lru-activity.patch

-per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-lru-for-cgroup-bugfix-for-memory-cgroup-per-zone-struct-allocation.patch
-per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-lru-for-cgroup-memory-controller-enhancements-for-reclaiming-take2-define-free_mem_cgroup_per_zone_info.patch

Folded into per-zone-and-reclaim-enhancements-for-memory-controller-take-3-per-zone-lru-for-cgroup.patch

+cgroups-mechanism-to-process-each-task-in-a-cgroup.patch
+cgroups-mechanism-to-process-each-task-in-a-cgroup-cleanup.patch
+cgroups-mechanism-to-process-each-task-in-a-cgroup-checkpatch-fixes.patch

More cgroups fixes

+hotplug-cpu-move-tasks-in-empty-cpusets-to-parent.patch
+hotplug-cpu-move-tasks-in-empty-cpusets-to-parent-checkpatch-fixes.patch
+cpusets-update_cpumask-revision.patch
+cpusets-update_cpumask-revision-fix.patch
+cpusets-update_cpumask-revision-checkpatch-fixes.patch

cpuset work

+drivers-edac-pci-broken-parity-regression.patch
+drivers-edac-i3000-64bit-build.patch
+drivers-edac-mpc85xx-add-static-scope.patch
+drivers-edac-i3000-missing-init-code.patch

EDAC updates

-vmcoreinfo-add-the-array-length-of-free_list-for-filtering-free-pages.patch

Dropped

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

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

+iget-stop-unionfs-from-using-iget-and-read_inode-fix-2.patch

Fix iget-stop-unionfs-from-using-iget-and-read_inode.patch some more

+embed-a-struct-path-into-struct-nameidata-instead-of-nd-dentrymnt-vs-git-unionfs.patch

Repair damage from embed-a-struct-path-into-struct-nameidata-instead-of-nd-dentrymnt.patch

-proc-remove-useless-checks-in-proc_register.patch

Dropped

+proc-fix-openless-usage-due-to-proc_fops-flip.patch
+proc-fix-openless-usage-due-to-proc_fops-flip-checkpatch-fixes.patch

More procfs work

+modules-make-module_address_lookup-safe.patch
+modules-make-module_address_lookup-safe-fix.patch

Modules updates

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

Folded into aout-move-stack_top-to-asm-processorh.patch

+aout-suppress-aout-library-support-if-config_arch_supports_aout-uml-re-remove-accidentally-restored-code.patch

Fix aout-suppress-aout-library-support-if-config_arch_supports_aout-vs-sanitize-the-type-of-struct-useru_ar0.patch

+byteorder-move-le32_add_cpu-friends-from-ocfs2-to-core.patch
+ext3-replace-all-adds-to-little-endians-variables-with-le_add_cpu.patch
+xfs-convert-bex_add-to-bex_add_cpu-new-common-api.patch
+xfs-convert-bex_add-to-bex_add_cpu-new-common-api-fix.patch

Cleanups

+mm-remove-nopage.patch
+fixup-container_of-usage.patch
+efi-split-efi-tables-parsing-code-from-efi-runtime-service-support-code.patch
+dont-error-on-higher-hz-values.patch
+aio-partial-write-should-not-return-error-code.patch
+aio-negative-offset-should-return-einval.patch
+ext2-remove-unused-ext2_put_inode-prototype.patch
+ufs-fix-symlink-creation-on-ufs2.patch
+ufs-fix-symlink-creation-on-ufs2-fix.patch
+asm-posix_typesh-scrub-__glibc__.patch
+allow-executables-larger-than-2gb.patch
+write_inode_now-avoid-unnecessary-synchronous-write.patch
+nuke-duplicate-include-from-printkc.patch
+nuke-a-duplicate-include-from-profilec.patch
+nuke-duplicate-header-from-sysctlc.patch

Random stuff

+libfs-allow-error-return-from-simple-attributes.patch
+libfs-allow-error-return-from-simple-attributes-fix.patch
+libfs-make-simple-attributes-interruptible.patch
+libfs-rename-simple_attr_close-to-simple_attr_release.patch

libfa cleanups

+udf-fix-coding-style-of-superc.patch
+udf-remove-some-ugly-macros.patch
+udf-convert-udf_sb_alloc_partmaps-macro-to-udf_sb_alloc_partition_maps-function.patch
+udf-check-if-udf_load_logicalvol-failed.patch
+udf-convert-macros-related-to-bitmaps-to-functions.patch
+udf-move-calculating-of-nr_groups-into-helper-function.patch
+udf-fix-sparse-warnings-shadowing-mismatch-between-declaration-and-definition.patch
+udf-fix-coding-style.patch
+udf-create-common-function-for-tag-checksumming.patch
+udf-create-common-function-for-changing-free-space-counter.patch
+udf-replace-loops-coded-with-goto-to-real-loops.patch
+udf-convert-byte-order-of-constant-instead-of-variable.patch
+udf-remove-udf_i_-macros-and-open-code-them.patch
+udf-cache-struct-udf_inode_info.patch
+udf-fix-udf_debug-macro.patch
+udf-improve-readability-of-udf_load_partition.patch
+kill-udffs_dateversion.patch
+udf-remove-wrong-prototype-of-udf_readdir.patch
+udf-fix-3-signedness-1-unitialized-variable-warnings.patch
+udf-fix-signedness-issue.patch
+udf-avoid-unnecessary-synchronous-writes.patch

Updated UDF updates

+fs-hfsplus-unicodec-fix-uninitialized-var-warning.patch
+fs-afs-securityc-fix-uninitialized-var-warning.patch

Fix warnings

+reiser4-fix-dummy-ioctl_cryptcompress.patch
+reiser4-granulate-rw-serialization-when-accessing-file-conversion-set.patch
+reiser4-fix-disk-cluster-synchronization.patch
+reiser4-use-balance_dirty_pages_ratelimited_nr.patch
+reiser4-correct-references-to-filemap_nopage.patch

reiser4 updates



7933 commits in 2056 patch files


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


2008-01-17 12:42:18

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Build Failure on S390x

Hi Andrew,

The 2.6.24-rc8-mm1 kernel build fails on S390x with build error

arch/s390/kernel/ipl.c: In function `ipl_register_fcp_files':
arch/s390/kernel/ipl.c:415: error: `ipl_subsys' undeclared (first use in this function)
arch/s390/kernel/ipl.c:415: error: (Each undeclared identifier is reported only once
arch/s390/kernel/ipl.c:415: error: for each function it appears in.)
arch/s390/kernel/ipl.c: In function `ipl_init':
arch/s390/kernel/ipl.c:449: error: implicit declaration of function `firmware_register'
arch/s390/kernel/ipl.c:449: error: `ipl_subsys' undeclared (first use in this function)
CC arch/s390/kernel/dis.o
arch/s390/kernel/ipl.c: In function `on_panic_show':
arch/s390/kernel/ipl.c:766: error: implicit declaration of function `shutdown_action_str'
arch/s390/kernel/ipl.c:766: error: `on_panic_action' undeclared (first use in this function)
arch/s390/kernel/ipl.c:766: warning: format argument is not a pointer (arg 3)
arch/s390/kernel/ipl.c:766: warning: format argument is not a pointer (arg 3)
arch/s390/kernel/ipl.c: In function `on_panic_store':
arch/s390/kernel/ipl.c:773: error: `SHUTDOWN_REIPL_STR' undeclared (first use in this function)
arch/s390/kernel/ipl.c:774: error: `on_panic_action' undeclared (first use in this function)
arch/s390/kernel/ipl.c:774: error: `SHUTDOWN_REIPL' undeclared (first use in this function)
arch/s390/kernel/ipl.c:775: error: `SHUTDOWN_DUMP_STR' undeclared (first use in this function)
arch/s390/kernel/ipl.c:777: error: `SHUTDOWN_DUMP' undeclared (first use in this function)
arch/s390/kernel/ipl.c:778: error: `SHUTDOWN_STOP_STR' undeclared (first use in this function)
arch/s390/kernel/ipl.c:780: error: `SHUTDOWN_STOP' undeclared (first use in this function)
arch/s390/kernel/ipl.c: At top level:
arch/s390/kernel/ipl.c:879: error: redefinition of 'ipl_register_fcp_files'
arch/s390/kernel/ipl.c:412: error: previous definition of 'ipl_register_fcp_files' was here
arch/s390/kernel/ipl.c:904: error: redefinition of 'ipl_init'
arch/s390/kernel/ipl.c:446: error: previous definition of 'ipl_init' was here
arch/s390/kernel/ipl.c:1050: error: `reipl_run' undeclared here (not in a function)
arch/s390/kernel/ipl.c:1050: error: initializer element is not constant
arch/s390/kernel/ipl.c:1050: error: (near initialization for `reipl_action.fn')
arch/s390/kernel/ipl.c:1058: error: redefinition of 'sys_dump_fcp_wwpn_show'
arch/s390/kernel/ipl.c:664: error: previous definition of 'sys_dump_fcp_wwpn_show' was here
arch/s390/kernel/ipl.c:1058: error: redefinition of 'sys_dump_fcp_wwpn_store'
arch/s390/kernel/ipl.c:664: error: previous definition of 'sys_dump_fcp_wwpn_store' was here
arch/s390/kernel/ipl.c:1058: error: redefinition of 'sys_dump_fcp_wwpn_attr'
arch/s390/kernel/ipl.c:664: error: previous definition of 'sys_dump_fcp_wwpn_attr' was here
arch/s390/kernel/ipl.c:1060: error: redefinition of 'sys_dump_fcp_lun_show'
arch/s390/kernel/ipl.c:666: error: previous definition of 'sys_dump_fcp_lun_show' was here
arch/s390/kernel/ipl.c:1060: error: redefinition of 'sys_dump_fcp_lun_store'
arch/s390/kernel/ipl.c:666: error: previous definition of 'sys_dump_fcp_lun_store' was here
arch/s390/kernel/ipl.c:1060: error: redefinition of 'sys_dump_fcp_lun_attr'
arch/s390/kernel/ipl.c:666: error: previous definition of 'sys_dump_fcp_lun_attr' was here
arch/s390/kernel/ipl.c:1062: error: redefinition of 'sys_dump_fcp_bootprog_show'
arch/s390/kernel/ipl.c:668: error: previous definition of 'sys_dump_fcp_bootprog_show' was here
arch/s390/kernel/ipl.c:1062: error: redefinition of 'sys_dump_fcp_bootprog_store'
arch/s390/kernel/ipl.c:668: error: previous definition of 'sys_dump_fcp_bootprog_store' was here
arch/s390/kernel/ipl.c:1062: error: redefinition of 'sys_dump_fcp_bootprog_attr'
arch/s390/kernel/ipl.c:668: error: previous definition of 'sys_dump_fcp_bootprog_attr' was here
arch/s390/kernel/ipl.c:1064: error: redefinition of 'sys_dump_fcp_br_lba_show'
arch/s390/kernel/ipl.c:670: error: previous definition of 'sys_dump_fcp_br_lba_show' was here
arch/s390/kernel/ipl.c:1064: error: redefinition of 'sys_dump_fcp_br_lba_store'
arch/s390/kernel/ipl.c:670: error: previous definition of 'sys_dump_fcp_br_lba_store' was here
arch/s390/kernel/ipl.c:1064: error: redefinition of 'sys_dump_fcp_br_lba_attr'
arch/s390/kernel/ipl.c:670: error: previous definition of 'sys_dump_fcp_br_lba_attr' was here
arch/s390/kernel/ipl.c:1066: error: redefinition of 'sys_dump_fcp_device_show'
arch/s390/kernel/ipl.c:672: error: previous definition of 'sys_dump_fcp_device_show' was here
arch/s390/kernel/ipl.c:1066: error: redefinition of 'sys_dump_fcp_device_store'
arch/s390/kernel/ipl.c:672: error: previous definition of 'sys_dump_fcp_device_store' was here
arch/s390/kernel/ipl.c:1066: error: redefinition of 'sys_dump_fcp_device_attr'
arch/s390/kernel/ipl.c:672: error: previous definition of 'sys_dump_fcp_device_attr' was here
arch/s390/kernel/ipl.c:1069: error: redefinition of 'dump_fcp_attrs'
arch/s390/kernel/ipl.c:675: error: previous definition of 'dump_fcp_attrs' was here
arch/s390/kernel/ipl.c:1078: error: redefinition of 'dump_fcp_attr_group'
arch/s390/kernel/ipl.c:684: error: previous definition of 'dump_fcp_attr_group' was here
arch/s390/kernel/ipl.c:1085: error: redefinition of 'sys_dump_ccw_device_show'
arch/s390/kernel/ipl.c:691: error: previous definition of 'sys_dump_ccw_device_show' was here
arch/s390/kernel/ipl.c:1085: error: redefinition of 'sys_dump_ccw_device_store'
arch/s390/kernel/ipl.c:691: error: previous definition of 'sys_dump_ccw_device_store' was here
arch/s390/kernel/ipl.c:1085: error: redefinition of 'sys_dump_ccw_device_attr'
arch/s390/kernel/ipl.c:691: error: previous definition of 'sys_dump_ccw_device_attr' was here
arch/s390/kernel/ipl.c:1088: error: redefinition of 'dump_ccw_attrs'
arch/s390/kernel/ipl.c:694: error: previous definition of 'dump_ccw_attrs' was here
arch/s390/kernel/ipl.c:1093: error: redefinition of 'dump_ccw_attr_group'
arch/s390/kernel/ipl.c:699: error: previous definition of 'dump_ccw_attr_group' was here
arch/s390/kernel/ipl.c:1101: error: redefinition of 'dump_set_type'
arch/s390/kernel/ipl.c:707: error: previous definition of 'dump_set_type' was here
arch/s390/kernel/ipl.c:1124: error: conflicting types for 'dump_type_show'
arch/s390/kernel/ipl.c:731: error: previous definition of 'dump_type_show' was here
arch/s390/kernel/ipl.c:1130: error: conflicting types for 'dump_type_store'
arch/s390/kernel/ipl.c:738: error: previous definition of 'dump_type_store' was here
arch/s390/kernel/ipl.c:1142: error: variable `dump_type_attr' has initializer but incomplete type
arch/s390/kernel/ipl.c:1142: error: conflicting types for 'dump_type_attr'
arch/s390/kernel/ipl.c:750: error: previous definition of 'dump_type_attr' was here
arch/s390/kernel/ipl.c:1143: error: unknown field `attr' specified in initializer
arch/s390/kernel/ipl.c:1143: error: extra brace group at end of initializer
arch/s390/kernel/ipl.c:1143: error: (near initialization for `dump_type_attr')
arch/s390/kernel/ipl.c:1143: warning: excess elements in struct initializer
arch/s390/kernel/ipl.c:1143: warning: (near initialization for `dump_type_attr')
arch/s390/kernel/ipl.c:1143: error: unknown field `show' specified in initializer
arch/s390/kernel/ipl.c:1143: warning: excess elements in struct initializer
arch/s390/kernel/ipl.c:1143: warning: (near initialization for `dump_type_attr')
arch/s390/kernel/ipl.c:1143: error: unknown field `store' specified in initializer
arch/s390/kernel/ipl.c:1143: warning: excess elements in struct initializer
arch/s390/kernel/ipl.c:1143: warning: (near initialization for `dump_type_attr')
arch/s390/kernel/ipl.c:1145: error: syntax error before '(' token
arch/s390/kernel/ipl.c: In function `dump_init':
arch/s390/kernel/ipl.c:1233: warning: passing arg 2 of `sysfs_create_file' from incompatible pointer type
arch/s390/kernel/ipl.c: In function `shutdown_actions_init':
arch/s390/kernel/ipl.c:1256: warning: passing arg 2 of `sysfs_create_file' from incompatible pointer type
arch/s390/kernel/ipl.c:1262: error: `shutdown_on_panic_nb' undeclared (first use in this function)
arch/s390/kernel/ipl.c: At top level:
arch/s390/kernel/ipl.c:237: warning: 'get_ipl_type' defined but not used
arch/s390/kernel/ipl.c:477: warning: 'ipl_action' defined but not used
arch/s390/kernel/ipl.c:684: warning: 'dump_fcp_attr_group' defined but not used
arch/s390/kernel/ipl.c:699: warning: 'dump_ccw_attr_group' defined but not used
arch/s390/kernel/ipl.c:750: warning: 'dump_type_attr' defined but not used
arch/s390/kernel/ipl.c:843: warning: 'do_dump' defined but not used
arch/s390/kernel/ipl.c:1049: warning: 'reipl_action' defined but not used
arch/s390/kernel/ipl.c:1148: warning: 'dump_run' defined but not used
make[1]: *** [arch/s390/kernel/ipl.o] Error 1
make[1]: *** Waiting for unfinished jobs....

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

2008-01-17 12:46:51

by Balbir Singh

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

* Andrew Morton <[email protected]> [2008-01-17 02:35:14]:

>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
>
> - selinux is busted on one of my two selinux-enabled test machines.
>
> - suspend-to-ram and suspend-to-disk are totally hosed on one of my test
> machines. I guess I get to bisect this.
>
> - git-nfsd is dropped due to conflicts with git-nfs
>
> - git-newsetup is dropped due to conflicts with git-x86 (I think)
>
> - git-perfmon is dropped due to conflicts with git-x86 (I think)
>
> - git-kgdb is dropped due to conflicts with git-damn-near-everything
>
> - git-block is dropped due to conflicts with the IDE tree
>
> - kvm probably doesn't work properly because I couldn't be bothered fixing
> the conflicts between git-kvm and the driver tree
>
> - the volume of rejects and build errors which are caused by subsystem
> maintainers fiddling with other people's stuff is quite out of control.
> Something needs to happen here.

Hi, Andrew,

May be it was one of the conflicts, but my system fails to get
ethernet working with this version. I see

e100: Intel(R) PRO/100 Network Driver, 3. 5.23-k4-NAPI
e100: Copyright(c) 1999-2006 Intel Corporation
ACPI: PCI Interrupt 0000:04:08.0[A] -> GSI 20 (level, low) -> IRQ 20
modprobe:2584 conflicting cache attribute 50000000-50001000
uncached<->default
e100: 0000:04:08.0: e100_probe: Cannot map device registers, aborting.
ACPI: PCI interrupt for device 0000:04:08.0 disabled
e100: probe of 0000:04:08.0 failed with error -12

Other interesting boot information

Using ACPI (MADT) for SMP configuration information
PM: Registered nosave memory: 000000000008f000 - 00000000000a0000
PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
PM: Registered nosave memory: 000000003e5d1000 - 000000003e6e5000
PM: Registered nosave memory: 000000003f574000 - 000000003f57c000
PM: Registered nosave memory: 000000003f62d000 - 000000003f631000
PM: Registered nosave memory: 000000003f6a7000 - 000000003f6e9000
PM: Registered nosave memory: 000000003f6ed000 - 000000003f6ff000
Allocating PCI resources starting at 50000000 (gap: 40000000:bff80000)

PCI: Bridge: 0000:00:1c.0
IO window: disabled.
MEM window:
0x50300000-0x503fffff
PREFETCH window: disabled.
PCI: Bridge: 0000:00:1c.2
IO window: disabled.
MEM window:
0x50400000-0x504fffff
PREFETCH window: disabled.
PCI: Bridge: 0000:00:1c.3
IO window: disabled.
MEM window:
0x50500000-0x505fffff
PREFETCH window: disabled.
PCI: Bridge: 0000:00:1e.0
IO window: 1000-1fff
MEM window:
0x50000000-0x500fffff
PREFETCH window: disabled.

I am yet to get down to the root cause, thought I'd report it first to
the x86 and ACPI list to see if someone has seen the problem before.

--
Warm Regards,
Balbir Singh
Linux Technology Center
IBM, ISTL

2008-01-17 13:22:43

by Cong Wang

[permalink] [raw]
Subject: [-mm Patch] UML: fix a building error

On Thu, Jan 17, 2008 at 02:35:14AM -0800, Andrew Morton wrote:
>
>ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
>

Hi, Andrew!

Building uml failed in current -mm tree. ;(

The below patch fixes this building error:
...
include/asm/arch/system.h:8:22: error: asm/nops.h: No such file or directory
...

Cc: Jeff Dike <[email protected]>
Signed-off-by: WANG Cong <[email protected]>

---

Index: linux/include/asm-um/nops.h
===================================================================
--- /dev/null
+++ linux/include/asm-um/nops.h
@@ -0,0 +1,6 @@
+#ifndef __UM_NOPS_H
+#define __UM_NOPS_H
+
+#include "asm/arch/nops.h"
+
+#endif

2008-01-17 13:34:10

by Kamalesh Babulal

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

Hi Andrew,

The kernel build fails with following error

arch/x86/kernel/mpparse_32.c: In function `smp_read_mpc_oem':
arch/x86/kernel/mpparse_32.c:318: error: `oemtable' undeclared (first use in this function)
arch/x86/kernel/mpparse_32.c:318: error: (Each undeclared identifier is reported only once
arch/x86/kernel/mpparse_32.c:318: error: for each function it appears in.)
arch/x86/kernel/mpparse_32.c:332: error: `mpc_phys' undeclared (first use in this function)


This patch is build tested only.


Signed-off-by: Kamalesh Babulal <[email protected]>
---
--- linux-2.6.24-rc8/arch/x86/kernel/mpparse_32.c 2008-01-17 18:02:45.000000000 +0530
+++ linux-2.6.24-rc8/arch/x86/kernel/~mpparse_32.c 2008-01-17 18:17:29.000000000 +0530
@@ -32,6 +32,7 @@
#include <mach_apic.h>
#include <mach_apicdef.h>
#include <mach_mpparse.h>
+#include <asm/mpspec_def.h>

/* Have we found an MP table */
int smp_found_config;
@@ -329,7 +330,7 @@ static void __init smp_read_mpc_oem(unsi
oem_length = oemtable->oem_length;
/* Unmap header and map full base table */
early_iounmap(oemtable, sizeof(struct mp_config_oemtable));
- oemtable = (struct mp_config_oemtable *)early_ioremap(mpc_phys,
+ oemtable = (struct mp_config_oemtable *)early_ioremap(oemtable_phys,
oem_length);
if (!oemtable) {
printk("MPTABLE: full oemtable map error!\n");

2008-01-17 13:54:42

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 kernel panic while bootup

Hi Andrew,

The 2.6.24-rc8-mm1 kernel panic while bootup with bootup message

Dual Core AMD Opteron(tm) Processor 270 stepping 02
Unable to handle kernel paging request at 0000000000004a78 RIP:
[<ffffffff8026f966>] __alloc_pages+0x40/0x31e
PGD 0
Oops: 0000 [1] SMP
last sysfs file:
CPU 0
Modules linked in:
Pid: 1, comm: swapper Not tainted 2.6.24-rc8-mm1-autotest #1
RIP: 0010:[<ffffffff8026f966>] [<ffffffff8026f966>] __alloc_pages+0x40/0x31e
RSP: 0000:ffff81003f9b9c60 EFLAGS: 00010246
RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000002
RDX: 0000000000004a70 RSI: 0000000000000605 RDI: ffffffff805a6f66
RBP: 00000000000000d0 R08: 00380800000000c0 R09: 000000000003db89
R10: ffffe20000fe6880 R11: ffffffff806287b0 R12: 0000000000004a70
R13: 0000000000000000 R14: 0000000000000286 R15: ffff81003f9b6000
FS: 0000000000000000(0000) GS:ffffffff80664000(0000) knlGS:0000000000000000
CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 0000000000004a78 CR3: 0000000000201000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process swapper (pid: 1, threadinfo ffff81003f9b8000, task ffff81003f9b6000)
Stack: 000000000000c0d0 0000001000000000 ffffffff8027574f ffff81000000e5c8
000000000000c0d0 ffffffff8026f320 ffff81003f9b9c88 0000000000000000
0000000000000000 ffffffff807fac90 ffffffff807fac90 0000000000000286
Call Trace:
[<ffffffff8027574f>] ? zone_statistics+0x3f/0x97
[<ffffffff8026f320>] ? get_page_from_freelist+0x463/0x5b5
[<ffffffff8028d7b8>] ? new_slab+0x10e/0x261
[<ffffffff8028d92b>] ? get_new_slab+0x20/0xaa
[<ffffffff8028dad8>] ? __slab_alloc+0x123/0x182
[<ffffffff8026e5a1>] ? process_zones+0x79/0x15e
[<ffffffff8028db73>] ? kmem_cache_alloc_node+0x3c/0x70
[<ffffffff8026e5a1>] ? process_zones+0x79/0x15e
[<ffffffff804f15b9>] ? _spin_lock_irqsave+0x9/0xe
[<ffffffff8026e6b9>] ? pageset_cpuup_callback+0x33/0x91
[<ffffffff804f37b9>] ? notifier_call_chain+0x29/0x56
[<ffffffff80254b09>] ? _cpu_up+0x68/0x101
[<ffffffff80254bf6>] ? cpu_up+0x54/0x61
[<ffffffff808a4581>] ? kernel_init+0xbf/0x2ef
[<ffffffff804f15a1>] ? _spin_unlock_irq+0x9/0xc
[<ffffffff8020cc08>] ? child_rip+0xa/0x12
[<ffffffff808a44c2>] ? kernel_init+0x0/0x2ef
[<ffffffff8020cbfe>] ? child_rip+0x0/0x12


Code: 83 ec 38 65 4c 8b 3c 25 00 00 00 00 83 e0 10 89 44 24 0c 74 16 be 05 06 00 00 48 c7 c7 66 6f 5a 80 e8 a9 f4 fb ff e8 20 05 28 00 <49> 83 7c 24 08 00 49 8d 44 24 08 48 89 44 24 18 75 1a 48 c7 44
RIP [<ffffffff8026f966>] __alloc_pages+0x40/0x31e
RSP <ffff81003f9b9c60>
CR2: 0000000000004a78

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

2008-01-17 13:58:20

by Cong Wang

[permalink] [raw]
Subject: [-mm Patch] uml: fix a building error


This patch fixes this building error:
...
drivers/char/mem.c: In function ‘read_mem’:
drivers/char/mem.c:136: error: implicit declaration of function ‘unxlate_dev_mem_ptr’
...

Cc: Jeff Dike <[email protected]>
Signed-off-by: WANG Cong <[email protected]>

---

Index: linux/include/asm-um/io.h
===================================================================
--- linux.orig/include/asm-um/io.h
+++ linux/include/asm-um/io.h
@@ -27,6 +27,7 @@ static inline void * phys_to_virt(unsign
* access
*/
#define xlate_dev_mem_ptr(p) __va(p)
+#define unxlate_dev_mem_ptr(p, ptr)

/*
* Convert a virtual cached pointer to an uncached pointer

2008-01-17 14:05:37

by Martin Schwidefsky

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Build Failure on S390x

On Thu, 2008-01-17 at 18:11 +0530, Kamalesh Babulal wrote:
> The 2.6.24-rc8-mm1 kernel build fails on S390x with build error

This is the fallout from the merge conflict between git390 and Gregs git
tree. This will stay broken until Gregs tree has been merged. Please
ignore the compile failures for now.

--
blue skies,
Martin.

"Reality continues to ruin my life." - Calvin.

2008-01-17 14:27:13

by Ingo Molnar

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


* Kamalesh Babulal <[email protected]> wrote:

> Hi Andrew,
>
> The kernel build fails with following error
>
> arch/x86/kernel/mpparse_32.c: In function `smp_read_mpc_oem':
> arch/x86/kernel/mpparse_32.c:318: error: `oemtable' undeclared (first use in this function)
> arch/x86/kernel/mpparse_32.c:318: error: (Each undeclared identifier is reported only once
> arch/x86/kernel/mpparse_32.c:318: error: for each function it appears in.)
> arch/x86/kernel/mpparse_32.c:332: error: `mpc_phys' undeclared (first use in this function)

thanks, applied.

Ingo

2008-01-17 15:23:48

by Jiri Slaby

[permalink] [raw]
Subject: do_md_run returned -22 [Was: 2.6.24-rc8-mm1]

On 01/17/2008 11:35 AM, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/

still the same md issue (do_md_run returns -22=EINVAL) as in -rc6-mm1 reported
by Thorsten here:
http://lkml.org/lkml/2007/12/27/45

Is there around any fix for this?

Having 0.90 raid 0 and 1, commenting this out helps:
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 8633bd4..9b8ecc8 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -3292,8 +3292,8 @@ static int do_md_run(mddev_t * mddev)
* Analyze all RAID superblock(s)
*/
if (!mddev->raid_disks) {
- if (!mddev->persistent)
- return -EINVAL;
+/* if (!mddev->persistent)
+ return -EINVAL;*/
analyze_sbs(mddev);
}

The persistency is marked even in analyze_sbs->validate_super, I guess?

2008-01-17 16:16:14

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Build Failure on scsi driver

Hi Andrew,

The kernel build fails with following error

drivers/scsi/aha152x.o: In function `aha152x_host_reset_host':
/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/aha152x.c:1324: multiple definition of `aha152x_host_reset_host'
drivers/scsi/pcmcia/built-in.o:/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/aha152x.c:1324: first defined here
drivers/scsi/aha152x.o: In function `aha152x_release':
/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/aha152x.c:908: multiple definition of `aha152x_release'
drivers/scsi/pcmcia/built-in.o:/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/aha152x.c:908: first defined here
ld: Warning: size of symbol `aha152x_release' changed from 68 in drivers/scsi/pcmcia/built-in.o to 100 in drivers/scsi/aha152x.o
drivers/scsi/aha152x.o: In function `aha152x_probe_one':
/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/aha152x.c:772: multiple definition of `aha152x_probe_one'
drivers/scsi/pcmcia/built-in.o:/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/aha152x.c:772: first defined here
drivers/scsi/fdomain.o:(.data+0x0): multiple definition of `fdomain_driver_template'
drivers/scsi/pcmcia/built-in.o:(.data+0x5a0): first defined here
drivers/scsi/fdomain.o: In function `fdomain_16x0_bus_reset':
/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/fdomain.c:1568: multiple definition of `fdomain_16x0_bus_reset'
drivers/scsi/pcmcia/built-in.o:/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/fdomain.c:1568: first defined here
drivers/scsi/fdomain.o: In function `__fdomain_16x0_detect':
/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/fdomain.c:894: multiple definition of `__fdomain_16x0_detect'
drivers/scsi/pcmcia/built-in.o:/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/fdomain.c:894: first defined here
ld: Warning: size of symbol `__fdomain_16x0_detect' changed from 1206 in drivers/scsi/pcmcia/built-in.o to 1700 in drivers/scsi/fdomain.o
drivers/scsi/fdomain.o: In function `fdomain_setup':
/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/fdomain.c:554: multiple definition of `fdomain_setup'
drivers/scsi/pcmcia/built-in.o:/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/fdomain.c:554: first defined here
make[2]: *** [drivers/scsi/built-in.o] Error 1
make[1]: *** [drivers/scsi] Error 2
make: *** [drivers] Error 2


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

2008-01-17 16:49:25

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 (BUG: sched_rt)

On Thu, 17 Jan 2008 02:35:14 -0800 Andrew Morton wrote:

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

Booting on x86_64 SMP gives me:

------------[ cut here ]------------
kernel BUG at kernel/sched_rt.c:228!
invalid opcode: 0000 [1] SMP
last sysfs file: /sys/devices/pci0000:40/0000:40:0c.0/0000:41:00.0/0000:42:08.0/class
CPU 2
Modules linked in: parport_pc lp parport tg3 cciss ehci_hcd ohci_hcd uhci_hcd
Pid: 12738, comm: 5-1.test Not tainted 2.6.24-rc8-mm1 #1
RIP: 0010:[<ffffffff8023077b>] [<ffffffff8023077b>] update_curr_rt+0x27/0x87
RSP: 0018:ffff8101e6805e38 EFLAGS: 00010093
RAX: 0000000000000000 RBX: ffff81027f8591e0 RCX: ffff81000100fb80
RDX: 0000000000000000 RSI: ffff81026eb8b1e0 RDI: ffff810001014980
RBP: ffff8101e6805e48 R08: ffffffff8067d960 R09: 00000000000031c1
R10: 0000000000000000 R11: 0000000000000246 R12: ffff81026eb8b1e0
R13: ffff810001014980 R14: 0000000000000001 R15: 00000000ffffffff
FS: 0000000041a07940(0063) GS:ffff81027f80d700(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 000000338b00c2d0 CR3: 0000000254169000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process 5-1.test (pid: 12738, threadinfo ffff8101e6804000, task ffff81026c8de8f0)
Stack: 0000000000000000 ffff81026eb8b348 ffff8101e6805e78 ffffffff80231c9b
0000000000000000 ffff81026eb8b1e0 ffff810001014980 ffff81026eb8b1e0
ffff8101e6805e98 ffffffff8022f1bb ffff8101e6805ea8 ffff810001014980
Call Trace:
[<ffffffff80231c9b>] dequeue_task_rt+0x1f/0x5e
[<ffffffff8022f1bb>] dequeue_task+0x13/0x1e
[<ffffffff8022f1e8>] deactivate_task+0x22/0x2a
[<ffffffff802343f9>] sched_setscheduler+0x22e/0x32f
[<ffffffff8023486a>] do_sched_setscheduler+0x5f/0x6e
[<ffffffff802348a0>] sys_sched_setscheduler+0x14/0x18
[<ffffffff8020c0f9>] tracesys+0xdc/0xe1


Code: 48 89 c8 c3 55 48 89 e5 53 48 83 ec 08 48 8b 9f a8 07 00 00 8b 83 b0 01 00 00 48 8b 8b 98 01 00 00 83 f8 01 74 09 83 f8 02 74 04 <0f> 0b eb fe 48 8b 97 c8 07 00 00 48 2b 53 68 b8 00 00 00 00 48
RIP [<ffffffff8023077b>] update_curr_rt+0x27/0x87
RSP <ffff8101e6805e38>
---[ end trace 792ff0e66da42f45 ]---


.config attached.

---
~Randy


Attachments:
kconfig.~1 (43.25 kB)

2008-01-17 17:15:26

by Peter Zijlstra

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 (BUG: sched_rt)


On Thu, 2008-01-17 at 08:48 -0800, Randy Dunlap wrote:
> On Thu, 17 Jan 2008 02:35:14 -0800 Andrew Morton wrote:
>
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
>
> Booting on x86_64 SMP gives me:
>
> ------------[ cut here ]------------
> kernel BUG at kernel/sched_rt.c:228!
> invalid opcode: 0000 [1] SMP
> last sysfs file: /sys/devices/pci0000:40/0000:40:0c.0/0000:41:00.0/0000:42:08.0/class
> CPU 2
> Modules linked in: parport_pc lp parport tg3 cciss ehci_hcd ohci_hcd uhci_hcd
> Pid: 12738, comm: 5-1.test Not tainted 2.6.24-rc8-mm1 #1
> RIP: 0010:[<ffffffff8023077b>] [<ffffffff8023077b>] update_curr_rt+0x27/0x87
> RSP: 0018:ffff8101e6805e38 EFLAGS: 00010093
> RAX: 0000000000000000 RBX: ffff81027f8591e0 RCX: ffff81000100fb80
> RDX: 0000000000000000 RSI: ffff81026eb8b1e0 RDI: ffff810001014980
> RBP: ffff8101e6805e48 R08: ffffffff8067d960 R09: 00000000000031c1
> R10: 0000000000000000 R11: 0000000000000246 R12: ffff81026eb8b1e0
> R13: ffff810001014980 R14: 0000000000000001 R15: 00000000ffffffff
> FS: 0000000041a07940(0063) GS:ffff81027f80d700(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> CR2: 000000338b00c2d0 CR3: 0000000254169000 CR4: 00000000000006e0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> Process 5-1.test (pid: 12738, threadinfo ffff8101e6804000, task ffff81026c8de8f0)
> Stack: 0000000000000000 ffff81026eb8b348 ffff8101e6805e78 ffffffff80231c9b
> 0000000000000000 ffff81026eb8b1e0 ffff810001014980 ffff81026eb8b1e0
> ffff8101e6805e98 ffffffff8022f1bb ffff8101e6805ea8 ffff810001014980
> Call Trace:
> [<ffffffff80231c9b>] dequeue_task_rt+0x1f/0x5e
> [<ffffffff8022f1bb>] dequeue_task+0x13/0x1e
> [<ffffffff8022f1e8>] deactivate_task+0x22/0x2a
> [<ffffffff802343f9>] sched_setscheduler+0x22e/0x32f
> [<ffffffff8023486a>] do_sched_setscheduler+0x5f/0x6e
> [<ffffffff802348a0>] sys_sched_setscheduler+0x14/0x18
> [<ffffffff8020c0f9>] tracesys+0xdc/0xe1
>
>
> Code: 48 89 c8 c3 55 48 89 e5 53 48 83 ec 08 48 8b 9f a8 07 00 00 8b 83 b0 01 00 00 48 8b 8b 98 01 00 00 83 f8 01 74 09 83 f8 02 74 04 <0f> 0b eb fe 48 8b 97 c8 07 00 00 48 2b 53 68 b8 00 00 00 00 48
> RIP [<ffffffff8023077b>] update_curr_rt+0x27/0x87
> RSP <ffff8101e6805e38>
> ---[ end trace 792ff0e66da42f45 ]---


Hmm, that would be me messing up in : 4c121cce

- if (!task_has_rt_policy(curr))
- return;
+ BUG_ON(!task_has_rt_policy(curr));


Does reverting that fix it?


2008-01-17 17:15:45

by Peter Zijlstra

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 (BUG: sched_rt)


On Thu, 2008-01-17 at 08:48 -0800, Randy Dunlap wrote:
> On Thu, 17 Jan 2008 02:35:14 -0800 Andrew Morton wrote:
>
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
>
> Booting on x86_64 SMP gives me:
>
> ------------[ cut here ]------------
> kernel BUG at kernel/sched_rt.c:228!
> invalid opcode: 0000 [1] SMP
> last sysfs file: /sys/devices/pci0000:40/0000:40:0c.0/0000:41:00.0/0000:42:08.0/class
> CPU 2
> Modules linked in: parport_pc lp parport tg3 cciss ehci_hcd ohci_hcd uhci_hcd
> Pid: 12738, comm: 5-1.test Not tainted 2.6.24-rc8-mm1 #1
> RIP: 0010:[<ffffffff8023077b>] [<ffffffff8023077b>] update_curr_rt+0x27/0x87
> RSP: 0018:ffff8101e6805e38 EFLAGS: 00010093
> RAX: 0000000000000000 RBX: ffff81027f8591e0 RCX: ffff81000100fb80
> RDX: 0000000000000000 RSI: ffff81026eb8b1e0 RDI: ffff810001014980
> RBP: ffff8101e6805e48 R08: ffffffff8067d960 R09: 00000000000031c1
> R10: 0000000000000000 R11: 0000000000000246 R12: ffff81026eb8b1e0
> R13: ffff810001014980 R14: 0000000000000001 R15: 00000000ffffffff
> FS: 0000000041a07940(0063) GS:ffff81027f80d700(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> CR2: 000000338b00c2d0 CR3: 0000000254169000 CR4: 00000000000006e0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> Process 5-1.test (pid: 12738, threadinfo ffff8101e6804000, task ffff81026c8de8f0)
> Stack: 0000000000000000 ffff81026eb8b348 ffff8101e6805e78 ffffffff80231c9b
> 0000000000000000 ffff81026eb8b1e0 ffff810001014980 ffff81026eb8b1e0
> ffff8101e6805e98 ffffffff8022f1bb ffff8101e6805ea8 ffff810001014980
> Call Trace:
> [<ffffffff80231c9b>] dequeue_task_rt+0x1f/0x5e
> [<ffffffff8022f1bb>] dequeue_task+0x13/0x1e
> [<ffffffff8022f1e8>] deactivate_task+0x22/0x2a
> [<ffffffff802343f9>] sched_setscheduler+0x22e/0x32f
> [<ffffffff8023486a>] do_sched_setscheduler+0x5f/0x6e
> [<ffffffff802348a0>] sys_sched_setscheduler+0x14/0x18
> [<ffffffff8020c0f9>] tracesys+0xdc/0xe1
>
>
> Code: 48 89 c8 c3 55 48 89 e5 53 48 83 ec 08 48 8b 9f a8 07 00 00 8b 83 b0 01 00 00 48 8b 8b 98 01 00 00 83 f8 01 74 09 83 f8 02 74 04 <0f> 0b eb fe 48 8b 97 c8 07 00 00 48 2b 53 68 b8 00 00 00 00 48
> RIP [<ffffffff8023077b>] update_curr_rt+0x27/0x87
> RSP <ffff8101e6805e38>
> ---[ end trace 792ff0e66da42f45 ]---

Hmm that would be me messing up in: 4c121cce

- if (!task_has_rt_policy(curr))
- return;
+ BUG_ON(!task_has_rt_policy(curr));

Does reverting that help?

Strange thing is, at the time I was pretty sure that ought not
happen... /me reaches for a brown paper bag.

2008-01-17 17:29:27

by Dhaval Giani

[permalink] [raw]
Subject: x86 refuses to build [Re: 2.6.24-rc8-mm1]

On Thu, Jan 17, 2008 at 02:35:14AM -0800, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
>

Hi Ingo, Thomas,

x86 fails to build with

arch/x86/mm/discontig_32.c:39:23: bios_ebda.h:
No such file or directory
make[1]: *** [arch/x86/mm/discontig_32.o] Error 1
make: *** [arch/x86/mm] Error 2

Applying a trivial fix like,

---
arch/x86/mm/discontig_32.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6.24-rc8/arch/x86/mm/discontig_32.c
===================================================================
--- linux-2.6.24-rc8.orig/arch/x86/mm/discontig_32.c
+++ linux-2.6.24-rc8/arch/x86/mm/discontig_32.c
@@ -36,7 +36,7 @@
#include <asm/e820.h>
#include <asm/setup.h>
#include <asm/mmzone.h>
-#include <bios_ebda.h>
+#include <asm/bios_ebda.h>

struct pglist_data *node_data[MAX_NUMNODES] __read_mostly;
EXPORT_SYMBOL(node_data);


causes,

kernel/built-in.o(.text+0x5131): In function `move_task_off_dead_cpu':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
kernel/built-in.o(.text+0x5156):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
kernel/built-in.o(.text+0x5c0d): In function `cpu_to_allnodes_group':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
kernel/built-in.o(.text+0x5c2e):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
kernel/built-in.o(.text+0x5e84): In function `build_sched_domains':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
kernel/built-in.o(.text+0x5ea3):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
kernel/built-in.o(.text+0x60ab):include/asm/topology.h:43: undefined
reference to `x86_cpu_to_node_map_early_ptr'
kernel/built-in.o(.text+0x60ca):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
kernel/built-in.o(.text+0x7239): In function `sched_create_group':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
kernel/built-in.o(.text+0x7251):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
kernel/built-in.o(.text+0x7274):include/asm/topology.h:43: undefined
reference to `x86_cpu_to_node_map_early_ptr'
kernel/built-in.o(.text+0x7293):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
kernel/built-in.o(.text+0x72b6):include/asm/topology.h:43: undefined
reference to `x86_cpu_to_node_map_early_ptr'
kernel/built-in.o(.text+0x72d5):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
kernel/built-in.o(.text+0x72f8):include/asm/topology.h:43: undefined
reference to `x86_cpu_to_node_map_early_ptr'
kernel/built-in.o(.text+0x7317):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
kernel/built-in.o(.text+0xb5d4): In function `profile_cpu_callback':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
kernel/built-in.o(.text+0xb5f3):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
kernel/built-in.o(.text+0x12722): In function `init_timers_cpu':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
kernel/built-in.o(.text+0x12741):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
kernel/built-in.o(.text+0x17bd9): In function `sys_getcpu':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
kernel/built-in.o(.text+0x17bf8):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
kernel/built-in.o(.init.text+0x94a): In function `create_hash_tables':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
kernel/built-in.o(.init.text+0x96b):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x4ea1): In function `nr_free_zone_pages':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x4ec8):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x5c29): In function `process_zones':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x5c50):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x7c0a): In function `max_sane_readahead':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x7c2f):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x7c96):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0xadcc): In function `zone_reclaim':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0xadf2):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0xb6e1): In function `refresh_cpu_vm_stats':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0xb70a):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0xb7a9): In function `zone_statistics':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0xb7cf):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x18757): In function `alloc_fresh_huge_page_node':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x1877d):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x1a49f): In function `new_node_page':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x1a4c5):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x1ac53): In function `zonelist_policy':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x1ac72):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x1ad68): In function `slab_node':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x1ad8e):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x1ea46): In function `init_reap_node':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x1ea65):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x1eec8): In function `cpuup_canceled':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x1eeef):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x1f050): In function `cpuup_prepare':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x1f075):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x1f418): In function `kmem_getpages':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x1f43e):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x1ffc1): In function `check_spinlock_acquired':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x1ffe7):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x20039): In function `do_drain':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x20061):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x20b19): In function `cache_alloc_refill':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x20b47):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x20ee3): In function `alternate_node_alloc':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x20f09):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x21309): In function `cache_flusharray':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x21332):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x214c9): In function `kmem_cache_alloc':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x214ef):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x215be): In function `kmem_cache_alloc_node':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x215e4):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x2160b):include/asm/topology.h:43: undefined
reference to `x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x21631):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x21827): In function `__kmalloc':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x2184d):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x219ad): In function `__kmalloc_track_caller':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x219d3):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x21b06): In function `kmem_cache_free':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x21b25):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x21d29): In function `kfree':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x21d48):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x220a9): In function `do_tune_cpucache':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x220c8):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x2216b):include/asm/topology.h:43: undefined
reference to `x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x2218a):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x221a2):include/asm/topology.h:43: undefined
reference to `x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x221c1):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x221de):include/asm/topology.h:43: undefined
reference to `x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x221fd):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x223af): In function `cache_reap':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x223d5):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x2429b): In function `new_page_node':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x242c1):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x2477b): In function `percpu_populate':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x247a2):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text+0x248c7): In function `max_pages':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text+0x248ed):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.init.text+0x1f8a): In function `kmem_cache_init':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.init.text+0x1fae):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
mm/built-in.o(.text.init.refok+0x232): In function `setup_cpu_cache':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
mm/built-in.o(.text.init.refok+0x258):include/asm/topology.h:48:
undefined reference to `per_cpu__x86_cpu_to_node_map'
drivers/built-in.o(.text+0x8152e): In function `unregister_cpu':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
drivers/built-in.o(.text+0x8154d):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
drivers/built-in.o(.text+0x815b2): In function `register_cpu':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
drivers/built-in.o(.text+0x815d4):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
drivers/built-in.o(.text+0x8160b):include/asm/topology.h:43: undefined
reference to `x86_cpu_to_node_map_early_ptr'
drivers/built-in.o(.text+0x8162a):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
drivers/built-in.o(.text+0x84a90): In function `register_one_node':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
drivers/built-in.o(.text+0x84aaf):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
arch/x86/oprofile/built-in.o(.text+0x21b): In function
`alloc_cpu_buffers':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
arch/x86/oprofile/built-in.o(.text+0x23a):include/asm/topology.h:48:
undefined reference to `per_cpu__x86_cpu_to_node_map'
net/built-in.o(.text+0x158de): In function `flow_cache_cpu_prepare':
include/asm/topology.h:43: undefined reference to
`x86_cpu_to_node_map_early_ptr'
net/built-in.o(.text+0x158f6):include/asm/topology.h:48: undefined
reference to `per_cpu__x86_cpu_to_node_map'
make: *** [.tmp_vmlinux1] Error 1
[root@llm11 linux-2.6.24-rc8]#

[sorry, its a copy paste for now].

.config follows

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

#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_TREE=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=15
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not set
# CONFIG_CGROUP_NS is not set
# CONFIG_CPUSETS is not set
CONFIG_FAIR_GROUP_SCHED=y
# CONFIG_FAIR_USER_SCHED is not set
CONFIG_FAIR_CGROUP_SCHED=y
# CONFIG_CGROUP_CPUACCT is not set
# CONFIG_RESOURCE_COUNTERS is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_RELAY=y
CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set
# CONFIG_IPC_NS is not set
# CONFIG_USER_NS is not set
# CONFIG_PID_NS is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SLABINFO=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 is not set
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_LBD=y
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set
# CONFIG_BLK_DEV_BSG is not set

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

#
# Processor type and features
#
# CONFIG_TICK_ONESHOT is not set
# CONFIG_NO_HZ is not set
# CONFIG_HIGH_RES_TIMERS is not set
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_SMP=y
# CONFIG_X86_PC is not set
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
CONFIG_X86_GENERICARCH=y
# CONFIG_X86_ES7000 is not set
# CONFIG_X86_RDC321X is not set
# CONFIG_X86_VSMP is not set
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
# CONFIG_PARAVIRT_GUEST is not set
CONFIG_ACPI_SRAT=y
CONFIG_HAVE_ARCH_PARSE_SRAT=y
CONFIG_X86_SUMMIT_NUMA=y
CONFIG_X86_CYCLONE_TIMER=y
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
CONFIG_MPENTIUM4=y
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
# CONFIG_MPSC is not set
# CONFIG_MCORE2 is not set
# CONFIG_GENERIC_CPU is not set
CONFIG_X86_GENERIC=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=7
CONFIG_X86_XADD=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=4
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
# CONFIG_IOMMU_HELPER is not set
CONFIG_ARCH_SUPPORTS_KVM=y
CONFIG_NR_CPUS=32
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set
CONFIG_RCU_TRACE=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_NONFATAL=y
CONFIG_X86_MCE_P4THERMAL=y
CONFIG_VM86=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_X86_REBOOTFIXUPS is not set
CONFIG_MICROCODE=y
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
# CONFIG_NOHIGHMEM is not set
# CONFIG_HIGHMEM4G is not set
CONFIG_HIGHMEM64G=y
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_HIGHMEM=y
CONFIG_X86_PAE=y
CONFIG_NUMA=y
CONFIG_NODES_SHIFT=3
CONFIG_HAVE_ARCH_BOOTMEM_NODE=y
CONFIG_ARCH_HAVE_MEMORY_PRESENT=y
CONFIG_NEED_NODE_MEMMAP_SIZE=y
CONFIG_HAVE_ARCH_ALLOC_REMAP=y
CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_SELECT_MEMORY_MODEL=y
# CONFIG_FLATMEM_MANUAL is not set
CONFIG_DISCONTIGMEM_MANUAL=y
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_DISCONTIGMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_NEED_MULTIPLE_NODES=y
CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_SPARSEMEM_STATIC=y
# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_MIGRATION=y
CONFIG_RESOURCES_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_NR_QUICK=1
CONFIG_VIRT_TO_BUS=y
# CONFIG_HIGHPTE is not set
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_EFI is not set
# CONFIG_IRQBALANCE is not set
CONFIG_BOOT_IOREMAP=y
CONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
# CONFIG_SCHED_HRTICK is not set
CONFIG_KEXEC=y
# CONFIG_CRASH_DUMP is not set
CONFIG_PHYSICAL_START=0x100000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=0x100000
CONFIG_HOTPLUG_CPU=y
CONFIG_COMPAT_VDSO=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
# CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID is not set

#
# Power management options
#
CONFIG_PM=y
CONFIG_PM_LEGACY=y
CONFIG_PM_DEBUG=y
# CONFIG_PM_VERBOSE is not set
CONFIG_CAN_PM_TRACE=y
# CONFIG_PM_TRACE_RTC is not set
CONFIG_PM_SLEEP_SMP=y
CONFIG_PM_SLEEP=y
CONFIG_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
# CONFIG_HIBERNATION is not set
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
# CONFIG_ACPI_PROCFS is not set
CONFIG_ACPI_PROCFS_POWER=y
CONFIG_ACPI_SYSFS_POWER=y
CONFIG_ACPI_PROC_EVENT=y
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
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=2001
CONFIG_ACPI_DEBUG=y
# CONFIG_ACPI_DEBUG_FUNC_TRACE is not set
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=y
# CONFIG_ACPI_SBS is not set
# CONFIG_APM is not set

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

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

#
# shared options
#
CONFIG_X86_SPEEDSTEP_LIB=y
# CONFIG_CPU_IDLE is not set

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

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

#
# Networking
#
CONFIG_NET=y

#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
# CONFIG_NET_KEY 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=y
CONFIG_IP_PNP_DHCP=y
# CONFIG_IP_PNP_BOOTP is not set
# CONFIG_IP_PNP_RARP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
# CONFIG_INET_TUNNEL is not set
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y
# CONFIG_INET_LRO is not set
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
CONFIG_IPV6=m
# CONFIG_IPV6_PRIVACY is not set
# CONFIG_IPV6_ROUTER_PREF is not set
# CONFIG_IPV6_OPTIMISTIC_DAD is not set
# CONFIG_INET6_AH is not set
# CONFIG_INET6_ESP is not set
# CONFIG_INET6_IPCOMP is not set
# CONFIG_IPV6_MIP6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
# CONFIG_INET6_XFRM_MODE_BEET is not set
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
# CONFIG_IPV6_SIT is not set
# CONFIG_IPV6_TUNNEL is not set
# CONFIG_IPV6_MULTIPLE_TABLES is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETFILTER is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_SCHED is not set

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set

#
# Wireless
#
# CONFIG_CFG80211 is not set
# CONFIG_WIRELESS_EXT is not set
# CONFIG_MAC80211 is not set
# CONFIG_IEEE80211 is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
CONFIG_CONNECTOR=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=y
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
# CONFIG_BLK_DEV_XIP is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_MISC_DEVICES=y
# CONFIG_IBM_ASM is not set
# CONFIG_PHANTOM is not set
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_THINKPAD_ACPI is not set
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y

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

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

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

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

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

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

#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_FC_ATTRS=y
# CONFIG_SCSI_ISCSI_ATTRS is not set
CONFIG_SCSI_SAS_ATTRS=y
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
CONFIG_SCSI_LOWLEVEL=y
# CONFIG_ISCSI_TCP is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
CONFIG_SCSI_AIC7XXX=y
CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
CONFIG_AIC7XXX_RESET_DELAY_MS=5000
CONFIG_AIC7XXX_DEBUG_ENABLE=y
CONFIG_AIC7XXX_DEBUG_MASK=0
CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
CONFIG_SCSI_AIC7XXX_OLD=y
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_ARCMSR is not set
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=y
CONFIG_MEGARAID_MAILBOX=y
CONFIG_MEGARAID_LEGACY=y
CONFIG_MEGARAID_SAS=y
# 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_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_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_SRP is not set
# CONFIG_ATA is not set
CONFIG_MD=y
# CONFIG_BLK_DEV_MD is not set
CONFIG_BLK_DEV_DM=y
# CONFIG_DM_DEBUG is not set
# CONFIG_DM_CRYPT is not set
# 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_DM_UEVENT is not set
CONFIG_FUSION=y
CONFIG_FUSION_SPI=y
CONFIG_FUSION_FC=y
CONFIG_FUSION_SAS=y
CONFIG_FUSION_MAX_SGE=128
CONFIG_FUSION_CTL=y
# CONFIG_FUSION_LOGGING is not set

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

#
# Subsystem Options
#
# CONFIG_IEEE1394_VERBOSEDEBUG is not set

#
# Controllers
#

#
# Texas Instruments PCILynx requires I2C
#
CONFIG_IEEE1394_OHCI1394=y

#
# Protocols
#
# CONFIG_IEEE1394_VIDEO1394 is not set
# CONFIG_IEEE1394_SBP2 is not set
# CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set
# CONFIG_IEEE1394_ETH1394 is not set
# CONFIG_IEEE1394_DV1394 is not set
CONFIG_IEEE1394_RAWIO=y
# CONFIG_I2O is not set
CONFIG_MACINTOSH_DRIVERS=y
# CONFIG_MAC_EMUMOUSEBTN is not set
CONFIG_NETDEVICES=y
# CONFIG_NETDEVICES_MULTIQUEUE is not set
# CONFIG_DUMMY is not set
CONFIG_BONDING=y
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_VETH is not set
# CONFIG_NET_SB1000 is not set
# CONFIG_ARCNET is not set
# CONFIG_PHYLIB is not set
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set
CONFIG_NET_TULIP=y
# CONFIG_DE2104X is not set
CONFIG_TULIP=y
# CONFIG_TULIP_MWI is not set
# CONFIG_TULIP_MMIO is not set
# CONFIG_TULIP_NAPI is not set
# CONFIG_DE4X5 is not set
# CONFIG_WINBOND_840 is not set
# CONFIG_DM9102 is not set
# CONFIG_ULI526X is not set
# CONFIG_HP100 is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
CONFIG_B44=y
CONFIG_B44_PCI_AUTOSELECT=y
CONFIG_B44_PCICORE_AUTOSELECT=y
CONFIG_B44_PCI=y
CONFIG_FORCEDETH=y
# CONFIG_FORCEDETH_NAPI is not set
# CONFIG_EEPRO100 is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
# CONFIG_8139TOO is not set
# CONFIG_R6040 is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_SC92031 is not set
CONFIG_NETDEV_1000=y
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_E1000E is not set
# CONFIG_IP1000 is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SKGE is not set
# CONFIG_SKY2 is not set
# CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
CONFIG_TIGON3=y
CONFIG_BNX2=y
# CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set
CONFIG_NETDEV_10000=y
# CONFIG_CHELSIO_T1 is not set
# CONFIG_CHELSIO_T3 is not set
# CONFIG_IXGBE is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
# CONFIG_MYRI10GE is not set
# CONFIG_NETXEN_NIC is not set
# CONFIG_NIU is not set
# CONFIG_MLX4_CORE is not set
# CONFIG_TEHUTI is not set
# CONFIG_BNX2X is not set
# CONFIG_TR is not set

#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
CONFIG_PPP=y
CONFIG_PPP_MULTILINK=y
CONFIG_PPP_FILTER=y
# CONFIG_PPP_ASYNC is not set
# CONFIG_PPP_SYNC_TTY is not set
# CONFIG_PPP_DEFLATE is not set
# CONFIG_PPP_BSDCOMP is not set
# CONFIG_PPP_MPPE is not set
# CONFIG_PPPOE is not set
# CONFIG_PPPOL2TP is not set
# CONFIG_SLIP is not set
CONFIG_SLHC=y
# CONFIG_NET_FC is not set
CONFIG_NETCONSOLE=y
# CONFIG_NETCONSOLE_DYNAMIC is not set
CONFIG_NETPOLL=y
# CONFIG_NETPOLL_TRAP is not set
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
# CONFIG_PHONE is not set

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

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

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

#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
CONFIG_SERIAL_NONSTANDARD=y
# CONFIG_COMPUTONE is not set
# CONFIG_ROCKETPORT is not set
# CONFIG_CYCLADES is not set
# CONFIG_DIGIEPCA is not set
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
# CONFIG_MOXA_SMARTIO_NEW is not set
# CONFIG_ISI is not set
# CONFIG_SYNCLINK is not set
# CONFIG_SYNCLINKMP is not set
# CONFIG_SYNCLINK_GT is not set
# CONFIG_N_HDLC is not set
# CONFIG_RISCOM8 is not set
# CONFIG_SPECIALIX is not set
# CONFIG_SX is not set
# CONFIG_RIO is not set
CONFIG_STALDRV=y
# CONFIG_NOZOMI is not set

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

#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_NVRAM is not set
CONFIG_RTC=y
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_NSC_GPIO is not set
# CONFIG_CS5535_GPIO is not set
CONFIG_RAW_DRIVER=y
CONFIG_MAX_RAW_DEVS=256
CONFIG_HPET=y
# CONFIG_HPET_RTC_IRQ is not set
CONFIG_HPET_MMAP=y
CONFIG_HANGCHECK_TIMER=y
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
CONFIG_DEVPORT=y
# CONFIG_I2C is not set

#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
# CONFIG_W1 is not set
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
# CONFIG_PDA_POWER is not set
# CONFIG_BATTERY_DS2760 is not set
# CONFIG_HWMON is not set
# CONFIG_WATCHDOG is not set

#
# Sonics Silicon Backplane
#
CONFIG_SSB_POSSIBLE=y
CONFIG_SSB=y
CONFIG_SSB_PCIHOST_POSSIBLE=y
CONFIG_SSB_PCIHOST=y
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
CONFIG_SSB_DRIVER_PCICORE=y

#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set

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

#
# Graphics support
#
CONFIG_AGP=y
CONFIG_AGP_ALI=y
CONFIG_AGP_ATI=y
# CONFIG_AGP_AMD is not set
CONFIG_AGP_AMD64=y
CONFIG_AGP_INTEL=y
# CONFIG_AGP_NVIDIA is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_SWORKS is not set
# CONFIG_AGP_VIA is not set
# CONFIG_AGP_EFFICEON is not set
CONFIG_DRM=y
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=y
# CONFIG_DRM_I810 is not set
# CONFIG_DRM_I830 is not set
# CONFIG_DRM_I915 is not set
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_SIS is not set
# CONFIG_DRM_VIA is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_VGASTATE is not set
CONFIG_VIDEO_OUTPUT_CONTROL=m
# CONFIG_FB is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set

#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=128
CONFIG_VIDEO_SELECT=y
CONFIG_DUMMY_CONSOLE=y

#
# Sound
#
CONFIG_SOUND=y

#
# Advanced Linux Sound Architecture
#
# CONFIG_SND is not set

#
# Open Sound System
#
CONFIG_SOUND_PRIME=y
# CONFIG_SOUND_TRIDENT is not set
# CONFIG_SOUND_MSNDCLAS is not set
# CONFIG_SOUND_MSNDPIN is not set
# CONFIG_SOUND_OSS is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
# CONFIG_HIDRAW 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 is not set

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

#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
# CONFIG_RTC_CLASS is not set

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

#
# Firmware Drivers
#
# CONFIG_EDD is not set
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
CONFIG_DMIID=y

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

#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
# CONFIG_JOLIET is not set
# CONFIG_ZISOFS is not set
# CONFIG_UDF_FS is not set

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

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

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

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

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

#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
CONFIG_CRYPTO=y
# CONFIG_CRYPTO_SEQIV is not set
# CONFIG_CRYPTO_MANAGER is not set
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
# CONFIG_CRYPTO_SHA1 is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_GF128MUL is not set
# CONFIG_CRYPTO_ECB is not set
# CONFIG_CRYPTO_CBC is not set
# CONFIG_CRYPTO_PCBC is not set
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_XTS is not set
# CONFIG_CRYPTO_CTR is not set
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_CCM is not set
# CONFIG_CRYPTO_CRYPTD is not set
# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_TWOFISH_586 is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_AES is not set
# CONFIG_CRYPTO_AES_586 is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_TEA is not set
# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_SEED is not set
# CONFIG_CRYPTO_SALSA20 is not set
# CONFIG_CRYPTO_SALSA20_586 is not set
# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_TEST is not set
# CONFIG_CRYPTO_AUTHENC is not set
# CONFIG_CRYPTO_LZO is not set
CONFIG_CRYPTO_HW=y
# CONFIG_CRYPTO_DEV_PADLOCK is not set
# CONFIG_CRYPTO_DEV_GEODE is not set
# CONFIG_CRYPTO_DEV_HIFN_795X is not set
CONFIG_VIRTUALIZATION=y
# CONFIG_KVM is not set

#
# Library routines
#
CONFIG_BITREVERSE=y
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_AUDIT_GENERIC=y
CONFIG_ZLIB_INFLATE=y
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
--
regards,
Dhaval

2008-01-17 18:00:42

by Jeff Dike

[permalink] [raw]
Subject: Re: [-mm Patch] uml: fix a building error

On Thu, Jan 17, 2008 at 09:56:41PM +0800, WANG Cong wrote:
>
> This patch fixes this building error:
> ...
> drivers/char/mem.c: In function ‘read_mem’:
> drivers/char/mem.c:136: error: implicit declaration of function ‘unxlate_dev_mem_ptr’
> ...
>
> Cc: Jeff Dike <[email protected]>
> Signed-off-by: WANG Cong <[email protected]>

ACK

Jeff

--
Work email - jdike at linux dot intel dot com

2008-01-17 18:00:59

by Jeff Dike

[permalink] [raw]
Subject: Re: [-mm Patch] UML: fix a building error

On Thu, Jan 17, 2008 at 09:21:08PM +0800, WANG Cong wrote:
> Building uml failed in current -mm tree. ;(
>
> The below patch fixes this building error:
> ...
> include/asm/arch/system.h:8:22: error: asm/nops.h: No such file or directory
> ...
>
> Cc: Jeff Dike <[email protected]>
> Signed-off-by: WANG Cong <[email protected]>

ACK

Jeff

--
Work email - jdike at linux dot intel dot com

2008-01-17 18:07:14

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 (BUG: sched_rt)

On Thu, 17 Jan 2008 18:11:04 +0100 Peter Zijlstra wrote:

>
> On Thu, 2008-01-17 at 08:48 -0800, Randy Dunlap wrote:
> > On Thu, 17 Jan 2008 02:35:14 -0800 Andrew Morton wrote:
> >
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
> >
> > Booting on x86_64 SMP gives me:
> >
> > ------------[ cut here ]------------
> > kernel BUG at kernel/sched_rt.c:228!
> > invalid opcode: 0000 [1] SMP
> > last sysfs file: /sys/devices/pci0000:40/0000:40:0c.0/0000:41:00.0/0000:42:08.0/class
> > CPU 2
> > Modules linked in: parport_pc lp parport tg3 cciss ehci_hcd ohci_hcd uhci_hcd
> > Pid: 12738, comm: 5-1.test Not tainted 2.6.24-rc8-mm1 #1
> > RIP: 0010:[<ffffffff8023077b>] [<ffffffff8023077b>] update_curr_rt+0x27/0x87
> > RSP: 0018:ffff8101e6805e38 EFLAGS: 00010093
> > RAX: 0000000000000000 RBX: ffff81027f8591e0 RCX: ffff81000100fb80
> > RDX: 0000000000000000 RSI: ffff81026eb8b1e0 RDI: ffff810001014980
> > RBP: ffff8101e6805e48 R08: ffffffff8067d960 R09: 00000000000031c1
> > R10: 0000000000000000 R11: 0000000000000246 R12: ffff81026eb8b1e0
> > R13: ffff810001014980 R14: 0000000000000001 R15: 00000000ffffffff
> > FS: 0000000041a07940(0063) GS:ffff81027f80d700(0000) knlGS:0000000000000000
> > CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> > CR2: 000000338b00c2d0 CR3: 0000000254169000 CR4: 00000000000006e0
> > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> > Process 5-1.test (pid: 12738, threadinfo ffff8101e6804000, task ffff81026c8de8f0)
> > Stack: 0000000000000000 ffff81026eb8b348 ffff8101e6805e78 ffffffff80231c9b
> > 0000000000000000 ffff81026eb8b1e0 ffff810001014980 ffff81026eb8b1e0
> > ffff8101e6805e98 ffffffff8022f1bb ffff8101e6805ea8 ffff810001014980
> > Call Trace:
> > [<ffffffff80231c9b>] dequeue_task_rt+0x1f/0x5e
> > [<ffffffff8022f1bb>] dequeue_task+0x13/0x1e
> > [<ffffffff8022f1e8>] deactivate_task+0x22/0x2a
> > [<ffffffff802343f9>] sched_setscheduler+0x22e/0x32f
> > [<ffffffff8023486a>] do_sched_setscheduler+0x5f/0x6e
> > [<ffffffff802348a0>] sys_sched_setscheduler+0x14/0x18
> > [<ffffffff8020c0f9>] tracesys+0xdc/0xe1
> >
> >
> > Code: 48 89 c8 c3 55 48 89 e5 53 48 83 ec 08 48 8b 9f a8 07 00 00 8b 83 b0 01 00 00 48 8b 8b 98 01 00 00 83 f8 01 74 09 83 f8 02 74 04 <0f> 0b eb fe 48 8b 97 c8 07 00 00 48 2b 53 68 b8 00 00 00 00 48
> > RIP [<ffffffff8023077b>] update_curr_rt+0x27/0x87
> > RSP <ffff8101e6805e38>
> > ---[ end trace 792ff0e66da42f45 ]---
>
>
> Hmm, that would be me messing up in : 4c121cce
>
> - if (!task_has_rt_policy(curr))
> - return;
> + BUG_ON(!task_has_rt_policy(curr));
>
>
> Does reverting that fix it?

Yes, it does. Thanks.

---
~Randy

2008-01-17 18:10:54

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: broken suspend

On Thursday, 17 of January 2008, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
>
> - selinux is busted on one of my two selinux-enabled test machines.
>
> - suspend-to-ram and suspend-to-disk are totally hosed on one of my test
> machines. I guess I get to bisect this.

Please see if reverting pm-acquire-device-locks-on-suspend-rev-3.patch helps
and if it doesn't, please see if reverting git-acpi.patch helps.

Everyone having suspend/hibernation problems with this kernel, please check
if reverting reverting pm-acquire-device-locks-on-suspend-rev-3.patch (and the
fixes) helps first.

Thanks,
Rafael

2008-01-17 18:11:31

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: [-mm Patch] uml: fix a building error

Hello,

> This patch fixes this building error:
> ...
> drivers/char/mem.c: In function ‘read_mem’:
> drivers/char/mem.c:136: error: implicit declaration of function ‘unxlate_dev_mem_ptr’
> ...

I see this on sparc64 as well:

CC drivers/char/mem.o
drivers/char/mem.c: In function 'read_mem':
drivers/char/mem.c:136: error: implicit declaration of function 'unxlate_dev_mem_ptr'
make[2]: *** [drivers/char/mem.o] Error 1
make[1]: *** [drivers/char] Error 2
make: *** [drivers] Error 2

Does sparc64 need similar fix?

Regards,

Mariusz

2008-01-17 18:18:34

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: powerpc: include/asm/nvram.h:62: error: field 'partition' has incomplete type

Hello,

This is from powerpc (iMac G3):

CC [M] sound/ppc/awacs.o
In file included from sound/ppc/awacs.c:24:
include/asm/nvram.h:62: error: field 'partition' has incomplete type
make[1]: *** [sound/ppc/awacs.o] Error 1
make: *** [sound/ppc/awacs.o] Error 2

Regards,

Mariusz


Attachments:
(No filename) (282.00 B)
config-powerpc-2.6.24-rc8-mm1 (35.26 kB)
Download all attachments

2008-01-17 18:40:54

by Andrew Morton

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

On Thu, 17 Jan 2008 18:16:22 +0530 Balbir Singh <[email protected]> wrote:

> * Andrew Morton <[email protected]> [2008-01-17 02:35:14]:
>
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
> >
> > - selinux is busted on one of my two selinux-enabled test machines.
> >
> > - suspend-to-ram and suspend-to-disk are totally hosed on one of my test
> > machines. I guess I get to bisect this.
> >
> > - git-nfsd is dropped due to conflicts with git-nfs
> >
> > - git-newsetup is dropped due to conflicts with git-x86 (I think)
> >
> > - git-perfmon is dropped due to conflicts with git-x86 (I think)
> >
> > - git-kgdb is dropped due to conflicts with git-damn-near-everything
> >
> > - git-block is dropped due to conflicts with the IDE tree
> >
> > - kvm probably doesn't work properly because I couldn't be bothered fixing
> > the conflicts between git-kvm and the driver tree
> >
> > - the volume of rejects and build errors which are caused by subsystem
> > maintainers fiddling with other people's stuff is quite out of control.
> > Something needs to happen here.
>
> Hi, Andrew,
>
> May be it was one of the conflicts, but my system fails to get
> ethernet working with this version. I see
>
> e100: Intel(R) PRO/100 Network Driver, 3. 5.23-k4-NAPI
> e100: Copyright(c) 1999-2006 Intel Corporation
> ACPI: PCI Interrupt 0000:04:08.0[A] -> GSI 20 (level, low) -> IRQ 20
> modprobe:2584 conflicting cache attribute 50000000-50001000
> uncached<->default
> e100: 0000:04:08.0: e100_probe: Cannot map device registers, aborting.
> ACPI: PCI interrupt for device 0000:04:08.0 disabled
> e100: probe of 0000:04:08.0 failed with error -12
>
> Other interesting boot information
>
> Using ACPI (MADT) for SMP configuration information
> PM: Registered nosave memory: 000000000008f000 - 00000000000a0000
> PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
> PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
> PM: Registered nosave memory: 000000003e5d1000 - 000000003e6e5000
> PM: Registered nosave memory: 000000003f574000 - 000000003f57c000
> PM: Registered nosave memory: 000000003f62d000 - 000000003f631000
> PM: Registered nosave memory: 000000003f6a7000 - 000000003f6e9000
> PM: Registered nosave memory: 000000003f6ed000 - 000000003f6ff000
> Allocating PCI resources starting at 50000000 (gap: 40000000:bff80000)
>
> PCI: Bridge: 0000:00:1c.0
> IO window: disabled.
> MEM window:
> 0x50300000-0x503fffff
> PREFETCH window: disabled.
> PCI: Bridge: 0000:00:1c.2
> IO window: disabled.
> MEM window:
> 0x50400000-0x504fffff
> PREFETCH window: disabled.
> PCI: Bridge: 0000:00:1c.3
> IO window: disabled.
> MEM window:
> 0x50500000-0x505fffff
> PREFETCH window: disabled.
> PCI: Bridge: 0000:00:1e.0
> IO window: 1000-1fff
> MEM window:
> 0x50000000-0x500fffff
> PREFETCH window: disabled.
>
> I am yet to get down to the root cause, thought I'd report it first to
> the x86 and ACPI list to see if someone has seen the problem before.
>

It appears that the new PAT code didn't like e100's pci_iomap(). Venki, can you
take a look please?

2008-01-17 18:45:25

by Dhaval Giani

[permalink] [raw]
Subject: Re: x86 refuses to build [Re: 2.6.24-rc8-mm1]

On Thu, Jan 17, 2008 at 10:58:57PM +0530, Dhaval Giani wrote:
> On Thu, Jan 17, 2008 at 02:35:14AM -0800, Andrew Morton wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
> >
>
> Hi Ingo, Thomas,
>
> x86 fails to build with
>
> arch/x86/mm/discontig_32.c:39:23: bios_ebda.h:
> No such file or directory
> make[1]: *** [arch/x86/mm/discontig_32.o] Error 1
> make: *** [arch/x86/mm] Error 2
>
> Applying a trivial fix like,
>
> ---
> arch/x86/mm/discontig_32.c | 2 +-
> 1 files changed, 1 insertion(+), 1 deletion(-)
>
> Index: linux-2.6.24-rc8/arch/x86/mm/discontig_32.c
> ===================================================================
> --- linux-2.6.24-rc8.orig/arch/x86/mm/discontig_32.c
> +++ linux-2.6.24-rc8/arch/x86/mm/discontig_32.c
> @@ -36,7 +36,7 @@
> #include <asm/e820.h>
> #include <asm/setup.h>
> #include <asm/mmzone.h>
> -#include <bios_ebda.h>
> +#include <asm/bios_ebda.h>
>
> struct pglist_data *node_data[MAX_NUMNODES] __read_mostly;
> EXPORT_SYMBOL(node_data);
>
>
> causes,
>
> kernel/built-in.o(.text+0x5131): In function `move_task_off_dead_cpu':
> include/asm/topology.h:43: undefined reference to
> `x86_cpu_to_node_map_early_ptr'
> kernel/built-in.o(.text+0x5156):include/asm/topology.h:48: undefined
> reference to `per_cpu__x86_cpu_to_node_map'
> kernel/built-in.o(.text+0x5c0d): In function `cpu_to_allnodes_group':
> include/asm/topology.h:43: undefined reference to
> `x86_cpu_to_node_map_early_ptr'
> kernel/built-in.o(.text+0x5c2e):include/asm/topology.h:48: undefined
> reference to `per_cpu__x86_cpu_to_node_map'
> kernel/built-in.o(.text+0x5e84): In function `build_sched_domains':
> include/asm/topology.h:43: undefined reference to
> `x86_cpu_to_node_map_early_ptr'

<snip>

grepping around and looking through the code, I notice it is because
these variables just do not exist for 32 bit NUMA. I am not sure how to
go about it, and will just leave it to folks who know what they are
doing there :).

--
regards,
Dhaval

2008-01-17 18:54:34

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 kernel panic while bootup

On Thu, 17 Jan 2008 19:24:13 +0530 Kamalesh Babulal <[email protected]> wrote:

> Hi Andrew,
>
> The 2.6.24-rc8-mm1 kernel panic while bootup with bootup message

Can you please bisect it? I'd start with git-x86. These:

ssb-add-ssb_pcihost_set_power_state-function.patch
b44-power-down-phy-when-interface-down.patch
drivers-net-wireless-iwlwifi-iwl-3945c-fix-printk-warning.patch
drivers-net-wireless-iwlwifi-iwl-4965c-fix-printk-warning.patch
drivers-net-wireless-rt2x00-rt2x00usbc-fix-uninitialized-var-warning.patch
-> git-ipwireless_cs.patch
#
revert-kvm-stuff-to-make-git-x86-apply.patch
git-x86.patch
git-x86-fixup.patch
git-x86-fixup-2.patch
acpi-default-unmap-fixpatch.patch
git-x86-vs-pm-acquire-device-locks-on-suspend-rev-3.patch
git-x86-fix-doubly-merged-patch.patch
pci-dont-load-acpi_php-when-acpi-is-disabled.patch
pci-dont-load-acpi_php-when-acpi-is-disabled-fix.patch
#
#X86-ANDI-START
#X86-ANDI-END
#
#
-> iommu-sg-merging-add-device_dma_parameters-structure.patch

would be suitable test points.

> Dual Core AMD Opteron(tm) Processor 270 stepping 02
> Unable to handle kernel paging request at 0000000000004a78 RIP:
> [<ffffffff8026f966>] __alloc_pages+0x40/0x31e
> PGD 0
> Oops: 0000 [1] SMP
> last sysfs file:
> CPU 0
> Modules linked in:
> Pid: 1, comm: swapper Not tainted 2.6.24-rc8-mm1-autotest #1
> RIP: 0010:[<ffffffff8026f966>] [<ffffffff8026f966>] __alloc_pages+0x40/0x31e
> RSP: 0000:ffff81003f9b9c60 EFLAGS: 00010246
> RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000002
> RDX: 0000000000004a70 RSI: 0000000000000605 RDI: ffffffff805a6f66
> RBP: 00000000000000d0 R08: 00380800000000c0 R09: 000000000003db89
> R10: ffffe20000fe6880 R11: ffffffff806287b0 R12: 0000000000004a70
> R13: 0000000000000000 R14: 0000000000000286 R15: ffff81003f9b6000
> FS: 0000000000000000(0000) GS:ffffffff80664000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
> CR2: 0000000000004a78 CR3: 0000000000201000 CR4: 00000000000006e0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> Process swapper (pid: 1, threadinfo ffff81003f9b8000, task ffff81003f9b6000)
> Stack: 000000000000c0d0 0000001000000000 ffffffff8027574f ffff81000000e5c8
> 000000000000c0d0 ffffffff8026f320 ffff81003f9b9c88 0000000000000000
> 0000000000000000 ffffffff807fac90 ffffffff807fac90 0000000000000286
> Call Trace:
> [<ffffffff8027574f>] ? zone_statistics+0x3f/0x97
> [<ffffffff8026f320>] ? get_page_from_freelist+0x463/0x5b5
> [<ffffffff8028d7b8>] ? new_slab+0x10e/0x261
> [<ffffffff8028d92b>] ? get_new_slab+0x20/0xaa
> [<ffffffff8028dad8>] ? __slab_alloc+0x123/0x182
> [<ffffffff8026e5a1>] ? process_zones+0x79/0x15e
> [<ffffffff8028db73>] ? kmem_cache_alloc_node+0x3c/0x70
> [<ffffffff8026e5a1>] ? process_zones+0x79/0x15e
> [<ffffffff804f15b9>] ? _spin_lock_irqsave+0x9/0xe
> [<ffffffff8026e6b9>] ? pageset_cpuup_callback+0x33/0x91
> [<ffffffff804f37b9>] ? notifier_call_chain+0x29/0x56
> [<ffffffff80254b09>] ? _cpu_up+0x68/0x101
> [<ffffffff80254bf6>] ? cpu_up+0x54/0x61
> [<ffffffff808a4581>] ? kernel_init+0xbf/0x2ef
> [<ffffffff804f15a1>] ? _spin_unlock_irq+0x9/0xc
> [<ffffffff8020cc08>] ? child_rip+0xa/0x12
> [<ffffffff808a44c2>] ? kernel_init+0x0/0x2ef
> [<ffffffff8020cbfe>] ? child_rip+0x0/0x12

Who added these question marks to the backtrace output and what are they for?

>
> Code: 83 ec 38 65 4c 8b 3c 25 00 00 00 00 83 e0 10 89 44 24 0c 74 16 be 05 06 00 00 48 c7 c7 66 6f 5a 80 e8 a9 f4 fb ff e8 20 05 28 00 <49> 83 7c 24 08 00 49 8d 44 24 08 48 89 44 24 18 75 1a 48 c7 44
> RIP [<ffffffff8026f966>] __alloc_pages+0x40/0x31e
> RSP <ffff81003f9b9c60>
> CR2: 0000000000004a78

2008-01-17 18:56:16

by Olof Johansson

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 powerpc build errors

Hi,

My powerpc build-all-defconfigs script found the following:

mpc837x_mds_defconfig. Brokage looks like it came from libata's
for_each_sg() patch.

drivers/ata/sata_fsl.c: In function 'sata_fsl_fill_sg':
drivers/ata/sata_fsl.c:337: error: redeclaration of 'si' with no linkage
drivers/ata/sata_fsl.c:326: error: previous declaration of 'si' was here

powerpc_allyesconfig:

drivers/net/ehea/ehea_main.c: In function 'ehea_driver_sysfs_add':
drivers/net/ehea/ehea_main.c:2812: error: 'struct device_driver' has no member named 'kobj'
drivers/net/ehea/ehea_main.c:2815: error: 'struct device_driver' has no member named 'kobj'
drivers/net/ehea/ehea_main.c:2818: error: 'struct device_driver' has no member named 'kobj'
drivers/net/ehea/ehea_main.c: In function 'ehea_driver_sysfs_remove':
drivers/net/ehea/ehea_main.c:2830: error: 'struct device_driver' has no member named 'kobj'


-Olof

2008-01-17 18:56:36

by Andrew Morton

[permalink] [raw]
Subject: Re: [-mm Patch] uml: fix a building error

On Thu, 17 Jan 2008 19:11:13 +0100 Mariusz Kozlowski <[email protected]> wrote:

> Hello,
>
> > This patch fixes this building error:
> > ...
> > drivers/char/mem.c: In function ‘read_mem’:
> > drivers/char/mem.c:136: error: implicit declaration of function ‘unxlate_dev_mem_ptr’
> > ...
>
> I see this on sparc64 as well:
>
> CC drivers/char/mem.o
> drivers/char/mem.c: In function 'read_mem':
> drivers/char/mem.c:136: error: implicit declaration of function 'unxlate_dev_mem_ptr'
> make[2]: *** [drivers/char/mem.o] Error 1
> make[1]: *** [drivers/char] Error 2
> make: *** [drivers] Error 2
>
> Does sparc64 need similar fix?
>

The PAT patches strike again.

Ingo, I think you might need to toss some cross-compilers into that build
test setup of yours.

2008-01-17 18:57:09

by Jeff Dike

[permalink] [raw]
Subject: Re: [-mm Patch] uml: fix a building error

On Thu, Jan 17, 2008 at 07:11:13PM +0100, Mariusz Kozlowski wrote:
> I see this on sparc64 as well:
>
> CC drivers/char/mem.o
> drivers/char/mem.c: In function 'read_mem':
> drivers/char/mem.c:136: error: implicit declaration of function 'unxlate_dev_mem_ptr'
> make[2]: *** [drivers/char/mem.o] Error 1
> make[1]: *** [drivers/char] Error 2
> make: *** [drivers] Error 2
>
> Does sparc64 need similar fix?

Probably - it seems that xlate_dev_mem_ptr can now introduce
side-effects which need to be undone with unxlate_dev_mem_ptr.

Jeff

--
Work email - jdike at linux dot intel dot com

2008-01-17 19:01:43

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 kernel panic while bootup

On Thu, 17 Jan 2008 10:54:11 -0800 Andrew Morton wrote:

> On Thu, 17 Jan 2008 19:24:13 +0530 Kamalesh Babulal <[email protected]> wrote:
>
> > Hi Andrew,
> >
> > The 2.6.24-rc8-mm1 kernel panic while bootup with bootup message
>
> Can you please bisect it? I'd start with git-x86. These:
>
> ssb-add-ssb_pcihost_set_power_state-function.patch
> b44-power-down-phy-when-interface-down.patch
> drivers-net-wireless-iwlwifi-iwl-3945c-fix-printk-warning.patch
> drivers-net-wireless-iwlwifi-iwl-4965c-fix-printk-warning.patch
> drivers-net-wireless-rt2x00-rt2x00usbc-fix-uninitialized-var-warning.patch
> -> git-ipwireless_cs.patch
> #
> revert-kvm-stuff-to-make-git-x86-apply.patch
> git-x86.patch
> git-x86-fixup.patch
> git-x86-fixup-2.patch
> acpi-default-unmap-fixpatch.patch
> git-x86-vs-pm-acquire-device-locks-on-suspend-rev-3.patch
> git-x86-fix-doubly-merged-patch.patch
> pci-dont-load-acpi_php-when-acpi-is-disabled.patch
> pci-dont-load-acpi_php-when-acpi-is-disabled-fix.patch
> #
> #X86-ANDI-START
> #X86-ANDI-END
> #
> #
> -> iommu-sg-merging-add-device_dma_parameters-structure.patch
>
> would be suitable test points.
>
> > Dual Core AMD Opteron(tm) Processor 270 stepping 02
> > Unable to handle kernel paging request at 0000000000004a78 RIP:
> > [<ffffffff8026f966>] __alloc_pages+0x40/0x31e
> > PGD 0
> > Oops: 0000 [1] SMP
> > last sysfs file:
> > CPU 0
> > Modules linked in:
> > Pid: 1, comm: swapper Not tainted 2.6.24-rc8-mm1-autotest #1
> > RIP: 0010:[<ffffffff8026f966>] [<ffffffff8026f966>] __alloc_pages+0x40/0x31e
> > RSP: 0000:ffff81003f9b9c60 EFLAGS: 00010246
> > RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000002
> > RDX: 0000000000004a70 RSI: 0000000000000605 RDI: ffffffff805a6f66
> > RBP: 00000000000000d0 R08: 00380800000000c0 R09: 000000000003db89
> > R10: ffffe20000fe6880 R11: ffffffff806287b0 R12: 0000000000004a70
> > R13: 0000000000000000 R14: 0000000000000286 R15: ffff81003f9b6000
> > FS: 0000000000000000(0000) GS:ffffffff80664000(0000) knlGS:0000000000000000
> > CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
> > CR2: 0000000000004a78 CR3: 0000000000201000 CR4: 00000000000006e0
> > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> > Process swapper (pid: 1, threadinfo ffff81003f9b8000, task ffff81003f9b6000)
> > Stack: 000000000000c0d0 0000001000000000 ffffffff8027574f ffff81000000e5c8
> > 000000000000c0d0 ffffffff8026f320 ffff81003f9b9c88 0000000000000000
> > 0000000000000000 ffffffff807fac90 ffffffff807fac90 0000000000000286
> > Call Trace:
> > [<ffffffff8027574f>] ? zone_statistics+0x3f/0x97
> > [<ffffffff8026f320>] ? get_page_from_freelist+0x463/0x5b5
> > [<ffffffff8028d7b8>] ? new_slab+0x10e/0x261
> > [<ffffffff8028d92b>] ? get_new_slab+0x20/0xaa
> > [<ffffffff8028dad8>] ? __slab_alloc+0x123/0x182
> > [<ffffffff8026e5a1>] ? process_zones+0x79/0x15e
> > [<ffffffff8028db73>] ? kmem_cache_alloc_node+0x3c/0x70
> > [<ffffffff8026e5a1>] ? process_zones+0x79/0x15e
> > [<ffffffff804f15b9>] ? _spin_lock_irqsave+0x9/0xe
> > [<ffffffff8026e6b9>] ? pageset_cpuup_callback+0x33/0x91
> > [<ffffffff804f37b9>] ? notifier_call_chain+0x29/0x56
> > [<ffffffff80254b09>] ? _cpu_up+0x68/0x101
> > [<ffffffff80254bf6>] ? cpu_up+0x54/0x61
> > [<ffffffff808a4581>] ? kernel_init+0xbf/0x2ef
> > [<ffffffff804f15a1>] ? _spin_unlock_irq+0x9/0xc
> > [<ffffffff8020cc08>] ? child_rip+0xa/0x12
> > [<ffffffff808a44c2>] ? kernel_init+0x0/0x2ef
> > [<ffffffff8020cbfe>] ? child_rip+0x0/0x12
>
> Who added these question marks to the backtrace output and what are they for?

Arjan added them. They mean that those addresses are Questionable,
i.e., could be remnants/leftover gahrbahz on the stack.

> >
> > Code: 83 ec 38 65 4c 8b 3c 25 00 00 00 00 83 e0 10 89 44 24 0c 74 16 be 05 06 00 00 48 c7 c7 66 6f 5a 80 e8 a9 f4 fb ff e8 20 05 28 00 <49> 83 7c 24 08 00 49 8d 44 24 08 48 89 44 24 18 75 1a 48 c7 44
> > RIP [<ffffffff8026f966>] __alloc_pages+0x40/0x31e
> > RSP <ffff81003f9b9c60>
> > CR2: 0000000000004a78

---
~Randy

2008-01-17 19:02:33

by Andrew Morton

[permalink] [raw]
Subject: Re: do_md_run returned -22 [Was: 2.6.24-rc8-mm1]

On Thu, 17 Jan 2008 16:23:30 +0100 Jiri Slaby <[email protected]> wrote:

> On 01/17/2008 11:35 AM, Andrew Morton wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
>
> still the same md issue (do_md_run returns -22=EINVAL) as in -rc6-mm1 reported
> by Thorsten here:
> http://lkml.org/lkml/2007/12/27/45

hm, I must have been asleep when that was reported. Neil, did you see it?

> Is there around any fix for this?

Well, we could bitbucket md-allow-devices-to-be-shared-between-md-arrays.patch

> Having 0.90 raid 0 and 1, commenting this out helps:
> diff --git a/drivers/md/md.c b/drivers/md/md.c
> index 8633bd4..9b8ecc8 100644
> --- a/drivers/md/md.c
> +++ b/drivers/md/md.c
> @@ -3292,8 +3292,8 @@ static int do_md_run(mddev_t * mddev)
> * Analyze all RAID superblock(s)
> */
> if (!mddev->raid_disks) {
> - if (!mddev->persistent)
> - return -EINVAL;
> +/* if (!mddev->persistent)
> + return -EINVAL;*/
> analyze_sbs(mddev);
> }
>
> The persistency is marked even in analyze_sbs->validate_super, I guess?

2008-01-17 19:11:58

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Build Failure on scsi driver

On Thu, 17 Jan 2008 21:45:39 +0530 Kamalesh Babulal <[email protected]> wrote:

> Hi Andrew,
>
> The kernel build fails with following error
>
> drivers/scsi/aha152x.o: In function `aha152x_host_reset_host':
> /home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/aha152x.c:1324: multiple definition of `aha152x_host_reset_host'
> drivers/scsi/pcmcia/built-in.o:/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/aha152x.c:1324: first defined here
> drivers/scsi/aha152x.o: In function `aha152x_release':
> /home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/aha152x.c:908: multiple definition of `aha152x_release'
> drivers/scsi/pcmcia/built-in.o:/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/aha152x.c:908: first defined here
> ld: Warning: size of symbol `aha152x_release' changed from 68 in drivers/scsi/pcmcia/built-in.o to 100 in drivers/scsi/aha152x.o
> drivers/scsi/aha152x.o: In function `aha152x_probe_one':

Neat. Seems that the scsi build system is linking together two copies of
drivers/scsi/aha152x.o. One via drivers/scsi/aha152x.o directly and the
other via drivers/scsi/pcmcia/built-in.o.

Please send the .config.

I'm looking suspiciously at this, from git-scsi-misc:

commit 8ae732a91df051aba6820068a47b631a06599d84
Author: Tejun Heo <[email protected]>
Date: Fri Dec 7 22:36:23 2007 +0900

[SCSI] make pcmcia directory use obj-y|m instead of subdir-y|m

subdir-y|m isn't supposed to contain modules or built-in components.
Change subdir-$(CONFIG_PCMCIA) to obj-$(CONFIG_PCMCIA).

Signed-off-by: Tejun Heo <[email protected]>
Acked-by: Sam Ravnborg <[email protected]>
Signed-off-by: James Bottomley <[email protected]>

diff --git a/drivers/scsi/Makefile b/drivers/scsi/Makefile
index b5441f5..93e1428 100644
--- a/drivers/scsi/Makefile
+++ b/drivers/scsi/Makefile
@@ -17,7 +17,7 @@
CFLAGS_aha152x.o = -DAHA152X_STAT -DAUTOCONF
CFLAGS_gdth.o = # -DDEBUG_GDTH=2 -D__SERIAL__ -D__COM2__ -DGDTH_STATISTICS

-subdir-$(CONFIG_PCMCIA) += pcmcia
+obj-$(CONFIG_PCMCIA) += pcmcia/

obj-$(CONFIG_SCSI) += scsi_mod.o
obj-$(CONFIG_SCSI_TGT) += scsi_tgt.o

2008-01-17 19:14:59

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 (BUG: sched_rt)

On Thu, 17 Jan 2008 18:11:04 +0100 Peter Zijlstra wrote:

>
> On Thu, 2008-01-17 at 08:48 -0800, Randy Dunlap wrote:
> > On Thu, 17 Jan 2008 02:35:14 -0800 Andrew Morton wrote:
> >
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
> >
> > Booting on x86_64 SMP gives me:
> >
> > ------------[ cut here ]------------
> > kernel BUG at kernel/sched_rt.c:228!
> > invalid opcode: 0000 [1] SMP
> > last sysfs file: /sys/devices/pci0000:40/0000:40:0c.0/0000:41:00.0/0000:42:08.0/class
> > CPU 2
> > Modules linked in: parport_pc lp parport tg3 cciss ehci_hcd ohci_hcd uhci_hcd
> > Pid: 12738, comm: 5-1.test Not tainted 2.6.24-rc8-mm1 #1
> > RIP: 0010:[<ffffffff8023077b>] [<ffffffff8023077b>] update_curr_rt+0x27/0x87
> > RSP: 0018:ffff8101e6805e38 EFLAGS: 00010093
> > RAX: 0000000000000000 RBX: ffff81027f8591e0 RCX: ffff81000100fb80
> > RDX: 0000000000000000 RSI: ffff81026eb8b1e0 RDI: ffff810001014980
> > RBP: ffff8101e6805e48 R08: ffffffff8067d960 R09: 00000000000031c1
> > R10: 0000000000000000 R11: 0000000000000246 R12: ffff81026eb8b1e0
> > R13: ffff810001014980 R14: 0000000000000001 R15: 00000000ffffffff
> > FS: 0000000041a07940(0063) GS:ffff81027f80d700(0000) knlGS:0000000000000000
> > CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> > CR2: 000000338b00c2d0 CR3: 0000000254169000 CR4: 00000000000006e0
> > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> > Process 5-1.test (pid: 12738, threadinfo ffff8101e6804000, task ffff81026c8de8f0)
> > Stack: 0000000000000000 ffff81026eb8b348 ffff8101e6805e78 ffffffff80231c9b
> > 0000000000000000 ffff81026eb8b1e0 ffff810001014980 ffff81026eb8b1e0
> > ffff8101e6805e98 ffffffff8022f1bb ffff8101e6805ea8 ffff810001014980
> > Call Trace:
> > [<ffffffff80231c9b>] dequeue_task_rt+0x1f/0x5e
> > [<ffffffff8022f1bb>] dequeue_task+0x13/0x1e
> > [<ffffffff8022f1e8>] deactivate_task+0x22/0x2a
> > [<ffffffff802343f9>] sched_setscheduler+0x22e/0x32f
> > [<ffffffff8023486a>] do_sched_setscheduler+0x5f/0x6e
> > [<ffffffff802348a0>] sys_sched_setscheduler+0x14/0x18
> > [<ffffffff8020c0f9>] tracesys+0xdc/0xe1
> >
> >
> > Code: 48 89 c8 c3 55 48 89 e5 53 48 83 ec 08 48 8b 9f a8 07 00 00 8b 83 b0 01 00 00 48 8b 8b 98 01 00 00 83 f8 01 74 09 83 f8 02 74 04 <0f> 0b eb fe 48 8b 97 c8 07 00 00 48 2b 53 68 b8 00 00 00 00 48
> > RIP [<ffffffff8023077b>] update_curr_rt+0x27/0x87
> > RSP <ffff8101e6805e38>
> > ---[ end trace 792ff0e66da42f45 ]---
>
>
> Hmm, that would be me messing up in : 4c121cce
>
> - if (!task_has_rt_policy(curr))
> - return;
> + BUG_ON(!task_has_rt_policy(curr));
>
>
> Does reverting that fix it?

Ack. Andrew, do you want this hotfix?

---
From: Peter Zijlstra <[email protected]>

Revert the BUG_ON(). Condition is OK and happens.

Tested-by: Randy Dunlap <[email protected]>
---
kernel/sched_rt.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

--- linux-2.6.24-rc8-mm1.orig/kernel/sched_rt.c
+++ linux-2.6.24-rc8-mm1/kernel/sched_rt.c
@@ -225,7 +225,8 @@ static void update_curr_rt(struct rq *rq
struct rt_rq *rt_rq = rt_rq_of_se(rt_se);
u64 delta_exec;

- BUG_ON(!task_has_rt_policy(curr));
+ if (!task_has_rt_policy(curr))
+ return;

delta_exec = rq->clock - curr->se.exec_start;
if (unlikely((s64)delta_exec < 0))

2008-01-17 19:21:36

by Pallipadi, Venkatesh

[permalink] [raw]
Subject: RE: 2.6.24-rc8-mm1



>-----Original Message-----
>From: Andrew Morton [mailto:[email protected]]
>Sent: Thursday, January 17, 2008 10:40 AM
>To: [email protected]
>Cc: [email protected]; Linux ACPI mailing list;
>Intel E/100 mailing list; Ingo Molnar; Thomas Gleixner;
>Pallipadi, Venkatesh
>Subject: Re: 2.6.24-rc8-mm1
>
>On Thu, 17 Jan 2008 18:16:22 +0530 Balbir Singh
><[email protected]> wrote:
>
>> * Andrew Morton <[email protected]> [2008-01-17 02:35:14]:
>>
>> >
>> >
>ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2
>.6.24-rc8/2.6.24-rc8-mm1/
>> >
>> > - selinux is busted on one of my two selinux-enabled test machines.
>> >
>> > - suspend-to-ram and suspend-to-disk are totally hosed on
>one of my test
>> > machines. I guess I get to bisect this.
>> >
>> > - git-nfsd is dropped due to conflicts with git-nfs
>> >
>> > - git-newsetup is dropped due to conflicts with git-x86 (I think)
>> >
>> > - git-perfmon is dropped due to conflicts with git-x86 (I think)
>> >
>> > - git-kgdb is dropped due to conflicts with
>git-damn-near-everything
>> >
>> > - git-block is dropped due to conflicts with the IDE tree
>> >
>> > - kvm probably doesn't work properly because I couldn't be
>bothered fixing
>> > the conflicts between git-kvm and the driver tree
>> >
>> > - the volume of rejects and build errors which are caused
>by subsystem
>> > maintainers fiddling with other people's stuff is quite
>out of control.
>> > Something needs to happen here.
>>
>> Hi, Andrew,
>>
>> May be it was one of the conflicts, but my system fails to get
>> ethernet working with this version. I see
>>
>> e100: Intel(R) PRO/100 Network Driver, 3. 5.23-k4-NAPI
>> e100: Copyright(c) 1999-2006 Intel Corporation
>> ACPI: PCI Interrupt 0000:04:08.0[A] -> GSI 20 (level, low) -> IRQ 20
>> modprobe:2584 conflicting cache attribute 50000000-50001000
>> uncached<->default
>> e100: 0000:04:08.0: e100_probe: Cannot map device registers,
>aborting.
>> ACPI: PCI interrupt for device 0000:04:08.0 disabled
>> e100: probe of 0000:04:08.0 failed with error -12
>>
>It appears that the new PAT code didn't like e100's
>pci_iomap(). Venki, can you
>take a look please?
>

This seems similar to one problem we saw yday. May not be specific to
e1000. May be at some generic pci code.

The problem is
>> modprobe:2584 conflicting cache attribute 50000000-50001000
>> uncached<->default

Some address range here is being mapped with conflicting types.
Somewhere the range was mapped with default (write-back). Later
pci_iomap() is mapping that region as uncacheable which is basically
aliasing. PAT code detects the aliasing and fails the second uncacheable
request which leads in the failure.

We are trying to find who exactly is mapping this with default at the
beginning.
Balbir: Full dmesg with debug boot parameter may help.

Thanks,
Venki

2008-01-17 19:27:58

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: powerpc: include/asm/nvram.h:62: error: field 'partition' has incomplete type

On Thu, 17 Jan 2008 19:18:07 +0100 Mariusz Kozlowski <[email protected]> wrote:

> CC [M] sound/ppc/awacs.o
> In file included from sound/ppc/awacs.c:24:
> include/asm/nvram.h:62: error: field 'partition' has incomplete type
> make[1]: *** [sound/ppc/awacs.o] Error 1
> make: *** [sound/ppc/awacs.o] Error 2

hm.

--- a/include/asm-powerpc/nvram.h~include-asm-powerpc-nvramh-needs-listh
+++ a/include/asm-powerpc/nvram.h
@@ -11,6 +11,7 @@
#define _ASM_POWERPC_NVRAM_H

#include <linux/errno.h>
+#include <linux/list.h>

#define NVRW_CNT 0x20
#define NVRAM_HEADER_LEN 16 /* sizeof(struct nvram_header) */
_

I wonder why mainline isn't busted actually.

2008-01-17 19:36:36

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 powerpc build errors

On Thu, 17 Jan 2008 13:06:39 -0600 Olof Johansson <[email protected]> wrote:

> Hi,
>
> My powerpc build-all-defconfigs script found the following:

thanks.

> mpc837x_mds_defconfig. Brokage looks like it came from libata's
> for_each_sg() patch.
>
> drivers/ata/sata_fsl.c: In function 'sata_fsl_fill_sg':
> drivers/ata/sata_fsl.c:337: error: redeclaration of 'si' with no linkage
> drivers/ata/sata_fsl.c:326: error: previous declaration of 'si' was here

--- a/drivers/ata/sata_fsl.c~git-libata-all-fix-drivers-ata-sata_fslc
+++ a/drivers/ata/sata_fsl.c
@@ -323,7 +323,6 @@ static unsigned int sata_fsl_fill_sg(str
struct scatterlist *sg;
unsigned int num_prde = 0;
u32 ttl_dwords = 0;
- unsigned int si;

/*
* NOTE : direct & indirect prdt's are contigiously allocated
_

> powerpc_allyesconfig:
>
> drivers/net/ehea/ehea_main.c: In function 'ehea_driver_sysfs_add':
> drivers/net/ehea/ehea_main.c:2812: error: 'struct device_driver' has no member named 'kobj'
> drivers/net/ehea/ehea_main.c:2815: error: 'struct device_driver' has no member named 'kobj'
> drivers/net/ehea/ehea_main.c:2818: error: 'struct device_driver' has no member named 'kobj'
> drivers/net/ehea/ehea_main.c: In function 'ehea_driver_sysfs_remove':
> drivers/net/ehea/ehea_main.c:2830: error: 'struct device_driver' has no member named 'kobj'

Looks like the driver tree wrecking ball failed to visit that driver.

2008-01-17 19:38:11

by Pallipadi, Venkatesh

[permalink] [raw]
Subject: RE: [-mm Patch] uml: fix a building error



>-----Original Message-----
>From: Andrew Morton [mailto:[email protected]]
>Sent: Thursday, January 17, 2008 10:56 AM
>To: Mariusz Kozlowski
>Cc: WANG Cong; [email protected]; Jeff Dike;
>[email protected]; David Miller;
>[email protected]; Ingo Molnar; Thomas Gleixner;
>Pallipadi, Venkatesh
>Subject: Re: [-mm Patch] uml: fix a building error
>
>On Thu, 17 Jan 2008 19:11:13 +0100 Mariusz Kozlowski
><[email protected]> wrote:
>
>> Hello,
>>
>> > This patch fixes this building error:
>> > ...
>> > drivers/char/mem.c: In function 'read_mem':
>> > drivers/char/mem.c:136: error: implicit declaration of
>function 'unxlate_dev_mem_ptr'
>> > ...
>>
>> I see this on sparc64 as well:
>>
>> CC drivers/char/mem.o
>> drivers/char/mem.c: In function 'read_mem':
>> drivers/char/mem.c:136: error: implicit declaration of
>function 'unxlate_dev_mem_ptr'
>> make[2]: *** [drivers/char/mem.o] Error 1
>> make[1]: *** [drivers/char] Error 2
>> make: *** [drivers] Error 2
>>
>> Does sparc64 need similar fix?
>>
>
>The PAT patches strike again.
>
>Ingo, I think you might need to toss some cross-compilers into
>that build
>test setup of yours.
>

These functions were defined for other archs in asm-generic/iomap.h.
We need all archs including it in io.h. I now see only few archs are
including it..

Apart from unxlate, there is also ioremap_wc which is defined in the
same way.

I can send a patch for this. But, I don't have cross compiler setup for
all archs to test. Andrew, I will need your help.

Thanks,
Venki

2008-01-17 19:39:53

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 (BUG: sched_rt)

On Thu, 17 Jan 2008 11:14:01 -0800 Randy Dunlap <[email protected]> wrote:

> > Does reverting that fix it?
>
> Ack. Andrew, do you want this hotfix?
>
> ---
> From: Peter Zijlstra <[email protected]>
>
> Revert the BUG_ON(). Condition is OK and happens.
>
> Tested-by: Randy Dunlap <[email protected]>

Thanks - I already added that to
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/hot-fixes/

There are quite a few fixes there so I'd remind people to apply those as
well before testing.

2008-01-17 19:40:54

by Andrew Morton

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

On Thu, 17 Jan 2008 11:22:19 -0800 "Pallipadi, Venkatesh" <[email protected]> wrote:

>
> The problem is
> >> modprobe:2584 conflicting cache attribute 50000000-50001000
> >> uncached<->default
>
> Some address range here is being mapped with conflicting types.
> Somewhere the range was mapped with default (write-back). Later
> pci_iomap() is mapping that region as uncacheable which is basically
> aliasing. PAT code detects the aliasing and fails the second uncacheable
> request which leads in the failure.

It sounds to me like you need considerably more runtime debugging and
reporting support in that code. Ensure that it generates enough output
both during regular operation and during failures for you to be able to
diagnose things in a single iteration.

We can always take it out later.

2008-01-17 19:44:42

by Andrew Morton

[permalink] [raw]
Subject: Re: [-mm Patch] uml: fix a building error

On Thu, 17 Jan 2008 11:38:53 -0800 "Pallipadi, Venkatesh" <[email protected]> wrote:

>
>
> >-----Original Message-----
> >From: Andrew Morton [mailto:[email protected]]
> >Sent: Thursday, January 17, 2008 10:56 AM
> >To: Mariusz Kozlowski
> >Cc: WANG Cong; [email protected]; Jeff Dike;
> >[email protected]; David Miller;
> >[email protected]; Ingo Molnar; Thomas Gleixner;
> >Pallipadi, Venkatesh
> >Subject: Re: [-mm Patch] uml: fix a building error
> >
> >On Thu, 17 Jan 2008 19:11:13 +0100 Mariusz Kozlowski
> ><[email protected]> wrote:
> >
> >> Hello,
> >>
> >> > This patch fixes this building error:
> >> > ...
> >> > drivers/char/mem.c: In function 'read_mem':
> >> > drivers/char/mem.c:136: error: implicit declaration of
> >function 'unxlate_dev_mem_ptr'
> >> > ...
> >>
> >> I see this on sparc64 as well:
> >>
> >> CC drivers/char/mem.o
> >> drivers/char/mem.c: In function 'read_mem':
> >> drivers/char/mem.c:136: error: implicit declaration of
> >function 'unxlate_dev_mem_ptr'
> >> make[2]: *** [drivers/char/mem.o] Error 1
> >> make[1]: *** [drivers/char] Error 2
> >> make: *** [drivers] Error 2
> >>
> >> Does sparc64 need similar fix?
> >>
> >
> >The PAT patches strike again.
> >
> >Ingo, I think you might need to toss some cross-compilers into
> >that build
> >test setup of yours.
> >
>
> These functions were defined for other archs in asm-generic/iomap.h.
> We need all archs including it in io.h. I now see only few archs are
> including it..
>
> Apart from unxlate, there is also ioremap_wc which is defined in the
> same way.
>
> I can send a patch for this. But, I don't have cross compiler setup for
> all archs to test. Andrew, I will need your help.

Well.

- there are a bunch of cross-compiler binaries in
http://userweb.kernel.org/~akpm/cross-compilers/

- I'll (again) encourage Ingo to add cross-compilation testing to his
auto-testing setup.

- I ran out of steam (and the selinux bug crashed my remote
cross-compilation test box) so I didn't do much cross-compilation testing
on rc8-mm1: just alpha and ia64 iirc.

I'd suggest that you just prepare a best-effort patch and when I next get
around to doing more cross-compilation any problems shold get weeded out.

2008-01-17 19:47:48

by Jesse Brandeburg

[permalink] [raw]
Subject: RE: [E1000-devel] 2.6.24-rc8-mm1

Andrew Morton wrote:
> On Thu, 17 Jan 2008 11:22:19 -0800 "Pallipadi, Venkatesh"
> <[email protected]> wrote:
>
>>
>> The problem is
>>>> modprobe:2584 conflicting cache attribute 50000000-50001000
>>>> uncached<->default
>>
>> Some address range here is being mapped with conflicting types.
>> Somewhere the range was mapped with default (write-back). Later
>> pci_iomap() is mapping that region as uncacheable which is basically
>> aliasing. PAT code detects the aliasing and fails the second
>> uncacheable request which leads in the failure.

its probably the e100 screaming interrupt disable quirk code doing the
mapping?

> It sounds to me like you need considerably more runtime debugging and
> reporting support in that code. Ensure that it generates enough
> output
> both during regular operation and during failures for you to be able
> to
> diagnose things in a single iteration.
>
> We can always take it out later.

FWIW (nothing) I agree.

2008-01-17 20:42:31

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: [-mm Patch] uml: fix a building error

Hello,

> >> > This patch fixes this building error:
> >> > ...
> >> > drivers/char/mem.c: In function 'read_mem':
> >> > drivers/char/mem.c:136: error: implicit declaration of
> >function 'unxlate_dev_mem_ptr'
> >> > ...
> >>
> >> I see this on sparc64 as well:
> >>
> >> CC drivers/char/mem.o
> >> drivers/char/mem.c: In function 'read_mem':
> >> drivers/char/mem.c:136: error: implicit declaration of
> >function 'unxlate_dev_mem_ptr'
> >> make[2]: *** [drivers/char/mem.o] Error 1
> >> make[1]: *** [drivers/char] Error 2
> >> make: *** [drivers] Error 2
> >>
> >> Does sparc64 need similar fix?
> >>
> >
> >The PAT patches strike again.
> >
> >Ingo, I think you might need to toss some cross-compilers into
> >that build
> >test setup of yours.
>
> These functions were defined for other archs in asm-generic/iomap.h.
> We need all archs including it in io.h. I now see only few archs are
> including it..
>
> Apart from unxlate, there is also ioremap_wc which is defined in the
> same way.
>
> I can send a patch for this. But, I don't have cross compiler setup for
> all archs to test. Andrew, I will need your help.

I can confirm that this fixes the build problem for sparc64 here.

Regards,

Mariusz

2008-01-17 21:10:43

by Matt Mackall

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


On Thu, 2008-01-17 at 02:35 -0800, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/

Hmm. On my Thinkpad R51, this gives me:

Uncompressing linux... Ok, booting kernel.

..and nothing more with the attached .config.

--
Mathematics is the supreme nostalgia of our time.


Attachments:
config (49.61 kB)

2008-01-17 21:15:43

by Jeff Dike

[permalink] [raw]
Subject: Re: [-mm Patch] uml: fix a building error

On Thu, Jan 17, 2008 at 11:38:53AM -0800, Pallipadi, Venkatesh wrote:
> Apart from unxlate, there is also ioremap_wc which is defined in the
> same way.

And while we're on the subject, what's the deal with these, in
include/asm-x86/io.h?

#define ioremap_wc ioremap_wc
#define unxlate_dev_mem_ptr unxlate_dev_mem_ptr

Jeff

--
Work email - jdike at linux dot intel dot com

2008-01-17 21:48:11

by Pallipadi, Venkatesh

[permalink] [raw]
Subject: Re: [-mm Patch] uml: fix a building error

On Thu, Jan 17, 2008 at 04:14:37PM -0500, Jeff Dike wrote:
> On Thu, Jan 17, 2008 at 11:38:53AM -0800, Pallipadi, Venkatesh wrote:
> > Apart from unxlate, there is also ioremap_wc which is defined in the
> > same way.
>
> And while we're on the subject, what's the deal with these, in
> include/asm-x86/io.h?
>
> #define ioremap_wc ioremap_wc
> #define unxlate_dev_mem_ptr unxlate_dev_mem_ptr
>

If archs want to override the defaults for these two functions, they define
the above and then include asm-generic/iomap.h.

Archs which doesnt want to implement anything in these new funcs just have to
include asm-generic/iomap.h which has the proper stubs.

So, a patch like the below is what is required here for all archs to
include asm-generic iomap.h (without the other patch that
defines null unxlate in asm specific header).

Totally untested.

Thanks,
Venki

Signed-off-by: Venkatesh Pallipadi <[email protected]>

Index: linux-2.6.git/include/asm-arm/io.h
===================================================================
--- linux-2.6.git.orig/include/asm-arm/io.h 2008-01-17 06:28:06.000000000 -0800
+++ linux-2.6.git/include/asm-arm/io.h 2008-01-17 06:39:13.000000000 -0800
@@ -27,6 +27,8 @@
#include <asm/byteorder.h>
#include <asm/memory.h>

+#include <asm-generic/iomap.h>
+
/*
* ISA I/O bus memory addresses are 1:1 with the physical address.
*/
Index: linux-2.6.git/include/asm-avr32/io.h
===================================================================
--- linux-2.6.git.orig/include/asm-avr32/io.h 2008-01-17 06:28:06.000000000 -0800
+++ linux-2.6.git/include/asm-avr32/io.h 2008-01-17 06:39:13.000000000 -0800
@@ -10,6 +10,8 @@

#include <asm/arch/io.h>

+#include <asm-generic/iomap.h>
+
/* virt_to_phys will only work when address is in P1 or P2 */
static __inline__ unsigned long virt_to_phys(volatile void *address)
{
Index: linux-2.6.git/include/asm-blackfin/io.h
===================================================================
--- linux-2.6.git.orig/include/asm-blackfin/io.h 2008-01-17 06:28:06.000000000 -0800
+++ linux-2.6.git/include/asm-blackfin/io.h 2008-01-17 06:39:13.000000000 -0800
@@ -8,6 +8,8 @@
#endif
#include <linux/compiler.h>

+#include <asm-generic/iomap.h>
+
/*
* These are for ISA/PCI shared memory _only_ and should never be used
* on any other type of memory, including Zorro memory. They are meant to
Index: linux-2.6.git/include/asm-cris/io.h
===================================================================
--- linux-2.6.git.orig/include/asm-cris/io.h 2008-01-17 06:28:06.000000000 -0800
+++ linux-2.6.git/include/asm-cris/io.h 2008-01-17 06:39:13.000000000 -0800
@@ -5,6 +5,8 @@
#include <asm/arch/io.h>
#include <linux/kernel.h>

+#include <asm-generic/iomap.h>
+
struct cris_io_operations
{
u32 (*read_mem)(void *addr, int size);
Index: linux-2.6.git/include/asm-frv/io.h
===================================================================
--- linux-2.6.git.orig/include/asm-frv/io.h 2008-01-17 06:28:06.000000000 -0800
+++ linux-2.6.git/include/asm-frv/io.h 2008-01-17 06:39:13.000000000 -0800
@@ -23,6 +23,8 @@
#include <asm/mb-regs.h>
#include <linux/delay.h>

+#include <asm-generic/iomap.h>
+
/*
* swap functions are sometimes needed to interface little-endian hardware
*/
Index: linux-2.6.git/include/asm-h8300/io.h
===================================================================
--- linux-2.6.git.orig/include/asm-h8300/io.h 2008-01-17 06:28:06.000000000 -0800
+++ linux-2.6.git/include/asm-h8300/io.h 2008-01-17 06:39:13.000000000 -0800
@@ -13,6 +13,8 @@
#error UNKNOWN CPU TYPE
#endif

+#include <asm-generic/iomap.h>
+

/*
* These are for ISA/PCI shared memory _only_ and should never be used
Index: linux-2.6.git/include/asm-m32r/io.h
===================================================================
--- linux-2.6.git.orig/include/asm-m32r/io.h 2008-01-17 06:28:06.000000000 -0800
+++ linux-2.6.git/include/asm-m32r/io.h 2008-01-17 06:39:13.000000000 -0800
@@ -5,6 +5,8 @@
#include <linux/compiler.h>
#include <asm/page.h> /* __va */

+#include <asm-generic/iomap.h>
+
#ifdef __KERNEL__

#define IO_SPACE_LIMIT 0xFFFFFFFF
Index: linux-2.6.git/include/asm-m68knommu/io.h
===================================================================
--- linux-2.6.git.orig/include/asm-m68knommu/io.h 2008-01-17 06:28:06.000000000 -0800
+++ linux-2.6.git/include/asm-m68knommu/io.h 2008-01-17 06:39:13.000000000 -0800
@@ -1,6 +1,8 @@
#ifndef _M68KNOMMU_IO_H
#define _M68KNOMMU_IO_H

+#include <asm-generic/iomap.h>
+
#ifdef __KERNEL__


Index: linux-2.6.git/include/asm-ppc/io.h
===================================================================
--- linux-2.6.git.orig/include/asm-ppc/io.h 2008-01-17 06:28:06.000000000 -0800
+++ linux-2.6.git/include/asm-ppc/io.h 2008-01-17 06:39:13.000000000 -0800
@@ -10,6 +10,8 @@
#include <asm/synch.h>
#include <asm/mmu.h>

+#include <asm-generic/iomap.h>
+
#define SIO_CONFIG_RA 0x398
#define SIO_CONFIG_RD 0x399

Index: linux-2.6.git/include/asm-s390/io.h
===================================================================
--- linux-2.6.git.orig/include/asm-s390/io.h 2008-01-17 06:28:06.000000000 -0800
+++ linux-2.6.git/include/asm-s390/io.h 2008-01-17 06:39:13.000000000 -0800
@@ -15,6 +15,8 @@

#include <asm/page.h>

+#include <asm-generic/iomap.h>
+
#define IO_SPACE_LIMIT 0xffffffff

/*
Index: linux-2.6.git/include/asm-sparc/io.h
===================================================================
--- linux-2.6.git.orig/include/asm-sparc/io.h 2008-01-17 06:28:06.000000000 -0800
+++ linux-2.6.git/include/asm-sparc/io.h 2008-01-17 06:39:13.000000000 -0800
@@ -11,6 +11,8 @@
#include <asm/page.h> /* IO address mapping routines need this */
#include <asm/system.h>

+#include <asm-generic/iomap.h>
+
#define page_to_phys(page) (((page) - mem_map) << PAGE_SHIFT)

static inline u32 flip_dword (u32 l)
Index: linux-2.6.git/include/asm-sparc64/io.h
===================================================================
--- linux-2.6.git.orig/include/asm-sparc64/io.h 2008-01-17 06:28:06.000000000 -0800
+++ linux-2.6.git/include/asm-sparc64/io.h 2008-01-17 06:39:13.000000000 -0800
@@ -9,6 +9,8 @@
#include <asm/system.h>
#include <asm/asi.h>

+#include <asm-generic/iomap.h>
+
/* PC crapola... */
#define __SLOW_DOWN_IO do { } while (0)
#define SLOW_DOWN_IO do { } while (0)
Index: linux-2.6.git/include/asm-um/io.h
===================================================================
--- linux-2.6.git.orig/include/asm-um/io.h 2008-01-17 06:28:06.000000000 -0800
+++ linux-2.6.git/include/asm-um/io.h 2008-01-17 06:39:13.000000000 -0800
@@ -3,6 +3,8 @@

#include "asm/page.h"

+#include <asm-generic/iomap.h>
+
#define IO_SPACE_LIMIT 0xdeadbeef /* Sure hope nothing uses this */

static inline int inb(unsigned long i) { return(0); }
Index: linux-2.6.git/include/asm-v850/io.h
===================================================================
--- linux-2.6.git.orig/include/asm-v850/io.h 2008-01-17 06:28:06.000000000 -0800
+++ linux-2.6.git/include/asm-v850/io.h 2008-01-17 06:39:13.000000000 -0800
@@ -14,6 +14,8 @@
#ifndef __V850_IO_H__
#define __V850_IO_H__

+#include <asm-generic/iomap.h>
+
#define IO_SPACE_LIMIT 0xFFFFFFFF

#define readb(addr) \
Index: linux-2.6.git/include/asm-xtensa/io.h
===================================================================
--- linux-2.6.git.orig/include/asm-xtensa/io.h 2008-01-17 06:28:06.000000000 -0800
+++ linux-2.6.git/include/asm-xtensa/io.h 2008-01-17 06:39:13.000000000 -0800
@@ -18,6 +18,8 @@

#include <linux/types.h>

+#include <asm-generic/iomap.h>
+
#define XCHAL_KIO_CACHED_VADDR 0xf0000000
#define XCHAL_KIO_BYPASS_VADDR 0xf8000000
#define XCHAL_KIO_PADDR 0xf0000000
Index: linux-2.6.git/include/asm-generic/iomap.h
===================================================================
--- linux-2.6.git.orig/include/asm-generic/iomap.h 2008-01-17 06:28:06.000000000 -0800
+++ linux-2.6.git/include/asm-generic/iomap.h 2008-01-17 06:39:39.000000000 -0800
@@ -2,6 +2,7 @@
#define __GENERIC_IO_H

#include <linux/linkage.h>
+#include <linux/compiler.h>
#include <asm/byteorder.h>

/*

2008-01-17 21:56:28

by Greg KH

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 powerpc build errors

On Thu, Jan 17, 2008 at 11:35:23AM -0800, Andrew Morton wrote:
> On Thu, 17 Jan 2008 13:06:39 -0600 Olof Johansson <[email protected]> wrote:
> > powerpc_allyesconfig:
> >
> > drivers/net/ehea/ehea_main.c: In function 'ehea_driver_sysfs_add':
> > drivers/net/ehea/ehea_main.c:2812: error: 'struct device_driver' has no member named 'kobj'
> > drivers/net/ehea/ehea_main.c:2815: error: 'struct device_driver' has no member named 'kobj'
> > drivers/net/ehea/ehea_main.c:2818: error: 'struct device_driver' has no member named 'kobj'
> > drivers/net/ehea/ehea_main.c: In function 'ehea_driver_sysfs_remove':
> > drivers/net/ehea/ehea_main.c:2830: error: 'struct device_driver' has no member named 'kobj'
>
> Looks like the driver tree wrecking ball failed to visit that driver.

Crap, I thought I fixed that one, but the patch never made it out...
I'll fix that tomorrow, sorry about that.

greg k-h

2008-01-17 22:15:46

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: powerpc oopses

Hello,

The script below kills powerpc. oopses get longer and more
wonderful with every next 'cated' file.

/proc/<pid>/task/<pid>/pagemap seems to be the cause of oops. The
important thing is that it oopses for random (that is not first in a row)
process from /proc. So not every 'cat /proc/<pid>/task/<pid>/pagemap'
causes an oops.

I could try to bisect this but this powerpc box is iMac G3 (cpu at 400MHz)
and this will take time. So any hints appreciated.

Regards,

Mariusz

script:
---------
#!/bin/bash

for i in `find /proc/*/ -readable -type f`; do
echo -n "cat $i > /dev/null ... ";
logger -t proc_loop $i;
sync;
cat $i > /dev/null;
echo "done";
done
----------
syslog:
proc_loop: /proc/3731/task/3731/pagemap
kernel: BUG: sleeping function called from invalid context at fs/proc/task_mmu.c:554
kernel: in_atomic():1, irqs_disabled():0
kernel: Call Trace:
kernel: [cf1cddf0] [c000840c] show_stack+0x3c/0x194 (unreliable)
kernel: [cf1cde20] [c002b2ec] __might_sleep+0xf4/0x108
kernel: [cf1cde30] [c00d2d54] add_to_pagemap+0x40/0x11c
kernel: [cf1cde50] [c00d2f44] pagemap_pte_range+0xa8/0x10c
kernel: [cf1cde70] [c0081b30] walk_page_range+0x148/0x23c
kernel: [cf1cdeb0] [c00d3104] pagemap_read+0x15c/0x244
kernel: [cf1cdef0] [c0092144] vfs_read+0xc4/0x16c
kernel: [cf1cdf10] [c009261c] sys_read+0x4c/0x90
kernel: [cf1cdf40] [c001328c] ret_from_syscall+0x0/0x40
kernel: --- Exception: c01 at 0xff5a364
kernel: LR = 0x10002f60
kernel: BUG: scheduling while atomic: cat/8929/0x00000002
kernel: Call Trace:
kernel: [cf1cde90] [c000840c] show_stack+0x3c/0x194 (unreliable)
kernel: [cf1cdec0] [c002db24] __schedule_bug+0x64/0x78
kernel: [cf1cdee0] [c027207c] schedule+0x304/0x32c
kernel: [cf1cdf40] [c0013a5c] recheck+0x0/0x28
kernel: --- Exception: c01 at 0xff5a364
kernel: LR = 0x10002f60
kernel: BUG: scheduling while atomic: cat/8929/0x00000007
kernel: Call Trace:
kernel: [cf1cde90] [c000840c] show_stack+0x3c/0x194 (unreliable)
kernel: [cf1cdec0] [c002db24] __schedule_bug+0x64/0x78
kernel: [cf1cdee0] [c027207c] schedule+0x304/0x32c
kernel: [cf1cdf40] [c0013a5c] recheck+0x0/0x28
kernel: --- Exception: c01 at 0xff5a364
kernel: LR = 0x10002f60
kernel: BUG: scheduling while atomic: cat/8929/0x00000009
kernel: Call Trace:
kernel: [cf1cde90] [c000840c] show_stack+0x3c/0x194 (unreliable)
kernel: [cf1cdec0] [c002db24] __schedule_bug+0x64/0x78
kernel: [cf1cdee0] [c027207c] schedule+0x304/0x32c
kernel: [cf1cdf40] [c0013a5c] recheck+0x0/0x28
kernel: --- Exception: c01 at 0xff5a364
kernel: LR = 0x10002f60
kernel: Page fault in user mode with in_atomic() = 1 mm = cf2765a0
kernel: NIP = ff0cbc8 MSR = 4000f932
kernel: Oops: Weird page fault, sig: 11 [#3]
kernel: PREEMPT PowerMac
kernel: Modules linked in: usbhid ide_cd_mod ohci_hcd usbcore uninorth_agp agpgart
kernel: NIP: 0ff0cbc8 LR: 0ff0d398 CTR: 0ff0d2d0
kernel: REGS: cf1cdf50 TRAP: 0401 Tainted: G D (2.6.24-rc8-mm1)
kernel: MSR: 4000f932 <EE,PR,FP,ME,IR,DR> CR: 28022442 XER: 00000000
kernel: TASK = cf8d74f0[8929] 'cat' THREAD: cf1cc000
kernel: GPR00: 00000001 bf93e330 48029bf0 0ffed488 10016038 28022442 00000000 0ff5a364
kernel: GPR08: 0000f932 00000000 00001032 00000000 28022442
kernel: NIP [0ff0cbc8] 0xff0cbc8
kernel: LR [0ff0d398] 0xff0d398
proc_loop: /proc/3731/task/3731/wchan
kernel: Call Trace:
kernel: ---[ end trace 54bd1ed4883922c9 ]---
kernel: note: cat[8929] exited with preempt_count 10
proc_loop: /proc/3731/task/3731/oom_score
proc_loop: /proc/3731/task/3731/oom_adj
proc_loop: /proc/3731/fdinfo/0
[... snip ...]

2008-01-17 22:18:30

by Joseph Fannin

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 - mkubootimg wants <zlib.h>

On Thu, Jan 17, 2008 at 02:35:14AM -0800, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/

> git-kbuild.patch

The "kbuild: rework arch specific Makefiles to use mkubootimg"
changeset in Kbuild git introduces a kernel build dependency on the
system zlib.h headers; scripts/mkubootimg/crc32.c wants it.

The build errors out if those headers aren't installed. Was this
intentional?

--
Joseph Fannin
[email protected]

2008-01-17 22:23:39

by Josh Boyer

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 - mkubootimg wants <zlib.h>

On Thu, 17 Jan 2008 16:29:59 -0500
Joseph Fannin <[email protected]> wrote:

> On Thu, Jan 17, 2008 at 02:35:14AM -0800, Andrew Morton wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
>
> > git-kbuild.patch
>
> The "kbuild: rework arch specific Makefiles to use mkubootimg"
> changeset in Kbuild git introduces a kernel build dependency on the
> system zlib.h headers; scripts/mkubootimg/crc32.c wants it.
>
> The build errors out if those headers aren't installed. Was this
> intentional?

No, it wasn't. The first patch in that series should have included the
zlib.h header itself as well.

Sam, I'll respin the first patch and send it to you shortly. Sorry for
the trouble.

josh

2008-01-17 22:55:50

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: powerpc oopses

On Thu, 17 Jan 2008 23:15:27 +0100
Mariusz Kozlowski <[email protected]> wrote:

> Hello,
>
> The script below kills powerpc. oopses get longer and more
> wonderful with every next 'cated' file.

ppc32.

> /proc/<pid>/task/<pid>/pagemap seems to be the cause of oops. The
> important thing is that it oopses for random (that is not first in a row)
> process from /proc. So not every 'cat /proc/<pid>/task/<pid>/pagemap'
> causes an oops.
>
> I could try to bisect this but this powerpc box is iMac G3 (cpu at 400MHz)
> and this will take time. So any hints appreciated.
>
> Regards,
>
> Mariusz
>
> script:
> ---------
> #!/bin/bash
>
> for i in `find /proc/*/ -readable -type f`; do
> echo -n "cat $i > /dev/null ... ";
> logger -t proc_loop $i;
> sync;
> cat $i > /dev/null;
> echo "done";
> done
> ----------
> syslog:
> proc_loop: /proc/3731/task/3731/pagemap
> kernel: BUG: sleeping function called from invalid context at fs/proc/task_mmu.c:554
> kernel: in_atomic():1, irqs_disabled():0
> kernel: Call Trace:
> kernel: [cf1cddf0] [c000840c] show_stack+0x3c/0x194 (unreliable)
> kernel: [cf1cde20] [c002b2ec] __might_sleep+0xf4/0x108
> kernel: [cf1cde30] [c00d2d54] add_to_pagemap+0x40/0x11c
> kernel: [cf1cde50] [c00d2f44] pagemap_pte_range+0xa8/0x10c
> kernel: [cf1cde70] [c0081b30] walk_page_range+0x148/0x23c
> kernel: [cf1cdeb0] [c00d3104] pagemap_read+0x15c/0x244
> kernel: [cf1cdef0] [c0092144] vfs_read+0xc4/0x16c
> kernel: [cf1cdf10] [c009261c] sys_read+0x4c/0x90
> kernel: [cf1cdf40] [c001328c] ret_from_syscall+0x0/0x40

It's not really an oops - it's a warning. add_to_pagemap() is doing a
put_user() inside pagemap_pte_range->pte_offset_map->kmap_atomic.

A known bug, I'm afraid.

How to fix?

- double-buffer the data to be copied to userspace or

- take a local copy of the pte page then work on that instead or

- play copy_to_user_inatomic() tricks.

It would be really nice to get the maps4 stuff merged this time around but
it is looking unlikely.

> kernel: --- Exception: c01 at 0xff5a364
> kernel: LR = 0x10002f60
> kernel: BUG: scheduling while atomic: cat/8929/0x00000002
> kernel: Call Trace:
> kernel: [cf1cde90] [c000840c] show_stack+0x3c/0x194 (unreliable)
> kernel: [cf1cdec0] [c002db24] __schedule_bug+0x64/0x78
> kernel: [cf1cdee0] [c027207c] schedule+0x304/0x32c
> kernel: [cf1cdf40] [c0013a5c] recheck+0x0/0x28
> kernel: --- Exception: c01 at 0xff5a364
> kernel: LR = 0x10002f60
> kernel: BUG: scheduling while atomic: cat/8929/0x00000007
> kernel: Call Trace:
> kernel: [cf1cde90] [c000840c] show_stack+0x3c/0x194 (unreliable)
> kernel: [cf1cdec0] [c002db24] __schedule_bug+0x64/0x78
> kernel: [cf1cdee0] [c027207c] schedule+0x304/0x32c
> kernel: [cf1cdf40] [c0013a5c] recheck+0x0/0x28
> kernel: --- Exception: c01 at 0xff5a364
> kernel: LR = 0x10002f60
> kernel: BUG: scheduling while atomic: cat/8929/0x00000009
> kernel: Call Trace:
> kernel: [cf1cde90] [c000840c] show_stack+0x3c/0x194 (unreliable)
> kernel: [cf1cdec0] [c002db24] __schedule_bug+0x64/0x78
> kernel: [cf1cdee0] [c027207c] schedule+0x304/0x32c
> kernel: [cf1cdf40] [c0013a5c] recheck+0x0/0x28
> kernel: --- Exception: c01 at 0xff5a364
> kernel: LR = 0x10002f60
> kernel: Page fault in user mode with in_atomic() = 1 mm = cf2765a0
> kernel: NIP = ff0cbc8 MSR = 4000f932
> kernel: Oops: Weird page fault, sig: 11 [#3]

hm. Not sure how that happened. The arch code thinks we're running in
user mode.

> kernel: PREEMPT PowerMac
> kernel: Modules linked in: usbhid ide_cd_mod ohci_hcd usbcore uninorth_agp agpgart
> kernel: NIP: 0ff0cbc8 LR: 0ff0d398 CTR: 0ff0d2d0
> kernel: REGS: cf1cdf50 TRAP: 0401 Tainted: G D (2.6.24-rc8-mm1)
> kernel: MSR: 4000f932 <EE,PR,FP,ME,IR,DR> CR: 28022442 XER: 00000000
> kernel: TASK = cf8d74f0[8929] 'cat' THREAD: cf1cc000
> kernel: GPR00: 00000001 bf93e330 48029bf0 0ffed488 10016038 28022442 00000000 0ff5a364
> kernel: GPR08: 0000f932 00000000 00001032 00000000 28022442
> kernel: NIP [0ff0cbc8] 0xff0cbc8
> kernel: LR [0ff0d398] 0xff0d398
> proc_loop: /proc/3731/task/3731/wchan
> kernel: Call Trace:
> kernel: ---[ end trace 54bd1ed4883922c9 ]---
> kernel: note: cat[8929] exited with preempt_count 10
> proc_loop: /proc/3731/task/3731/oom_score
> proc_loop: /proc/3731/task/3731/oom_adj
> proc_loop: /proc/3731/fdinfo/0
> [... snip ...]

2008-01-17 23:04:57

by Balbir Singh

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

* Pallipadi, Venkatesh <[email protected]> [2008-01-17 11:22:19]:

>
>
> >-----Original Message-----
> >From: Andrew Morton [mailto:[email protected]]
> >Sent: Thursday, January 17, 2008 10:40 AM
> >To: [email protected]
> >Cc: [email protected]; Linux ACPI mailing list;
> >Intel E/100 mailing list; Ingo Molnar; Thomas Gleixner;
> >Pallipadi, Venkatesh
> >Subject: Re: 2.6.24-rc8-mm1
> >
> >On Thu, 17 Jan 2008 18:16:22 +0530 Balbir Singh
> ><[email protected]> wrote:
> >
> >> * Andrew Morton <[email protected]> [2008-01-17 02:35:14]:
> >>
> >> >
> >> >
> >ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2
> >.6.24-rc8/2.6.24-rc8-mm1/
> >> >
> >> > - selinux is busted on one of my two selinux-enabled test machines.
> >> >
> >> > - suspend-to-ram and suspend-to-disk are totally hosed on
> >one of my test
> >> > machines. I guess I get to bisect this.
> >> >
> >> > - git-nfsd is dropped due to conflicts with git-nfs
> >> >
> >> > - git-newsetup is dropped due to conflicts with git-x86 (I think)
> >> >
> >> > - git-perfmon is dropped due to conflicts with git-x86 (I think)
> >> >
> >> > - git-kgdb is dropped due to conflicts with
> >git-damn-near-everything
> >> >
> >> > - git-block is dropped due to conflicts with the IDE tree
> >> >
> >> > - kvm probably doesn't work properly because I couldn't be
> >bothered fixing
> >> > the conflicts between git-kvm and the driver tree
> >> >
> >> > - the volume of rejects and build errors which are caused
> >by subsystem
> >> > maintainers fiddling with other people's stuff is quite
> >out of control.
> >> > Something needs to happen here.
> >>
> >> Hi, Andrew,
> >>
> >> May be it was one of the conflicts, but my system fails to get
> >> ethernet working with this version. I see
> >>
> >> e100: Intel(R) PRO/100 Network Driver, 3. 5.23-k4-NAPI
> >> e100: Copyright(c) 1999-2006 Intel Corporation
> >> ACPI: PCI Interrupt 0000:04:08.0[A] -> GSI 20 (level, low) -> IRQ 20
> >> modprobe:2584 conflicting cache attribute 50000000-50001000
> >> uncached<->default
> >> e100: 0000:04:08.0: e100_probe: Cannot map device registers,
> >aborting.
> >> ACPI: PCI interrupt for device 0000:04:08.0 disabled
> >> e100: probe of 0000:04:08.0 failed with error -12
> >>
> >It appears that the new PAT code didn't like e100's
> >pci_iomap(). Venki, can you
> >take a look please?
> >
>
> This seems similar to one problem we saw yday. May not be specific to
> e1000. May be at some generic pci code.
>
> The problem is
> >> modprobe:2584 conflicting cache attribute 50000000-50001000
> >> uncached<->default
>
> Some address range here is being mapped with conflicting types.
> Somewhere the range was mapped with default (write-back). Later
> pci_iomap() is mapping that region as uncacheable which is basically
> aliasing. PAT code detects the aliasing and fails the second uncacheable
> request which leads in the failure.
>
> We are trying to find who exactly is mapping this with default at the
> beginning.
> Balbir: Full dmesg with debug boot parameter may help.
>

Venki/Andrew,

I think I found the root cause of the problem and a fix for it.
The fix works for me.

Description
-----------

With the introduction of reserve_mattr() and free_mattr(), the ioremap* routines
started exploiting it. The recent 2.6.24-rc8-mm1 kernel has a peculiar problem
where in, certain devices disappear. In my case for example

e100: Intel(R) PRO/100 Network Driver, 3. 5.23-k4-NAPI
e100: Copyright(c) 1999-2006 Intel Corporation
ACPI: PCI Interrupt 0000:04:08.0[A] -> GSI 20 (level, low) -> IRQ 20
modprobe:2584 conflicting cache attribute 50000000-50001000 uncached<->default
e100: 0000:04:08.0: e100_probe: Cannot map device registers, aborting.
ACPI: PCI interrupt for device 0000:04:08.0 disabled

On further analysis, it was discovered that quirk_e100_interrupt() calls
ioremap(), which reserves memory attributes for the e100 card, but iounmap()
does not free it. The patch below removes the check fixes this problem.
It removes for the check of (p->flags >> 20), which checks for architecture
specific bits set on the vm_struct's flags member. ioremap() unconditionally
reserves memory attributes, iounmap() should undo it.


Signed-off-by: Balbir Singh <[email protected]>
---

arch/x86/mm/ioremap_32.c | 2 +-
arch/x86/mm/ioremap_64.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff -puN arch/x86/mm/ioremap_32.c~fix-mattr-issue arch/x86/mm/ioremap_32.c
--- linux-2.6.24-rc8/arch/x86/mm/ioremap_32.c~fix-mattr-issue 2008-01-18 04:25:33.000000000 +0530
+++ linux-2.6.24-rc8-balbir/arch/x86/mm/ioremap_32.c 2008-01-18 04:25:53.000000000 +0530
@@ -220,7 +220,7 @@ void iounmap(volatile void __iomem *addr
}

/* Reset the direct mapping. Can block */
- if (p->flags >> 20) {
+ if (p->flags) {
free_mattr(p->phys_addr, p->phys_addr + get_vm_area_size(p),
p->flags>>20);
ioremap_change_attr(p->phys_addr, get_vm_area_size(p), 0);
diff -puN arch/x86/mm/ioremap_64.c~fix-mattr-issue arch/x86/mm/ioremap_64.c
--- linux-2.6.24-rc8/arch/x86/mm/ioremap_64.c~fix-mattr-issue 2008-01-18 04:25:33.000000000 +0530
+++ linux-2.6.24-rc8-balbir/arch/x86/mm/ioremap_64.c 2008-01-18 04:25:53.000000000 +0530
@@ -191,7 +191,7 @@ void iounmap(volatile void __iomem *addr
}

/* Reset the direct mapping. Can block */
- if (p->flags >> 20) {
+ if (p->flags) {
free_mattr(p->phys_addr, p->phys_addr + get_vm_area_size(p),
p->flags>>20);
ioremap_change_attr(p->phys_addr, get_vm_area_size(p), 0);
_

--
Warm Regards,
Balbir Singh
Linux Technology Center
IBM, ISTL

2008-01-17 23:09:19

by Jeff Dike

[permalink] [raw]
Subject: Re: [-mm Patch] uml: fix a building error

On Thu, Jan 17, 2008 at 01:41:50PM -0800, Venki Pallipadi wrote:
> > And while we're on the subject, what's the deal with these, in
> > include/asm-x86/io.h?
> >
> > #define ioremap_wc ioremap_wc
> > #define unxlate_dev_mem_ptr unxlate_dev_mem_ptr
> >
>
> If archs want to override the defaults for these two functions, they define
> the above and then include asm-generic/iomap.h.

That wasn't really the question.

#define X X

is a no-op, yes?

Jeff

--
Work email - jdike at linux dot intel dot com

2008-01-17 23:15:57

by NeilBrown

[permalink] [raw]
Subject: Re: do_md_run returned -22 [Was: 2.6.24-rc8-mm1]

On Thursday January 17, [email protected] wrote:
> On Thu, 17 Jan 2008 16:23:30 +0100 Jiri Slaby <[email protected]> wrote:
>
> > On 01/17/2008 11:35 AM, Andrew Morton wrote:
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
> >
> > still the same md issue (do_md_run returns -22=EINVAL) as in -rc6-mm1 reported
> > by Thorsten here:
> > http://lkml.org/lkml/2007/12/27/45
>
> hm, I must have been asleep when that was reported. Neil, did you see it?

No, even though it was Cc:ed to me - sorry.
Maybe a revised subject line would have helped... maybe not.

>
> > Is there around any fix for this?
>
> Well, we could bitbucket md-allow-devices-to-be-shared-between-md-arrays.patch

Yeah, do that. I'll send you something new.
I'll move that chunk into a different patch and add the extra bits
needed to make that test correct in *all* cases rather than just the
ones I was thinking about at the time.
My test suit does try in-kernel-autodetect (the problem case) but it
didn't catch this bug due to another bug. I'll fix that too.

Thanks,
NeilBrown

2008-01-17 23:16:56

by Pallipadi, Venkatesh

[permalink] [raw]
Subject: RE: [-mm Patch] uml: fix a building error



>-----Original Message-----
>From: Jeff Dike [mailto:[email protected]]
>Sent: Thursday, January 17, 2008 3:08 PM
>To: Pallipadi, Venkatesh
>Cc: Andrew Morton; Mariusz Kozlowski; WANG Cong;
>[email protected];
>[email protected]; David Miller;
>[email protected]; Ingo Molnar; Thomas Gleixner
>Subject: Re: [-mm Patch] uml: fix a building error
>
>On Thu, Jan 17, 2008 at 01:41:50PM -0800, Venki Pallipadi wrote:
>> > And while we're on the subject, what's the deal with these, in
>> > include/asm-x86/io.h?
>> >
>> > #define ioremap_wc ioremap_wc
>> > #define unxlate_dev_mem_ptr unxlate_dev_mem_ptr
>> >
>>
>> If archs want to override the defaults for these two
>functions, they define
>> the above and then include asm-generic/iomap.h.
>
>That wasn't really the question.
>
>#define X X
>
>is a no-op, yes?
>

Later there is code in generic.h which is doing
#ifndef ioremap_wc
#define ioremap_wc ioremap_nocache
#endif


Thanks,
Venki

2008-01-17 23:34:23

by Pallipadi, Venkatesh

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

On Thu, Jan 17, 2008 at 11:40:32AM -0800, Andrew Morton wrote:
> On Thu, 17 Jan 2008 11:22:19 -0800 "Pallipadi, Venkatesh" <[email protected]> wrote:
>
> >
> > The problem is
> > >> modprobe:2584 conflicting cache attribute 50000000-50001000
> > >> uncached<->default
> >
> > Some address range here is being mapped with conflicting types.
> > Somewhere the range was mapped with default (write-back). Later
> > pci_iomap() is mapping that region as uncacheable which is basically
> > aliasing. PAT code detects the aliasing and fails the second uncacheable
> > request which leads in the failure.
>
> It sounds to me like you need considerably more runtime debugging and
> reporting support in that code. Ensure that it generates enough output
> both during regular operation and during failures for you to be able to
> diagnose things in a single iteration.
>
> We can always take it out later.
>
>

Patch below makes the interesting printks from PAT non DEBUG.

Signed-off-by: Venkatesh Pallipadi <[email protected]>

Index: linux-2.6.git/arch/x86/mm/ioremap.c
===================================================================
--- linux-2.6.git.orig/arch/x86/mm/ioremap.c 2008-01-17 03:18:59.000000000 -0800
+++ linux-2.6.git/arch/x86/mm/ioremap.c 2008-01-17 08:11:51.000000000 -0800
@@ -25,10 +25,13 @@
*/
void __iomem *ioremap_wc(unsigned long phys_addr, unsigned long size)
{
- if (pat_wc_enabled)
+ if (pat_wc_enabled) {
+ printk(KERN_INFO "ioremap_wc: addr %lx, size %lx\n",
+ phys_addr, size);
return __ioremap(phys_addr, size, _PAGE_WC);
- else
+ } else {
return ioremap_nocache(phys_addr, size);
+ }
}
EXPORT_SYMBOL(ioremap_wc);

Index: linux-2.6.git/arch/x86/mm/ioremap_32.c
===================================================================
--- linux-2.6.git.orig/arch/x86/mm/ioremap_32.c 2008-01-17 03:18:59.000000000 -0800
+++ linux-2.6.git/arch/x86/mm/ioremap_32.c 2008-01-17 08:10:58.000000000 -0800
@@ -164,6 +164,8 @@

void __iomem *ioremap_nocache (unsigned long phys_addr, unsigned long size)
{
+ printk(KERN_INFO "ioremap_nocache: addr %lx, size %lx\n",
+ phys_addr, size);
return __ioremap(phys_addr, size, _PAGE_UC);
}
EXPORT_SYMBOL(ioremap_nocache);
Index: linux-2.6.git/arch/x86/mm/ioremap_64.c
===================================================================
--- linux-2.6.git.orig/arch/x86/mm/ioremap_64.c 2008-01-17 03:18:59.000000000 -0800
+++ linux-2.6.git/arch/x86/mm/ioremap_64.c 2008-01-17 08:10:13.000000000 -0800
@@ -144,7 +144,7 @@

void __iomem *ioremap_nocache (unsigned long phys_addr, unsigned long size)
{
- printk(KERN_DEBUG "ioremap_nocache: addr %lx, size %lx\n",
+ printk(KERN_INFO "ioremap_nocache: addr %lx, size %lx\n",
phys_addr, size);
return __ioremap(phys_addr, size, _PAGE_UC);
}
Index: linux-2.6.git/arch/x86/mm/pat.c
===================================================================
--- linux-2.6.git.orig/arch/x86/mm/pat.c 2008-01-17 03:18:59.000000000 -0800
+++ linux-2.6.git/arch/x86/mm/pat.c 2008-01-17 08:06:23.000000000 -0800
@@ -170,7 +170,7 @@

if (!fattr && attr != ml->attr) {
printk(
- KERN_DEBUG "%s:%d conflicting cache attribute %Lx-%Lx %s<->%s\n",
+ KERN_WARNING "%s:%d conflicting cache attribute %Lx-%Lx %s<->%s\n",
current->comm, current->pid,
start, end,
cattr_name(attr), cattr_name(ml->attr));
@@ -205,7 +205,7 @@
list_for_each_entry(ml, &mattr_list, nd) {
if (ml->start == start && ml->end == end) {
if (ml->attr != attr)
- printk(KERN_DEBUG
+ printk(KERN_WARNING
"%s:%d conflicting cache attributes on free %Lx-%Lx %s<->%s\n",
current->comm, current->pid, start, end,
cattr_name(attr), cattr_name(ml->attr));
@@ -217,7 +217,7 @@
}
spin_unlock(&mattr_lock);
if (err)
- printk(KERN_DEBUG "%s:%d freeing invalid mattr %Lx-%Lx %s\n",
+ printk(KERN_WARNING "%s:%d freeing invalid mattr %Lx-%Lx %s\n",
current->comm, current->pid,
start, end, cattr_name(attr));
return err;
Index: linux-2.6.git/include/asm-x86/io_32.h
===================================================================
--- linux-2.6.git.orig/include/asm-x86/io_32.h 2008-01-17 06:28:06.000000000 -0800
+++ linux-2.6.git/include/asm-x86/io_32.h 2008-01-17 08:09:30.000000000 -0800
@@ -113,6 +113,8 @@

static inline void __iomem * ioremap(unsigned long offset, unsigned long size)
{
+ printk(KERN_INFO "ioremap: addr %lx, size %lx\n",
+ offset, size);
return __ioremap(offset, size, 0);
}

Index: linux-2.6.git/include/asm-x86/io_64.h
===================================================================
--- linux-2.6.git.orig/include/asm-x86/io_64.h 2008-01-17 08:08:23.000000000 -0800
+++ linux-2.6.git/include/asm-x86/io_64.h 2008-01-17 08:08:44.000000000 -0800
@@ -154,7 +154,7 @@

static inline void __iomem * ioremap (unsigned long offset, unsigned long size)
{
- printk(KERN_DEBUG "ioremap: addr %lx, size %lx\n",
+ printk(KERN_INFO "ioremap: addr %lx, size %lx\n",
offset, size);
return __ioremap(offset, size, 0);
}

2008-01-17 23:43:53

by Matt Mackall

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: powerpc oopses


On Thu, 2008-01-17 at 14:51 -0800, Andrew Morton wrote:
> > proc_loop: /proc/3731/task/3731/pagemap
> > kernel: BUG: sleeping function called from invalid context at fs/proc/task_mmu.c:554
> > kernel: in_atomic():1, irqs_disabled():0
> > kernel: Call Trace:
> > kernel: [cf1cddf0] [c000840c] show_stack+0x3c/0x194 (unreliable)
> > kernel: [cf1cde20] [c002b2ec] __might_sleep+0xf4/0x108
> > kernel: [cf1cde30] [c00d2d54] add_to_pagemap+0x40/0x11c
> > kernel: [cf1cde50] [c00d2f44] pagemap_pte_range+0xa8/0x10c
> > kernel: [cf1cde70] [c0081b30] walk_page_range+0x148/0x23c
> > kernel: [cf1cdeb0] [c00d3104] pagemap_read+0x15c/0x244
> > kernel: [cf1cdef0] [c0092144] vfs_read+0xc4/0x16c
> > kernel: [cf1cdf10] [c009261c] sys_read+0x4c/0x90
> > kernel: [cf1cdf40] [c001328c] ret_from_syscall+0x0/0x40
>
> It's not really an oops - it's a warning. add_to_pagemap() is doing a
> put_user() inside pagemap_pte_range->pte_offset_map->kmap_atomic.
>
> A known bug, I'm afraid.
>
> How to fix?
>
> - double-buffer the data to be copied to userspace or
>
> - take a local copy of the pte page then work on that instead or
>
> - play copy_to_user_inatomic() tricks.

Hmm, this fell off my radar. How about something like this as a minimal
fix (untested as -mm is a complete doorstop for me at the moment)?

diff -r 5595adaea70f fs/proc/task_mmu.c
--- a/fs/proc/task_mmu.c Thu Jan 17 13:26:54 2008 -0600
+++ b/fs/proc/task_mmu.c Thu Jan 17 17:29:21 2008 -0600
@@ -582,20 +583,26 @@
{
struct pagemapread *pm = private;
pte_t *pte;
- int err = 0;
+ int offset = 0, err = 0;

pte = pte_offset_map(pmd, addr);
- for (; addr != end; pte++, addr += PAGE_SIZE) {
+ for (; addr != end; offset++, addr += PAGE_SIZE) {
u64 pfn = PM_NOT_PRESENT;
- if (is_swap_pte(*pte))
- pfn = swap_pte_to_pagemap_entry(*pte);
- else if (pte_present(*pte))
- pfn = pte_pfn(*pte);
+ if (is_swap_pte(pte[offset]))
+ pfn = swap_pte_to_pagemap_entry(pte[offset]);
+ else if (pte_present(pte[offset]))
+ pfn = pte_pfn(pte[offset]);
+#ifdef CONFIG_HIGHPTE
+ pte_unmap(pte);
err = add_to_pagemap(addr, pfn, pm);
+ pte = pte_offset_map(pmd, addr);
+#else
+ err = add_to_pagemap(addr, pfn, pm);
+#endif
if (err)
return err;
}
- pte_unmap(pte - 1);
+ pte_unmap(pte);

cond_resched();


--
Mathematics is the supreme nostalgia of our time.

2008-01-18 00:06:18

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: powerpc oopses

On Thu, 17 Jan 2008 17:39:54 -0600
Matt Mackall <[email protected]> wrote:

>
> On Thu, 2008-01-17 at 14:51 -0800, Andrew Morton wrote:
> > > proc_loop: /proc/3731/task/3731/pagemap
> > > kernel: BUG: sleeping function called from invalid context at fs/proc/task_mmu.c:554
> > > kernel: in_atomic():1, irqs_disabled():0
> > > kernel: Call Trace:
> > > kernel: [cf1cddf0] [c000840c] show_stack+0x3c/0x194 (unreliable)
> > > kernel: [cf1cde20] [c002b2ec] __might_sleep+0xf4/0x108
> > > kernel: [cf1cde30] [c00d2d54] add_to_pagemap+0x40/0x11c
> > > kernel: [cf1cde50] [c00d2f44] pagemap_pte_range+0xa8/0x10c
> > > kernel: [cf1cde70] [c0081b30] walk_page_range+0x148/0x23c
> > > kernel: [cf1cdeb0] [c00d3104] pagemap_read+0x15c/0x244
> > > kernel: [cf1cdef0] [c0092144] vfs_read+0xc4/0x16c
> > > kernel: [cf1cdf10] [c009261c] sys_read+0x4c/0x90
> > > kernel: [cf1cdf40] [c001328c] ret_from_syscall+0x0/0x40
> >
> > It's not really an oops - it's a warning. add_to_pagemap() is doing a
> > put_user() inside pagemap_pte_range->pte_offset_map->kmap_atomic.
> >
> > A known bug, I'm afraid.
> >
> > How to fix?
> >
> > - double-buffer the data to be copied to userspace or
> >
> > - take a local copy of the pte page then work on that instead or
> >
> > - play copy_to_user_inatomic() tricks.
>
> Hmm, this fell off my radar. How about something like this as a minimal
> fix (untested as -mm is a complete doorstop for me at the moment)?
>
> diff -r 5595adaea70f fs/proc/task_mmu.c
> --- a/fs/proc/task_mmu.c Thu Jan 17 13:26:54 2008 -0600
> +++ b/fs/proc/task_mmu.c Thu Jan 17 17:29:21 2008 -0600
> @@ -582,20 +583,26 @@
> {
> struct pagemapread *pm = private;
> pte_t *pte;
> - int err = 0;
> + int offset = 0, err = 0;
>
> pte = pte_offset_map(pmd, addr);
> - for (; addr != end; pte++, addr += PAGE_SIZE) {
> + for (; addr != end; offset++, addr += PAGE_SIZE) {
> u64 pfn = PM_NOT_PRESENT;
> - if (is_swap_pte(*pte))
> - pfn = swap_pte_to_pagemap_entry(*pte);
> - else if (pte_present(*pte))
> - pfn = pte_pfn(*pte);
> + if (is_swap_pte(pte[offset]))
> + pfn = swap_pte_to_pagemap_entry(pte[offset]);
> + else if (pte_present(pte[offset]))
> + pfn = pte_pfn(pte[offset]);
> +#ifdef CONFIG_HIGHPTE
> + pte_unmap(pte);
> err = add_to_pagemap(addr, pfn, pm);
> + pte = pte_offset_map(pmd, addr);
> +#else
> + err = add_to_pagemap(addr, pfn, pm);
> +#endif
> if (err)
> return err;
> }
> - pte_unmap(pte - 1);
> + pte_unmap(pte);
>
> cond_resched();
>

Good point, it really can be taht simple.

Do we need the ifdef? pte_offset_map/pte_unmap should be super-cheap on
!CONFIG_HIGHPTE builds.

2008-01-18 00:13:24

by Matt Mackall

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: powerpc oopses


On Thu, 2008-01-17 at 16:05 -0800, Andrew Morton wrote:
> On Thu, 17 Jan 2008 17:39:54 -0600
> Matt Mackall <[email protected]> wrote:
>
> >
> > On Thu, 2008-01-17 at 14:51 -0800, Andrew Morton wrote:
> > > > proc_loop: /proc/3731/task/3731/pagemap
> > > > kernel: BUG: sleeping function called from invalid context at fs/proc/task_mmu.c:554
> > > > kernel: in_atomic():1, irqs_disabled():0
> > > > kernel: Call Trace:
> > > > kernel: [cf1cddf0] [c000840c] show_stack+0x3c/0x194 (unreliable)
> > > > kernel: [cf1cde20] [c002b2ec] __might_sleep+0xf4/0x108
> > > > kernel: [cf1cde30] [c00d2d54] add_to_pagemap+0x40/0x11c
> > > > kernel: [cf1cde50] [c00d2f44] pagemap_pte_range+0xa8/0x10c
> > > > kernel: [cf1cde70] [c0081b30] walk_page_range+0x148/0x23c
> > > > kernel: [cf1cdeb0] [c00d3104] pagemap_read+0x15c/0x244
> > > > kernel: [cf1cdef0] [c0092144] vfs_read+0xc4/0x16c
> > > > kernel: [cf1cdf10] [c009261c] sys_read+0x4c/0x90
> > > > kernel: [cf1cdf40] [c001328c] ret_from_syscall+0x0/0x40
> > >
> > > It's not really an oops - it's a warning. add_to_pagemap() is doing a
> > > put_user() inside pagemap_pte_range->pte_offset_map->kmap_atomic.
> > >
> > > A known bug, I'm afraid.
> > >
> > > How to fix?
> > >
> > > - double-buffer the data to be copied to userspace or
> > >
> > > - take a local copy of the pte page then work on that instead or
> > >
> > > - play copy_to_user_inatomic() tricks.
> >
> > Hmm, this fell off my radar. How about something like this as a minimal
> > fix (untested as -mm is a complete doorstop for me at the moment)?
> >
> > diff -r 5595adaea70f fs/proc/task_mmu.c
> > --- a/fs/proc/task_mmu.c Thu Jan 17 13:26:54 2008 -0600
> > +++ b/fs/proc/task_mmu.c Thu Jan 17 17:29:21 2008 -0600
> > @@ -582,20 +583,26 @@
> > {
> > struct pagemapread *pm = private;
> > pte_t *pte;
> > - int err = 0;
> > + int offset = 0, err = 0;
> >
> > pte = pte_offset_map(pmd, addr);
> > - for (; addr != end; pte++, addr += PAGE_SIZE) {
> > + for (; addr != end; offset++, addr += PAGE_SIZE) {
> > u64 pfn = PM_NOT_PRESENT;
> > - if (is_swap_pte(*pte))
> > - pfn = swap_pte_to_pagemap_entry(*pte);
> > - else if (pte_present(*pte))
> > - pfn = pte_pfn(*pte);
> > + if (is_swap_pte(pte[offset]))
> > + pfn = swap_pte_to_pagemap_entry(pte[offset]);
> > + else if (pte_present(pte[offset]))
> > + pfn = pte_pfn(pte[offset]);
> > +#ifdef CONFIG_HIGHPTE
> > + pte_unmap(pte);
> > err = add_to_pagemap(addr, pfn, pm);
> > + pte = pte_offset_map(pmd, addr);
> > +#else
> > + err = add_to_pagemap(addr, pfn, pm);
> > +#endif
> > if (err)
> > return err;
> > }
> > - pte_unmap(pte - 1);
> > + pte_unmap(pte);
> >
> > cond_resched();
> >
>
> Good point, it really can be taht simple.
>
> Do we need the ifdef? pte_offset_map/pte_unmap should be super-cheap on
> !CONFIG_HIGHPTE builds.

In that case, pte_unmap is free, pte_offset_map is just a bit of math.
So yeah, we can simplify this. How about:

diff -r 5595adaea70f fs/proc/task_mmu.c
--- a/fs/proc/task_mmu.c Thu Jan 17 13:26:54 2008 -0600
+++ b/fs/proc/task_mmu.c Thu Jan 17 18:11:13 2008 -0600
@@ -582,20 +583,20 @@
{
struct pagemapread *pm = private;
pte_t *pte;
- int err = 0;
+ int offset = 0, err = 0;

- pte = pte_offset_map(pmd, addr);
- for (; addr != end; pte++, addr += PAGE_SIZE) {
+ for (; addr != end; offset++, addr += PAGE_SIZE) {
u64 pfn = PM_NOT_PRESENT;
- if (is_swap_pte(*pte))
- pfn = swap_pte_to_pagemap_entry(*pte);
- else if (pte_present(*pte))
- pfn = pte_pfn(*pte);
+ pte = pte_offset_map(pmd, addr);
+ if (is_swap_pte(pte[offset]))
+ pfn = swap_pte_to_pagemap_entry(pte[offset]);
+ else if (pte_present(pte[offset]))
+ pfn = pte_pfn(pte[offset]);
+ pte_unmap(pte);
err = add_to_pagemap(addr, pfn, pm);
if (err)
return err;
}
- pte_unmap(pte - 1);

cond_resched();

--
Mathematics is the supreme nostalgia of our time.

2008-01-18 00:30:15

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: powerpc oopses

On Thu, 17 Jan 2008 18:12:48 -0600
Matt Mackall <[email protected]> wrote:

>
> > Do we need the ifdef? pte_offset_map/pte_unmap should be super-cheap on
> > !CONFIG_HIGHPTE builds.
>
> In that case, pte_unmap is free, pte_offset_map is just a bit of math.
> So yeah, we can simplify this. How about:
>
> diff -r 5595adaea70f fs/proc/task_mmu.c
> --- a/fs/proc/task_mmu.c Thu Jan 17 13:26:54 2008 -0600
> +++ b/fs/proc/task_mmu.c Thu Jan 17 18:11:13 2008 -0600
> @@ -582,20 +583,20 @@
> {
> struct pagemapread *pm = private;
> pte_t *pte;
> - int err = 0;
> + int offset = 0, err = 0;
>
> - pte = pte_offset_map(pmd, addr);
> - for (; addr != end; pte++, addr += PAGE_SIZE) {
> + for (; addr != end; offset++, addr += PAGE_SIZE) {
> u64 pfn = PM_NOT_PRESENT;
> - if (is_swap_pte(*pte))
> - pfn = swap_pte_to_pagemap_entry(*pte);
> - else if (pte_present(*pte))
> - pfn = pte_pfn(*pte);
> + pte = pte_offset_map(pmd, addr);
> + if (is_swap_pte(pte[offset]))
> + pfn = swap_pte_to_pagemap_entry(pte[offset]);
> + else if (pte_present(pte[offset]))
> + pfn = pte_pfn(pte[offset]);
> + pte_unmap(pte);
> err = add_to_pagemap(addr, pfn, pm);
> if (err)
> return err;
> }
> - pte_unmap(pte - 1);
>
> cond_resched();
>

Do we need `offset' at all?

You have

static int pagemap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
void *private)
{
struct pagemapread *pm = private;
pte_t *pte;
int offset = 0, err = 0;

for (; addr != end; offset++, addr += PAGE_SIZE) {
u64 pfn = PM_NOT_PRESENT;
pte = pte_offset_map(pmd, addr);
if (is_swap_pte(pte[offset]))
pfn = swap_pte_to_pagemap_entry(pte[offset]);
else if (pte_present(pte[offset]))
pfn = pte_pfn(pte[offset]);
pte_unmap(pte);
err = add_to_pagemap(addr, pfn, pm);
if (err)
return err;
}

cond_resched();

return err;
}

but I think we just do s/pte[offset]/*pte/. The virtual address should be
the only thing we need to increment as we walk across the addresses here?

2008-01-18 00:47:58

by Matt Mackall

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: powerpc oopses


On Thu, 2008-01-17 at 16:29 -0800, Andrew Morton wrote:
> Do we need `offset' at all?

Looks like no.

I wonder if there's a good argument for adding a pte_offset_val() which
would let us do:

pteval = pte_offset_val(pmd, addr);

and shrink the map/unmap window and overhead here and possibly
elsewhere?

Anyway, updated but still untested patch now with revealing comment:

diff -r 5595adaea70f fs/proc/task_mmu.c
--- a/fs/proc/task_mmu.c Thu Jan 17 13:26:54 2008 -0600
+++ b/fs/proc/task_mmu.c Thu Jan 17 18:45:57 2008 -0600
@@ -584,18 +585,19 @@
pte_t *pte;
int err = 0;

- pte = pte_offset_map(pmd, addr);
- for (; addr != end; pte++, addr += PAGE_SIZE) {
+ for (; addr != end; addr += PAGE_SIZE) {
u64 pfn = PM_NOT_PRESENT;
+ pte = pte_offset_map(pmd, addr);
if (is_swap_pte(*pte))
pfn = swap_pte_to_pagemap_entry(*pte);
else if (pte_present(*pte))
pfn = pte_pfn(*pte);
+ /* unmap so we're not in atomic when we copy to userspace */
+ pte_unmap(pte);
err = add_to_pagemap(addr, pfn, pm);
if (err)
return err;
}
- pte_unmap(pte - 1);

cond_resched();



--
Mathematics is the supreme nostalgia of our time.

2008-01-18 00:53:46

by Tejun Heo

[permalink] [raw]
Subject: [PATCH] aha152x: fix isa/pcmcia compile problem

aha152x.c is built twice - once for the isa driver and once for the
PCMCIA one. Through #ifdefs, the compiled codes are slightly
different; thus, global symbols need to be given different names
depending on which flavor is being built. This patch adds GLOBAL()
macro to aha152x.h which changes the symbol depending on PCMCIA.

This bug has always existed but has been masked by the fact the
drivers/scsi/pcmcia used subdir-(y|m) instead of obj-(y|m) which made
drivers/scsi/pcmcia/built_in.o not linked into the kernel and thus
avoided the duplicate symbols during compilation.

Signed-off-by: Tejun Heo <[email protected]>
---
drivers/scsi/aha152x.c | 12 ++++++------
drivers/scsi/aha152x.h | 20 +++++++++++++++++---
drivers/scsi/pcmcia/aha152x_stub.c | 10 ++++++----
3 files changed, 29 insertions(+), 13 deletions(-)

diff --git a/drivers/scsi/aha152x.c b/drivers/scsi/aha152x.c
index ea8c699..0204f44 100644
--- a/drivers/scsi/aha152x.c
+++ b/drivers/scsi/aha152x.c
@@ -769,7 +769,7 @@ static irqreturn_t swintr(int irqno, void *dev_id)
return IRQ_HANDLED;
}

-struct Scsi_Host *aha152x_probe_one(struct aha152x_setup *setup)
+struct Scsi_Host *GLOBAL(aha152x_probe_one)(struct aha152x_setup *setup)
{
struct Scsi_Host *shpnt;

@@ -905,7 +905,7 @@ out_host_put:
return NULL;
}

-void aha152x_release(struct Scsi_Host *shpnt)
+void GLOBAL(aha152x_release)(struct Scsi_Host *shpnt)
{
if (!shpnt)
return;
@@ -1327,7 +1327,7 @@ static void reset_ports(struct Scsi_Host *shpnt)
* Reset the host (bus and controller)
*
*/
-int aha152x_host_reset_host(struct Scsi_Host *shpnt)
+int GLOBAL(aha152x_host_reset_host)(struct Scsi_Host *shpnt)
{
DPRINTK(debug_eh, KERN_DEBUG "scsi%d: host reset\n", shpnt->host_no);

@@ -1345,7 +1345,7 @@ int aha152x_host_reset_host(struct Scsi_Host *shpnt)
*/
static int aha152x_host_reset(Scsi_Cmnd *SCpnt)
{
- return aha152x_host_reset_host(SCpnt->device->host);
+ return GLOBAL(aha152x_host_reset_host)(SCpnt->device->host);
}

/*
@@ -3916,7 +3916,7 @@ static int __init aha152x_init(void)

for (i=0; i<setup_count; i++) {
if ( request_region(setup[i].io_port, IO_RANGE, "aha152x") ) {
- struct Scsi_Host *shpnt = aha152x_probe_one(&setup[i]);
+ struct Scsi_Host *shpnt = GLOBAL(aha152x_probe_one)(&setup[i]);

if( !shpnt ) {
release_region(setup[i].io_port, IO_RANGE);
@@ -3946,7 +3946,7 @@ static void __exit aha152x_exit(void)
list_for_each_entry(hd, &aha152x_host_list, host_list) {
struct Scsi_Host *shost = container_of((void *)hd, struct Scsi_Host, hostdata);

- aha152x_release(shost);
+ GLOBAL(aha152x_release)(shost);
}
}

diff --git a/drivers/scsi/aha152x.h b/drivers/scsi/aha152x.h
index ac4bfa4..7db6c47 100644
--- a/drivers/scsi/aha152x.h
+++ b/drivers/scsi/aha152x.h
@@ -330,8 +330,22 @@ struct aha152x_setup {
char *conf;
};

-struct Scsi_Host *aha152x_probe_one(struct aha152x_setup *);
-void aha152x_release(struct Scsi_Host *);
-int aha152x_host_reset_host(struct Scsi_Host *);
+/*
+ * This file and aha152x.c are compiled in two different ways - for
+ * the isa driver and pcmcia one. When building the pcmcia one, the
+ * file is slightly modified, so they can't share the same object
+ * file. The following macro alters a symbol depending on whether
+ * pcmcia driver is being built or not and should be used for any
+ * global symbol.
+ */
+#if defined(PCMCIA)
+#define GLOBAL(x) CS_##x
+#else
+#define GLOBAL(x) x
+#endif
+
+struct Scsi_Host *GLOBAL(aha152x_probe_one)(struct aha152x_setup *);
+void GLOBAL(aha152x_release)(struct Scsi_Host *);
+int GLOBAL(aha152x_host_reset_host)(struct Scsi_Host *);

#endif /* _AHA152X_H */
diff --git a/drivers/scsi/pcmcia/aha152x_stub.c b/drivers/scsi/pcmcia/aha152x_stub.c
index 2dd0dc9..57f83d1 100644
--- a/drivers/scsi/pcmcia/aha152x_stub.c
+++ b/drivers/scsi/pcmcia/aha152x_stub.c
@@ -47,13 +47,15 @@

#include "scsi.h"
#include <scsi/scsi_host.h>
-#include "aha152x.h"

#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>

+#define PCMCIA 1
+#include "aha152x.h"
+
#ifdef PCMCIA_DEBUG
static int pc_debug = PCMCIA_DEBUG;
module_param(pc_debug, int, 0644);
@@ -194,7 +196,7 @@ static int aha152x_config_cs(struct pcmcia_device *link)
if (ext_trans)
s.ext_trans = ext_trans;

- host = aha152x_probe_one(&s);
+ host = GLOBAL(aha152x_probe_one)(&s);
if (host == NULL) {
printk(KERN_INFO "aha152x_cs: no SCSI devices found\n");
goto cs_failed;
@@ -216,7 +218,7 @@ static void aha152x_release_cs(struct pcmcia_device *link)
{
scsi_info_t *info = link->priv;

- aha152x_release(info->host);
+ GLOBAL(aha152x_release)(info->host);
pcmcia_disable_device(link);
}

@@ -224,7 +226,7 @@ static int aha152x_resume(struct pcmcia_device *link)
{
scsi_info_t *info = link->priv;

- aha152x_host_reset_host(info->host);
+ GLOBAL(aha152x_host_reset_host)(info->host);

return 0;
}
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c

2008-01-18 01:08:34

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: powerpc oopses

On Thu, 17 Jan 2008 18:47:17 -0600
Matt Mackall <[email protected]> wrote:

>
> On Thu, 2008-01-17 at 16:29 -0800, Andrew Morton wrote:
> > Do we need `offset' at all?
>
> Looks like no.
>
> I wonder if there's a good argument for adding a pte_offset_val() which
> would let us do:
>
> pteval = pte_offset_val(pmd, addr);
>
> and shrink the map/unmap window and overhead here and possibly
> elsewhere?
>
> Anyway, updated but still untested patch now with revealing comment:
>
> diff -r 5595adaea70f fs/proc/task_mmu.c
> --- a/fs/proc/task_mmu.c Thu Jan 17 13:26:54 2008 -0600
> +++ b/fs/proc/task_mmu.c Thu Jan 17 18:45:57 2008 -0600
> @@ -584,18 +585,19 @@
> pte_t *pte;
> int err = 0;
>
> - pte = pte_offset_map(pmd, addr);
> - for (; addr != end; pte++, addr += PAGE_SIZE) {
> + for (; addr != end; addr += PAGE_SIZE) {
> u64 pfn = PM_NOT_PRESENT;
> + pte = pte_offset_map(pmd, addr);
> if (is_swap_pte(*pte))
> pfn = swap_pte_to_pagemap_entry(*pte);
> else if (pte_present(*pte))
> pfn = pte_pfn(*pte);
> + /* unmap so we're not in atomic when we copy to userspace */
> + pte_unmap(pte);
> err = add_to_pagemap(addr, pfn, pm);
> if (err)
> return err;
> }
> - pte_unmap(pte - 1);
>
> cond_resched();

That worked out nicely.

Wasn't the old code potentially pte_unmap()ping the wrong address? If we
enter with addr==end?

2008-01-18 01:18:22

by Matt Mackall

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: powerpc oopses


On Thu, 2008-01-17 at 17:07 -0800, Andrew Morton wrote:
> That worked out nicely.

Cool, feel free to add:

Signed-off-by: Matt Mackall <[email protected]>

> Wasn't the old code potentially pte_unmap()ping the wrong address? If we
> enter with addr==end?

Yes, that was busted.

--
Mathematics is the supreme nostalgia of our time.

2008-01-18 01:30:45

by Matt Mackall

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


On Thu, 2008-01-17 at 15:10 -0600, Matt Mackall wrote:
> On Thu, 2008-01-17 at 02:35 -0800, Andrew Morton wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
>
> Hmm. On my Thinkpad R51, this gives me:
>
> Uncompressing linux... Ok, booting kernel.
>
> ..and nothing more with the attached .config.

Also, both mainline git and x86.git build and boot fine.

--
Mathematics is the supreme nostalgia of our time.

2008-01-18 01:42:36

by Suresh Siddha

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

On Thu, Jan 17, 2008 at 03:04:03PM -0800, Balbir Singh wrote:
> I think I found the root cause of the problem and a fix for it.
> The fix works for me.
>

Thanks Balbir. But the appended fix is more clean and appropriate. Can you
please check if it works.
---

>From Balbir Singh:
> With the introduction of reserve_mattr() and free_mattr(), the ioremap*
> routines
> started exploiting it. The recent 2.6.24-rc8-mm1 kernel has a peculiar
> problem
> where in, certain devices disappear. In my case for example
>
> e100: Intel(R) PRO/100 Network Driver, 3. 5.23-k4-NAPI
> e100: Copyright(c) 1999-2006 Intel Corporation
> ACPI: PCI Interrupt 0000:04:08.0[A] -> GSI 20 (level, low) -> IRQ 20
> modprobe:2584 conflicting cache attribute 50000000-50001000
> uncached<->default
> e100: 0000:04:08.0: e100_probe: Cannot map device registers, aborting.
> ACPI: PCI interrupt for device 0000:04:08.0 disabled
>
> On further analysis, it was discovered that quirk_e100_interrupt() calls
> ioremap(), which reserves memory attributes for the e100 card, but
> iounmap()
> does not free it.

Fix the iounmap() to call free_matrr() unconditionally.

Signed-off-by: Suresh Siddha <[email protected]>
Signed-off-by: Balbir Singh <[email protected]>
---

diff --git a/arch/x86/mm/ioremap_32.c b/arch/x86/mm/ioremap_32.c
index ae9c8b3..4d5bea8 100644
--- a/arch/x86/mm/ioremap_32.c
+++ b/arch/x86/mm/ioremap_32.c
@@ -201,12 +201,11 @@ void iounmap(volatile void __iomem *addr)
return;
}

+ free_mattr(p->phys_addr, p->phys_addr + get_vm_area_size(p),
+ p->flags>>20);
/* Reset the direct mapping. Can block */
- if (p->flags >> 20) {
- free_mattr(p->phys_addr, p->phys_addr + get_vm_area_size(p),
- p->flags>>20);
+ if (p->flags >> 20)
ioremap_change_attr(p->phys_addr, get_vm_area_size(p), 0);
- }

/* Finally remove it */
o = remove_vm_area((void *)addr);
diff --git a/arch/x86/mm/ioremap_64.c b/arch/x86/mm/ioremap_64.c
index 022b645..c766327 100644
--- a/arch/x86/mm/ioremap_64.c
+++ b/arch/x86/mm/ioremap_64.c
@@ -183,12 +183,11 @@ void iounmap(volatile void __iomem *addr)
return;
}

+ free_mattr(p->phys_addr, p->phys_addr + get_vm_area_size(p),
+ p->flags>>20);
/* Reset the direct mapping. Can block */
- if (p->flags >> 20) {
- free_mattr(p->phys_addr, p->phys_addr + get_vm_area_size(p),
- p->flags>>20);
+ if (p->flags >> 20)
ioremap_change_attr(p->phys_addr, get_vm_area_size(p), 0);
- }

/* Finally remove it */
o = remove_vm_area((void *)addr);

2008-01-18 02:20:40

by Jeff Dike

[permalink] [raw]
Subject: Re: [-mm Patch] uml: fix a building error

On Thu, Jan 17, 2008 at 03:17:38PM -0800, Pallipadi, Venkatesh wrote:
> >#define X X
> >
> >is a no-op, yes?
> >
>
> Later there is code in generic.h which is doing
> #ifndef ioremap_wc
> #define ioremap_wc ioremap_nocache
> #endif

Ah, that makes a bit more sense.

It'd be nice if there was less of a WTF factor there, though.

Jeff

--
Work email - jdike at linux dot intel dot com

2008-01-18 05:07:10

by Balbir Singh

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

On Jan 18, 2008 7:12 AM, Siddha, Suresh B <[email protected]> wrote:
>
> On Thu, Jan 17, 2008 at 03:04:03PM -0800, Balbir Singh wrote:
> > I think I found the root cause of the problem and a fix for it.
> > The fix works for me.
> >
>
> Thanks Balbir. But the appended fix is more clean and appropriate. Can you
> please check if it works.
> ---
>
> From Balbir Singh:
>
> > With the introduction of reserve_mattr() and free_mattr(), the ioremap*
> > routines
> > started exploiting it. The recent 2.6.24-rc8-mm1 kernel has a peculiar
> > problem
> > where in, certain devices disappear. In my case for example
> >
> > e100: Intel(R) PRO/100 Network Driver, 3. 5.23-k4-NAPI
> > e100: Copyright(c) 1999-2006 Intel Corporation
> > ACPI: PCI Interrupt 0000:04:08.0[A] -> GSI 20 (level, low) -> IRQ 20
> > modprobe:2584 conflicting cache attribute 50000000-50001000
> > uncached<->default
> > e100: 0000:04:08.0: e100_probe: Cannot map device registers, aborting.
> > ACPI: PCI interrupt for device 0000:04:08.0 disabled
> >
> > On further analysis, it was discovered that quirk_e100_interrupt() calls
> > ioremap(), which reserves memory attributes for the e100 card, but
> > iounmap()
> > does not free it.
>
> Fix the iounmap() to call free_matrr() unconditionally.
>
> Signed-off-by: Suresh Siddha <[email protected]>
>
> Signed-off-by: Balbir Singh <[email protected]>

Yes, it looks better. p->flags is always set, so the check was not doing much.
I also tested it and it works for me!

Tested-by: Balbir Singh <[email protected]>

Balbir

2008-01-18 05:09:23

by Andrew Morton

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

On Thu, 17 Jan 2008 19:29:18 -0600 Matt Mackall <[email protected]> wrote:

>
> On Thu, 2008-01-17 at 15:10 -0600, Matt Mackall wrote:
> > On Thu, 2008-01-17 at 02:35 -0800, Andrew Morton wrote:
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
> >
> > Hmm. On my Thinkpad R51, this gives me:
> >
> > Uncompressing linux... Ok, booting kernel.
> >
> > ..and nothing more with the attached .config.
>
> Also, both mainline git and x86.git build and boot fine.

Tried your config on the old PIII. Boots OK.

Then tried it on the Vaio and the machine instantly stops with blinking
leds. But it also does this with mainline. You use pentium-M and so do I
on that machine. Odd.

2008-01-18 06:14:48

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Build Failure at scripts/mkubooting/crc32.c

Hi Andrew,

The kernel build fails with following error message

scripts/mkubootimg/crc32.c:15:18: error: zlib.h: No such file or directory
scripts/mkubootimg/crc32.c:77: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'crc_table'
scripts/mkubootimg/crc32.c:153: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'crc32'
make[2]: *** [scripts/mkubootimg/crc32.o] Error 1
make[1]: *** [scripts/mkubootimg] Error 2
make: *** [scripts] Error 2

The patch causing this build failure may be git-kbuild.patch.

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

2008-01-18 06:30:09

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: [PATCH] aha152x: fix isa/pcmcia compile problem

On Fri, Jan 18, 2008 at 09:53:16AM +0900, Tejun Heo wrote:
> aha152x.c is built twice - once for the isa driver and once for the
> PCMCIA one. Through #ifdefs, the compiled codes are slightly
> different; thus, global symbols need to be given different names
> depending on which flavor is being built. This patch adds GLOBAL()
> macro to aha152x.h which changes the symbol depending on PCMCIA.
>
> This bug has always existed but has been masked by the fact the
> drivers/scsi/pcmcia used subdir-(y|m) instead of obj-(y|m) which made
> drivers/scsi/pcmcia/built_in.o not linked into the kernel and thus
> avoided the duplicate symbols during compilation.
>
> Signed-off-by: Tejun Heo <[email protected]>
> ---
> drivers/scsi/aha152x.c | 12 ++++++------
> drivers/scsi/aha152x.h | 20 +++++++++++++++++---
> drivers/scsi/pcmcia/aha152x_stub.c | 10 ++++++----
> 3 files changed, 29 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/scsi/aha152x.c b/drivers/scsi/aha152x.c
> index ea8c699..0204f44 100644
> --- a/drivers/scsi/aha152x.c
> +++ b/drivers/scsi/aha152x.c
> @@ -769,7 +769,7 @@ static irqreturn_t swintr(int irqno, void *dev_id)
> return IRQ_HANDLED;
> }
>
> -struct Scsi_Host *aha152x_probe_one(struct aha152x_setup *setup)
> +struct Scsi_Host *GLOBAL(aha152x_probe_one)(struct aha152x_setup *setup)
> {
> struct Scsi_Host *shpnt;
>
> @@ -905,7 +905,7 @@ out_host_put:
> return NULL;
> }
>
> -void aha152x_release(struct Scsi_Host *shpnt)
> +void GLOBAL(aha152x_release)(struct Scsi_Host *shpnt)
> {
> if (!shpnt)
> return;
> @@ -1327,7 +1327,7 @@ static void reset_ports(struct Scsi_Host *shpnt)
> * Reset the host (bus and controller)
> *
> */
> -int aha152x_host_reset_host(struct Scsi_Host *shpnt)
> +int GLOBAL(aha152x_host_reset_host)(struct Scsi_Host *shpnt)
> {
> DPRINTK(debug_eh, KERN_DEBUG "scsi%d: host reset\n", shpnt->host_no);
>
> @@ -1345,7 +1345,7 @@ int aha152x_host_reset_host(struct Scsi_Host *shpnt)
> */
> static int aha152x_host_reset(Scsi_Cmnd *SCpnt)
> {
> - return aha152x_host_reset_host(SCpnt->device->host);
> + return GLOBAL(aha152x_host_reset_host)(SCpnt->device->host);
> }
>
> /*
> @@ -3916,7 +3916,7 @@ static int __init aha152x_init(void)
>
> for (i=0; i<setup_count; i++) {
> if ( request_region(setup[i].io_port, IO_RANGE, "aha152x") ) {
> - struct Scsi_Host *shpnt = aha152x_probe_one(&setup[i]);
> + struct Scsi_Host *shpnt = GLOBAL(aha152x_probe_one)(&setup[i]);
>
> if( !shpnt ) {
> release_region(setup[i].io_port, IO_RANGE);
> @@ -3946,7 +3946,7 @@ static void __exit aha152x_exit(void)
> list_for_each_entry(hd, &aha152x_host_list, host_list) {
> struct Scsi_Host *shost = container_of((void *)hd, struct Scsi_Host, hostdata);
>
> - aha152x_release(shost);
> + GLOBAL(aha152x_release)(shost);
> }
> }
>
> diff --git a/drivers/scsi/aha152x.h b/drivers/scsi/aha152x.h
> index ac4bfa4..7db6c47 100644
> --- a/drivers/scsi/aha152x.h
> +++ b/drivers/scsi/aha152x.h
> @@ -330,8 +330,22 @@ struct aha152x_setup {
> char *conf;
> };
>
> -struct Scsi_Host *aha152x_probe_one(struct aha152x_setup *);
> -void aha152x_release(struct Scsi_Host *);
> -int aha152x_host_reset_host(struct Scsi_Host *);
> +/*
> + * This file and aha152x.c are compiled in two different ways - for
> + * the isa driver and pcmcia one. When building the pcmcia one, the
> + * file is slightly modified, so they can't share the same object
> + * file. The following macro alters a symbol depending on whether
> + * pcmcia driver is being built or not and should be used for any
> + * global symbol.
> + */
> +#if defined(PCMCIA)
> +#define GLOBAL(x) CS_##x
> +#else
> +#define GLOBAL(x) x
> +#endif
> +
> +struct Scsi_Host *GLOBAL(aha152x_probe_one)(struct aha152x_setup *);
> +void GLOBAL(aha152x_release)(struct Scsi_Host *);
> +int GLOBAL(aha152x_host_reset_host)(struct Scsi_Host *);
>
> #endif /* _AHA152X_H */
> diff --git a/drivers/scsi/pcmcia/aha152x_stub.c b/drivers/scsi/pcmcia/aha152x_stub.c
> index 2dd0dc9..57f83d1 100644
> --- a/drivers/scsi/pcmcia/aha152x_stub.c
> +++ b/drivers/scsi/pcmcia/aha152x_stub.c
> @@ -47,13 +47,15 @@
>
> #include "scsi.h"
> #include <scsi/scsi_host.h>
> -#include "aha152x.h"
>
> #include <pcmcia/cs_types.h>
> #include <pcmcia/cs.h>
> #include <pcmcia/cistpl.h>
> #include <pcmcia/ds.h>
>
> +#define PCMCIA 1
> +#include "aha152x.h"
> +
> #ifdef PCMCIA_DEBUG
> static int pc_debug = PCMCIA_DEBUG;
> module_param(pc_debug, int, 0644);
> @@ -194,7 +196,7 @@ static int aha152x_config_cs(struct pcmcia_device *link)
> if (ext_trans)
> s.ext_trans = ext_trans;
>
> - host = aha152x_probe_one(&s);
> + host = GLOBAL(aha152x_probe_one)(&s);
> if (host == NULL) {
> printk(KERN_INFO "aha152x_cs: no SCSI devices found\n");
> goto cs_failed;
> @@ -216,7 +218,7 @@ static void aha152x_release_cs(struct pcmcia_device *link)
> {
> scsi_info_t *info = link->priv;
>
> - aha152x_release(info->host);
> + GLOBAL(aha152x_release)(info->host);
> pcmcia_disable_device(link);
> }
>
> @@ -224,7 +226,7 @@ static int aha152x_resume(struct pcmcia_device *link)
> {
> scsi_info_t *info = link->priv;
>
> - aha152x_host_reset_host(info->host);
> + GLOBAL(aha152x_host_reset_host)(info->host);
>
> return 0;
> }
> diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
> --
Hi Tejun Heo,

Thanks, I have tested the patch fixes the build failure on aha152x.c.
Tested-By: Kamalesh Babulal <[email protected]>

Thanks & Regards,
Kamalesh Babulal.

2008-01-18 06:37:44

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Build Failure on scsi driver

Andrew Morton wrote:
> On Thu, 17 Jan 2008 21:45:39 +0530 Kamalesh Babulal <[email protected]> wrote:
>
>> Hi Andrew,
>>
>> The kernel build fails with following error
>>
>> drivers/scsi/aha152x.o: In function `aha152x_host_reset_host':
>> /home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/aha152x.c:1324: multiple definition of `aha152x_host_reset_host'
>> drivers/scsi/pcmcia/built-in.o:/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/aha152x.c:1324: first defined here
>> drivers/scsi/aha152x.o: In function `aha152x_release':
>> /home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/aha152x.c:908: multiple definition of `aha152x_release'
>> drivers/scsi/pcmcia/built-in.o:/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/aha152x.c:908: first defined here
>> ld: Warning: size of symbol `aha152x_release' changed from 68 in drivers/scsi/pcmcia/built-in.o to 100 in drivers/scsi/aha152x.o
>> drivers/scsi/aha152x.o: In function `aha152x_probe_one':
>
> Neat. Seems that the scsi build system is linking together two copies of
> drivers/scsi/aha152x.o. One via drivers/scsi/aha152x.o directly and the
> other via drivers/scsi/pcmcia/built-in.o.
>
> Please send the .config.
>
> I'm looking suspiciously at this, from git-scsi-misc:
>
> commit 8ae732a91df051aba6820068a47b631a06599d84
> Author: Tejun Heo <[email protected]>
> Date: Fri Dec 7 22:36:23 2007 +0900
>
> [SCSI] make pcmcia directory use obj-y|m instead of subdir-y|m
>
> subdir-y|m isn't supposed to contain modules or built-in components.
> Change subdir-$(CONFIG_PCMCIA) to obj-$(CONFIG_PCMCIA).
>
> Signed-off-by: Tejun Heo <[email protected]>
> Acked-by: Sam Ravnborg <[email protected]>
> Signed-off-by: James Bottomley <[email protected]>
>
> diff --git a/drivers/scsi/Makefile b/drivers/scsi/Makefile
> index b5441f5..93e1428 100644
> --- a/drivers/scsi/Makefile
> +++ b/drivers/scsi/Makefile
> @@ -17,7 +17,7 @@
> CFLAGS_aha152x.o = -DAHA152X_STAT -DAUTOCONF
> CFLAGS_gdth.o = # -DDEBUG_GDTH=2 -D__SERIAL__ -D__COM2__ -DGDTH_STATISTICS
>
> -subdir-$(CONFIG_PCMCIA) += pcmcia
> +obj-$(CONFIG_PCMCIA) += pcmcia/
>
> obj-$(CONFIG_SCSI) += scsi_mod.o
> obj-$(CONFIG_SCSI_TGT) += scsi_tgt.o

Hi Andrew,

Patch from Tejun Heo fixes the aha152x.c build failure, and following second part
of the build failure, is still occurring.

drivers/scsi/fdomain.o:(.data+0x0): multiple definition of `fdomain_driver_template'
drivers/scsi/pcmcia/built-in.o:(.data+0x5a0): first defined here
drivers/scsi/fdomain.o: In function `fdomain_16x0_bus_reset':
/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/fdomain.c:1568: multiple definition of `fdomain_16x0_bus_reset'
drivers/scsi/pcmcia/built-in.o:/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/fdomain.c:1568: first defined here
drivers/scsi/fdomain.o: In function `__fdomain_16x0_detect':
/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/fdomain.c:894: multiple definition of `__fdomain_16x0_detect'
drivers/scsi/pcmcia/built-in.o:/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/fdomain.c:894: first defined here
ld: Warning: size of symbol `__fdomain_16x0_detect' changed from 1206 in drivers/scsi/pcmcia/built-in.o to 1700 in drivers/scsi/fdomain.o
drivers/scsi/fdomain.o: In function `fdomain_setup':
/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/fdomain.c:554: multiple definition of `fdomain_setup'
drivers/scsi/pcmcia/built-in.o:/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/fdomain.c:554: first defined here
make[2]: *** [drivers/scsi/built-in.o] Error 1
make[1]: *** [drivers/scsi] Error 2
make: *** [drivers] Error 2

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

2008-01-18 07:10:15

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 build failure on headers_check

Hi Andrew,

The kernel build fails during the headers_check on power box

CHECK include/asm/nvram.h
/usr/local/autobench/autotest/tmp/build/linux/usr/include/asm/nvram.h requires linux/list.h, which does not exist in exported headers
make[3]: *** [/usr/local/autobench/autotest/tmp/build/linux/usr/include/asm/.check.nvram.h] Error 1
make[2]: *** [asm-powerpc] Error 2
make[1]: *** [headers_check] Error 2
make: *** [vmlinux] Error 2

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

2008-01-18 07:21:09

by Tejun Heo

[permalink] [raw]
Subject: [PATCH] SCSI: fix isa/pcmcia compile problem

aha152x.c and fdomain are built twice - once for the isa driver and
once for the PCMCIA one. Through #ifdefs, the compiled codes are
slightly different; thus, global symbols need to be given different
names depending on which flavor is being built. This patch adds
GLOBAL() macro to aha152x.h and fdomain.h which change the symbol
depending on PCMCIA.

This bug has always existed but has been masked by the fact the
drivers/scsi/pcmcia used subdir-(y|m) instead of obj-(y|m) which made
drivers/scsi/pcmcia/built_in.o not linked into the kernel and thus
avoided the duplicate symbols during compilation.

Signed-off-by: Tejun Heo <[email protected]>
---
Ah... missed that one. Here's the updated version.

drivers/scsi/aha152x.c | 12 ++++++------
drivers/scsi/aha152x.h | 20 +++++++++++++++++---
drivers/scsi/fdomain.c | 20 ++++++++++----------
drivers/scsi/fdomain.h | 21 +++++++++++++++++----
drivers/scsi/pcmcia/aha152x_stub.c | 10 ++++++----
drivers/scsi/pcmcia/fdomain_stub.c | 10 ++++++----
6 files changed, 62 insertions(+), 31 deletions(-)

diff --git a/drivers/scsi/aha152x.c b/drivers/scsi/aha152x.c
index ea8c699..0204f44 100644
--- a/drivers/scsi/aha152x.c
+++ b/drivers/scsi/aha152x.c
@@ -769,7 +769,7 @@ static irqreturn_t swintr(int irqno, void *dev_id)
return IRQ_HANDLED;
}

-struct Scsi_Host *aha152x_probe_one(struct aha152x_setup *setup)
+struct Scsi_Host *GLOBAL(aha152x_probe_one)(struct aha152x_setup *setup)
{
struct Scsi_Host *shpnt;

@@ -905,7 +905,7 @@ out_host_put:
return NULL;
}

-void aha152x_release(struct Scsi_Host *shpnt)
+void GLOBAL(aha152x_release)(struct Scsi_Host *shpnt)
{
if (!shpnt)
return;
@@ -1327,7 +1327,7 @@ static void reset_ports(struct Scsi_Host *shpnt)
* Reset the host (bus and controller)
*
*/
-int aha152x_host_reset_host(struct Scsi_Host *shpnt)
+int GLOBAL(aha152x_host_reset_host)(struct Scsi_Host *shpnt)
{
DPRINTK(debug_eh, KERN_DEBUG "scsi%d: host reset\n", shpnt->host_no);

@@ -1345,7 +1345,7 @@ int aha152x_host_reset_host(struct Scsi_Host *shpnt)
*/
static int aha152x_host_reset(Scsi_Cmnd *SCpnt)
{
- return aha152x_host_reset_host(SCpnt->device->host);
+ return GLOBAL(aha152x_host_reset_host)(SCpnt->device->host);
}

/*
@@ -3916,7 +3916,7 @@ static int __init aha152x_init(void)

for (i=0; i<setup_count; i++) {
if ( request_region(setup[i].io_port, IO_RANGE, "aha152x") ) {
- struct Scsi_Host *shpnt = aha152x_probe_one(&setup[i]);
+ struct Scsi_Host *shpnt = GLOBAL(aha152x_probe_one)(&setup[i]);

if( !shpnt ) {
release_region(setup[i].io_port, IO_RANGE);
@@ -3946,7 +3946,7 @@ static void __exit aha152x_exit(void)
list_for_each_entry(hd, &aha152x_host_list, host_list) {
struct Scsi_Host *shost = container_of((void *)hd, struct Scsi_Host, hostdata);

- aha152x_release(shost);
+ GLOBAL(aha152x_release)(shost);
}
}

diff --git a/drivers/scsi/aha152x.h b/drivers/scsi/aha152x.h
index ac4bfa4..f441e54 100644
--- a/drivers/scsi/aha152x.h
+++ b/drivers/scsi/aha152x.h
@@ -330,8 +330,22 @@ struct aha152x_setup {
char *conf;
};

-struct Scsi_Host *aha152x_probe_one(struct aha152x_setup *);
-void aha152x_release(struct Scsi_Host *);
-int aha152x_host_reset_host(struct Scsi_Host *);
+/*
+ * This file and aha152x.c are compiled in two different ways - for
+ * the isa driver and pcmcia one. When building the pcmcia one, the
+ * file is slightly modified, so they can't share the same object
+ * file. The following macro alters a symbol depending on whether
+ * pcmcia driver is being built or not and should be used for any
+ * global symbol.
+ */
+#if defined(PCMCIA)
+#define GLOBAL(x) CS_##x
+#else
+#define GLOBAL(x) ISA_##x
+#endif
+
+struct Scsi_Host *GLOBAL(aha152x_probe_one)(struct aha152x_setup *);
+void GLOBAL(aha152x_release)(struct Scsi_Host *);
+int GLOBAL(aha152x_host_reset_host)(struct Scsi_Host *);

#endif /* _AHA152X_H */
diff --git a/drivers/scsi/fdomain.c b/drivers/scsi/fdomain.c
index 2cd6b49..e14c59b 100644
--- a/drivers/scsi/fdomain.c
+++ b/drivers/scsi/fdomain.c
@@ -550,7 +550,7 @@ static void print_banner( struct Scsi_Host *shpnt )
printk( "\n" );
}

-int fdomain_setup(char *str)
+int GLOBAL(fdomain_setup)(char *str)
{
int ints[4];

@@ -571,7 +571,7 @@ int fdomain_setup(char *str)
return 1;
}

-__setup("fdomain=", fdomain_setup);
+__setup("fdomain=", GLOBAL(fdomain_setup));


static void do_pause(unsigned amount) /* Pause for amount*10 milliseconds */
@@ -890,7 +890,7 @@ fail:

#endif

-struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt )
+struct Scsi_Host *GLOBAL(__fdomain_16x0_detect)(struct scsi_host_template *tpnt )
{
int retcode;
struct Scsi_Host *shpnt;
@@ -931,7 +931,7 @@ struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt )
}
}

- fdomain_16x0_bus_reset(NULL);
+ GLOBAL(fdomain_16x0_bus_reset)(NULL);

if (fdomain_test_loopback()) {
printk(KERN_ERR "scsi: <fdomain> Detection failed (loopback test failed at port base 0x%x)\n", port_base);
@@ -1004,8 +1004,8 @@ fail:
static int fdomain_16x0_detect(struct scsi_host_template *tpnt)
{
if (fdomain)
- fdomain_setup(fdomain);
- return (__fdomain_16x0_detect(tpnt) != NULL);
+ GLOBAL(fdomain_setup)(fdomain);
+ return (GLOBAL(__fdomain_16x0_detect)(tpnt) != NULL);
}

static const char *fdomain_16x0_info( struct Scsi_Host *ignore )
@@ -1564,7 +1564,7 @@ static int fdomain_16x0_abort(struct scsi_cmnd *SCpnt)
return SUCCESS;
}

-int fdomain_16x0_bus_reset(struct scsi_cmnd *SCpnt)
+int GLOBAL(fdomain_16x0_bus_reset)(struct scsi_cmnd *SCpnt)
{
unsigned long flags;

@@ -1746,7 +1746,7 @@ static int fdomain_16x0_release(struct Scsi_Host *shpnt)
return 0;
}

-struct scsi_host_template fdomain_driver_template = {
+struct scsi_host_template GLOBAL(fdomain_driver_template) = {
.module = THIS_MODULE,
.name = "fdomain",
.proc_name = "fdomain",
@@ -1754,7 +1754,7 @@ struct scsi_host_template fdomain_driver_template = {
.info = fdomain_16x0_info,
.queuecommand = fdomain_16x0_queue,
.eh_abort_handler = fdomain_16x0_abort,
- .eh_bus_reset_handler = fdomain_16x0_bus_reset,
+ .eh_bus_reset_handler = GLOBAL(fdomain_16x0_bus_reset),
.bios_param = fdomain_16x0_biosparam,
.release = fdomain_16x0_release,
.can_queue = 1,
@@ -1774,7 +1774,7 @@ static struct pci_device_id fdomain_pci_tbl[] __devinitdata = {
};
MODULE_DEVICE_TABLE(pci, fdomain_pci_tbl);
#endif
-#define driver_template fdomain_driver_template
+#define driver_template GLOBAL(fdomain_driver_template)
#include "scsi_module.c"

#endif
diff --git a/drivers/scsi/fdomain.h b/drivers/scsi/fdomain.h
index 47021d9..f026cd6 100644
--- a/drivers/scsi/fdomain.h
+++ b/drivers/scsi/fdomain.h
@@ -18,7 +18,20 @@
* 675 Mass Ave, Cambridge, MA 02139, USA.
*/

-extern struct scsi_host_template fdomain_driver_template;
-extern int fdomain_setup(char *str);
-extern struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt );
-extern int fdomain_16x0_bus_reset(struct scsi_cmnd *SCpnt);
+/*
+ * fdomain is compiled in two different ways - for the isa driver and
+ * pcmcia one. When building the pcmcia one, the file is slightly
+ * modified, so they can't share the same object file. The following
+ * macro alters a symbol depending on whether pcmcia driver is being
+ * built or not and should be used for any global symbol.
+ */
+#if defined(PCMCIA)
+#define GLOBAL(x) CS_##x
+#else
+#define GLOBAL(x) ISA_##x
+#endif
+
+extern struct scsi_host_template GLOBAL(fdomain_driver_template);
+extern int GLOBAL(fdomain_setup)(char *str);
+extern struct Scsi_Host *GLOBAL(__fdomain_16x0_detect)(struct scsi_host_template *tpnt );
+extern int GLOBAL(fdomain_16x0_bus_reset)(struct scsi_cmnd *SCpnt);
diff --git a/drivers/scsi/pcmcia/aha152x_stub.c b/drivers/scsi/pcmcia/aha152x_stub.c
index 2dd0dc9..57f83d1 100644
--- a/drivers/scsi/pcmcia/aha152x_stub.c
+++ b/drivers/scsi/pcmcia/aha152x_stub.c
@@ -47,13 +47,15 @@

#include "scsi.h"
#include <scsi/scsi_host.h>
-#include "aha152x.h"

#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>

+#define PCMCIA 1
+#include "aha152x.h"
+
#ifdef PCMCIA_DEBUG
static int pc_debug = PCMCIA_DEBUG;
module_param(pc_debug, int, 0644);
@@ -194,7 +196,7 @@ static int aha152x_config_cs(struct pcmcia_device *link)
if (ext_trans)
s.ext_trans = ext_trans;

- host = aha152x_probe_one(&s);
+ host = GLOBAL(aha152x_probe_one)(&s);
if (host == NULL) {
printk(KERN_INFO "aha152x_cs: no SCSI devices found\n");
goto cs_failed;
@@ -216,7 +218,7 @@ static void aha152x_release_cs(struct pcmcia_device *link)
{
scsi_info_t *info = link->priv;

- aha152x_release(info->host);
+ GLOBAL(aha152x_release)(info->host);
pcmcia_disable_device(link);
}

@@ -224,7 +226,7 @@ static int aha152x_resume(struct pcmcia_device *link)
{
scsi_info_t *info = link->priv;

- aha152x_host_reset_host(info->host);
+ GLOBAL(aha152x_host_reset_host)(info->host);

return 0;
}
diff --git a/drivers/scsi/pcmcia/fdomain_stub.c b/drivers/scsi/pcmcia/fdomain_stub.c
index 4b82b20..b075576 100644
--- a/drivers/scsi/pcmcia/fdomain_stub.c
+++ b/drivers/scsi/pcmcia/fdomain_stub.c
@@ -44,13 +44,15 @@

#include "scsi.h"
#include <scsi/scsi_host.h>
-#include "fdomain.h"

#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>

+#define PCMCIA 1
+#include "fdomain.h"
+
/*====================================================================*/

/* Module parameters */
@@ -161,9 +163,9 @@ static int fdomain_config(struct pcmcia_device *link)

/* Set configuration options for the fdomain driver */
sprintf(str, "%d,%d", link->io.BasePort1, link->irq.AssignedIRQ);
- fdomain_setup(str);
+ GLOBAL(fdomain_setup)(str);

- host = __fdomain_16x0_detect(&fdomain_driver_template);
+ host = GLOBAL(__fdomain_16x0_detect)(&GLOBAL(fdomain_driver_template));
if (!host) {
printk(KERN_INFO "fdomain_cs: no SCSI devices found\n");
goto cs_failed;
@@ -202,7 +204,7 @@ static void fdomain_release(struct pcmcia_device *link)

static int fdomain_resume(struct pcmcia_device *link)
{
- fdomain_16x0_bus_reset(NULL);
+ GLOBAL(fdomain_16x0_bus_reset)(NULL);

return 0;
}
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c

2008-01-18 07:27:46

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Build Failure on scsi driver

On Fri, 18 Jan 2008 12:07:27 +0530 Kamalesh Babulal <[email protected]> wrote:

> Hi Andrew,
>
> Patch from Tejun Heo fixes the aha152x.c build failure, and following second part
> of the build failure, is still occurring.
>
> drivers/scsi/fdomain.o:(.data+0x0): multiple definition of `fdomain_driver_template'
> drivers/scsi/pcmcia/built-in.o:(.data+0x5a0): first defined here
> drivers/scsi/fdomain.o: In function `fdomain_16x0_bus_reset':
> /home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/fdomain.c:1568: multiple definition of `fdomain_16x0_bus_reset'
> drivers/scsi/pcmcia/built-in.o:/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/fdomain.c:1568: first defined here
> drivers/scsi/fdomain.o: In function `__fdomain_16x0_detect':
> /home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/fdomain.c:894: multiple definition of `__fdomain_16x0_detect'
> drivers/scsi/pcmcia/built-in.o:/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/fdomain.c:894: first defined here
> ld: Warning: size of symbol `__fdomain_16x0_detect' changed from 1206 in drivers/scsi/pcmcia/built-in.o to 1700 in drivers/scsi/fdomain.o
> drivers/scsi/fdomain.o: In function `fdomain_setup':
> /home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/fdomain.c:554: multiple definition of `fdomain_setup'
> drivers/scsi/pcmcia/built-in.o:/home/kamalesh/scrap/linux-2.6.24-rc8/drivers/scsi/fdomain.c:554: first defined here

Tejun has more fixing to do, I suspect ;)

I assume a basic allyesconfig will weed out most remaining problems of this
sort. Problem is, it needs to be done for all architectures (and even that
might not suffice). So old-fashioned code inspection is also needed.

2008-01-18 07:31:03

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: [PATCH] SCSI: fix isa/pcmcia compile problem

On Fri, Jan 18, 2008 at 04:20:40PM +0900, Tejun Heo wrote:
> aha152x.c and fdomain are built twice - once for the isa driver and
> once for the PCMCIA one. Through #ifdefs, the compiled codes are
> slightly different; thus, global symbols need to be given different
> names depending on which flavor is being built. This patch adds
> GLOBAL() macro to aha152x.h and fdomain.h which change the symbol
> depending on PCMCIA.
>
> This bug has always existed but has been masked by the fact the
> drivers/scsi/pcmcia used subdir-(y|m) instead of obj-(y|m) which made
> drivers/scsi/pcmcia/built_in.o not linked into the kernel and thus
> avoided the duplicate symbols during compilation.
>
Hi Tejun Heo,

Thanks, I have tested the patch, it fixes both build failures.

Tested-by: Kamalesh Babulal <[email protected]>
Signed-off-by: Tejun Heo <[email protected]>
---
Ah... missed that one. Here's the updated version.

drivers/scsi/aha152x.c | 12 ++++++------
drivers/scsi/aha152x.h | 20 +++++++++++++++++---
drivers/scsi/fdomain.c | 20 ++++++++++----------
drivers/scsi/fdomain.h | 21 +++++++++++++++++----
drivers/scsi/pcmcia/aha152x_stub.c | 10 ++++++----
drivers/scsi/pcmcia/fdomain_stub.c | 10 ++++++----
6 files changed, 62 insertions(+), 31 deletions(-)

diff --git a/drivers/scsi/aha152x.c b/drivers/scsi/aha152x.c
index ea8c699..0204f44 100644
--- a/drivers/scsi/aha152x.c
+++ b/drivers/scsi/aha152x.c
@@ -769,7 +769,7 @@ static irqreturn_t swintr(int irqno, void *dev_id)
return IRQ_HANDLED;
}

-struct Scsi_Host *aha152x_probe_one(struct aha152x_setup *setup)
+struct Scsi_Host *GLOBAL(aha152x_probe_one)(struct aha152x_setup *setup)
{
struct Scsi_Host *shpnt;

@@ -905,7 +905,7 @@ out_host_put:
return NULL;
}

-void aha152x_release(struct Scsi_Host *shpnt)
+void GLOBAL(aha152x_release)(struct Scsi_Host *shpnt)
{
if (!shpnt)
return;
@@ -1327,7 +1327,7 @@ static void reset_ports(struct Scsi_Host *shpnt)
* Reset the host (bus and controller)
*
*/
-int aha152x_host_reset_host(struct Scsi_Host *shpnt)
+int GLOBAL(aha152x_host_reset_host)(struct Scsi_Host *shpnt)
{
DPRINTK(debug_eh, KERN_DEBUG "scsi%d: host reset\n", shpnt->host_no);

@@ -1345,7 +1345,7 @@ int aha152x_host_reset_host(struct Scsi_Host *shpnt)
*/
static int aha152x_host_reset(Scsi_Cmnd *SCpnt)
{
- return aha152x_host_reset_host(SCpnt->device->host);
+ return GLOBAL(aha152x_host_reset_host)(SCpnt->device->host);
}

/*
@@ -3916,7 +3916,7 @@ static int __init aha152x_init(void)

for (i=0; i<setup_count; i++) {
if ( request_region(setup[i].io_port, IO_RANGE, "aha152x") ) {
- struct Scsi_Host *shpnt = aha152x_probe_one(&setup[i]);
+ struct Scsi_Host *shpnt = GLOBAL(aha152x_probe_one)(&setup[i]);

if( !shpnt ) {
release_region(setup[i].io_port, IO_RANGE);
@@ -3946,7 +3946,7 @@ static void __exit aha152x_exit(void)
list_for_each_entry(hd, &aha152x_host_list, host_list) {
struct Scsi_Host *shost = container_of((void *)hd, struct Scsi_Host, hostdata);

- aha152x_release(shost);
+ GLOBAL(aha152x_release)(shost);
}
}

diff --git a/drivers/scsi/aha152x.h b/drivers/scsi/aha152x.h
index ac4bfa4..f441e54 100644
--- a/drivers/scsi/aha152x.h
+++ b/drivers/scsi/aha152x.h
@@ -330,8 +330,22 @@ struct aha152x_setup {
char *conf;
};

-struct Scsi_Host *aha152x_probe_one(struct aha152x_setup *);
-void aha152x_release(struct Scsi_Host *);
-int aha152x_host_reset_host(struct Scsi_Host *);
+/*
+ * This file and aha152x.c are compiled in two different ways - for
+ * the isa driver and pcmcia one. When building the pcmcia one, the
+ * file is slightly modified, so they can't share the same object
+ * file. The following macro alters a symbol depending on whether
+ * pcmcia driver is being built or not and should be used for any
+ * global symbol.
+ */
+#if defined(PCMCIA)
+#define GLOBAL(x) CS_##x
+#else
+#define GLOBAL(x) ISA_##x
+#endif
+
+struct Scsi_Host *GLOBAL(aha152x_probe_one)(struct aha152x_setup *);
+void GLOBAL(aha152x_release)(struct Scsi_Host *);
+int GLOBAL(aha152x_host_reset_host)(struct Scsi_Host *);

#endif /* _AHA152X_H */
diff --git a/drivers/scsi/fdomain.c b/drivers/scsi/fdomain.c
index 2cd6b49..e14c59b 100644
--- a/drivers/scsi/fdomain.c
+++ b/drivers/scsi/fdomain.c
@@ -550,7 +550,7 @@ static void print_banner( struct Scsi_Host *shpnt )
printk( "\n" );
}

-int fdomain_setup(char *str)
+int GLOBAL(fdomain_setup)(char *str)
{
int ints[4];

@@ -571,7 +571,7 @@ int fdomain_setup(char *str)
return 1;
}

-__setup("fdomain=", fdomain_setup);
+__setup("fdomain=", GLOBAL(fdomain_setup));


static void do_pause(unsigned amount) /* Pause for amount*10 milliseconds */
@@ -890,7 +890,7 @@ fail:

#endif

-struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt )
+struct Scsi_Host *GLOBAL(__fdomain_16x0_detect)(struct scsi_host_template *tpnt )
{
int retcode;
struct Scsi_Host *shpnt;
@@ -931,7 +931,7 @@ struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt )
}
}

- fdomain_16x0_bus_reset(NULL);
+ GLOBAL(fdomain_16x0_bus_reset)(NULL);

if (fdomain_test_loopback()) {
printk(KERN_ERR "scsi: <fdomainDetection failed (loopback test failed at port base 0x%x)\n", port_base);
@@ -1004,8 +1004,8 @@ fail:
static int fdomain_16x0_detect(struct scsi_host_template *tpnt)
{
if (fdomain)
- fdomain_setup(fdomain);
- return (__fdomain_16x0_detect(tpnt) != NULL);
+ GLOBAL(fdomain_setup)(fdomain);
+ return (GLOBAL(__fdomain_16x0_detect)(tpnt) != NULL);
}

static const char *fdomain_16x0_info( struct Scsi_Host *ignore )
@@ -1564,7 +1564,7 @@ static int fdomain_16x0_abort(struct scsi_cmnd *SCpnt)
return SUCCESS;
}

-int fdomain_16x0_bus_reset(struct scsi_cmnd *SCpnt)
+int GLOBAL(fdomain_16x0_bus_reset)(struct scsi_cmnd *SCpnt)
{
unsigned long flags;

@@ -1746,7 +1746,7 @@ static int fdomain_16x0_release(struct Scsi_Host *shpnt)
return 0;
}

-struct scsi_host_template fdomain_driver_template = {
+struct scsi_host_template GLOBAL(fdomain_driver_template) = {
.module = THIS_MODULE,
.name = "fdomain",
.proc_name = "fdomain",
@@ -1754,7 +1754,7 @@ struct scsi_host_template fdomain_driver_template = {
.info = fdomain_16x0_info,
.queuecommand = fdomain_16x0_queue,
.eh_abort_handler = fdomain_16x0_abort,
- .eh_bus_reset_handler = fdomain_16x0_bus_reset,
+ .eh_bus_reset_handler = GLOBAL(fdomain_16x0_bus_reset),
.bios_param = fdomain_16x0_biosparam,
.release = fdomain_16x0_release,
.can_queue = 1,
@@ -1774,7 +1774,7 @@ static struct pci_device_id fdomain_pci_tbl[] __devinitdata = {
};
MODULE_DEVICE_TABLE(pci, fdomain_pci_tbl);
#endif
-#define driver_template fdomain_driver_template
+#define driver_template GLOBAL(fdomain_driver_template)
#include "scsi_module.c"

#endif
diff --git a/drivers/scsi/fdomain.h b/drivers/scsi/fdomain.h
index 47021d9..f026cd6 100644
--- a/drivers/scsi/fdomain.h
+++ b/drivers/scsi/fdomain.h
@@ -18,7 +18,20 @@
* 675 Mass Ave, Cambridge, MA 02139, USA.
*/

-extern struct scsi_host_template fdomain_driver_template;
-extern int fdomain_setup(char *str);
-extern struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt );
-extern int fdomain_16x0_bus_reset(struct scsi_cmnd *SCpnt);
+/*
+ * fdomain is compiled in two different ways - for the isa driver and
+ * pcmcia one. When building the pcmcia one, the file is slightly
+ * modified, so they can't share the same object file. The following
+ * macro alters a symbol depending on whether pcmcia driver is being
+ * built or not and should be used for any global symbol.
+ */
+#if defined(PCMCIA)
+#define GLOBAL(x) CS_##x
+#else
+#define GLOBAL(x) ISA_##x
+#endif
+
+extern struct scsi_host_template GLOBAL(fdomain_driver_template);
+extern int GLOBAL(fdomain_setup)(char *str);
+extern struct Scsi_Host *GLOBAL(__fdomain_16x0_detect)(struct scsi_host_template *tpnt );
+extern int GLOBAL(fdomain_16x0_bus_reset)(struct scsi_cmnd *SCpnt);
diff --git a/drivers/scsi/pcmcia/aha152x_stub.c b/drivers/scsi/pcmcia/aha152x_stub.c
index 2dd0dc9..57f83d1 100644
--- a/drivers/scsi/pcmcia/aha152x_stub.c
+++ b/drivers/scsi/pcmcia/aha152x_stub.c
@@ -47,13 +47,15 @@

#include "scsi.h"
#include <scsi/scsi_host.h>
-#include "aha152x.h"

#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>

+#define PCMCIA 1
+#include "aha152x.h"
+
#ifdef PCMCIA_DEBUG
static int pc_debug = PCMCIA_DEBUG;
module_param(pc_debug, int, 0644);
@@ -194,7 +196,7 @@ static int aha152x_config_cs(struct pcmcia_device *link)
if (ext_trans)
s.ext_trans = ext_trans;

- host = aha152x_probe_one(&s);
+ host = GLOBAL(aha152x_probe_one)(&s);
if (host == NULL) {
printk(KERN_INFO "aha152x_cs: no SCSI devices found\n");
goto cs_failed;
@@ -216,7 +218,7 @@ static void aha152x_release_cs(struct pcmcia_device *link)
{
scsi_info_t *info = link->priv;

- aha152x_release(info->host);
+ GLOBAL(aha152x_release)(info->host);
pcmcia_disable_device(link);
}

@@ -224,7 +226,7 @@ static int aha152x_resume(struct pcmcia_device *link)
{
scsi_info_t *info = link->priv;

- aha152x_host_reset_host(info->host);
+ GLOBAL(aha152x_host_reset_host)(info->host);

return 0;
}
diff --git a/drivers/scsi/pcmcia/fdomain_stub.c b/drivers/scsi/pcmcia/fdomain_stub.c
index 4b82b20..b075576 100644
--- a/drivers/scsi/pcmcia/fdomain_stub.c
+++ b/drivers/scsi/pcmcia/fdomain_stub.c
@@ -44,13 +44,15 @@

#include "scsi.h"
#include <scsi/scsi_host.h>
-#include "fdomain.h"

#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>

+#define PCMCIA 1
+#include "fdomain.h"
+
/*====================================================================*/

/* Module parameters */
@@ -161,9 +163,9 @@ static int fdomain_config(struct pcmcia_device *link)

/* Set configuration options for the fdomain driver */
sprintf(str, "%d,%d", link->io.BasePort1, link->irq.AssignedIRQ);
- fdomain_setup(str);
+ GLOBAL(fdomain_setup)(str);

- host = __fdomain_16x0_detect(&fdomain_driver_template);
+ host = GLOBAL(__fdomain_16x0_detect)(&GLOBAL(fdomain_driver_template));
if (!host) {
printk(KERN_INFO "fdomain_cs: no SCSI devices found\n");
goto cs_failed;
@@ -202,7 +204,7 @@ static void fdomain_release(struct pcmcia_device *link)

static int fdomain_resume(struct pcmcia_device *link)
{
- fdomain_16x0_bus_reset(NULL);
+ GLOBAL(fdomain_16x0_bus_reset)(NULL);

return 0;
}
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
--

2008-01-18 07:39:38

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 build failure on headers_check

On Fri, 18 Jan 2008 12:39:51 +0530 Kamalesh Babulal <[email protected]> wrote:

> Hi Andrew,
>
> The kernel build fails during the headers_check on power box
>
> CHECK include/asm/nvram.h
> /usr/local/autobench/autotest/tmp/build/linux/usr/include/asm/nvram.h requires linux/list.h, which does not exist in exported headers
> make[3]: *** [/usr/local/autobench/autotest/tmp/build/linux/usr/include/asm/.check.nvram.h] Error 1

doh.

--- a/include/asm-powerpc/nvram.h~include-asm-powerpc-nvramh-needs-listh-fix
+++ a/include/asm-powerpc/nvram.h
@@ -11,7 +11,6 @@
#define _ASM_POWERPC_NVRAM_H

#include <linux/errno.h>
-#include <linux/list.h>

#define NVRW_CNT 0x20
#define NVRAM_HEADER_LEN 16 /* sizeof(struct nvram_header) */
@@ -59,6 +58,9 @@ struct nvram_header {
};

#ifdef __KERNEL__
+
+#include <linux/list.h>
+
struct nvram_partition {
struct list_head partition;
struct nvram_header header;
_

2008-01-18 08:06:32

by Sam Ravnborg

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Build Failure at scripts/mkubooting/crc32.c

On Fri, Jan 18, 2008 at 11:44:34AM +0530, Kamalesh Babulal wrote:
> Hi Andrew,
>
> The kernel build fails with following error message
>
> scripts/mkubootimg/crc32.c:15:18: error: zlib.h: No such file or directory
> scripts/mkubootimg/crc32.c:77: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'crc_table'
> scripts/mkubootimg/crc32.c:153: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'crc32'
> make[2]: *** [scripts/mkubootimg/crc32.o] Error 1
> make[1]: *** [scripts/mkubootimg] Error 2
> make: *** [scripts] Error 2
>
> The patch causing this build failure may be git-kbuild.patch.

The mkubootimg patches in kbuild.git has been reverted - but that was
after akpm merged kbuild.git.
So it is fixed in next -mm.

The workaround for now is to just remove the line
containing "mkubootimg" in scripts/Makefile.

(Assuming you do not need the uImage target).

Sam

2008-01-18 08:36:19

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Kernel oops will running kernbench

Hi Andrew,

Following oops was seen while running kernbench on one of test machine
(power4+ box). I tried reproducing the oops but was unsuccessful.
I will try to reproduce the oops with debug info compiled.


Oops: Kernel access of bad area, sig: 11 [#1]
SMP NR_CPUS=32 NUMA pSeries
Modules linked in:
NIP: 0000000000004570 LR: 000000000fc42dc0 CTR: 0000000000000000
REGS: c00000077b6bf8c0 TRAP: 0300 Not tainted (2.6.24-rc8-mm1-autotest)
MSR: 8000000000001000 <ME> CR: 28022422 XER: 00000000
DAR: c00000077b6bfce0, DSISR: 000000000a000000
TASK = c000000773164c40[19588] 'as' THREAD: c00000077b6bc000 CPU: 1
GPR00: 0000000000004000 c00000077b6bfb40 0000000000007346 000000000000d032
GPR04: 000000000000043a 0000000000000000 000000000000000c 0000000000000004
GPR08: 000000000fd278c8 0000000048022424 c00000077b6bfe30 0000998be2321500
GPR12: 8000000000001030 c0000000005f6280 0000000010030000 0000000010030000
GPR16: 0000000010030000 0000000010050000 000000001006aac0 0000000010053cd0
GPR20: 0000000000000000 0000000000000fe0 0000000010050000 0000000010050000
GPR24: 0000000000000ff8 0000000000000fe8 0000000000000062 000000000fd27490
GPR28: 000000000fd274c8 0000000010099420 000000000fd25ff4 000000001009a400
NIP [0000000000004570] 0x4570
LR [000000000fc42dc0] 0xfc42dc0
Call Trace:
[c00000077b6bfb40] [c00000077b292000] 0xc00000077b292000 (unreliable)
Instruction dump:
48000000 XXXXXXXX XXXXXXXX XXXXXXXX 41820008 XXXXXXXX XXXXXXXX XXXXXXXX
48000010 XXXXXXXX XXXXXXXX XXXXXXXX f92101a0 XXXXXXXX XXXXXXXX XXXXXXXX

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

2008-01-18 08:50:25

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Kernel oops will running kernbench

On Fri, 18 Jan 2008 14:06:00 +0530 Kamalesh Babulal <[email protected]> wrote:

> Hi Andrew,
>
> Following oops was seen while running kernbench on one of test machine
> (power4+ box). I tried reproducing the oops but was unsuccessful.
> I will try to reproduce the oops with debug info compiled.
>
>
> Oops: Kernel access of bad area, sig: 11 [#1]
> SMP NR_CPUS=32 NUMA pSeries
> Modules linked in:
> NIP: 0000000000004570 LR: 000000000fc42dc0 CTR: 0000000000000000
> REGS: c00000077b6bf8c0 TRAP: 0300 Not tainted (2.6.24-rc8-mm1-autotest)
> MSR: 8000000000001000 <ME> CR: 28022422 XER: 00000000
> DAR: c00000077b6bfce0, DSISR: 000000000a000000
> TASK = c000000773164c40[19588] 'as' THREAD: c00000077b6bc000 CPU: 1
> GPR00: 0000000000004000 c00000077b6bfb40 0000000000007346 000000000000d032
> GPR04: 000000000000043a 0000000000000000 000000000000000c 0000000000000004
> GPR08: 000000000fd278c8 0000000048022424 c00000077b6bfe30 0000998be2321500
> GPR12: 8000000000001030 c0000000005f6280 0000000010030000 0000000010030000
> GPR16: 0000000010030000 0000000010050000 000000001006aac0 0000000010053cd0
> GPR20: 0000000000000000 0000000000000fe0 0000000010050000 0000000010050000
> GPR24: 0000000000000ff8 0000000000000fe8 0000000000000062 000000000fd27490
> GPR28: 000000000fd274c8 0000000010099420 000000000fd25ff4 000000001009a400
> NIP [0000000000004570] 0x4570
> LR [000000000fc42dc0] 0xfc42dc0
> Call Trace:
> [c00000077b6bfb40] [c00000077b292000] 0xc00000077b292000 (unreliable)
> Instruction dump:
> 48000000 XXXXXXXX XXXXXXXX XXXXXXXX 41820008 XXXXXXXX XXXXXXXX XXXXXXXX
> 48000010 XXXXXXXX XXXXXXXX XXXXXXXX f92101a0 XXXXXXXX XXXXXXXX XXXXXXXX
>

odd. Where did the stack trace go?

2008-01-18 08:59:39

by Ingo Molnar

[permalink] [raw]
Subject: Re: x86 refuses to build [Re: 2.6.24-rc8-mm1]


* Dhaval Giani <[email protected]> wrote:

> grepping around and looking through the code, I notice it is because
> these variables just do not exist for 32 bit NUMA. I am not sure how
> to go about it, and will just leave it to folks who know what they are
> doing there :).

yes, Mike Travis has i think some patches in the works for this build
problem. Disabling NUMA on 32-bit is the solution meanwhile.

Ingo

2008-01-18 09:01:48

by Paul Mackerras

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Kernel oops will running kernbench

Andrew Morton writes:

> On Fri, 18 Jan 2008 14:06:00 +0530 Kamalesh Babulal <[email protected]> wrote:
>
> > Hi Andrew,
> >
> > Following oops was seen while running kernbench on one of test machine
> > (power4+ box). I tried reproducing the oops but was unsuccessful.
> > I will try to reproduce the oops with debug info compiled.
> >
> >
> > Oops: Kernel access of bad area, sig: 11 [#1]
> > SMP NR_CPUS=32 NUMA pSeries
> > Modules linked in:
> > NIP: 0000000000004570 LR: 000000000fc42dc0 CTR: 0000000000000000
> > REGS: c00000077b6bf8c0 TRAP: 0300 Not tainted (2.6.24-rc8-mm1-autotest)
> > MSR: 8000000000001000 <ME> CR: 28022422 XER: 00000000
> > DAR: c00000077b6bfce0, DSISR: 000000000a000000
> > TASK = c000000773164c40[19588] 'as' THREAD: c00000077b6bc000 CPU: 1
> > GPR00: 0000000000004000 c00000077b6bfb40 0000000000007346 000000000000d032
> > GPR04: 000000000000043a 0000000000000000 000000000000000c 0000000000000004
> > GPR08: 000000000fd278c8 0000000048022424 c00000077b6bfe30 0000998be2321500
> > GPR12: 8000000000001030 c0000000005f6280 0000000010030000 0000000010030000
> > GPR16: 0000000010030000 0000000010050000 000000001006aac0 0000000010053cd0
> > GPR20: 0000000000000000 0000000000000fe0 0000000010050000 0000000010050000
> > GPR24: 0000000000000ff8 0000000000000fe8 0000000000000062 000000000fd27490
> > GPR28: 000000000fd274c8 0000000010099420 000000000fd25ff4 000000001009a400
> > NIP [0000000000004570] 0x4570
> > LR [000000000fc42dc0] 0xfc42dc0
> > Call Trace:
> > [c00000077b6bfb40] [c00000077b292000] 0xc00000077b292000 (unreliable)
> > Instruction dump:
> > 48000000 XXXXXXXX XXXXXXXX XXXXXXXX 41820008 XXXXXXXX XXXXXXXX XXXXXXXX
> > 48000010 XXXXXXXX XXXXXXXX XXXXXXXX f92101a0 XXXXXXXX XXXXXXXX XXXXXXXX
> >
>
> odd. Where did the stack trace go?

It's there, it's just really really short (one line). The link
register is in userspace and the stack pointer looks to be right at
the top of a kernel stack area.

The trap was a data access exception which is very odd given that the
machine is in real mode (MMU off) with the pc at 0x4570. Actually it
looks like the machine probably got a data access exception somewhere
(probably in userspace, probably a page fault or similar) and then got
another exception before it had finished saving the state from the
first exception.

Kamalesh, do you still have the vmlinux? If so could you disassemble
the area from say 0x4500 to 0x4600, and find out what is the closest
symbol before 0xc000000000004570 from System.map, and show us those?

Paul.

2008-01-18 09:35:20

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Kernel oops will running kernbench

Paul Mackerras wrote:
> Andrew Morton writes:
>
>> On Fri, 18 Jan 2008 14:06:00 +0530 Kamalesh Babulal <[email protected]> wrote:
>>
>>> Hi Andrew,
>>>
>>> Following oops was seen while running kernbench on one of test machine
>>> (power4+ box). I tried reproducing the oops but was unsuccessful.
>>> I will try to reproduce the oops with debug info compiled.
>>>
>>>
>>> Oops: Kernel access of bad area, sig: 11 [#1]
>>> SMP NR_CPUS=32 NUMA pSeries
>>> Modules linked in:
>>> NIP: 0000000000004570 LR: 000000000fc42dc0 CTR: 0000000000000000
>>> REGS: c00000077b6bf8c0 TRAP: 0300 Not tainted (2.6.24-rc8-mm1-autotest)
>>> MSR: 8000000000001000 <ME> CR: 28022422 XER: 00000000
>>> DAR: c00000077b6bfce0, DSISR: 000000000a000000
>>> TASK = c000000773164c40[19588] 'as' THREAD: c00000077b6bc000 CPU: 1
>>> GPR00: 0000000000004000 c00000077b6bfb40 0000000000007346 000000000000d032
>>> GPR04: 000000000000043a 0000000000000000 000000000000000c 0000000000000004
>>> GPR08: 000000000fd278c8 0000000048022424 c00000077b6bfe30 0000998be2321500
>>> GPR12: 8000000000001030 c0000000005f6280 0000000010030000 0000000010030000
>>> GPR16: 0000000010030000 0000000010050000 000000001006aac0 0000000010053cd0
>>> GPR20: 0000000000000000 0000000000000fe0 0000000010050000 0000000010050000
>>> GPR24: 0000000000000ff8 0000000000000fe8 0000000000000062 000000000fd27490
>>> GPR28: 000000000fd274c8 0000000010099420 000000000fd25ff4 000000001009a400
>>> NIP [0000000000004570] 0x4570
>>> LR [000000000fc42dc0] 0xfc42dc0
>>> Call Trace:
>>> [c00000077b6bfb40] [c00000077b292000] 0xc00000077b292000 (unreliable)
>>> Instruction dump:
>>> 48000000 XXXXXXXX XXXXXXXX XXXXXXXX 41820008 XXXXXXXX XXXXXXXX XXXXXXXX
>>> 48000010 XXXXXXXX XXXXXXXX XXXXXXXX f92101a0 XXXXXXXX XXXXXXXX XXXXXXXX
>>>
>> odd. Where did the stack trace go?

Only this much was captured in the serial console.
>
> It's there, it's just really really short (one line). The link
> register is in userspace and the stack pointer looks to be right at
> the top of a kernel stack area.
>
> The trap was a data access exception which is very odd given that the
> machine is in real mode (MMU off) with the pc at 0x4570. Actually it
> looks like the machine probably got a data access exception somewhere
> (probably in userspace, probably a page fault or similar) and then got
> another exception before it had finished saving the state from the
> first exception.
>
> Kamalesh, do you still have the vmlinux? If so could you disassemble
> the area from say 0x4500 to 0x4600, and find out what is the closest
> symbol before 0xc000000000004570 from System.map, and show us those?
>
> Paul.
> --
I tried reproducing the problem and was successful with following trace
in which the pc is at 0x4570 as the above one

Oops: Kernel access of bad area, sig: 11 [#1]
SMP NR_CPUS=32 NUMA pSeries
Modules linked in:
NIP: 0000000000004570 LR: 000000000ff0288c CTR: 000000000ff013e0
REGS: c00000077e61f8c0 TRAP: 0300 Not tainted (2.6.24-rc8-mm1-autotest)
MSR: 8000000000001000 <ME> CR: 28000422 XER: 00000000
DAR: c00000077e61fce0, DSISR: 000000000a000000
TASK = c00000077207f880[23480] 'cc1' THREAD: c00000077e61c000 CPU: 3
GPR00: 0000000000004000 c00000077e61fb40 0000000000000088 000000000000d032
GPR04: 0000000000000088 000000000000030c 00000000fefefeff 000000007f7f7f7f
GPR08: 0000000000008000 0000000044000428 c00000077e61fe30 0000998be2321500
GPR12: 8000000000001030 c0000000005f6680 0000000010030000 0000000010030000
GPR16: 00000000105b0000 00000000105b0000 0000000010440000 00000000105b0000
GPR20: 00000000105b0000 00000000105b0000 00000000105b0000 00000000105b0000
GPR24: 00000000105b0000 00000000105b0000 00000000105b0000 00000000ffa11b24
GPR28: 0000000000000000 00000000ffffffff 000000000ffebff4 000000000ffec408
NIP [0000000000004570] 0x4570
LR [000000000ff0288c] 0xff0288c
Call Trace:
[c00000077e61fb40] [c00000077e61fcf0] 0xc00000077e61fcf0 (unreliable)
[c00000077e61fbd0] [0000000010440000] 0x10440000
Instruction dump:
48000000 XXXXXXXX XXXXXXXX XXXXXXXX 41820008 XXXXXXXX XXXXXXXX XXXXXXXX
48000010 XXXXXXXX XXXXXXXX XXXXXXXX f92101a0 XXXXXXXX XXXXXXXX XXXXXXXX

The disassembled vmlinux from 0x4500 to 0x4600

c000000000004500: f9 4d 01 68 std r10,360(r13)
c000000000004504: 48 02 89 f9 bl c00000000002cefc <.slb_allocate_realmode>
c000000000004508: e9 4d 01 68 ld r10,360(r13)
c00000000000450c: e8 6d 01 60 ld r3,352(r13)
c000000000004510: 81 2d 01 5c lwz r9,348(r13)
c000000000004514: 7d 48 03 a6 mtlr r10
c000000000004518: 71 8a 00 02 andi. r10,r12,2
c00000000000451c: 41 82 00 28 beq- c000000000004544 <unrecov_slb>
c000000000004520: 7d 38 01 20 mtocrf 128,r9
c000000000004524: 7d 30 11 20 mtocrf 1,r9
c000000000004528: e9 2d 01 20 ld r9,288(r13)
c00000000000452c: e9 4d 01 28 ld r10,296(r13)
c000000000004530: e9 6d 01 30 ld r11,304(r13)
c000000000004534: e9 8d 01 38 ld r12,312(r13)
c000000000004538: e9 ad 01 40 ld r13,320(r13)
c00000000000453c: 4c 00 00 24 rfid
c000000000004540: 48 00 00 00 b c000000000004540 <.slb_miss_realmode+0x48>

c000000000004544 <unrecov_slb>:
c000000000004544: 71 8a 40 00 andi. r10,r12,16384
c000000000004548: 7c 2a 0b 78 mr r10,r1
c00000000000454c: 38 21 fd 10 addi r1,r1,-752
c000000000004550: 41 82 00 08 beq- c000000000004558 <unrecov_slb+0x14>
c000000000004554: e8 2d 01 a8 ld r1,424(r13)
c000000000004558: 2c a1 00 00 cmpdi cr1,r1,0
c00000000000455c: 40 84 00 08 bge- cr1,c000000000004564 <unrecov_slb+0x20>
c000000000004560: 48 00 00 10 b c000000000004570 <unrecov_slb+0x2c>
c000000000004564: 38 20 41 00 li r1,16640
c000000000004568: b0 2d 01 c8 sth r1,456(r13)
c00000000000456c: 4b ff fb 18 b c000000000004084 <bad_stack>
c000000000004570: f9 21 01 a0 std r9,416(r1)
c000000000004574: f9 61 01 70 std r11,368(r1)
c000000000004578: f9 81 01 78 std r12,376(r1)
c00000000000457c: f9 41 00 00 std r10,0(r1)
c000000000004580: f8 01 00 70 std r0,112(r1)
c000000000004584: f9 41 00 78 std r10,120(r1)
c000000000004588: 41 82 00 24 beq- c0000000000045ac <unrecov_slb+0x68>
c00000000000458c: 7d 35 4a a6 mfspr r9,309
c000000000004590: 7d 2c 42 e6 mftb r9
c000000000004594: e9 4d 01 e0 ld r10,480(r13)
c000000000004598: f9 2d 01 e0 std r9,480(r13)
c00000000000459c: 7d 4a 48 50 subf r10,r10,r9
c0000000000045a0: e9 2d 01 d0 ld r9,464(r13)
c0000000000045a4: 7d 29 52 14 add r9,r9,r10
c0000000000045a8: f9 2d 01 d0 std r9,464(r13)
c0000000000045ac: f8 41 00 80 std r2,128(r1)
c0000000000045b0: f8 61 00 88 std r3,136(r1)
c0000000000045b4: f8 81 00 90 std r4,144(r1)
c0000000000045b8: f8 a1 00 98 std r5,152(r1)
c0000000000045bc: f8 c1 00 a0 std r6,160(r1)
c0000000000045c0: f8 e1 00 a8 std r7,168(r1)
c0000000000045c4: f9 01 00 b0 std r8,176(r1)
c0000000000045c8: e9 2d 01 20 ld r9,288(r13)
c0000000000045cc: e9 4d 01 28 ld r10,296(r13)
c0000000000045d0: f9 21 00 b8 std r9,184(r1)
c0000000000045d4: f9 41 00 c0 std r10,192(r1)
c0000000000045d8: e9 2d 01 30 ld r9,304(r13)
c0000000000045dc: e9 4d 01 38 ld r10,312(r13)
c0000000000045e0: e9 6d 01 40 ld r11,320(r13)
c0000000000045e4: f9 21 00 c8 std r9,200(r1)
c0000000000045e8: f9 41 00 d0 std r10,208(r1)
c0000000000045ec: f9 61 00 d8 std r11,216(r1)
c0000000000045f0: e8 4d 00 10 ld r2,16(r13)
c0000000000045f4: 7d 28 02 a6 mflr r9
c0000000000045f8: f9 21 01 90 std r9,400(r1)
c0000000000045fc: 7d 49 02 a6 mfctr r10
c000000000004600: f9 41 01 88 std r10,392(r1)

The closet symbol form the system.map file

c000000000004280 T data_access_common
c000000000004400 T instruction_access_common
c0000000000044f8 T .slb_miss_realmode
c000000000004544 t unrecov_slb
c000000000004680 T hardware_interrupt_common

Let me know if you need more information.
--
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.

2008-01-18 10:19:55

by Paul Mackerras

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Kernel oops will running kernbench

Kamalesh Babulal writes:

> I tried reproducing the problem and was successful with following trace
> in which the pc is at 0x4570 as the above one

What did you do to trigger it?

> c000000000004544 <unrecov_slb>:
> c000000000004544: 71 8a 40 00 andi. r10,r12,16384
> c000000000004548: 7c 2a 0b 78 mr r10,r1
> c00000000000454c: 38 21 fd 10 addi r1,r1,-752
> c000000000004550: 41 82 00 08 beq- c000000000004558 <unrecov_slb+0x14>
> c000000000004554: e8 2d 01 a8 ld r1,424(r13)
> c000000000004558: 2c a1 00 00 cmpdi cr1,r1,0
> c00000000000455c: 40 84 00 08 bge- cr1,c000000000004564 <unrecov_slb+0x20>
> c000000000004560: 48 00 00 10 b c000000000004570 <unrecov_slb+0x2c>
> c000000000004564: 38 20 41 00 li r1,16640
> c000000000004568: b0 2d 01 c8 sth r1,456(r13)
> c00000000000456c: 4b ff fb 18 b c000000000004084 <bad_stack>
> c000000000004570: f9 21 01 a0 std r9,416(r1)

So it's in the code that gets called on an unrecoverable SLB fault.
That's bad, we should never get those. Does this happen with mainline
too, or only with -rc8-mm1? I don't understand why we should start
seeing this problem unless something has changed in
arch/powerpc/kernel or arch/powerpc/mm (well I suppose a bug somewhere
else could cause memory corruption which might be able to lead to
this).

Does it still happen if you take git-powerpc.patch out of the series?

Paul.

2008-01-18 10:26:40

by Paul Mackerras

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Kernel oops will running kernbench

Kamalesh Babulal writes:

> >>> NIP: 0000000000004570 LR: 000000000fc42dc0 CTR: 0000000000000000
> >>> REGS: c00000077b6bf8c0 TRAP: 0300 Not tainted (2.6.24-rc8-mm1-autotest)
> >>> MSR: 8000000000001000 <ME> CR: 28022422 XER: 00000000
> >>> DAR: c00000077b6bfce0, DSISR: 000000000a000000

Actually, how much RAM does this machine have? If it has less than
32GB, then the problem is that the kernel stack pointer is bogus.
(How it got to be bogus is the interesting question, of course. :)

Paul.

2008-01-18 10:33:54

by Balbir Singh

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

* Andrew Morton <[email protected]> [2008-01-17 10:40:21]:

> On Thu, 17 Jan 2008 18:16:22 +0530 Balbir Singh <[email protected]> wrote:
>
> > * Andrew Morton <[email protected]> [2008-01-17 02:35:14]:
> >
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
> > >
> > > - selinux is busted on one of my two selinux-enabled test machines.
> > >
> > > - suspend-to-ram and suspend-to-disk are totally hosed on one of my test
> > > machines. I guess I get to bisect this.
> > >
> > > - git-nfsd is dropped due to conflicts with git-nfs
> > >
> > > - git-newsetup is dropped due to conflicts with git-x86 (I think)
> > >
> > > - git-perfmon is dropped due to conflicts with git-x86 (I think)
> > >
> > > - git-kgdb is dropped due to conflicts with git-damn-near-everything
> > >
> > > - git-block is dropped due to conflicts with the IDE tree
> > >
> > > - kvm probably doesn't work properly because I couldn't be bothered fixing
> > > the conflicts between git-kvm and the driver tree
> > >
> > > - the volume of rejects and build errors which are caused by subsystem
> > > maintainers fiddling with other people's stuff is quite out of control.
> > > Something needs to happen here.
> >
> > Hi, Andrew,
> >
> > May be it was one of the conflicts, but my system fails to get
> > ethernet working with this version. I see
> >
> > e100: Intel(R) PRO/100 Network Driver, 3. 5.23-k4-NAPI
> > e100: Copyright(c) 1999-2006 Intel Corporation
> > ACPI: PCI Interrupt 0000:04:08.0[A] -> GSI 20 (level, low) -> IRQ 20
> > modprobe:2584 conflicting cache attribute 50000000-50001000
> > uncached<->default
> > e100: 0000:04:08.0: e100_probe: Cannot map device registers, aborting.
> > ACPI: PCI interrupt for device 0000:04:08.0 disabled
> > e100: probe of 0000:04:08.0 failed with error -12
> >
> > Other interesting boot information
> >
> > Using ACPI (MADT) for SMP configuration information
> > PM: Registered nosave memory: 000000000008f000 - 00000000000a0000
> > PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
> > PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
> > PM: Registered nosave memory: 000000003e5d1000 - 000000003e6e5000
> > PM: Registered nosave memory: 000000003f574000 - 000000003f57c000
> > PM: Registered nosave memory: 000000003f62d000 - 000000003f631000
> > PM: Registered nosave memory: 000000003f6a7000 - 000000003f6e9000
> > PM: Registered nosave memory: 000000003f6ed000 - 000000003f6ff000
> > Allocating PCI resources starting at 50000000 (gap: 40000000:bff80000)
> >
> > PCI: Bridge: 0000:00:1c.0
> > IO window: disabled.
> > MEM window:
> > 0x50300000-0x503fffff
> > PREFETCH window: disabled.
> > PCI: Bridge: 0000:00:1c.2
> > IO window: disabled.
> > MEM window:
> > 0x50400000-0x504fffff
> > PREFETCH window: disabled.
> > PCI: Bridge: 0000:00:1c.3
> > IO window: disabled.
> > MEM window:
> > 0x50500000-0x505fffff
> > PREFETCH window: disabled.
> > PCI: Bridge: 0000:00:1e.0
> > IO window: 1000-1fff
> > MEM window:
> > 0x50000000-0x500fffff
> > PREFETCH window: disabled.
> >
> > I am yet to get down to the root cause, thought I'd report it first to
> > the x86 and ACPI list to see if someone has seen the problem before.
> >
>
> It appears that the new PAT code didn't like e100's pci_iomap(). Venki, can you
> take a look please?
>

I tried booting with nopat with no effect.

--
Warm Regards,
Balbir Singh
Linux Technology Center
IBM, ISTL

2008-01-18 10:44:17

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Kernel oops will running kernbench

Paul Mackerras wrote:
> Kamalesh Babulal writes:
>
>>>>> NIP: 0000000000004570 LR: 000000000fc42dc0 CTR: 0000000000000000
>>>>> REGS: c00000077b6bf8c0 TRAP: 0300 Not tainted (2.6.24-rc8-mm1-autotest)
>>>>> MSR: 8000000000001000 <ME> CR: 28022422 XER: 00000000
>>>>> DAR: c00000077b6bfce0, DSISR: 000000000a000000
>
> Actually, how much RAM does this machine have? If it has less than
> 32GB, then the problem is that the kernel stack pointer is bogus.
> (How it got to be bogus is the interesting question, of course. :)
>
> Paul.
>
Hi Paul,

The machine has around 30GB of RAM, do you want me to try, by taking
the git-powerpc.patch out of the series and try reproducing the oops.

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

2008-01-18 10:54:55

by Balbir Singh

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Kernel oops will running kernbench

* Kamalesh Babulal <[email protected]> [2008-01-18 16:14:00]:

> Paul Mackerras wrote:
> > Kamalesh Babulal writes:
> >
> >>>>> NIP: 0000000000004570 LR: 000000000fc42dc0 CTR: 0000000000000000
> >>>>> REGS: c00000077b6bf8c0 TRAP: 0300 Not tainted (2.6.24-rc8-mm1-autotest)
> >>>>> MSR: 8000000000001000 <ME> CR: 28022422 XER: 00000000
> >>>>> DAR: c00000077b6bfce0, DSISR: 000000000a000000
> >
> > Actually, how much RAM does this machine have? If it has less than
> > 32GB, then the problem is that the kernel stack pointer is bogus.
> > (How it got to be bogus is the interesting question, of course. :)
> >
> > Paul.
> >
> Hi Paul,
>
> The machine has around 30GB of RAM, do you want me to try, by taking
> the git-powerpc.patch out of the series and try reproducing the oops.
>

Kamalesh, I thought I saw Paul's request for trying without
git-powerpc.patch (it's in a separate email).

--
Warm Regards,
Balbir Singh
Linux Technology Center
IBM, ISTL

2008-01-18 13:32:46

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: broken suspend (due to git-cpufreq.patch)

On Thursday, 17 of January 2008, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
>
> - selinux is busted on one of my two selinux-enabled test machines.
>
> - suspend-to-ram and suspend-to-disk are totally hosed on one of my test
> machines. I guess I get to bisect this.

Suspend and hibernation are also broken on my HP nx6325, which is caused by
git-cpufreq.patch. Reverting this patch and
drivers-cpufreq-add-calls-to-cpufreq_cpu_put.patch makes things work again.

I reported this already for 2.6.24-rc6-mm1 and Dave said he would look at it
in January. It's still January, so hopefully he's still going to do that. ;-)

Thanks,
Rafael

2008-01-18 13:56:27

by Matt Mackall

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


On Thu, 2008-01-17 at 21:08 -0800, Andrew Morton wrote:
> On Thu, 17 Jan 2008 19:29:18 -0600 Matt Mackall <[email protected]> wrote:
>
> >
> > On Thu, 2008-01-17 at 15:10 -0600, Matt Mackall wrote:
> > > On Thu, 2008-01-17 at 02:35 -0800, Andrew Morton wrote:
> > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
> > >
> > > Hmm. On my Thinkpad R51, this gives me:
> > >
> > > Uncompressing linux... Ok, booting kernel.
> > >
> > > ..and nothing more with the attached .config.
> >
> > Also, both mainline git and x86.git build and boot fine.
>
> Tried your config on the old PIII. Boots OK.
>
> Then tried it on the Vaio and the machine instantly stops with blinking
> leds. But it also does this with mainline. You use pentium-M and so do I
> on that machine. Odd.

Hmm, I don't think I was getting the blinking LEDs, so I suspect mine
was dying even earlier, perhaps in setup.s.

--
Mathematics is the supreme nostalgia of our time.

2008-01-18 14:58:53

by James Bottomley

[permalink] [raw]
Subject: Re: [PATCH] SCSI: fix isa/pcmcia compile problem


On Fri, 2008-01-18 at 16:20 +0900, Tejun Heo wrote:
> aha152x.c and fdomain are built twice - once for the isa driver and
> once for the PCMCIA one. Through #ifdefs, the compiled codes are
> slightly different; thus, global symbols need to be given different
> names depending on which flavor is being built. This patch adds
> GLOBAL() macro to aha152x.h and fdomain.h which change the symbol
> depending on PCMCIA.
>
> This bug has always existed but has been masked by the fact the
> drivers/scsi/pcmcia used subdir-(y|m) instead of obj-(y|m) which made
> drivers/scsi/pcmcia/built_in.o not linked into the kernel and thus
> avoided the duplicate symbols during compilation.
>
> Signed-off-by: Tejun Heo <[email protected]>
> ---
> Ah... missed that one. Here's the updated version.

Actually, isn't the better fix just to return to the original behaviour?

As you pointed out, using the subdir instead of obj meant that although
the modules were built, the drivers were never linked into the main
kernel. According to the records, this has been the default forever, so
there can be no-one anywhere relying on these drivers being built in.
Actually, as old style pcmcia drivers, I'm not sure there's much value
building them into the kernel anyway.

So just modify scsi/pcmcia/Kconfig to make them all depend on m.

James

2008-01-18 16:16:31

by Mike Travis

[permalink] [raw]
Subject: Re: x86 refuses to build [Re: 2.6.24-rc8-mm1]

Ingo Molnar wrote:
> * Dhaval Giani <[email protected]> wrote:
>
>> grepping around and looking through the code, I notice it is because
>> these variables just do not exist for 32 bit NUMA. I am not sure how
>> to go about it, and will just leave it to folks who know what they are
>> doing there :).
>
> yes, Mike Travis has i think some patches in the works for this build
> problem. Disabling NUMA on 32-bit is the solution meanwhile.
>
> Ingo


I have the fix for this problem coming...

Thanks,
Mike

2008-01-18 16:54:20

by Dave Jones

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: broken suspend (due to git-cpufreq.patch)

On Fri, Jan 18, 2008 at 02:34:59PM +0100, Rafael J. Wysocki wrote:
> On Thursday, 17 of January 2008, Andrew Morton wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
> >
> > - selinux is busted on one of my two selinux-enabled test machines.
> >
> > - suspend-to-ram and suspend-to-disk are totally hosed on one of my test
> > machines. I guess I get to bisect this.
>
> Suspend and hibernation are also broken on my HP nx6325, which is caused by
> git-cpufreq.patch. Reverting this patch and
> drivers-cpufreq-add-calls-to-cpufreq_cpu_put.patch makes things work again.
>
> I reported this already for 2.6.24-rc6-mm1 and Dave said he would look at it
> in January. It's still January, so hopefully he's still going to do that. ;-)

Yeah, I put myself out of action for a few weeks. I'm back now.
I'll look at this today. Thanks for the reminder.

Dave

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

2008-01-18 17:11:15

by Dave Jones

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: broken suspend (due to git-cpufreq.patch)

On Fri, Jan 18, 2008 at 02:34:59PM +0100, Rafael J. Wysocki wrote:
> On Thursday, 17 of January 2008, Andrew Morton wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
> >
> > - selinux is busted on one of my two selinux-enabled test machines.
> >
> > - suspend-to-ram and suspend-to-disk are totally hosed on one of my test
> > machines. I guess I get to bisect this.
>
> Suspend and hibernation are also broken on my HP nx6325, which is caused by
> git-cpufreq.patch. Reverting this patch and
> drivers-cpufreq-add-calls-to-cpufreq_cpu_put.patch makes things work again.
>
> I reported this already for 2.6.24-rc6-mm1 and Dave said he would look at it
> in January. It's still January, so hopefully he's still going to do that. ;-)

Given that laptop has a K8 CPU, it's highly likely that it's this patch..
http://userweb.kernel.org/~davej/pn.diff
Can you revert just that on top of -mm, (or just try this standalone on top of -rc8)
and confirm this is problematic ?

The rest of the stuff in cpufreq.git looks benign at first look.

Dave

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

2008-01-18 17:23:22

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: powerpc oopses

Hello,

> > Do we need `offset' at all?
>
> Looks like no.
>
> I wonder if there's a good argument for adding a pte_offset_val() which
> would let us do:
>
> pteval = pte_offset_val(pmd, addr);
>
> and shrink the map/unmap window and overhead here and possibly
> elsewhere?
>
> Anyway, updated but still untested patch now with revealing comment:

I patched the ppc32 kernel with this and run tests on /proc.
This patch helps. No more BUGs and oopses :)

Thanks,

Mariusz

> diff -r 5595adaea70f fs/proc/task_mmu.c
> --- a/fs/proc/task_mmu.c Thu Jan 17 13:26:54 2008 -0600
> +++ b/fs/proc/task_mmu.c Thu Jan 17 18:45:57 2008 -0600
> @@ -584,18 +585,19 @@
> pte_t *pte;
> int err = 0;
>
> - pte = pte_offset_map(pmd, addr);
> - for (; addr != end; pte++, addr += PAGE_SIZE) {
> + for (; addr != end; addr += PAGE_SIZE) {
> u64 pfn = PM_NOT_PRESENT;
> + pte = pte_offset_map(pmd, addr);
> if (is_swap_pte(*pte))
> pfn = swap_pte_to_pagemap_entry(*pte);
> else if (pte_present(*pte))
> pfn = pte_pfn(*pte);
> + /* unmap so we're not in atomic when we copy to userspace */
> + pte_unmap(pte);
> err = add_to_pagemap(addr, pfn, pm);
> if (err)
> return err;
> }
> - pte_unmap(pte - 1);
>
> cond_resched();

2008-01-18 17:26:45

by Balbir Singh

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 (KVM build issues)

* Andrew Morton <[email protected]> [2008-01-17 02:35:14]:

> - kvm probably doesn't work properly because I couldn't be bothered fixing
> the conflicts between git-kvm and the driver tree
>

Hi, Andrew,

The following changes got KVM up and running for me


This patch fixes the kvm build on 2.6.24-rc8-mm1. First of all, it enables
the KVM build, the second fix moves kset_set_name to the .name member.

Signed-off-by: Balbir Singh <[email protected]>
---

arch/x86/Makefile | 2 +-
virt/kvm/kvm_main.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff -puN arch/x86/Makefile~fix-kvm-build arch/x86/Makefile
--- linux-2.6.24-rc8/arch/x86/Makefile~fix-kvm-build 2008-01-18 22:42:41.000000000 +0530
+++ linux-2.6.24-rc8-balbir/arch/x86/Makefile 2008-01-18 22:42:47.000000000 +0530
@@ -185,7 +185,7 @@ core-y += arch/x86/vdso/
core-$(CONFIG_IA32_EMULATION) += arch/x86/ia32/

# kvm host support - uncomment when merging
-# core-$(CONFIG_KVM) += arch/x86/kvm/
+core-$(CONFIG_KVM) += arch/x86/kvm/

# drivers-y are linked after core-y
drivers-$(CONFIG_MATH_EMULATION) += arch/x86/math-emu/
diff -puN virt/kvm/kvm_main.c~fix-kvm-build virt/kvm/kvm_main.c
--- linux-2.6.24-rc8/virt/kvm/kvm_main.c~fix-kvm-build 2008-01-18 22:42:41.000000000 +0530
+++ linux-2.6.24-rc8-balbir/virt/kvm/kvm_main.c 2008-01-18 22:42:47.000000000 +0530
@@ -1260,7 +1260,7 @@ static int kvm_resume(struct sys_device
}

static struct sysdev_class kvm_sysdev_class = {
- set_kset_name("kvm"),
+ .name = "kvm",
.suspend = kvm_suspend,
.resume = kvm_resume,
};
_

--
Warm Regards,
Balbir Singh
Linux Technology Center
IBM, ISTL

2008-01-18 17:34:09

by Matt Mackall

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: powerpc oopses


On Fri, 2008-01-18 at 18:23 +0100, Mariusz Kozlowski wrote:
> Hello,
>
> > > Do we need `offset' at all?
> >
> > Looks like no.
> >
> > I wonder if there's a good argument for adding a pte_offset_val() which
> > would let us do:
> >
> > pteval = pte_offset_val(pmd, addr);
> >
> > and shrink the map/unmap window and overhead here and possibly
> > elsewhere?
> >
> > Anyway, updated but still untested patch now with revealing comment:
>
> I patched the ppc32 kernel with this and run tests on /proc.
> This patch helps. No more BUGs and oopses :)

Thanks, Andrew's already queued it up.

--
Mathematics is the supreme nostalgia of our time.

2008-01-18 18:06:35

by Kyle McMartin

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

On Thu, Jan 17, 2008 at 02:35:14AM -0800, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
>

Odd nobody else has seen this... oldconfig fails for me on Debian...
kconfig/conf.c is using setlocale() without including the locale.h
header.

HOSTCC scripts/kconfig/conf.o
scripts/kconfig/conf.c: In function 'main':
scripts/kconfig/conf.c:502: warning: implicit declaration of function
'setlocale'
scripts/kconfig/conf.c:502: error: 'LC_ALL' undeclared (first use in
this function)
scripts/kconfig/conf.c:502: error: (Each undeclared identifier is
reported only once

Signed-off-by: Kyle McMartin <[email protected]>

--- a/scripts/kconfig/conf.c 2008-01-17 15:45:59.000000000 -0800
+++ b/scripts/kconfig/conf.c 2008-01-18 10:01:54.000000000 -0800
@@ -3,6 +3,8 @@
* Released under the terms of the GNU GPL v2.0.
*/

+#include <locale.h>
+
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>

2008-01-18 20:47:53

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: broken suspend (due to git-cpufreq.patch)

On Friday, 18 of January 2008, Dave Jones wrote:
> On Fri, Jan 18, 2008 at 02:34:59PM +0100, Rafael J. Wysocki wrote:
> > On Thursday, 17 of January 2008, Andrew Morton wrote:
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
> > >
> > > - selinux is busted on one of my two selinux-enabled test machines.
> > >
> > > - suspend-to-ram and suspend-to-disk are totally hosed on one of my test
> > > machines. I guess I get to bisect this.
> >
> > Suspend and hibernation are also broken on my HP nx6325, which is caused by
> > git-cpufreq.patch. Reverting this patch and
> > drivers-cpufreq-add-calls-to-cpufreq_cpu_put.patch makes things work again.
> >
> > I reported this already for 2.6.24-rc6-mm1 and Dave said he would look at it
> > in January. It's still January, so hopefully he's still going to do that. ;-)
>
> Given that laptop has a K8 CPU, it's highly likely that it's this patch..
> http://userweb.kernel.org/~davej/pn.diff
> Can you revert just that on top of -mm, (or just try this standalone on top of -rc8)
> and confirm this is problematic ?

Reverting it from the -mm makes things work. I'll check if it breaks things
when applied on top of -rc8.

2008-01-18 21:53:18

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: broken suspend (due to git-cpufreq.patch)

On Friday, 18 of January 2008, Rafael J. Wysocki wrote:
> On Friday, 18 of January 2008, Dave Jones wrote:
> > On Fri, Jan 18, 2008 at 02:34:59PM +0100, Rafael J. Wysocki wrote:
> > > On Thursday, 17 of January 2008, Andrew Morton wrote:
> > > >
> > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
> > > >
> > > > - selinux is busted on one of my two selinux-enabled test machines.
> > > >
> > > > - suspend-to-ram and suspend-to-disk are totally hosed on one of my test
> > > > machines. I guess I get to bisect this.
> > >
> > > Suspend and hibernation are also broken on my HP nx6325, which is caused by
> > > git-cpufreq.patch. Reverting this patch and
> > > drivers-cpufreq-add-calls-to-cpufreq_cpu_put.patch makes things work again.
> > >
> > > I reported this already for 2.6.24-rc6-mm1 and Dave said he would look at it
> > > in January. It's still January, so hopefully he's still going to do that. ;-)
> >
> > Given that laptop has a K8 CPU, it's highly likely that it's this patch..
> > http://userweb.kernel.org/~davej/pn.diff
> > Can you revert just that on top of -mm, (or just try this standalone on top of -rc8)
> > and confirm this is problematic ?
>
> Reverting it from the -mm makes things work. I'll check if it breaks things
> when applied on top of -rc8.

Yes, it does (ie. pn.diff alone on top of -rc8 breaks suspend 100% of the
time).

2008-01-18 23:28:07

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH] SCSI: fix isa/pcmcia compile problem

James Bottomley wrote:
> On Fri, 2008-01-18 at 16:20 +0900, Tejun Heo wrote:
>> aha152x.c and fdomain are built twice - once for the isa driver and
>> once for the PCMCIA one. Through #ifdefs, the compiled codes are
>> slightly different; thus, global symbols need to be given different
>> names depending on which flavor is being built. This patch adds
>> GLOBAL() macro to aha152x.h and fdomain.h which change the symbol
>> depending on PCMCIA.
>>
>> This bug has always existed but has been masked by the fact the
>> drivers/scsi/pcmcia used subdir-(y|m) instead of obj-(y|m) which made
>> drivers/scsi/pcmcia/built_in.o not linked into the kernel and thus
>> avoided the duplicate symbols during compilation.
>>
>> Signed-off-by: Tejun Heo <[email protected]>
>> ---
>> Ah... missed that one. Here's the updated version.
>
> Actually, isn't the better fix just to return to the original behaviour?
>
> As you pointed out, using the subdir instead of obj meant that although
> the modules were built, the drivers were never linked into the main
> kernel. According to the records, this has been the default forever, so
> there can be no-one anywhere relying on these drivers being built in.
> Actually, as old style pcmcia drivers, I'm not sure there's much value
> building them into the kernel anyway.
>
> So just modify scsi/pcmcia/Kconfig to make them all depend on m.

Yeap, there is no problem if you don't allow them to be linked into the
kernel. If that's how you want it, please go ahead.

I personally think it's a bit odd to disallow building into kernel
because of the peculiarity of the implementation (including c files and
compiling them slightly differently) and also no one reporting doesn't
necessarily mean no one has attempted it and failed.

Thanks.

--
tejun

2008-01-18 23:29:08

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH] SCSI: fix isa/pcmcia compile problem

Tejun Heo wrote:
> James Bottomley wrote:
>> On Fri, 2008-01-18 at 16:20 +0900, Tejun Heo wrote:
>>> aha152x.c and fdomain are built twice - once for the isa driver and
>>> once for the PCMCIA one. Through #ifdefs, the compiled codes are
>>> slightly different; thus, global symbols need to be given different
>>> names depending on which flavor is being built. This patch adds
>>> GLOBAL() macro to aha152x.h and fdomain.h which change the symbol
>>> depending on PCMCIA.
>>>
>>> This bug has always existed but has been masked by the fact the
>>> drivers/scsi/pcmcia used subdir-(y|m) instead of obj-(y|m) which made
>>> drivers/scsi/pcmcia/built_in.o not linked into the kernel and thus
>>> avoided the duplicate symbols during compilation.
>>>
>>> Signed-off-by: Tejun Heo <[email protected]>
>>> ---
>>> Ah... missed that one. Here's the updated version.
>> Actually, isn't the better fix just to return to the original behaviour?
>>
>> As you pointed out, using the subdir instead of obj meant that although
>> the modules were built, the drivers were never linked into the main
>> kernel. According to the records, this has been the default forever, so
>> there can be no-one anywhere relying on these drivers being built in.
>> Actually, as old style pcmcia drivers, I'm not sure there's much value
>> building them into the kernel anyway.
>>
>> So just modify scsi/pcmcia/Kconfig to make them all depend on m.
>
> Yeap, there is no problem if you don't allow them to be linked into the
> kernel. If that's how you want it, please go ahead.
>
> I personally think it's a bit odd to disallow building into kernel
> because of the peculiarity of the implementation (including c files and
> compiling them slightly differently) and also no one reporting doesn't
> necessarily mean no one has attempted it and failed.

Actually what's better would be to make all symbols static and include
the c file directly into the stub file. How about that?

--
tejun

2008-01-18 23:33:18

by James Bottomley

[permalink] [raw]
Subject: Re: [PATCH] SCSI: fix isa/pcmcia compile problem


On Sat, 2008-01-19 at 08:27 +0900, Tejun Heo wrote:
> James Bottomley wrote:
> > On Fri, 2008-01-18 at 16:20 +0900, Tejun Heo wrote:
> >> aha152x.c and fdomain are built twice - once for the isa driver and
> >> once for the PCMCIA one. Through #ifdefs, the compiled codes are
> >> slightly different; thus, global symbols need to be given different
> >> names depending on which flavor is being built. This patch adds
> >> GLOBAL() macro to aha152x.h and fdomain.h which change the symbol
> >> depending on PCMCIA.
> >>
> >> This bug has always existed but has been masked by the fact the
> >> drivers/scsi/pcmcia used subdir-(y|m) instead of obj-(y|m) which made
> >> drivers/scsi/pcmcia/built_in.o not linked into the kernel and thus
> >> avoided the duplicate symbols during compilation.
> >>
> >> Signed-off-by: Tejun Heo <[email protected]>
> >> ---
> >> Ah... missed that one. Here's the updated version.
> >
> > Actually, isn't the better fix just to return to the original behaviour?
> >
> > As you pointed out, using the subdir instead of obj meant that although
> > the modules were built, the drivers were never linked into the main
> > kernel. According to the records, this has been the default forever, so
> > there can be no-one anywhere relying on these drivers being built in.
> > Actually, as old style pcmcia drivers, I'm not sure there's much value
> > building them into the kernel anyway.
> >
> > So just modify scsi/pcmcia/Kconfig to make them all depend on m.
>
> Yeap, there is no problem if you don't allow them to be linked into the
> kernel. If that's how you want it, please go ahead.
>
> I personally think it's a bit odd to disallow building into kernel
> because of the peculiarity of the implementation (including c files and
> compiling them slightly differently) and also no one reporting doesn't
> necessarily mean no one has attempted it and failed.

Heh ... I'll make you a deal. Find just one user of one of these
drivers who can make use of them built in, and I'll apply the patch.

I'm just a bit reluctant to touch these drivers, since they're all
incredibly ancient. We don't have good luck with simple transformation
patches on the older drivers ... and it seems to take months before
anyone notices there's a problem.

James

2008-01-18 23:47:20

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH] SCSI: fix isa/pcmcia compile problem

James Bottomley wrote:
>> I personally think it's a bit odd to disallow building into kernel
>> because of the peculiarity of the implementation (including c files and
>> compiling them slightly differently) and also no one reporting doesn't
>> necessarily mean no one has attempted it and failed.
>
> Heh ... I'll make you a deal. Find just one user of one of these
> drivers who can make use of them built in, and I'll apply the patch.

I don't think I can. I didn't even know they were isa ones before
actually looking at the code.

> I'm just a bit reluctant to touch these drivers, since they're all
> incredibly ancient. We don't have good luck with simple transformation
> patches on the older drivers ... and it seems to take months before
> anyone notices there's a problem.

Alright then, please go ahead and disallow built-in.

Thanks.

--
tejun

2008-01-18 23:48:20

by James Bottomley

[permalink] [raw]
Subject: Re: [PATCH] SCSI: fix isa/pcmcia compile problem


On Fri, 2008-01-18 at 17:32 -0600, James Bottomley wrote:
> On Sat, 2008-01-19 at 08:27 +0900, Tejun Heo wrote:
> > James Bottomley wrote:
> > > On Fri, 2008-01-18 at 16:20 +0900, Tejun Heo wrote:
> > >> aha152x.c and fdomain are built twice - once for the isa driver and
> > >> once for the PCMCIA one. Through #ifdefs, the compiled codes are
> > >> slightly different; thus, global symbols need to be given different
> > >> names depending on which flavor is being built. This patch adds
> > >> GLOBAL() macro to aha152x.h and fdomain.h which change the symbol
> > >> depending on PCMCIA.
> > >>
> > >> This bug has always existed but has been masked by the fact the
> > >> drivers/scsi/pcmcia used subdir-(y|m) instead of obj-(y|m) which made
> > >> drivers/scsi/pcmcia/built_in.o not linked into the kernel and thus
> > >> avoided the duplicate symbols during compilation.
> > >>
> > >> Signed-off-by: Tejun Heo <[email protected]>
> > >> ---
> > >> Ah... missed that one. Here's the updated version.
> > >
> > > Actually, isn't the better fix just to return to the original behaviour?
> > >
> > > As you pointed out, using the subdir instead of obj meant that although
> > > the modules were built, the drivers were never linked into the main
> > > kernel. According to the records, this has been the default forever, so
> > > there can be no-one anywhere relying on these drivers being built in.
> > > Actually, as old style pcmcia drivers, I'm not sure there's much value
> > > building them into the kernel anyway.
> > >
> > > So just modify scsi/pcmcia/Kconfig to make them all depend on m.
> >
> > Yeap, there is no problem if you don't allow them to be linked into the
> > kernel. If that's how you want it, please go ahead.
> >
> > I personally think it's a bit odd to disallow building into kernel
> > because of the peculiarity of the implementation (including c files and
> > compiling them slightly differently) and also no one reporting doesn't
> > necessarily mean no one has attempted it and failed.
>
> Heh ... I'll make you a deal. Find just one user of one of these
> drivers who can make use of them built in, and I'll apply the patch.
>
> I'm just a bit reluctant to touch these drivers, since they're all
> incredibly ancient. We don't have good luck with simple transformation
> patches on the older drivers ... and it seems to take months before
> anyone notices there's a problem.

This is the patch that will return them to their original behaviour.

James

---
diff --git a/drivers/scsi/pcmcia/Kconfig b/drivers/scsi/pcmcia/Kconfig
index fa481b5..53857c6 100644
--- a/drivers/scsi/pcmcia/Kconfig
+++ b/drivers/scsi/pcmcia/Kconfig
@@ -6,7 +6,8 @@ menuconfig SCSI_LOWLEVEL_PCMCIA
bool "PCMCIA SCSI adapter support"
depends on SCSI!=n && PCMCIA!=n

-if SCSI_LOWLEVEL_PCMCIA && SCSI && PCMCIA
+# drivers have problems when build in, so require modules
+if SCSI_LOWLEVEL_PCMCIA && SCSI && PCMCIA && m

config PCMCIA_AHA152X
tristate "Adaptec AHA152X PCMCIA support"

2008-01-18 23:54:50

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH] SCSI: fix isa/pcmcia compile problem

James Bottomley wrote:
>> I'm just a bit reluctant to touch these drivers, since they're all
>> incredibly ancient. We don't have good luck with simple transformation
>> patches on the older drivers ... and it seems to take months before
>> anyone notices there's a problem.
>
> This is the patch that will return them to their original behaviour.
>
> James
>
> ---
> diff --git a/drivers/scsi/pcmcia/Kconfig b/drivers/scsi/pcmcia/Kconfig
> index fa481b5..53857c6 100644
> --- a/drivers/scsi/pcmcia/Kconfig
> +++ b/drivers/scsi/pcmcia/Kconfig
> @@ -6,7 +6,8 @@ menuconfig SCSI_LOWLEVEL_PCMCIA
> bool "PCMCIA SCSI adapter support"
> depends on SCSI!=n && PCMCIA!=n
>
> -if SCSI_LOWLEVEL_PCMCIA && SCSI && PCMCIA
> +# drivers have problems when build in, so require modules
> +if SCSI_LOWLEVEL_PCMCIA && SCSI && PCMCIA && m
>
> config PCMCIA_AHA152X
> tristate "Adaptec AHA152X PCMCIA support"
>
>

Looks good to me.

--
tejun

2008-01-20 01:09:15

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: WARN_ON() in clockevents_register_device() on HP nx6325

On Thursday, 17 of January 2008, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
>
> - selinux is busted on one of my two selinux-enabled test machines.
>
> - suspend-to-ram and suspend-to-disk are totally hosed on one of my test
> machines. I guess I get to bisect this.

Something goes wrong in the timers land. I get this on boot:

..MP-BIOS bug: 8254 timer not connected to IO-APIC
Disabling APIC timer
------------[ cut here ]------------
WARNING: at /home/rafael/src/mm/linux-2.6.24-rc8-mm1/kernel/time/clockevents.c:1
65 clockevents_register_device+0x36/0xc4()
Modules linked in:
Pid: 1, comm: swapper Not tainted 2.6.24-rc8-mm1-rjw #7

Call Trace:
[<ffffffff8023874b>] warn_on_slowpath+0x58/0x6b
[<ffffffff80213a3c>] ? native_read_tsc+0x18/0x22
[<ffffffff80239527>] ? printk+0x67/0x69
[<ffffffff802528ee>] clockevents_register_device+0x36/0xc4
[<ffffffff80220812>] setup_APIC_timer+0x61/0x68
[<ffffffff806c838f>] setup_boot_APIC_clock+0x1ba/0x1c5
[<ffffffff806c7450>] smp_prepare_cpus+0x521/0x542
[<ffffffff806bc56e>] kernel_init+0x64/0x2ef
[<ffffffff8020ce78>] child_rip+0xa/0x12
[<ffffffff806bc50a>] ? kernel_init+0x0/0x2ef
[<ffffffff8020ce6e>] ? child_rip+0x0/0x12

---[ end trace ca143223eefdc828 ]---
SMP alternatives: switching to SMP code
Booting processor 1/2 APIC 0x1
Initializing CPU#1
Calibrating delay using timer specific routine.. 3990.34 BogoMIPS (lpj=7980687)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
AMD Turion(tm) 64 X2 Mobile Technology TL-60 stepping 02
------------[ cut here ]------------
Brought up 2 CPUs
WARNING: at /home/rafael/src/mm/linux-2.6.24-rc8-mm1/kernel/time/clockevents.c:1
65 clockevents_register_device+0x36/0xc4()
Modules linked in:
Pid: 0, comm: swapper Not tainted 2.6.24-rc8-mm1-rjw #7

Call Trace:
CPU0 attaching sched-domain:
[<ffffffff8023874b>] warn_on_slowpath+0x58/0x6b
domain 0: span 00000000,00000000,00000000,00000003
groups: 00000000,00000000,00000000,00000001 00000000,00000000,00000000,0000000
2
[<ffffffff80239527>] ? printk+0x67/0x69
CPU1 attaching sched-domain:
domain 0: span 00000000,00000000,00000000,00000003
groups: 00000000,00000000,00000000,00000002 00000000,00000000,00000000,0000000
1
[<ffffffff8021b133>] ? post_set+0x20/0x3d
[<ffffffff802528ee>] clockevents_register_device+0x36/0xc4
[<ffffffff80220812>] setup_APIC_timer+0x61/0x68
[<ffffffff80220867>] setup_secondary_APIC_clock+0xe/0x10
[<ffffffff8021fd03>] start_secondary+0x3e1/0x3f5

---[ end trace ca143223eefdc828 ]---

and this on resume from RAM:

Booting processor 1/2 APIC 0x1
Initializing CPU#1
Calibrating delay using timer specific routine.. 1596.25 BogoMIPS (lpj=3192500)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
AMD Turion(tm) 64 X2 Mobile Technology TL-60 stepping 02
------------[ cut here ]------------
CPU0 attaching sched-domain:
domain 0: span 00000000,00000000,00000000,00000003
groups: 00000000,00000000,00000000,00000001 00000000,00000000,00000000,0000000
2
CPU1 attaching sched-domain:
domain 0: span 00000000,00000000,00000000,00000003
groups: 00000000,00000000,00000000,00000002 00000000,00000000,00000000,0000000
1
WARNING: at /home/rafael/src/mm/linux-2.6.24-rc8-mm1/kernel/time/clockevents.c:1
65 clockevents_register_device+0x36/0xc4()
Modules linked in: ip6t_LOG nf_conntrack_ipv6 xt_pkttype ipt_LOG xt_limit af_pac
ket snd_pcm_oss rfkill_input snd_mixer_oss snd_seq snd_seq_device ip6t_REJECT xt
_tcpudp ipt_REJECT xt_state iptable_mangle iptable_nat nf_nat iptable_filter ip6
table_mangle nf_conntrack_ipv4 nf_conntrack ip_tables ip6table_filter ip6_tables
cpufreq_conservative cpufreq_ondemand cpufreq_userspace x_tables cpufreq_powers
ave ipv6 powernow_k8 freq_table fuse dm_crypt loop dm_mod arc4 ecb crypto_blkcip
her b43 rfkill mac80211 rfcomm snd_hda_intel l2cap cfg80211 snd_pcm snd_timer in
put_polldev led_class yenta_socket snd_page_alloc sdhci ohci1394 fan ssb pcmcia
snd_hwdep rsrc_nonstatic mmc_core tg3 snd usbhid pcmcia_core rtc_cmos battery th
ermal tifm_7xx1 ieee1394 ide_cd_mod button cdrom processor ff_memless joydev hci
_usb rtc_core bluetooth shpchp pci_hotplug k8temp hwmon i2c_piix4 i2c_core tifm_
core ac rtc_lib firmware_class psmouse serio_raw soundcore sg ehci_hcd ohci_hcd
usbcore edd ext3 jbd atiixp ide_core
Pid: 0, comm: swapper Not tainted 2.6.24-rc8-mm1-rjw #7

Call Trace:
[<ffffffff8023874b>] warn_on_slowpath+0x58/0x6b
[<ffffffff80239527>] ? printk+0x67/0x69
[<ffffffff8021b133>] ? post_set+0x20/0x3d
[<ffffffff802528ee>] clockevents_register_device+0x36/0xc4
[<ffffffff80220812>] setup_APIC_timer+0x61/0x68
[<ffffffff80220867>] setup_secondary_APIC_clock+0xe/0x10
[<ffffffff8021fd03>] start_secondary+0x3e1/0x3f5

---[ end trace ca143223eefdc828 ]---
CPU1 is up

2008-01-20 06:25:04

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 kernel panic while bootup

Andrew Morton wrote:
> On Thu, 17 Jan 2008 19:24:13 +0530 Kamalesh Babulal <[email protected]> wrote:
>
>> Hi Andrew,
>>
>> The 2.6.24-rc8-mm1 kernel panic while bootup with bootup message
>
> Can you please bisect it? I'd start with git-x86. These:
>
> ssb-add-ssb_pcihost_set_power_state-function.patch
> b44-power-down-phy-when-interface-down.patch
> drivers-net-wireless-iwlwifi-iwl-3945c-fix-printk-warning.patch
> drivers-net-wireless-iwlwifi-iwl-4965c-fix-printk-warning.patch
> drivers-net-wireless-rt2x00-rt2x00usbc-fix-uninitialized-var-warning.patch
> -> git-ipwireless_cs.patch


The kernel boots up while patches applied till here and fails with the next check point.
of iommu-sg-merging-add-device_dma_parameters-structure.patch.

> #
> revert-kvm-stuff-to-make-git-x86-apply.patch
> git-x86.patch
> git-x86-fixup.patch
> git-x86-fixup-2.patch
> acpi-default-unmap-fixpatch.patch
> git-x86-vs-pm-acquire-device-locks-on-suspend-rev-3.patch
> git-x86-fix-doubly-merged-patch.patch
> pci-dont-load-acpi_php-when-acpi-is-disabled.patch
> pci-dont-load-acpi_php-when-acpi-is-disabled-fix.patch
> #
> #X86-ANDI-START
> #X86-ANDI-END
> #
> #
> -> iommu-sg-merging-add-device_dma_parameters-structure.patch
>
> would be suitable test points.
>
>> Dual Core AMD Opteron(tm) Processor 270 stepping 02
>> Unable to handle kernel paging request at 0000000000004a78 RIP:
>> [<ffffffff8026f966>] __alloc_pages+0x40/0x31e
>> PGD 0
>> Oops: 0000 [1] SMP
>> last sysfs file:
>> CPU 0
>> Modules linked in:
>> Pid: 1, comm: swapper Not tainted 2.6.24-rc8-mm1-autotest #1
>> RIP: 0010:[<ffffffff8026f966>] [<ffffffff8026f966>] __alloc_pages+0x40/0x31e
>> RSP: 0000:ffff81003f9b9c60 EFLAGS: 00010246
>> RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000002
>> RDX: 0000000000004a70 RSI: 0000000000000605 RDI: ffffffff805a6f66
>> RBP: 00000000000000d0 R08: 00380800000000c0 R09: 000000000003db89
>> R10: ffffe20000fe6880 R11: ffffffff806287b0 R12: 0000000000004a70
>> R13: 0000000000000000 R14: 0000000000000286 R15: ffff81003f9b6000
>> FS: 0000000000000000(0000) GS:ffffffff80664000(0000) knlGS:0000000000000000
>> CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
>> CR2: 0000000000004a78 CR3: 0000000000201000 CR4: 00000000000006e0
>> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
>> DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
>> Process swapper (pid: 1, threadinfo ffff81003f9b8000, task ffff81003f9b6000)
>> Stack: 000000000000c0d0 0000001000000000 ffffffff8027574f ffff81000000e5c8
>> 000000000000c0d0 ffffffff8026f320 ffff81003f9b9c88 0000000000000000
>> 0000000000000000 ffffffff807fac90 ffffffff807fac90 0000000000000286
>> Call Trace:
>> [<ffffffff8027574f>] ? zone_statistics+0x3f/0x97
>> [<ffffffff8026f320>] ? get_page_from_freelist+0x463/0x5b5
>> [<ffffffff8028d7b8>] ? new_slab+0x10e/0x261
>> [<ffffffff8028d92b>] ? get_new_slab+0x20/0xaa
>> [<ffffffff8028dad8>] ? __slab_alloc+0x123/0x182
>> [<ffffffff8026e5a1>] ? process_zones+0x79/0x15e
>> [<ffffffff8028db73>] ? kmem_cache_alloc_node+0x3c/0x70
>> [<ffffffff8026e5a1>] ? process_zones+0x79/0x15e
>> [<ffffffff804f15b9>] ? _spin_lock_irqsave+0x9/0xe
>> [<ffffffff8026e6b9>] ? pageset_cpuup_callback+0x33/0x91
>> [<ffffffff804f37b9>] ? notifier_call_chain+0x29/0x56
>> [<ffffffff80254b09>] ? _cpu_up+0x68/0x101
>> [<ffffffff80254bf6>] ? cpu_up+0x54/0x61
>> [<ffffffff808a4581>] ? kernel_init+0xbf/0x2ef
>> [<ffffffff804f15a1>] ? _spin_unlock_irq+0x9/0xc
>> [<ffffffff8020cc08>] ? child_rip+0xa/0x12
>> [<ffffffff808a44c2>] ? kernel_init+0x0/0x2ef
>> [<ffffffff8020cbfe>] ? child_rip+0x0/0x12
>
> Who added these question marks to the backtrace output and what are they for?
>
>> Code: 83 ec 38 65 4c 8b 3c 25 00 00 00 00 83 e0 10 89 44 24 0c 74 16 be 05 06 00 00 48 c7 c7 66 6f 5a 80 e8 a9 f4 fb ff e8 20 05 28 00 <49> 83 7c 24 08 00 49 8d 44 24 08 48 89 44 24 18 75 1a 48 c7 44
>> RIP [<ffffffff8026f966>] __alloc_pages+0x40/0x31e
>> RSP <ffff81003f9b9c60>
>> CR2: 0000000000004a78


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

2008-01-20 07:18:30

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 kernel panic while bootup

On Sun, 20 Jan 2008 11:54:46 +0530 Kamalesh Babulal <[email protected]> wrote:

> Andrew Morton wrote:
> > On Thu, 17 Jan 2008 19:24:13 +0530 Kamalesh Babulal <[email protected]> wrote:
> >
> >> Hi Andrew,
> >>
> >> The 2.6.24-rc8-mm1 kernel panic while bootup with bootup message
> >
> > Can you please bisect it? I'd start with git-x86. These:
> >
> > ssb-add-ssb_pcihost_set_power_state-function.patch
> > b44-power-down-phy-when-interface-down.patch
> > drivers-net-wireless-iwlwifi-iwl-3945c-fix-printk-warning.patch
> > drivers-net-wireless-iwlwifi-iwl-4965c-fix-printk-warning.patch
> > drivers-net-wireless-rt2x00-rt2x00usbc-fix-uninitialized-var-warning.patch
> > -> git-ipwireless_cs.patch
>
>
> The kernel boots up while patches applied till here and fails with the next check point.
> of iommu-sg-merging-add-device_dma_parameters-structure.patch.
>
> > #
> > revert-kvm-stuff-to-make-git-x86-apply.patch
> > git-x86.patch
> > git-x86-fixup.patch
> > git-x86-fixup-2.patch
> > acpi-default-unmap-fixpatch.patch
> > git-x86-vs-pm-acquire-device-locks-on-suspend-rev-3.patch
> > git-x86-fix-doubly-merged-patch.patch
> > pci-dont-load-acpi_php-when-acpi-is-disabled.patch
> > pci-dont-load-acpi_php-when-acpi-is-disabled-fix.patch
> > #
> > #X86-ANDI-START
> > #X86-ANDI-END
> > #
> > #
> > -> iommu-sg-merging-add-device_dma_parameters-structure.patch
> >
> > would be suitable test points.
> >
> >> Dual Core AMD Opteron(tm) Processor 270 stepping 02
> >> Unable to handle kernel paging request at 0000000000004a78 RIP:
> >> [<ffffffff8026f966>] __alloc_pages+0x40/0x31e
> >> PGD 0
> >> Oops: 0000 [1] SMP
> >> last sysfs file:
> >> CPU 0
> >> Modules linked in:
> >> Pid: 1, comm: swapper Not tainted 2.6.24-rc8-mm1-autotest #1
> >> RIP: 0010:[<ffffffff8026f966>] [<ffffffff8026f966>] __alloc_pages+0x40/0x31e
> >> RSP: 0000:ffff81003f9b9c60 EFLAGS: 00010246
> >> RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000002
> >> RDX: 0000000000004a70 RSI: 0000000000000605 RDI: ffffffff805a6f66
> >> RBP: 00000000000000d0 R08: 00380800000000c0 R09: 000000000003db89
> >> R10: ffffe20000fe6880 R11: ffffffff806287b0 R12: 0000000000004a70
> >> R13: 0000000000000000 R14: 0000000000000286 R15: ffff81003f9b6000
> >> FS: 0000000000000000(0000) GS:ffffffff80664000(0000) knlGS:0000000000000000
> >> CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
> >> CR2: 0000000000004a78 CR3: 0000000000201000 CR4: 00000000000006e0
> >> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> >> DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> >> Process swapper (pid: 1, threadinfo ffff81003f9b8000, task ffff81003f9b6000)
> >> Stack: 000000000000c0d0 0000001000000000 ffffffff8027574f ffff81000000e5c8
> >> 000000000000c0d0 ffffffff8026f320 ffff81003f9b9c88 0000000000000000
> >> 0000000000000000 ffffffff807fac90 ffffffff807fac90 0000000000000286
> >> Call Trace:
> >> [<ffffffff8027574f>] ? zone_statistics+0x3f/0x97
> >> [<ffffffff8026f320>] ? get_page_from_freelist+0x463/0x5b5
> >> [<ffffffff8028d7b8>] ? new_slab+0x10e/0x261
> >> [<ffffffff8028d92b>] ? get_new_slab+0x20/0xaa
> >> [<ffffffff8028dad8>] ? __slab_alloc+0x123/0x182
> >> [<ffffffff8026e5a1>] ? process_zones+0x79/0x15e
> >> [<ffffffff8028db73>] ? kmem_cache_alloc_node+0x3c/0x70
> >> [<ffffffff8026e5a1>] ? process_zones+0x79/0x15e
> >> [<ffffffff804f15b9>] ? _spin_lock_irqsave+0x9/0xe
> >> [<ffffffff8026e6b9>] ? pageset_cpuup_callback+0x33/0x91
> >> [<ffffffff804f37b9>] ? notifier_call_chain+0x29/0x56
> >> [<ffffffff80254b09>] ? _cpu_up+0x68/0x101
> >> [<ffffffff80254bf6>] ? cpu_up+0x54/0x61
> >> [<ffffffff808a4581>] ? kernel_init+0xbf/0x2ef
> >> [<ffffffff804f15a1>] ? _spin_unlock_irq+0x9/0xc
> >> [<ffffffff8020cc08>] ? child_rip+0xa/0x12
> >> [<ffffffff808a44c2>] ? kernel_init+0x0/0x2ef
> >> [<ffffffff8020cbfe>] ? child_rip+0x0/0x12
> >
> > Who added these question marks to the backtrace output and what are they for?
> >
> >> Code: 83 ec 38 65 4c 8b 3c 25 00 00 00 00 83 e0 10 89 44 24 0c 74 16 be 05 06 00 00 48 c7 c7 66 6f 5a 80 e8 a9 f4 fb ff e8 20 05 28 00 <49> 83 7c 24 08 00 49 8d 44 24 08 48 89 44 24 18 75 1a 48 c7 44
> >> RIP [<ffffffff8026f966>] __alloc_pages+0x40/0x31e
> >> RSP <ffff81003f9b9c60>
> >> CR2: 0000000000004a78

There is no way in which
iommu-sg-merging-add-device_dma_parameters-structure.patch can cause
__alloc_pages to crash. I'd be suspecting some weird interaction between
this patch's changes to kernel layout and the real bug.

I don't know what the real bug is though. Perhaps x86_64 memory
enumeration or NUMA initialisation problems. Does it look familar to
anyone?

2008-01-20 10:25:23

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: WARN_ON() in clockevents_register_device() on HP nx6325


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

> Something goes wrong in the timers land. I get this on boot:
>
> ..MP-BIOS bug: 8254 timer not connected to IO-APIC
> Disabling APIC timer
> ------------[ cut here ]------------
> WARNING: at /home/rafael/src/mm/linux-2.6.24-rc8-mm1/kernel/time/clockevents.c:1
> 65 clockevents_register_device+0x36/0xc4()

ok, since we disable the APIC timer, i suspect this warning can be
disregarded - the bootup is otherwise fine, right?

Thomas - why do we register it while it's disabled? I have put in that
warning to detect APIC miscalibrations.

Ingo

2008-01-20 11:19:56

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: WARN_ON() in clockevents_register_device() on HP nx6325

On Sunday, 20 of January 2008, Ingo Molnar wrote:
>
> * Rafael J. Wysocki <[email protected]> wrote:
>
> > Something goes wrong in the timers land. I get this on boot:
> >
> > ..MP-BIOS bug: 8254 timer not connected to IO-APIC
> > Disabling APIC timer
> > ------------[ cut here ]------------
> > WARNING: at /home/rafael/src/mm/linux-2.6.24-rc8-mm1/kernel/time/clockevents.c:1
> > 65 clockevents_register_device+0x36/0xc4()
>
> ok, since we disable the APIC timer, i suspect this warning can be
> disregarded - the bootup is otherwise fine, right?
>
> Thomas - why do we register it while it's disabled? I have put in that
> warning to detect APIC miscalibrations.

Well, for an unknown reason, there's a ~5 s delay during resume from RAM (in
fact I can also trigger it in the "core" test mode, ie. without entering the
sleep state), which I thought might be related. If not, it might be necessary
to bisect again. Sigh.

Thanks,
Rafael

2008-01-20 15:30:49

by Mel Gorman

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Build Failure at scripts/mkubooting/crc32.c

On (18/01/08 11:44), Kamalesh Babulal didst pronounce:
> Hi Andrew,
>
> The kernel build fails with following error message
>
> scripts/mkubootimg/crc32.c:15:18: error: zlib.h: No such file or directory
> scripts/mkubootimg/crc32.c:77: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'crc_table'
> scripts/mkubootimg/crc32.c:153: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'crc32'
> make[2]: *** [scripts/mkubootimg/crc32.o] Error 1
> make[1]: *** [scripts/mkubootimg] Error 2
> make: *** [scripts] Error 2
>
> The patch causing this build failure may be git-kbuild.patch.
>

A dependency on zlib was introduced by that patch. I installed
zlib1g-dev but I see that this is expected to be fixed without internal
dependencies anyway.

--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab

2008-01-20 16:31:52

by Mel Gorman

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

On (17/01/08 02:35), Andrew Morton didst pronounce:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
>

The e100 network driver is failing to load properly on an old laptop. The
dmesg output is as follows

[ 68.875508] e100: Intel(R) PRO/100 Network Driver, 3.5.23-k4-NAPI
[ 68.877091] e100: Copyright(c) 1999-2006 Intel Corporation
[ 68.881216] ACPI: PCI Interrupt 0000:00:03.0[A] -> Link [LNKC] -> GSI 11 (level, low) -> IRQ 11
[ 68.893113] modprobe:2736 conflicting cache attribute e8120000-e8121000 uncached<->default
[ 68.897090] e100: 0000:00:03.0: e100_probe: Cannot map device registers, aborting.
[ 68.901108] ACPI: PCI interrupt for device 0000:00:03.0 disabled
[ 68.905106] e100: probe of 0000:00:03.0 failed with error -12

The "conflicting cache attribute" message appears to be part of the PAT patches
in the git-x86 tree (cc's added). It may be a co-incidence but reverting
git-net related patches didn't fix it but reverting git-x86 and any
depencies to make quilt work did.

--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab

--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab

2008-01-20 16:35:23

by Balbir Singh

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

* Mel Gorman <[email protected]> [2008-01-20 16:31:42]:

> On (17/01/08 02:35), Andrew Morton didst pronounce:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
> >
>
> The e100 network driver is failing to load properly on an old laptop. The
> dmesg output is as follows
>
> [ 68.875508] e100: Intel(R) PRO/100 Network Driver, 3.5.23-k4-NAPI
> [ 68.877091] e100: Copyright(c) 1999-2006 Intel Corporation
> [ 68.881216] ACPI: PCI Interrupt 0000:00:03.0[A] -> Link [LNKC] -> GSI 11 (level, low) -> IRQ 11
> [ 68.893113] modprobe:2736 conflicting cache attribute e8120000-e8121000 uncached<->default
> [ 68.897090] e100: 0000:00:03.0: e100_probe: Cannot map device registers, aborting.
> [ 68.901108] ACPI: PCI interrupt for device 0000:00:03.0 disabled
> [ 68.905106] e100: probe of 0000:00:03.0 failed with error -12
>
> The "conflicting cache attribute" message appears to be part of the PAT patches
> in the git-x86 tree (cc's added). It may be a co-incidence but reverting
> git-net related patches didn't fix it but reverting git-x86 and any
> depencies to make quilt work did.
>

Hi, Mel,

Found and fixed the problem. The patch is available at

http://lkml.org/lkml/2008/1/17/534

--
Warm Regards,
Balbir Singh
Linux Technology Center
IBM, ISTL

2008-01-20 18:24:49

by Mel Gorman

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

On (20/01/08 22:05), Balbir Singh didst pronounce:
> * Mel Gorman <[email protected]> [2008-01-20 16:31:42]:
>
> > On (17/01/08 02:35), Andrew Morton didst pronounce:
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
> > >
> >
> > The e100 network driver is failing to load properly on an old laptop. The
> > dmesg output is as follows
> >
> > [ 68.875508] e100: Intel(R) PRO/100 Network Driver, 3.5.23-k4-NAPI
> > [ 68.877091] e100: Copyright(c) 1999-2006 Intel Corporation
> > [ 68.881216] ACPI: PCI Interrupt 0000:00:03.0[A] -> Link [LNKC] -> GSI 11 (level, low) -> IRQ 11
> > [ 68.893113] modprobe:2736 conflicting cache attribute e8120000-e8121000 uncached<->default
> > [ 68.897090] e100: 0000:00:03.0: e100_probe: Cannot map device registers, aborting.
> > [ 68.901108] ACPI: PCI interrupt for device 0000:00:03.0 disabled
> > [ 68.905106] e100: probe of 0000:00:03.0 failed with error -12
> >
> > The "conflicting cache attribute" message appears to be part of the PAT patches
> > in the git-x86 tree (cc's added). It may be a co-incidence but reverting
> > git-net related patches didn't fix it but reverting git-x86 and any
> > depencies to make quilt work did.
> >
>
> Hi, Mel,
>
> Found and fixed the problem. The patch is available at
>
> http://lkml.org/lkml/2008/1/17/534
>

Ah, my bad. I missed it when reading the thread earlier. Confirmed, this
patch fixes the problem. Thanks.

--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab

2008-01-21 09:57:00

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] SCSI: fix isa/pcmcia compile problem

On Fri, Jan 18, 2008 at 04:20:40PM +0900, Tejun Heo wrote:
> aha152x.c and fdomain are built twice - once for the isa driver and
> once for the PCMCIA one. Through #ifdefs, the compiled codes are
> slightly different; thus, global symbols need to be given different
> names depending on which flavor is being built. This patch adds
> GLOBAL() macro to aha152x.h and fdomain.h which change the symbol
> depending on PCMCIA.
>
> This bug has always existed but has been masked by the fact the
> drivers/scsi/pcmcia used subdir-(y|m) instead of obj-(y|m) which made
> drivers/scsi/pcmcia/built_in.o not linked into the kernel and thus
> avoided the duplicate symbols during compilation.

The right fix would be to compile it only once and attach it to both
busses. It would be nice if someone could look into that instead of
hacking around the issue.

2008-01-21 14:59:51

by James Bottomley

[permalink] [raw]
Subject: Re: [PATCH] SCSI: fix isa/pcmcia compile problem


On Mon, 2008-01-21 at 09:56 +0000, Christoph Hellwig wrote:
> On Fri, Jan 18, 2008 at 04:20:40PM +0900, Tejun Heo wrote:
> > aha152x.c and fdomain are built twice - once for the isa driver and
> > once for the PCMCIA one. Through #ifdefs, the compiled codes are
> > slightly different; thus, global symbols need to be given different
> > names depending on which flavor is being built. This patch adds
> > GLOBAL() macro to aha152x.h and fdomain.h which change the symbol
> > depending on PCMCIA.
> >
> > This bug has always existed but has been masked by the fact the
> > drivers/scsi/pcmcia used subdir-(y|m) instead of obj-(y|m) which made
> > drivers/scsi/pcmcia/built_in.o not linked into the kernel and thus
> > avoided the duplicate symbols during compilation.
>
> The right fix would be to compile it only once and attach it to both
> busses. It would be nice if someone could look into that instead of
> hacking around the issue.

I agree in principle, but without the hardware such a change would be
untested ... which is what makes me worry about it.

James

2008-01-21 18:31:31

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 - SELinux issues

On Thu, 17 Jan 2008 02:35:14 PST, Andrew Morton said:

> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/
>
> - selinux is busted on one of my two selinux-enabled test machines.

This problem is fixed in Paul Moore's latest spin of the networking patches - I
was able to quilt up a fixed-up -rc8-mm1 with an updated git-lblnet.patch built
from his latest patch-bomb (labelled as 'RFC PATCH v12' posted to the selinux
and linux-security-module lists on Thursday, so the next pull of that git tree
into -mm should be OK...




Attachments:
(No filename) (226.00 B)

2008-01-21 18:53:24

by Valdis Klētnieks

[permalink] [raw]
Subject: [PATCH} 2.6.24-rc8-mm1 - x86_64 PAT issues with vesafb and NVidia cards

(Gerd Knorr cc'ed because 'git blame' says he last touched the line of code
I ended up touching - if this needs other cc:'s, will somebody who knows who
should review please add them?)

On Thu, 17 Jan 2008 02:35:14 PST, Andrew Morton said:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/

This gave the NVidia binary driver indigestion:

X:2772 conflicting cache attribute d0000000-d0006000 uncached<->default

While researching this one and adding some debugging printk's and dump_stack()s,
I found that this was caused by:

[ 0.444051] reserve_mattr swapper:1 setting d0000000-d0500000 to default
[ 0.444055] Pid: 1, comm: swapper Not tainted 2.6.24-rc8-mm1 #4
[ 0.444057]
[ 0.444057] Call Trace:
[ 0.444065] [<ffffffff8034dfe7>] ? ioremap_page_range+0x17b/0x244
[ 0.444069] [<ffffffff802259ba>] reserve_mattr+0x91/0x27d
[ 0.444072] [<ffffffff80224c24>] __ioremap+0xe6/0x146
[ 0.444077] [<ffffffff806f7297>] vesafb_probe+0x196/0x6b2
...

So the vesafb driver had decided to tag an even *larger* space as 'default'..
I'm *guessing* that in fact, this area should have been non-caching (since
it's the video memory for the card), but nothing cared/flagged before.

Pigheaded-and-probably-wrong brute-force fix that works on my laptop, but
somebody who actually understands the vesafb code should check that in fact
the space *should* be non-caching.

Signed-off-by: Valdis Kletnieks <[email protected]>

--- linux-2.6.24-rc8-mm1/drivers/video/vesafb.c.dist 2007-10-09 16:31:38.000000000 -0400
+++ linux-2.6.24-rc8-mm1/drivers/video/vesafb.c 2008-01-20 11:11:57.000000000 -0500
@@ -286,7 +286,7 @@ static int __init vesafb_probe(struct pl
info->pseudo_palette = info->par;
info->par = NULL;

- info->screen_base = ioremap(vesafb_fix.smem_start, vesafb_fix.smem_len);
+ info->screen_base = ioremap_nocache(vesafb_fix.smem_start, vesafb_fix.smem_len);
if (!info->screen_base) {
printk(KERN_ERR
"vesafb: abort, cannot ioremap video memory 0x%x @ 0x%lx\n",



Attachments:
(No filename) (226.00 B)

2008-01-22 08:40:21

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 (KVM build issues)

> On Fri, 18 Jan 2008 22:56:32 +0530 Balbir Singh <[email protected]> wrote:
> * Andrew Morton <[email protected]> [2008-01-17 02:35:14]:
>
> > - kvm probably doesn't work properly because I couldn't be bothered fixing
> > the conflicts between git-kvm and the driver tree
> >
>
> Hi, Andrew,
>
> The following changes got KVM up and running for me
>
>
> This patch fixes the kvm build on 2.6.24-rc8-mm1. First of all, it enables
> the KVM build, the second fix moves kset_set_name to the .name member.
>
> Signed-off-by: Balbir Singh <[email protected]>
> ---
>
> arch/x86/Makefile | 2 +-
> virt/kvm/kvm_main.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff -puN arch/x86/Makefile~fix-kvm-build arch/x86/Makefile
> --- linux-2.6.24-rc8/arch/x86/Makefile~fix-kvm-build 2008-01-18 22:42:41.000000000 +0530
> +++ linux-2.6.24-rc8-balbir/arch/x86/Makefile 2008-01-18 22:42:47.000000000 +0530
> @@ -185,7 +185,7 @@ core-y += arch/x86/vdso/
> core-$(CONFIG_IA32_EMULATION) += arch/x86/ia32/
>
> # kvm host support - uncomment when merging
> -# core-$(CONFIG_KVM) += arch/x86/kvm/
> +core-$(CONFIG_KVM) += arch/x86/kvm/
>
> # drivers-y are linked after core-y
> drivers-$(CONFIG_MATH_EMULATION) += arch/x86/math-emu/
> diff -puN virt/kvm/kvm_main.c~fix-kvm-build virt/kvm/kvm_main.c
> --- linux-2.6.24-rc8/virt/kvm/kvm_main.c~fix-kvm-build 2008-01-18 22:42:41.000000000 +0530
> +++ linux-2.6.24-rc8-balbir/virt/kvm/kvm_main.c 2008-01-18 22:42:47.000000000 +0530
> @@ -1260,7 +1260,7 @@ static int kvm_resume(struct sys_device
> }
>
> static struct sysdev_class kvm_sysdev_class = {
> - set_kset_name("kvm"),
> + .name = "kvm",
> .suspend = kvm_suspend,
> .resume = kvm_resume,
> };

This patch straddles such a pickle of other patches (driver tree, kvm, git-x86) that
there doesn't seem much point in me untangling it. Presumably people will fix things
up as various trees merge into 2.6.25-rc1.

As long as Greg remembers to try to build kvm ;)

2008-01-22 20:30:41

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: sparc64 warning at fs/file_table.c:49 __fput+0x1a8/0x1e0()

Hello,

Issuing "sysrq-s sysrq-u" sequence causes these warnings on sparc64:

------------[ cut here ]------------
WARNING: at fs/file_table.c:49 __fput+0x1a8/0x1e0()
Modules linked in: sg sr_mod cdrom
Call Trace:
[00000000004c9ac8] __fput+0x1b0/0x1e0
[00000000004c6978] filp_close+0x60/0x80
[00000000004c6a18] sys_close+0x80/0xe0
[00000000004062d4] linux_sparc_syscall32+0x3c/0x40
[0000000000012f1c] 0x12f24
---[ end trace 6dbe14ff8ec57744 ]---
------------[ cut here ]------------
WARNING: at fs/file_table.c:49 __fput+0x1a8/0x1e0()
Modules linked in: sg sr_mod cdrom
Call Trace:
[00000000004c9ac8] __fput+0x1b0/0x1e0
[00000000004c6978] filp_close+0x60/0x80
[00000000004c6a18] sys_close+0x80/0xe0
[00000000004062d4] linux_sparc_syscall32+0x3c/0x40
[0000000000012f1c] 0x12f24
---[ end trace 6dbe14ff8ec57744 ]---
------------[ cut here ]------------
WARNING: at fs/file_table.c:49 __fput+0x1a8/0x1e0()
Modules linked in: sg sr_mod cdrom
Call Trace:
[00000000004c9ac8] __fput+0x1b0/0x1e0
[00000000004c6978] filp_close+0x60/0x80
[00000000004c6a18] sys_close+0x80/0xe0
[00000000004062d4] linux_sparc_syscall32+0x3c/0x40
[0000000000012f1c] 0x12f24
---[ end trace 6dbe14ff8ec57744 ]---
------------[ cut here ]------------
WARNING: at fs/file_table.c:49 __fput+0x1a8/0x1e0()
Modules linked in: sg sr_mod cdrom
Call Trace:
[00000000004c9ac8] __fput+0x1b0/0x1e0
[00000000004c6978] filp_close+0x60/0x80
[00000000004c6a18] sys_close+0x80/0xe0
[00000000004062d4] linux_sparc_syscall32+0x3c/0x40
[0000000000012f1c] 0x12f24
---[ end trace 6dbe14ff8ec57744 ]---

Regards,

Mariusz

2008-01-22 21:02:54

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: sparc64 warning at fs/file_table.c:49 __fput+0x1a8/0x1e0()

> On Tue, 22 Jan 2008 21:30:23 +0100 Mariusz Kozlowski <[email protected]> wrote:
> Hello,
>
> Issuing "sysrq-s sysrq-u" sequence causes these warnings on sparc64:
>
> ------------[ cut here ]------------
> WARNING: at fs/file_table.c:49 __fput+0x1a8/0x1e0()
> Modules linked in: sg sr_mod cdrom
> Call Trace:
> [00000000004c9ac8] __fput+0x1b0/0x1e0
> [00000000004c6978] filp_close+0x60/0x80
> [00000000004c6a18] sys_close+0x80/0xe0
> [00000000004062d4] linux_sparc_syscall32+0x3c/0x40
> [0000000000012f1c] 0x12f24
> ---[ end trace 6dbe14ff8ec57744 ]---
> ------------[ cut here ]------------
> WARNING: at fs/file_table.c:49 __fput+0x1a8/0x1e0()
> Modules linked in: sg sr_mod cdrom
> Call Trace:
> [00000000004c9ac8] __fput+0x1b0/0x1e0
> [00000000004c6978] filp_close+0x60/0x80
> [00000000004c6a18] sys_close+0x80/0xe0
> [00000000004062d4] linux_sparc_syscall32+0x3c/0x40
> [0000000000012f1c] 0x12f24
> ---[ end trace 6dbe14ff8ec57744 ]---
> ------------[ cut here ]------------
> WARNING: at fs/file_table.c:49 __fput+0x1a8/0x1e0()
> Modules linked in: sg sr_mod cdrom
> Call Trace:
> [00000000004c9ac8] __fput+0x1b0/0x1e0
> [00000000004c6978] filp_close+0x60/0x80
> [00000000004c6a18] sys_close+0x80/0xe0
> [00000000004062d4] linux_sparc_syscall32+0x3c/0x40
> [0000000000012f1c] 0x12f24
> ---[ end trace 6dbe14ff8ec57744 ]---
> ------------[ cut here ]------------
> WARNING: at fs/file_table.c:49 __fput+0x1a8/0x1e0()
> Modules linked in: sg sr_mod cdrom
> Call Trace:
> [00000000004c9ac8] __fput+0x1b0/0x1e0
> [00000000004c6978] filp_close+0x60/0x80
> [00000000004c6a18] sys_close+0x80/0xe0
> [00000000004062d4] linux_sparc_syscall32+0x3c/0x40
> [0000000000012f1c] 0x12f24
> ---[ end trace 6dbe14ff8ec57744 ]---
>

That's

WARN_ON(f->f_mnt_write_state == FILE_MNT_WRITE_TAKEN);

cc's added...

2008-01-22 22:28:53

by Dave Hansen

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: sparc64 warning at fs/file_table.c:49 __fput+0x1a8/0x1e0()

On Tue, 2008-01-22 at 13:02 -0800, Andrew Morton wrote:
> > WARNING: at fs/file_table.c:49 __fput+0x1a8/0x1e0()
> > Modules linked in: sg sr_mod cdrom
> > Call Trace:
> > [00000000004c9ac8] __fput+0x1b0/0x1e0
> > [00000000004c6978] filp_close+0x60/0x80
> > [00000000004c6a18] sys_close+0x80/0xe0
> > [00000000004062d4] linux_sparc_syscall32+0x3c/0x40
> > [0000000000012f1c] 0x12f24
> > ---[ end trace 6dbe14ff8ec57744 ]---
> >
>
> That's
>
> WARN_ON(f->f_mnt_write_state == FILE_MNT_WRITE_TAKEN);
>
> cc's added...

I've reproduced it, and I'm looking in to it. I should have a patch
shortly.

-- Dave

2008-01-22 23:14:21

by Dave Hansen

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: sparc64 warning at fs/file_table.c:49 __fput+0x1a8/0x1e0()

On Tue, 2008-01-22 at 13:02 -0800, Andrew Morton wrote:
> > On Tue, 22 Jan 2008 21:30:23 +0100 Mariusz Kozlowski <[email protected]> wrote:
> > Hello,
> >
> > Issuing "sysrq-s sysrq-u" sequence causes these warnings on sparc64:
> >
> > ------------[ cut here ]------------
> > WARNING: at fs/file_table.c:49 __fput+0x1a8/0x1e0()
> > Modules linked in: sg sr_mod cdrom
> > Call Trace:
> > [00000000004c9ac8] __fput+0x1b0/0x1e0
> > [00000000004c6978] filp_close+0x60/0x80
> > [00000000004c6a18] sys_close+0x80/0xe0
> > [00000000004062d4] linux_sparc_syscall32+0x3c/0x40
> > [0000000000012f1c] 0x12f24
> > ---[ end trace 6dbe14ff8ec57744 ]---
> > ------------[ cut here ]------------
...
> That's
>
> WARN_ON(f->f_mnt_write_state == FILE_MNT_WRITE_TAKEN);


The emergency remount code forcibly removes FMODE_WRITE from
filps. The r/o bind mount code notices that this was done
without a proper mnt_drop_write() and properly gives a
warning.

This patch does a mnt_drop_write() and also notes in the
filp that this was done to suppress any warning that would
have otherwise been triggered.

I also wonder if inode->i_writecount is made inconsistent
by the emergency remount code. I guess it is, but the
damage is limited to a single inode instead of being
visible more globally like the mnt write count. Probably
not really worth fixing.

BTW, this wasn't just a sparc thing. I triggered it in about
3 seconds on a plain old x86 machine.

Signed-off-by: Dave Hansen <[email protected]>
---

linux-2.6.git-dave/fs/super.c | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)

diff -puN fs/super.c~robind-sysrq-fix fs/super.c
--- linux-2.6.git/fs/super.c~robind-sysrq-fix 2008-01-22 14:33:38.000000000 -0800
+++ linux-2.6.git-dave/fs/super.c 2008-01-22 14:51:13.000000000 -0800
@@ -37,6 +37,7 @@
#include <linux/idr.h>
#include <linux/kobject.h>
#include <linux/mutex.h>
+#include <linux/file.h>
#include <asm/uaccess.h>


@@ -566,10 +567,26 @@ static void mark_files_ro(struct super_b
{
struct file *f;

+retry:
file_list_lock();
list_for_each_entry(f, &sb->s_files, f_u.fu_list) {
- if (S_ISREG(f->f_path.dentry->d_inode->i_mode) && file_count(f))
- f->f_mode &= ~FMODE_WRITE;
+ struct vfsmount mnt;
+ if (!S_ISREG(f->f_path.dentry->d_inode->i_mode))
+ continue;
+ if (!file_count(f))
+ continue;
+ if (!(f->f_mode & FMODE_WRITE))
+ continue;
+ f->f_mode &= ~FMODE_WRITE;
+ f->f_mnt_write_state |= FILE_MNT_WRITE_RELEASED;
+ mnt = f->f_path.mnt;
+ file_list_unlock();
+ /*
+ * This can sleep, so we can't hold
+ * the file_list_lock() spinlock.
+ */
+ mnt_drop_write(mnt);
+ goto retry;
}
file_list_unlock();
}
_


-- Dave

2008-01-23 05:53:24

by Christoph Hellwig

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: sparc64 warning at fs/file_table.c:49 __fput+0x1a8/0x1e0()

On Tue, Jan 22, 2008 at 03:13:58PM -0800, Dave Hansen wrote:
> The emergency remount code forcibly removes FMODE_WRITE from
> filps. The r/o bind mount code notices that this was done
> without a proper mnt_drop_write() and properly gives a
> warning.
>
> This patch does a mnt_drop_write() and also notes in the
> filp that this was done to suppress any warning that would
> have otherwise been triggered.
>
> I also wonder if inode->i_writecount is made inconsistent
> by the emergency remount code. I guess it is, but the
> damage is limited to a single inode instead of being
> visible more globally like the mnt write count. Probably
> not really worth fixing.

The right fix is to not simply remove FMODE_WRITE, but just remove
this whole function. Until we have a proper revoke it will cause more
harm than good.

2008-01-24 06:10:04

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Kernel oops on CIFS while running fsstress

Hi Andrew,

The machine drops into xmon, while running the fsstress
on the cifs mounted partition.

1:mon> r
R00 = 0000000000000000 R16 = 0000000000000000
R01 = c00000017527f910 R17 = 0000000000000000
R02 = d000000000862258 R18 = 0000000000000000
R03 = 0000000000000001 R19 = 0000000000000000
R04 = 0000000000000001 R20 = c00000013999fcb0
R05 = 0000000000000000 R21 = c00000013c589978
R06 = 0000000000000000 R22 = c00000015a9e6e00
R07 = 0000000000000001 R23 = c0000001786dfdf0
R08 = 0000000000000000 R24 = c00000018b5a7f50
R09 = c00000019012ff08 R25 = c00000017527fc10
R10 = 0000000000000001 R26 = 000000000000477d
R11 = c0000000003d4f90 R27 = c00000013999fcb0
R12 = d0000000008323e8 R28 = c00000017527fc10
R13 = c000000000572380 R29 = c0000001504afdf0
R14 = 0000000000000000 R30 = d000000000860168
R15 = 0000000000000000 R31 = d00000000085a338
pc = d000000000819e04 .find_writable_file+0x8c/0x1c0 [cifs]
lr = d000000000819de0 .find_writable_file+0x68/0x1c0 [cifs]
msr = 8000000000009032 cr = 24000888
ctr = c0000000003d4f90 xer = 0000000000000000 trap = 300
dar = c00000019012ff30 dsisr = 40010000
1:mon> t
[c00000017527f9b0] d00000000081f808 .cifs_setattr+0x178/0xb04 [cifs]
[c00000017527fae0] c0000000001202e4 .notify_change+0x1e0/0x414
[c00000017527fba0] c000000000101e2c .do_truncate+0x74/0xa8
[c00000017527fc80] c000000000102170 .sys_truncate+0x1c8/0x21c
[c00000017527fdb0] c000000000015f2c .compat_sys_truncate64+0x18/0x30
[c00000017527fe30] c000000000008734 syscall_exit+0x0/0x40
--- Exception: c00 (System Call) at 000000000ff2620c
SP (ff87f070) is in userspace
1:mon> e
cpu 0x1: Vector: 300 (Data Access) at [c00000017527f690]
pc: d000000000819e04: .find_writable_file+0x8c/0x1c0 [cifs]
lr: d000000000819de0: .find_writable_file+0x68/0x1c0 [cifs]
sp: c00000017527f910
msr: 8000000000009032
dar: c00000019012ff30
dsisr: 40010000
current = 0xc00000018761f640
paca = 0xc000000000572380
pid = 12920, comm = fsstress


The gdb output

(gdb) p find_writable_file
$1 = {struct cifsFileInfo *(struct cifsInodeInfo *)} 0x19d78 <find_writable_file>
(gdb) p/x 0x19d78+0x68
$3 = 0x19de0
(gdb) l *0x19de0
0x19de0 is in find_writable_file (fs/cifs/file.c:1079).
1074 cERROR(1, ("Null inode passed to cifs_writeable_file"));
1075 dump_stack();
1076 return NULL;
1077 }
1078
1079 read_lock(&GlobalSMBSeslock);
1080 refind_writable:
1081 list_for_each_entry(open_file, &cifs_inode->openFileList, flist) {
1082 if (open_file->closePend)
1083 continue;
(gdb)


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

2008-01-24 06:44:31

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1 Badness at net/ipv4/tcp_input.c:2506

Hi,

The following call trace is seen in the 2.6.24-rc8-mm1 kernel, which is same as one of
the call trace you have given a debug patch at http://marc.info/?l=linux-netdev&m=120107165228368&w=2
i was not able to apply the debug patch, can you kindly rebase the patch for 2.6.24-rc8-mm1 or let
me know, if i can help you in debugging this call trace.


Jan 24 11:13:57 p55lp6 kernel: [60656.708573] Badness at net/ipv4/tcp_input.c:2506
Jan 24 11:13:57 p55lp6 kernel: [60656.708583] NIP: c0000000003776e0 LR: c0000000003776a8 CTR: c0000000003aaf8c
Jan 24 11:13:57 p55lp6 kernel: [60656.708597] REGS: c00000000f6f34a0 TRAP: 0700 Not tainted (2.6.24-rc8-mm1)
Jan 24 11:13:57 p55lp6 kernel: [60656.708608] MSR: 8000000000029032 <EE,ME,IR,DR> CR: 24000088 XER: 00000018
Jan 24 11:13:57 p55lp6 kernel: [60656.708636] TASK = c000000000571710[0] 'swapper' THREAD: c000000000670000 CPU: 0
Jan 24 11:13:57 p55lp6 kernel: [60656.708648] GPR00: 00000000fffffffc c00000000f6f3720 c000000000664ab0 0000000000000000
Jan 24 11:13:57 p55lp6 kernel: [60656.708663] GPR04: 0000000000000001 000000000000040e 00000000000000d0 0000000000000000
Jan 24 11:13:57 p55lp6 kernel: [60656.708677] GPR08: 0000000000000000 00000000001bce5f 0000000000000001 fffffffffffffffc
Jan 24 11:13:57 p55lp6 kernel: [60656.708690] GPR12: c00000000f6f34f0 c000000000572180 0000000000000000 0000000000000004
Jan 24 11:13:57 p55lp6 kernel: [60656.708704] GPR16: 0000000000000001 000000003e3133e9 0000000000000402 000000000000011f
Jan 24 11:13:57 p55lp6 kernel: [60656.708718] GPR20: 000000000000011f 0000000000000004 0000000000000002 000000003e3133e9
Jan 24 11:13:57 p55lp6 kernel: [60656.708732] GPR24: c00000004c09fe80 0000000000000000 0000000000000000 000000000000040e
Jan 24 11:13:57 p55lp6 kernel: [60656.708745] GPR28: 0000000000000002 000000000000040e c000000000628570 c0000001791ff8d8
Jan 24 11:13:57 p55lp6 kernel: [60656.708760] NIP [c0000000003776e0] .tcp_fastretrans_alert+0xfc/0xe20
Jan 24 11:13:58 p55lp6 kernel: [60656.708778] LR [c0000000003776a8] .tcp_fastretrans_alert+0xc4/0xe20
Jan 24 11:13:58 p55lp6 kernel: [60656.708792] Call Trace:
Jan 24 11:13:58 p55lp6 kernel: [60656.708799] [c00000000f6f3720] [c000000000628570] 0xc000000000628570 (unreliable)
Jan 24 11:13:58 p55lp6 kernel: [60656.708819] [c00000000f6f37d0] [c00000000037a3b0] .tcp_ack+0xf34/0x10e4
Jan 24 11:13:58 p55lp6 kernel: [60656.708836] [c00000000f6f3920] [c00000000037dce8] .tcp_rcv_established+0x114/0x8a8
Jan 24 11:13:58 p55lp6 kernel: [60656.708854] [c00000000f6f39d0] [c00000000038599c] .tcp_v4_do_rcv+0x5c/0x260
Jan 24 11:13:58 p55lp6 kernel: [60656.708871] [c00000000f6f3a90] [c000000000387c24] .tcp_v4_rcv+0x8a0/0x93c
Jan 24 11:13:58 p55lp6 kernel: [60656.708888] [c00000000f6f3b50] [c000000000363fec] .ip_local_deliver_finish+0x164/0x284
Jan 24 11:13:58 p55lp6 kernel: [60656.709148] [c00000000f6f3be0] [c000000000363df8] .ip_rcv_finish+0x480/0x510
Jan 24 11:13:58 p55lp6 kernel: [60656.709165] [c00000000f6f3ca0] [c000000000332438] .netif_receive_skb+0x564/0x630
Jan 24 11:13:58 p55lp6 kernel: [60656.709184] [c00000000f6f3d70] [d0000000001e2630] .ibmveth_poll+0x238/0x3b4 [ibmveth]
Jan 24 11:13:58 p55lp6 kernel: [60656.709208] [c00000000f6f3e30] [c0000000003354c4] .net_rx_action+0x118/0x2e4
Jan 24 11:13:58 p55lp6 kernel: [60656.709226] [c00000000f6f3ef0] [c00000000007ca30] .__do_softirq+0xa8/0x164
Jan 24 11:13:58 p55lp6 kernel: [60656.709244] [c00000000f6f3f90] [c00000000002b7f8] .call_do_softirq+0x14/0x24
Jan 24 11:13:58 p55lp6 kernel: [60656.709262] [c000000000673920] [c00000000000bf74] .do_softirq+0x74/0xc0
Jan 24 11:13:58 p55lp6 kernel: [60656.709280] [c0000000006739b0] [c00000000007cb84] .irq_exit+0x54/0x6c
Jan 24 11:13:58 p55lp6 kernel: [60656.709297] [c000000000673a30] [c00000000000c954] .do_IRQ+0x1b8/0x200
Jan 24 11:13:58 p55lp6 kernel: [60656.709314] [c000000000673ae0] [c000000000004c18] hardware_interrupt_entry+0x18/0x1c
Jan 24 11:13:58 p55lp6 kernel: [60656.709332] --- Exception: 501 at .local_irq_restore+0x3c/0x40
Jan 24 11:13:58 p55lp6 kernel: [60656.709349] LR = .cpu_idle+0x13c/0x240
Jan 24 11:13:58 p55lp6 kernel: [60656.709357] [c000000000673dd0] [c0000000000123c8] .cpu_idle+0x130/0x240 (unreliable)
Jan 24 11:13:58 p55lp6 kernel: [60656.709377] [c000000000673e60] [c000000000009718] .rest_init+0x78/0x90
Jan 24 11:13:58 p55lp6 kernel: [60656.709394] [c000000000673ee0] [c0000000004d09dc] .start_kernel+0x3e8/0x40c
Jan 24 11:13:58 p55lp6 kernel: [60656.709412] [c000000000673f90] [c000000000008580] .start_here_common+0x54/0xd4
Jan 24 11:13:58 p55lp6 kernel: [60656.709429] Instruction dump:
Jan 24 11:13:58 p55lp6 kernel: [60656.709437] 419e0010 38000000 901f06ac 48000010 801f06ac 2f800000 409e0014 801f06b0
Jan 24 11:13:58 p55lp6 kernel: [60656.709464] 38800001 2f800000 409e0008 38800000 <0b040000> e87e80b0 4be81355 60000000

(gdb) p tcp_fastretrans_alert
$1 = {void (struct sock *, int, int)} 0x1ec0 <tcp_fastretrans_alert>
(gdb) p/x 0x1ec0+0xc4
$2 = 0x1f84
(gdb) l *0x1f84
0x1f84 is in tcp_fastretrans_alert (net/ipv4/tcp_input.c:2504).
2499 int is_dupack = !(flag & (FLAG_SND_UNA_ADVANCED | FLAG_NOT_DUP));
2500 int do_lost = is_dupack || ((flag & FLAG_DATA_SACKED) &&
2501 (tcp_fackets_out(tp) > tp->reordering));
2502 int fast_rexmit = 0;
2503
2504 if (WARN_ON(!tp->packets_out && tp->sacked_out))
2505 tp->sacked_out = 0;
2506 if (WARN_ON(!tp->sacked_out && tp->fackets_out))
2507 tp->fackets_out = 0;
2508


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

2008-01-25 00:04:52

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: old sparc64 bug

Hello,

I was digging through the gentoo bugzilla and found this:

http://bugs.gentoo.org/show_bug.cgi?id=141823

As you see this bug is present since at least 2.6.17. I can reproduce
that here on my hardware with 2.6.24-rc8-mm1. All you need to do is install
mp3blaster on sparc64, run:

$ mp3blaster some_mp3_file.mp3

and stop it by pressing ctrl-c. It oopses when you stop it. It doesn't happen
every time but it'll oops in a few tries.

This is my trace:

Unable to handle kernel paging request at virtual address 0000000100024000
tsk->{mm,active_mm}->context = 0000000000000dd8
tsk->{mm,active_mm}->pgd = fffff800bf5d6000
\|/ ____ \|/
"@'/ .. \`@"
/_| \__/ |_\
\__U_/
mp3blaster(3254): Oops [#1]
TSTATE: 0000000080009607 TPC: 000000000056a320 TNPC: 000000000056a324 Y: 00000000 Not tainted
TPC: <memcpy+0x1a8/0x13c0>
g0: 0000000000795b00 g1: 0000000100024ff8 g2: 0000000000000000 g3: 0000000000000038
g4: fffff800bf581580 g5: fffff8007f988000 g6: fffff800bdd70000 g7: 0000000000001000
o0: fffff800bdbd6740 o1: 0000000100024000 o2: 0000000000000008 o3: 000000000056a300
o4: fffff800bdbd6080 o5: 0000000000000000 sp: fffff800bdd72b21 ret_pc: 000000000056c228
RPC: <memcpy_user_stub+0x14/0x24>
l0: fffff800bdd73468 l1: fffff800bdd73370 l2: 0000000000755000 l3: fffff800bdb35fa0
l4: fffff800bdb34001 l5: 0000000000000000 l6: 0000000000000000 l7: 0000000000000000
i0: fffff800bdbd6080 i1: 0000000100023880 i2: 0000000000001780 i3: fffff800bf3419b0
i4: 00000000000005e0 i5: 0000000000000000 i6: fffff800bdd72be1 i7: 00000000100554cc
I7: <snd_pcm_lib_write_transfer+0x94/0xe0 [snd_pcm]>
Caller[00000000100554cc]: snd_pcm_lib_write_transfer+0x94/0xe0 [snd_pcm]
Caller[0000000010053294]: snd_pcm_lib_write1+0x15c/0x2a0 [snd_pcm]
Caller[0000000010074924]: snd_pcm_oss_sync+0x28c/0x2c0 [snd_pcm_oss]
Caller[00000000100756d0]: snd_pcm_oss_release+0x38/0xa0 [snd_pcm_oss]
Caller[00000000004c8eb0]: __fput+0xb8/0x1e0
Caller[00000000004c5e58]: filp_close+0x60/0x80
Caller[00000000004723d4]: put_files_struct+0xfc/0x120
Caller[0000000000473a98]: do_exit+0x160/0x840
Caller[00000000004741ac]: do_group_exit+0x34/0xc0
Caller[000000000047db0c]: get_signal_to_deliver+0x274/0x300
Caller[0000000000449f64]: do_signal32+0x2c/0x1240
Caller[0000000000434758]: do_notify_resume+0x1c0/0x5a0
Caller[0000000000404afc]: __handle_signal+0x18/0x54
Caller[00000000f7e3ebd0]: 0xf7e3ebd8
Instruction DUMP: b7b2890c bbb3090e bfb38910 <c19a5e00> e3ba1e00 92026040 8ea1e040 02600020 90022040
Fixing recursive fault but reboot is needed!

If you need any more info/debugging/testing please let me know.

Regards,

Mariusz

2008-01-25 06:05:27

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: 2.6.24 Kernel oops will running kernbench regression from 2.6.24-rc8-mm1

Paul Mackerras wrote:
> Kamalesh Babulal writes:
>
>>>>> NIP: 0000000000004570 LR: 000000000fc42dc0 CTR: 0000000000000000
>>>>> REGS: c00000077b6bf8c0 TRAP: 0300 Not tainted (2.6.24-rc8-mm1-autotest)
>>>>> MSR: 8000000000001000 <ME> CR: 28022422 XER: 00000000
>>>>> DAR: c00000077b6bfce0, DSISR: 000000000a000000
>
> Actually, how much RAM does this machine have? If it has less than
> 32GB, then the problem is that the kernel stack pointer is bogus.
> (How it got to be bogus is the interesting question, of course. :)
>
> Paul.
>
Hi Paul,

This kernel oops in seen in 2.6.24-rc8-git(2,3,4,5,7,8) and the 2.6.24.

Oops: Kernel access of bad area, sig: 11 [#1]
SMP NR_CPUS=32 NUMA pSeries
Modules linked in:
NIP: 0000000000004570 LR: 000000001030e594 CTR: 000000001012ddd0
REGS: c000000771f9f8c0 TRAP: 0300 Not tainted (2.6.24-autotest)
MSR: 8000000000001000 <ME> CR: 28000482 XER: 20000000
DAR: c000000771f9fce0, DSISR: 000000000a000000
TASK = c00000077b9c6000[19197] 'cc1' THREAD: c000000771f9c000 CPU: 2
GPR00: 0000000000000064 c000000771f9fb40 00000000f7fdb470 0000000000000000
GPR04: 0000000000000002 0000000000000000 0000000000782498 00000000003ff3ff
GPR08: 00000000aaaaaaab 0000000040000484 c000000771f9fe30 0000998be2321500
GPR12: 8000000000003030 c0000000005c5680 0000000010030000 0000000010030000
GPR16: 00000000105b0000 00000000105b0000 0000000010440000 00000000105b0000
GPR20: 00000000105b0000 00000000105f0000 0000000000000000 00000000ffd00b44
GPR24: 00000000105b0000 00000000105b0000 00000000105b0000 00000000105b0000
GPR28: 00000000105b0000 0000000010604684 0000000000000100 00000000105f75a8
NIP [0000000000004570] 0x4570
LR [000000001030e594] 0x1030e594
Call Trace:
[c000000771f9fb40] [c000000771f9fcf0] 0xc000000771f9fcf0 (unreliable)
Instruction dump:
48000000 XXXXXXXX XXXXXXXX XXXXXXXX 41820008 XXXXXXXX XXXXXXXX XXXXXXXX
48000010 XXXXXXXX XXXXXXXX XXXXXXXX f92101a0 XXXXXXXX XXXXXXXX XXXXXXXX
---[ end trace a8c779b801674eed ]---
-- 0:conmux-control -- time-stamp -- Jan/24/08 16:40:29 --
-- 0:conmux-control -- time-stamp -- Jan/24/08 16:47:56 --
Unable to handle kernel paging request for data at address 0xc00000077168f870
Faulting instruction address: 0x00004570
Oops: Kernel access of bad area, sig: 11 [#2]
SMP NR_CPUS=32 NUMA pSeries
Modules linked in:
NIP: 0000000000004570 LR: c00000000004a310 CTR: 0000000000000000
REGS: c00000077168f450 TRAP: 0300 Tainted: G D (2.6.24-autotest)
MSR: 8000000000001000 <ME> CR: 28000242 XER: 00000000
DAR: c00000077168f870, DSISR: 000000000a000000
TASK = c000000771fdb170[24200] 'tbench' THREAD: c00000077168c000 CPU: 1
GPR00: 0000000000000000 c00000077168f6d0 c00000000068bc30 8000000000009032
GPR04: 8000000000001030 000000000000025a 0000000042000222 c00000000000ee64
GPR08: c00000077168fae0 0000000028000242 c00000077168f9c0 0000998be2321500
GPR12: 8000000000001030 c0000000005c5480 0000000000000000 0000000000000000
GPR16: 00000000100a0000 00000000100a8b10 00000000100a0000 0000000010000000
GPR20: 0000000000005e84 c000000000008cd4 c00000077168c000 c000000771fdb390
GPR24: 0000000000000001 00000000ff9ce668 00000000ff9cec5c c000000771fdb170
GPR28: 0000000000000001 c00000077ca7cba0 c000000000615938 0000000000000000
NIP [0000000000004570] 0x4570
LR [c00000000004a310] .finish_task_switch+0x54/0xe8
Call Trace:
[c00000077168f6d0] [c00000077168f790] 0xc00000077168f790 (unreliable)
Instruction dump:
48000000 XXXXXXXX XXXXXXXX XXXXXXXX 41820008 XXXXXXXX XXXXXXXX XXXXXXXX
48000010 XXXXXXXX XXXXXXXX XXXXXXXX f92101a0 XXXXXXXX XXXXXXXX XXXXXXXX

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

2008-01-25 17:11:33

by Takashi Iwai

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: old sparc64 bug

At Fri, 25 Jan 2008 01:04:34 +0100,
Mariusz Kozlowski wrote:
>
> Hello,
>
> I was digging through the gentoo bugzilla and found this:
>
> http://bugs.gentoo.org/show_bug.cgi?id=141823
>
> As you see this bug is present since at least 2.6.17. I can reproduce
> that here on my hardware with 2.6.24-rc8-mm1. All you need to do is install
> mp3blaster on sparc64, run:
>
> $ mp3blaster some_mp3_file.mp3
>
> and stop it by pressing ctrl-c. It oopses when you stop it. It doesn't happen
> every time but it'll oops in a few tries.

This looks similar like a bug I fixed ago. Damn, it's still there.

Could you build with CONFIG_SND_DEBUG=y ? It addas some sanity checks
and might catch the fatal condition.


thanks,

Takashi

2008-01-25 18:34:50

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: old sparc64 bug

Hello,

> > I was digging through the gentoo bugzilla and found this:
> >
> > http://bugs.gentoo.org/show_bug.cgi?id=141823
> >
> > As you see this bug is present since at least 2.6.17. I can reproduce
> > that here on my hardware with 2.6.24-rc8-mm1. All you need to do is install
> > mp3blaster on sparc64, run:
> >
> > $ mp3blaster some_mp3_file.mp3
> >
> > and stop it by pressing ctrl-c. It oopses when you stop it. It doesn't happen
> > every time but it'll oops in a few tries.
>
> This looks similar like a bug I fixed ago. Damn, it's still there.
>
> Could you build with CONFIG_SND_DEBUG=y ? It addas some sanity checks
> and might catch the fatal condition.

Done. I don't think it changed much though :-/ If you have any other ideas please
let me know.

Unable to handle kernel paging request at virtual address 0000000100024000
tsk->{mm,active_mm}->context = 0000000000000dac
tsk->{mm,active_mm}->pgd = fffff800bdb64000
\|/ ____ \|/
"@'/ .. \`@"
/_| \__/ |_\
\__U_/
mp3blaster(3201): Oops [#1]
TSTATE: 0000000080009600 TPC: 000000000056a294 TNPC: 000000000056a298 Y: 00000000 Not tainted
TPC: <memcpy+0x11c/0x13c0>
g0: 0000000000795b00 g1: 0000000100025ec0 g2: 0000000000000000 g3: 0000000000000038
g4: fffff800bf58a5a0 g5: fffff8007f988000 g6: fffff800bc91c000 g7: 0000000000001ec0
o0: fffff800bdeb2080 o1: 0000000100024000 o2: 0000000000000008 o3: fffff801bdeb6080
o4: fffff800bdeb2080 o5: 0000000000000000 sp: fffff800bc91eb21 ret_pc: 000000000056c228
RPC: <memcpy_user_stub+0x14/0x24>
l0: fffff800bc91f468 l1: fffff800bc91f370 l2: 0000000000755000 l3: fffff800bde7dfa0
l4: fffff800bde7c001 l5: 0000000000000001 l6: fffff800bc818000 l7: 0000000000446600
i0: fffff800bdeb2080 i1: 0000000100024000 i2: 0000000000001f00 i3: 00000000100575b8
i4: 00000000000007c0 i5: fffff800bdeb0000 i6: fffff800bc91ebe1 i7: 0000000010054a30
I7: <snd_pcm_lib_write_transfer+0xb8/0x120 [snd_pcm]>
Caller[0000000010054a30]: snd_pcm_lib_write_transfer+0xb8/0x120 [snd_pcm]
Caller[000000001005215c]: snd_pcm_lib_write1+0x164/0x2e0 [snd_pcm]
Caller[0000000010074cc4]: snd_pcm_oss_sync+0x28c/0x2c0 [snd_pcm_oss]
Caller[0000000010075b64]: snd_pcm_oss_release+0x8c/0xe0 [snd_pcm_oss]
Caller[00000000004c8eb0]: __fput+0xb8/0x1e0
Caller[00000000004c5e58]: filp_close+0x60/0x80
Caller[00000000004723d4]: put_files_struct+0xfc/0x120
Caller[0000000000473a98]: do_exit+0x160/0x840
Caller[00000000004741ac]: do_group_exit+0x34/0xc0
Caller[000000000047db0c]: get_signal_to_deliver+0x274/0x300
Caller[0000000000449f64]: do_signal32+0x2c/0x1240
Caller[0000000000434758]: do_notify_resume+0x1c0/0x5a0
Caller[0000000000404afc]: __handle_signal+0x18/0x54
Caller[00000000f7bd0fcc]: 0xf7bd0fd4
Instruction DUMP: 94228007 82004007 94a28003 <c19a5e00> 92026040 82004003 e19a5e00 92026040 8e21e080
Fixing recursive fault but reboot is needed!

Thanks,

Mariusz

2008-01-25 22:00:14

by Torsten Kaiser

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

On Jan 17, 2008 11:35 AM, Andrew Morton <[email protected]> wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24-rc8/2.6.24-rc8-mm1/

I'm still seeing my mystery-crash that I had since 2.6.24-rc3-mm2.

The crashed kernel was 2.6.24-rc8-mm1 with the following patches:

* personal fix for the "do_md_run returned -22"-problem
I'm just moving the analyze_sbs(mddev); above the test.

* git-sched-fix-bug_on.patch
* hotfix-libata-scsi-corruption.patch

The crash (captured via serial console):
Jan 25 21:40:01 treogen cron[6553]: (root) CMD (test -x
/usr/sbin/run-crons && /usr/sbin/run-crons )
Jan 25 20:40:44 treogen syslog-ng[4839]: I/O error occurred while
writing; fd='5', error='Input/output error (5)'
[ 1242.319555] ------------[ cut here ]------------
[ 1242.319557] kernel BUG at lib/list_debug.c:33!
[ 1242.319558] invalid opcode: 0000 [1] SMP
[ 1242.319560] last sysfs file:
/sys/devices/system/cpu/cpu3/cache/index2/shared_cpu_map
[ 1242.319562] CPU 3
[ 1242.319563] Modules linked in:

The cursor on the receiving machine stayed after the : in the last
line, the crashed machine blinked caps lock and scroll lock.

I don't have a clue what the syslog-ng error is about or why this line
is one hour to early.
At 20:40 this kernel wasn't even build yet and syslog-ng started with
the correct timezone:
Jan 25 21:26:26 treogen syslog-ng[4839]: syslog-ng starting up; version='2.0.6'


As I'm seeing this bug during times of both network and hard disk
activity, could this be related to the problem discussed in the thread
"[PATCH rc8-mm1] hotfix libata-scsi corruption"? The line fixed in the
mm-hotfix seems to be to new to cause this in -rc3-mm2, but these
alignment problems seem to touch more than this and I'm not clear one
how old this might be.

(If this matters: The crashing system is running the smartd daemon
from smartmontools version 5.37)


I hope I will have time to try git-misc-tree on sunday...

Torsten

2008-01-28 11:55:25

by Takashi Iwai

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: old sparc64 bug

At Fri, 25 Jan 2008 19:34:35 +0100,
Mariusz Kozlowski wrote:
>
> Hello,
>
> > > I was digging through the gentoo bugzilla and found this:
> > >
> > > http://bugs.gentoo.org/show_bug.cgi?id=141823
> > >
> > > As you see this bug is present since at least 2.6.17. I can reproduce
> > > that here on my hardware with 2.6.24-rc8-mm1. All you need to do is install
> > > mp3blaster on sparc64, run:
> > >
> > > $ mp3blaster some_mp3_file.mp3
> > >
> > > and stop it by pressing ctrl-c. It oopses when you stop it. It doesn't happen
> > > every time but it'll oops in a few tries.
> >
> > This looks similar like a bug I fixed ago. Damn, it's still there.
> >
> > Could you build with CONFIG_SND_DEBUG=y ? It addas some sanity checks
> > and might catch the fatal condition.
>
> Done. I don't think it changed much though :-/

OK, could you try the patch below?


thanks,

Takashi

---

diff -r edbe1b84179b sound/core/oss/pcm_oss.c
--- a/sound/core/oss/pcm_oss.c Mon Jan 28 12:30:17 2008 +0100
+++ b/sound/core/oss/pcm_oss.c Mon Jan 28 12:56:13 2008 +0100
@@ -1621,6 +1621,7 @@ static int snd_pcm_oss_sync(struct snd_p
snd_pcm_format_set_silence(runtime->format,
runtime->oss.buffer,
size1);
+ size1 /= runtime->channels; /* frames */
fs = snd_enter_user();
snd_pcm_lib_write(substream, (void __user *)runtime->oss.buffer, size1);
snd_leave_user(fs);

2008-01-28 22:20:46

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: old sparc64 bug

Hello Takashi,

> > > > I was digging through the gentoo bugzilla and found this:
> > > >
> > > > http://bugs.gentoo.org/show_bug.cgi?id=141823
> > > >
> > > > As you see this bug is present since at least 2.6.17. I can reproduce
> > > > that here on my hardware with 2.6.24-rc8-mm1. All you need to do is install
> > > > mp3blaster on sparc64, run:
> > > >
> > > > $ mp3blaster some_mp3_file.mp3
> > > >
> > > > and stop it by pressing ctrl-c. It oopses when you stop it. It doesn't happen
> > > > every time but it'll oops in a few tries.
> > >
> > > This looks similar like a bug I fixed ago. Damn, it's still there.
> > >
> > > Could you build with CONFIG_SND_DEBUG=y ? It addas some sanity checks
> > > and might catch the fatal condition.
> >
> > Done. I don't think it changed much though :-/
>
> OK, could you try the patch below?

Great news. It works fine now. I tested it for some time but I'll test it even more
tommorow.

Thanks,

Mariusz

>
> thanks,
>
> Takashi
>
> ---
>
> diff -r edbe1b84179b sound/core/oss/pcm_oss.c
> --- a/sound/core/oss/pcm_oss.c Mon Jan 28 12:30:17 2008 +0100
> +++ b/sound/core/oss/pcm_oss.c Mon Jan 28 12:56:13 2008 +0100
> @@ -1621,6 +1621,7 @@ static int snd_pcm_oss_sync(struct snd_p
> snd_pcm_format_set_silence(runtime->format,
> runtime->oss.buffer,
> size1);
> + size1 /= runtime->channels; /* frames */
> fs = snd_enter_user();
> snd_pcm_lib_write(substream, (void __user *)runtime->oss.buffer, size1);
> snd_leave_user(fs);
>

2008-02-01 23:34:37

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.24-rc8-mm1: sparc64 warning at fs/file_table.c:49 __fput+0x1a8/0x1e0()

On Tue, 22 Jan 2008 15:13:58 -0800
Dave Hansen <[email protected]> wrote:

> @@ -566,10 +567,26 @@ static void mark_files_ro(struct super_b
> {
> struct file *f;
>
> +retry:
> file_list_lock();
> list_for_each_entry(f, &sb->s_files, f_u.fu_list) {
> - if (S_ISREG(f->f_path.dentry->d_inode->i_mode) && file_count(f))
> - f->f_mode &= ~FMODE_WRITE;
> + struct vfsmount mnt;
> + if (!S_ISREG(f->f_path.dentry->d_inode->i_mode))
> + continue;
> + if (!file_count(f))
> + continue;
> + if (!(f->f_mode & FMODE_WRITE))
> + continue;
> + f->f_mode &= ~FMODE_WRITE;
> + f->f_mnt_write_state |= FILE_MNT_WRITE_RELEASED;
> + mnt = f->f_path.mnt;
> + file_list_unlock();
> + /*
> + * This can sleep, so we can't hold
> + * the file_list_lock() spinlock.
> + */
> + mnt_drop_write(mnt);
> + goto retry;
> }
> file_list_unlock();
> }
> _

this doesn't even compile. How much confidence am I supposed
to have that once I've fixed it, it will actually work?