Discussion:
2.6.22-rc6-mm1
Andrew Morton
2007-06-28 10:43:21 UTC
Permalink
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc6/2.6.22-rc6-mm1/

- NOTE (an uppercase one, indeed): there are a lot of menuconfig changes in
here which break `make oldconfig' badly. If you grab an old .config and run
`make oldconfig', your kernel probably won't work. I lost useful things
like CONFIG_BLK_DEV and the whole SCSI system, because they were added after
I generated my .config.

So save yourself some hassle and check your .config carefully before
building this kernel. Make sure that everything you need is still enabled.

I found that manually adding "CONFIG_BLK_DEV=y" to the .config before
running oldconfig saved a large number of config items from getting lost.

Those menuconfig changes have been a huge pain.

- Added the kgdb tree, as git-kgdb.patch (Jason Wessel
<***@windriver.com>)

This is a large patch which unifies all the various kgdb stubs lying
around various architectures and extends kgdb support to other
architectures. Supported architectures are at present arm, i386, ia64,
mips, ppc32, ppc64, sh, and x86_64.

Subject to review, we're aiming this at 2.6.24.

- Jean's hwmon git tree was dropped and was replaced by the new
git-hwmon.patch (Mark M. Hoffman <***@lightlink.com>)

- Added new git-ixgbe.patch: "10GbE driver for Intel 82598 based PCI Express
adapters" (Ayyappan Veeraiyan <***@intel.com>)

- I cannot persuade git to generate a sane diff out of git-wireless, so it
is dropped. Which is bad, because it contains a tremendous amount of stuff.

- Added x86_64 dynticks support

- Merged the dynamic commandline length patches - these remove Linux's
hard-coded limit.



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 ***@vger.kernel.org

- If you hit a bug in -mm and it is not obvious which patch caused it, it is
most valuable if you can perform a bisection search to identify which patch
introduced the bug. Instructions for this process are at

http://www.zip.com.au/~akpm/linux/patches/stuff/bisecting-mm-trees.txt

But beware that this process takes some time (around ten rebuilds and
reboots), so consider reporting the bug first and if we cannot immediately
identify the faulty patch, then perform the bisection search.

- When reporting bugs, please try to Cc: the relevant maintainer and mailing
list on any email.

- When reporting bugs in this kernel via email, please also rewrite the
email Subject: in some manner to reflect the nature of the bug. Some
developers filter by Subject: when looking for messages to read.

- Occasional snapshots of the -mm lineup are uploaded to
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/mm/ and are announced on
the mm-commits list.




Changes since 2.6.22-rc4-mm2:


origin.patch
git-acpi.patch
git-alsa.patch
git-arm.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-ia64.patch
git-ieee1394.patch
git-infiniband.patch
git-input.patch
git-jfs.patch
git-kbuild.patch
git-kvm.patch
git-leds.patch
git-libata-all.patch
git-md-accel.patch
git-mips.patch
git-mmc.patch
git-ubi.patch
git-netdev-all.patch
git-ixgbe.patch
git-net.patch
git-backlight.patch
git-battery.patch
git-ioat.patch
git-nfs.patch
git-ocfs2.patch
git-selinux.patch
git-s390.patch
git-scsi-misc.patch
git-scsi-target.patch
git-unionfs.patch
git-watchdog.patch
git-ipwireless_cs.patch
git-newsetup.patch
git-newsetup-fixup.patch
git-xfs.patch
git-cryptodev.patch
git-kgdb.patch
git-gccbug.patch

git trees

-update-checkpatchpl-to-version-003.patch
-m68knommu-fix-coldfire-timer-off-by-1.patch
-nommu-report-correct-errno-in-message.patch
-loop-preallocate-eight-loop-devices.patch
-document-acked-by.patch
-pi-futex-fixes.patch
-update-feature-removal-scheduletxt-to-include-deprecated-functions.patch
-mount-t-tmpfs-o-mpol=-check-nodes-online.patch
-slab-fix-alien-cache-handling.patch
-potential-parse-error-in-ifdef-part-3.patch
-slub-return-zero_size_ptr-for-kmalloc0.patch
-ramfs-nommu-missed-posix-uid-gid-inode-attribute-checking.patch
-uml-fix-kernel-stack-size-on-x86_64.patch
-documentation-atomic_opstxt.patch
-move-three-functions-that-are-only-needed-for.patch
-char-stallion-dont-fail-with-less-than-max-panels.patch
-char-stallion-alloc-tty-before-pci-devices-init.patch
-char-stallion-proper-fail-return-values.patch
-frv-build-fix.patch
-uml-get-declaration-of-simple_strtoul.patch
-isdn-diva-fix-section-mismatch.patch
-checkpatch-produce-fewer-lines-of-output.patch
-git-acpi-disable-acpi_processor_throttling_seq_show.patch
-toshica_acpi-fix-section-mismatch-in-allyesconfig.patch
-yet-another-uniwill-laptop-with-alc861-codec.patch
-intel_agp-cleanup-intel-private-data.patch
-intel_agp-cleanup-intel-private-data-update.patch
-intel_agp-use-table-for-device-probe.patch
-intel_agp-use-table-for-device-probe-update.patch
-intel_agp-add-support-for-965gme-gle.patch
-intel_agp-add-support-for-945gme.patch
-intel_agp-add-support-for-g33-q33-and-q35-chipsets.patch
-dm-add-missing-braces-in-driver-debug-code.patch
-do-not-select-macintosh-drivers-by-default.patch
-gregkh-driver-update-documentation-driver-model-platformtxt.patch
-gregkh-driver-driver-core-keep-physdev-for-old-struct-class_device.patch
-gregkh-driver-driver-core-kill-unused-code.patch
-fix-2-gregkh-driver-dmi-based-module-autoloading.patch
-git-dvb-fix-the-tea5761-tuner-support.patch
-i2c-tsl2550-support.patch
-i2c-iop3xx-switch-to-static-adapter-numbering.patch
-thecus-n2100-register-rtc-rs5c372-i2c-device.patch
-git-input-make-xpad_play_effect-static.patch
-ide-serverworks-remove-crappy-code.patch
-ide-serverworks-fix-csb6-tuning-logic.patch
-ide-it821x-raid-mode-fixes.patch
-ide-ide-hpa-detect-from-resume.patch
-ide-ide-generic-add-another-device-exception.patch
-use-menuconfig-objects-ii-netdev-general100mbit.patch
-ppp_mppe-account-for-osize-too-small-errors-in.patch
-unexport-pci_proc_attach_device.patch
-s390-spinlock-initializer-cleanup.patch
-gregkh-usb-usb-set-default-y-for-config_usb_device_class.patch
-gregkh-usb-usblp-don-t-let-suspend-to-kill-used.patch
-gregkh-usb-usb-usb-gadgets-avoid-le-16-32-_to_cpup.patch
-gregkh-usb-usb-unusual_dev-sync-up-some-reported-devices-from-ubuntu.patch
-gregkh-usb-usb-cxacru-add-documentation-file.patch
-gregkh-usb-usb-cxacru-create-sysfs-attributes-in-atm_start-instead-of-bind.patch
-gregkh-usb-usb-cxacru-ignore-error-trying-to-start-adsl-in-atm_start.patch
-gregkh-usb-ohci-fix-machine-check-in-ohci_hub_status_data.patch
-gregkh-usb-usb-ti-serial-driver-sleeps-with-spinlock-held.patch
-gregkh-usb-usb-stimulus.patch
-usb-try-to-debug-bug-8561.patch
-usb-bugfix-gfp_kernel-gfp_atomic-in-spin_locked-region.patch
-usb-serial-fix-something.patch
-add-pci_try_set_mwi-prism54pci.patch
-mac80211-fix-1-bit-bitfield-to-unsigned.patch
-x86_64-mm-via-no-dac.patch
-x86_64-mm-compat-syscall-u64.patch
-x86_64-mm-disable-watchdog.patch
-x86_64-mm-fix-eventd-syscall.patch
-x86_64-mm-mtrr-sections.patch
-x86_64-mm-allocate-sparsemem-memmap-above-4g-on-x86_64.patch
-fix-x86_64-mm-xen-core-xen-implementation.patch
-i386-hpet-check-if-the-counter-works.patch
-paravirt-helper-to-disable-all-io-space.patch
-xen-disable-all-non-virtual-devices.patch
-x86_64-use-null-for-pointer.patch
-ext3-lost-brelse-in-ext3_read_inode.patch
-ext4-lost-brelse-in-ext4_read_inode.patch
-acpi-preserve-the-ebx-value-in-acpi_copy_wakeup_routine.patch
-sata_promise-use-tf-interface-for-polling-nodata-commands.patch
-rework-ptep_set_access_flags-and-fix-sun4c.patch
-rework-ptep_set_access_flags-and-fix-sun4c-fix.patch
-rework-ptep_set_access_flags-and-fix-sun4c-fix-fix.patch
-rework-ptep_set_access_flags-and-fix-sun4c-fix-fix-fix.patch
-unmap_vm_area-becomes-unmap_kernel_range-for-the-public.patch
-hexdump-more-output-formatting.patch
-tidy-up-usermode-helper-waiting-a-bit-fix.patch
-volatile-considered-harmful-take-3.patch
-cobalt-remove-all-traces-of-cobalt-from-nvramc.patch
-ffb-the-pseudo_palette-is-only-16-elements-long.patch
-sunxvr2500fb-fix-pseudo_palette-array-size.patch
-sunxvr500fb-fix-pseudo_palette-array-size.patch
-i386-set-6-bit-dac-channel-properties-in-vesa-video.patch

Merged into mainline or a subsystem tree

+ecryptfs-fix-write-zeros-behavior.patch
+ecryptfs-initialize-crypt_stat-in-setattr.patch
+ecryptfs-zero-out-last-page-for-llseek-write.patch
+atyfb-fix-xclk-frequency-on-apple-ibook1.patch
+eventfd-clean-compile-when-config_eventfd=n.patch
+mtrr-cyrix-fix-sections.patch
+smsc-ircc2-skip-preconfiguration-for-pnp-devices.patch
+pnp-smcf010-quirk-auto-config-device-if-bios-left-it-broken.patch
+mm-kill-validate_anon_vma-to-avoid-mapcount-bug.patch
+fix-kconfig-dependency-problems-wrt-boolean-menuconfigs.patch
+ioatdma-fix-section-mismatches.patch
+alsa-fix-ice1712-section-mismatch.patch
+saa7134-fix-thread-shutdown-handling.patch
+avoid-spurious-pollin-returns-in-signalfd.patch
+fix-section-mismatch-in-chipsfb.patch
+documentation-howto-update-urls-of-git-trees.patch
+alsa-use-__devexit_p.patch
+relay-file-read-start-pos-fixpatch.patch
+relayfs-fix-overwrites.patch
+w1_therm_read_bin-suspicious-usage-of-flush_signals.patch
+mips-jazz-correct-flags-for-timer-io-resource.patch
+add-some-pci-ids-for-xgi-chips.patch
+ext2-fix-return-of-uninitialised-variable.patch
+serial-clear-proper-mpsc-interrupt-cause-bits.patch
+introduce-fixed-sys_sync_file_range2-syscall-implement-on.patch
+slab-remove-warn_on_once-for-zero-sized-objects-for-2622-release.patch

2.6.22 queue

+always-probe-the-nmi-watchdog.patch
+linux-hpet-issue-with-amd-southbridges.patch

x86 fixes

+serial-assert-dtr-for-serial-console-devices.patch

serial fix

+git-acpi-fixup.patch

Fix rejects in git-acpi

+git-acpi-ia64-build-fix.patch

Fix git-acpi

+cpuidle-menu-governor-and-hrtimer-compile-fix.patch
+cpuidle-reenable-proc-acpi-power-interface-for-the-time-being.patch
+cpuidle-fix-the-uninitialized-variable-in-sysfs-routine.patch
+cpuidle-menu-governor-change-the-early-break-condition.patch
+cpuidle-make-cpuidle-sysfs-driver-governor-switch-off-by-default.patch
+cpuidle-add-rating-to-the-governors-and-pick-the-one-with-highest-rating-by-default.patch
+cpuidle-first-round-of-documentation-updates.patch

cpuidle updates

+acpi-do-not-attempt-to-run-s1-standby-workarounds-while-hibernating.patch
+make-drivers-acpi-oslcosi_linux-static.patch
+drivers-acpi-processor_throttlingc-make-2-functions.patch
+drivers-cpuidle-governors-menuc-make-a-struct-static.patch
+fix-empty-macros-in-acpi.patch
+drivers-acpi-sbsc-remove-dead-code.patch
+remove-leftover-documentation-of-acpi_generic_hotkey.patch

acpi fixes

+cifs-zero_user_page-conversion.patch

cifs cleanup

-agk-dm-dm-use-singlethread-workqueues.patch
+agk-dm-dm-use-singlethread-workqueues.patch
+agk-dm-dm-snapshot-fix-invalidation-deadlock.patch
+agk-dm-dm-snapshot-permit-invalid-activation.patch
+agk-dm-dm-raid1-clear-region-outside-spinlock.patch
+agk-dm-dm-netlink.patch
+agk-dm-dm-netlink-add-to-core.patch
+agk-dm-dm-netlink-mpath.patch
+agk-dm-dm-mpath-rdac.patch

device mapper tree updates

+powerpc-enable-arbitary-speed-tty-ioctls-and-split.patch
+powerpc-tlb_32c-build-fix.patch

powerpc stuff

+gregkh-driver-sysfs-rules.patch
+gregkh-driver-pm-remove-pm_parent-from-struct-dev_pm_info.patch
+gregkh-driver-pm-remove-saved_state-from-struct-dev_pm_info.patch
+gregkh-driver-pm-simplify-suspend_device.patch
+gregkh-driver-driver-core-include-linux-mutexh-from-attribute_containerc.patch
+gregkh-driver-driver-core-properly-get-driver-in-device_release_driver.patch
+gregkh-driver-driver-core-fix-kernel-doc-of-device_release_driver.patch
+gregkh-driver-driver-core-fix-devres_release_all-return-value.patch
+gregkh-driver-pm-remove-prev_state-from-struct-dev_pm_info.patch
+gregkh-driver-pm-remove-power_stateevent-checks-from-suspend-core-code.patch
+gregkh-driver-pm-do-not-check-parent-state-in-suspend-and-resume-core-code.patch
+gregkh-driver-howto-translated-into-japanese.patch
+gregkh-driver-add-japanese-translated-stable_api_nonsensetxt.patch
+gregkh-driver-howto-add-chinese-translation-of-documentation-howto.patch
+gregkh-driver-chinese-translation-of-documentation-stable_api_nonsensetxt.patch
-gregkh-driver-sysfs-reimplement-syfs_drop_dentry.patch
+gregkh-driver-sysfs-reimplement-sysfs_drop_dentry.patch
+gregkh-driver-sysfs-fix-oops-in-sysfs_drop_dentry-on-x86_64.patch
+gregkh-driver-sysfs-make-sysfs_drop_dentry-access-inodes-using-ilookup.patch
+gregkh-driver-sysfs-rename-sysfs_dirent-s_type-to-s_flags-and-make-room-for-flags.patch
+gregkh-driver-sysfs-implement-sysfs_flag_removed-flag.patch
+gregkh-driver-sysfs-implement-sysfs_find_dirent-and-sysfs_get_dirent.patch
+gregkh-driver-sysfs-make-kobj-point-to-sysfs_dirent-instead-of-dentry.patch
+gregkh-driver-sysfs-consolidate-sysfs-spinlocks.patch
+gregkh-driver-sysfs-use-sysfs_mutex-to-protect-the-sysfs_dirent-tree.patch
+gregkh-driver-sysfs-restructure-add-remove-paths-and-fix-inode-update.patch
+gregkh-driver-sysfs-move-sysfs_drop_dentry-to-dirc-and-make-it-static.patch
+gregkh-driver-sysfs-implement-sysfs_get_dentry.patch
+gregkh-driver-sysfs-make-directory-dentries-and-inodes-reclaimable.patch

driver tree udpates

+fix-gregkh-driver-nozomi.patch

Fix it.

+pm-do-not-use-saved_state-from-struct-dev_pm_info-on-arm.patch

PM update (might break arm)

+revert-saa7134-fix-thread-shutdown-handling.patch

Make git-dvb apply

+dvb-saa7134-dependency-fix.patch

dvb fix

+jdelvare-i2c-i2c-sis5595-resolve-resource-conflict.patch
+jdelvare-i2c-i2c-kill-struct-i2c_device_id.patch
+jdelvare-i2c-i2c-iop3xx-numbered-adapter.patch
+jdelvare-i2c-i2c-gpio-add-support-for-new-style-clients.patch
+jdelvare-i2c-i2c-gpio-make-some-internal-functions-static.patch
+jdelvare-i2c-i2c-pxa-numbered-adapter.patch
+jdelvare-i2c-i2c-tsl2550-support.patch
+jdelvare-i2c-i2c-i801-cleanups.patch
+jdelvare-i2c-i2c-i801-use-block-buffer.patch
+jdelvare-i2c-i2c-taos-evm-new-driver.patch
+jdelvare-i2c-i2c-tsl2550-faster-init.patch

I2C tree updates

-jdelvare-hwmon-hwmon-new-maintainer.patch
-jdelvare-hwmon-hwmon-lm90-spelling-fix-explicitly.patch
-jdelvare-hwmon-hwmon-smsc47m192-use-mutex-instead-of-semaphore.patch
-jdelvare-hwmon-hwmon-ds1621-cleanups.patch
-jdelvare-hwmon-hwmon-ds1621-dynamic-attributes.patch
-jdelvare-hwmon-hwmon-ds1621-individual-alarm-files.patch
-jdelvare-hwmon-hwmon-dme1737-new-driver.patch
-jdelvare-hwmon-hwmon-dme1737-documentation.patch
-jdelvare-hwmon-hwmon-pc87360-to-platform-driver.patch
-jdelvare-hwmon-hwmon-use-platform_device_add_data.patch
-jdelvare-hwmon-hwmon-lm90-add-max6681-support.patch
-jdelvare-hwmon-hwmon-fault-file-name.patch
-jdelvare-hwmon-hwmon-it87-add-it8726f-support.patch
-jdelvare-hwmon-hwmon-w83627hf-pwm-freq-support.patch
-jdelvare-hwmon-hwmon-via686a-fix-temperature-interrupt-mode.patch
-jdelvare-hwmon-hwmon-via686a-to-platform-driver.patch
-jdelvare-hwmon-hwmon-via686a-dynamic-attributes.patch
-jdelvare-hwmon-hwmon-sis5595-to-platform-driver.patch
-jdelvare-hwmon-hwmon-sis5595-dynamic-attributes.patch

hwmon tree got dropped

+git-gfs2-nmw-build-fix.patch

Fix git-gfs2-nmw.patch

-git-input-fixup.patch

Unneeded

+serio_raw_read-warning-fix.patch
+tsdev-fix-broken-usecto-millisecs-conversion.patch

Input updates

+git-kbuild-fixup.patch

Fix rejects in git-kbuild.patch

+modpost-white-list-pattern-adjustment.patch
+strip-config_-automatically-in-kernel-configuration-search.patch

kbuild stuff

+led_colour_show-warning-fix.patch

Fix git-leds.patch

-libata-check-for-an-support.patch
-scsi-expose-an-to-user-space.patch
-libata-expose-an-to-user-space.patch
-scsi-save-disk-in-scsi_device.patch
-libata-send-event-when-an-received.patch

Dropped, it was old

+libata-add-hts541616j9sa00-to-ncq-blacklist.patch
+libata-add-ich8m-pciids-to-ata_piix.patch
+sata_promise-cleanups.patch
+sata_promise-sata-hotplug-support.patch
+libata-add-irq_flags-to-struct-pata_platform_info.patch
+libata-add-irq_flags-to-struct-pata_platform_info-fix.patch
-drivers-ata-add-sw-ncq-support-to-sata_nv-for-mcp51-mcp55-mcp61.patch
+ata-add-the-sw-ncq-support-to-sata_nv-for-mcp51-mcp55-mcp61.patch
+ata-add-the-sw-ncq-support-to-sata_nv-for-mcp51-mcp55-mcp61-fix.patch

ata things

+ide-ide-never-called-printk-statement-in-ide-taskfilec-wait_drive_not_busy.patch
+ide-ide-fix-a-theoretical-oops-case.patch
+ide-serverworks-tune-csb6.patch
-ide-hpt366-simplify-ultradma-filtering-take2.patch
+ide-hpt366-simplify-ultradma-filtering-take-3.patch
-ide-aec62xx-remove-init_dma-method.patch
+ide-aec62xx-remove-init_dma-method-take-2.patch
+ide-idecd-replace-c-code-with-call-to-array_size-macro.patch
+ide-ide-remove-references-to-the-non-existent-config_scsi_eata_dma-variable.patch
+ide-ide-remove-content-related-to-dead-config_blk_dev_mac_mediabay-config-variable.patch
+ide-hd-array-size-calculation-using-sizeof-replaced-with-array_size.patch
+ide-ide-pre-eide-swdma-support-fix.patch
+ide-ide-convert-ide-find-best-mode-users-to-use-ide-max-dma-mode.patch
+ide-ide-add-short-cable-support.patch
+ide-piix-handle-short-cables.patch
+ide-alim15x3-handle-short-cables.patch
+ide-sis5513-handle-short-cables.patch
+ide-via82cxxx-handle-short-cables.patch
+ide-unexport-ide_set_dma.patch
+ide-ide-stop-mapping-roms.patch

IDE tree updates

+ide_scan_pcibus-cehck-__pci_register_driver-return-value.patch

IDE fix

-git-md-accel-fixup.patch

Unneeded

+tty-add-the-new-ioctls-and-definitionto-the-mips.patch

tty update

+mmc-at91_mci-typo.patch

Fix git-mmc.patch

+cafe_nandc-the-olpc-laptop-is-not-available-for-100.patch

MTD fix

+ubi-one-less-bug-usage.patch

UBI fix

+use-is_power_of_2-in-cxgb3-cxgb3_mainc.patch
+use-is_power_of_2-in-myri10ge-myri10gec.patch
+extract-chip-specific-code-out-of-lasi_82596c.patch
+extract-chip-specific-code-out-of-lasi_82596c-update.patch
+ethernet-driver-for-eisa-only-sni-rm200-rm400-machines.patch
+ethernet-driver-for-eisa-only-sni-rm200-rm400-machines-update.patch
+ehea-whitespace-cleanup.patch

netdev stuff

+tun-tap-allow-group-ownership-of-tun-tap-devices.patch

tun/tap driver feature

+git-battery-vs-git-acpi.patch

fix git-battery for git-acpi API changes

+git-ioat-vs-git-md-accel.patch

Fix git-ioat.patch for git-md-accel.patch changes

+pa-risc-use-page-allocator-instead-of-slab-allocator.patch
+pa-risc-use-page-allocator-instead-of-slab-allocator-fix.patch

parisc stuff

+git-selinux-fixup.patch

Fix rejects in git-selinux.patch

+git-selinux-disable-mmap_min_addr-by-default.patch

Fix git-selinux

+dont-optimise-away-baud-rate-changes-when-bother-is-used.patch
+dont-optimise-away-baud-rate-changes-when-bother-is-used-fix.patch
+dont-optimise-away-baud-rate-changes-when-bother-is-used-fix-fix.patch
+serial-add-support-for-ite-887x-chips.patch

serial stuff

+gregkh-pci-pci-remove-cpqphp-maintainer.patch
+gregkh-pci-pci-fix-the-error-message-to-point-to-the-proper-person.patch
+gregkh-pci-pciehp-fix-possible-race-condition-in-writing-slot.patch
+gregkh-pci-pciehp-wait-for-1-second-after-power-off-slot.patch
+gregkh-pci-pci-fix-aer-driver-error-information.patch
+gregkh-pci-pci-aer-fix-stub-return-values.patch
+gregkh-pci-pci-aer-add-pci_cleanup_aer_correct_aer_status.patch
+gregkh-pci-pci-unexport-pci_proc_attach_device.patch
+gregkh-pci-pci-remove-useless-pci-driver-method.patch
+gregkh-pci-pci-read-revision-id-by-default.patch
+gregkh-pci-pci-atm-lanai-change-vendor-to-device.patch
+gregkh-pci-pci-i386-traps-change-vendor-to-device.patch
+gregkh-pci-pci-pci_ids-reorder-some-entries.patch
+gregkh-pci-pci-pci_ids-add-atheros-and-3com_2-vendors.patch
+gregkh-pci-pci-pci_ids-remove-double-or-more-empty-lines.patch

PCI tree updates

+revert-gregkh-pci-pci_bridge-device.patch
+fix-gregkh-pci-pci-syscallc-switch-to-refcounting-api.patch

Fix it

+revert-acpi-change-for-scsi.patch

Make the scsi tree apply

+restore-acpi-change-for-scsi.patch

Fix that up again

+git-scsi-misc-vs-greg-sysfs-stuff.patch

Fix scsi changes for driver tree changes

+use-menuconfig-objects-ii-scsi-fix.patch

"fix" use-menuconfig-objects-ii-scsi.patch

+ppa-coding-police-and-printk-levels.patch
+remove-the-dead-cyberstormiii_scsi-option.patch

scsi fixes

+use-menuconfig-objects-ii-block-devices-fix.patch

"fix" use-menuconfig-objects-ii-block-devices.patch

+block-drop-unnecessary-bvec-rewinding-from-flush_dry_bio_endio.patch
+cdrom_sysctl_info-fix.patch

block things

+gregkh-usb-usb-m66592-udc-fix-use-old-interrupt-flags.patch
+gregkh-usb-usb-r8a66597-hcd-fix-null-access.patch
+gregkh-usb-usb-disable-file_storage-usb_config_att_wakeup.patch
+gregkh-usb-usb-fix-nec-ohci-chip-silicon-bug.patch
+gregkh-usb-usb-remove-__usb_port_suspend.patch
+gregkh-usb-usb-separate-root-and-non-root-suspend-resume.patch
+gregkh-usb-usb-remove-excess-code-from-hubc.patch
+gregkh-usb-usb-add-reset_resume-method.patch
+gregkh-usb-usb-unify-reset_resume-and-normal-resume.patch
+gregkh-usb-usb-add-power-persist-device-attribute.patch
+gregkh-usb-usb-fsl_usb2_udc-replace-deprecated-irq-flag.patch
+gregkh-usb-usb-fsl_usb2_udc-get-max-ep-number-from-dccparams-register.patch
+gregkh-usb-usb-option-fix-usage-of-urb-status-abuse.patch
+gregkh-usb-usb-ps3-usb-system-bus-rework.patch
+gregkh-usb-usb-gadget-driver-for-samsung-s3c2410-arm-soc.patch
+gregkh-usb-usb-usb-storage-use-kthread_stop-for-the-control-thread.patch
+gregkh-usb-usb-usb-host-side-can-be-configured-given-pcmcia.patch
+gregkh-usb-ehci-hub-improved-over-current-recovery.patch
+gregkh-usb-usb-io_ti-sleep-with-spinlock-held-detected-by-automatic-tool.patch
+gregkh-usb-usb-fix-usb_serial_put-synchronization.patch
+gregkh-usb-usb-handle-bogus-low-speed-bulk-endpoints.patch
+gregkh-usb-usb-free-dma-mappings-if-enqueue-fails.patch
+gregkh-usb-usb-serial-license-fix.patch
+gregkh-usb-usb-aircable-status.patch
+gregkh-usb-usb-airprime-status.patch
+gregkh-usb-usb-belkin_sa-status.patch
+gregkh-usb-usb-cyberjack-status.patch
+gregkh-usb-usb-cypress_m8-status.patch
+gregkh-usb-usb-digi_acceleport-status.patch
+gregkh-usb-usb-empeg-status.patch
+gregkh-usb-usb-ftdi_sio-status.patch
+gregkh-usb-usb-garmin_gps-status.patch
+gregkh-usb-usb-generic-status.patch
+gregkh-usb-usb-io_edgeport-status.patch
+gregkh-usb-usb-io_ti-status.patch
+gregkh-usb-usb-ipaq-status.patch
+gregkh-usb-usb-ipw-status.patch
+gregkh-usb-usb-ir-usb-status.patch
+gregkh-usb-usb-keyspan-status.patch
+gregkh-usb-usb-keyspan_pda-status.patch
+gregkh-usb-usb-kl5kusb105-status.patch
+gregkh-usb-usb-kobil_sct-status.patch
+gregkh-usb-usb-mct_u232-status.patch
+gregkh-usb-usb-mos7720-status.patch
+gregkh-usb-usb-mos7840-status.patch
+gregkh-usb-usb-navman-status.patch
+gregkh-usb-usb-omninet-status.patch
+gregkh-usb-usb-option-status.patch
+gregkh-usb-usb-oti6858-status.patch
+gregkh-usb-usb-pl2303-status.patch
+gregkh-usb-usb-safe_serial-status.patch
+gregkh-usb-usb-sierra-status.patch
+gregkh-usb-usb-ti_usb_3410_5052-status.patch
+gregkh-usb-usb-visor-status.patch
+gregkh-usb-usb-whiteheat-status.patch
+gregkh-usb-usb-sierra-fix-status-usage.patch
+gregkh-usb-usb-sierra-cleanup-urb-startup.patch
+gregkh-usb-usb-serial-ark3116c-mixed-fixups.patch
+gregkh-usb-usb-serial-belkin_sa-various-needed-fixes.patch
+gregkh-usb-usb-serial-ir_usb-clean-up-the-worst-of-it-remove-exciting-crash-on-open-feature.patch
+gregkh-usb-usb-usb-skeleton-use-anchors-in-disconnect-handling.patch
+gregkh-usb-usb-usb-skeleton-use-anchors-in-suspend-resume-handling.patch
+gregkh-usb-usb-usb-skeleton-use-anchors-in-pre-post-reset.patch
+gregkh-usb-usb-fix-up-full-speed-binterval-values-in-high-speed-interrupt-descriptor.patch
+gregkh-usb-usb-add-urb_free_buffer-flag-and-the-logic-behind-it.patch
+gregkh-usb-usb-gadget-rename-husb2dev-usba.patch
+gregkh-usb-usb-autosuspend-for-usblcd.patch
+gregkh-usb-usb-fsl_usb2_udc-fix-bug-for-portsc-bit-masking.patch
+gregkh-usb-usb-pete-s-taking-over-usblp.patch
+gregkh-usb-usb-usblp-add-dynamic-urbs-fix-races.patch
+gregkh-usb-usb-remove-usages-of-dev-powerpower_state.patch
+gregkh-usb-usb-don-t-resume-root-hub-if-the-controller-is-suspended.patch
+gregkh-usb-usb-fix-off-by-1-error-in-the-scatter-gather-library.patch
+gregkh-usb-usb-mos7720-developer-change.patch
+gregkh-usb-usb-add-iad-support-to-usbfs-and-sysfs.patch
+gregkh-usb-usb-support-blackberry-pearl-with-berry_charge.patch
+gregkh-usb-don-t-autosuspend-blackberry-devices.patch
+gregkh-usb-usb-add-printer-gadget-driver.patch

USB tree updates

+fix-gregkh-usb-usb-use-menuconfig-objects.patch

Fix it

+x86_64-mm-paravirt-helper-to-disable-all-io-space.patch
+x86_64-mm-xen-use-iret-directly-where-possible.patch
+x86_64-mm-xen-xen_start_kernel-is-__init-so-startup_xen-should-be-too.patch
+x86_64-mm-xen-disable-all-non-virtual-devices.patch
+x86_64-mm-use-null-for-pointer.patch
+x86_64-mm-remove-extra-extern-declaring-dmi_ioremap.patch
+x86_64-mm-smp-call-no-bh.patch

x86 tree updates

-revert-x86_64-mm-allocate-sparsemem-memmap-above-4g-on-x86_64.patch
-revert-x86_64-mm-cpa-cache-flush.patch

Unneeded

+more-fix-x86_64-mm-xen-xen-smp-guest-support.patch
+fix-x86_64-mm-add-common-orderly_poweroff.patch
+tidy-up-usermode-helper-waiting-a-bit-fix.patch
+update-x86_64-mm-xen-use-iret-directly-where-possible.patch

x86 fixes

+mmconfig-validate-against-acpi-motherboard-resources.patch
+mmconfig-validate-against-acpi-motherboard-resources-fix.patch
+mmconfig-validate-against-acpi-motherboard-resources-fix-2.patch
+mmconfig-validate-against-acpi-motherboard-resources-fix-3.patch
+mmconfig-validate-against-acpi-motherboard-resources-fix-2-3.patch

mmconfig fix

+i386-hpet-check-if-the-counter-works.patch
+i386-trim-memory-not-covered-by-wb-mtrrs.patch
+i386-trim-memory-not-covered-by-wb-mtrrs-fix.patch
+kprobes-x86_64-fix-for-mark-ro-data.patch
+kprobes-i386-fix-for-mark-ro-data.patch
+divorce-config_x86_pae-from-config_highmem64g.patch
+remove-unneeded-test-of-task-in-dump_trace.patch
+i386-move-the-kernel-to-16mb-for-numa-q.patch
+i386-show-unhandled-signals.patch
+i386-show-unhandled-signals-fix.patch
+i386-minor-nx-handling-adjustment.patch
+i386-minor-nx-handling-adjustment-fix.patch
+x86-smp-alt-once-option-is-only-useful-with-hotplug_cpu.patch
+x86-64-remove-unused-variable-maxcpus.patch
+move-functions-declarations-to-header-file.patch
+x86_64-during-vm-oom-condition.patch
+i386-during-vm-oom-condition.patch
+x86-64-disable-the-gart-in-shutdown.patch
+x86_84-move-iommu-declaration-from-proto-to-iommuh.patch
+x86_84-move-iommu-declaration-from-proto-to-iommuh-fix.patch
+i386-uaccessh-replace-hard-coded-constant-with-appropriate-macro-from-kernelh.patch
+i386-add-cpu_relax-to-cmos_lock.patch
+i386-add-cpu_relax-to-cmos_lock-fix.patch
+x86_64-flush_tlb_kernel_range-warning-fix.patch
+x86_64-add-ioapic-nmi-support.patch
+x86_64-add-ioapic-nmi-support-fix.patch
+x86_64-add-ioapic-nmi-support-fix-2.patch
+x86_64-change-_map_single-to-static-in-pci_gartc-etc.patch
+x86_64-geode-hw-random-number-generator-depend-on-x86_3.patch
+reserve-the-right-performance-counter-for-the-intel-perfmon-nmi-watchdog.patch

x86 stuff

+nohz-fix-nohz-x86-dyntick-idle-handling.patch
+acpi-move-timer-broadcast-and-pmtimer-access-before-c3-arbiter-shutdown.patch
+clockevents-fix-typo-in-acpi_pmc.patch
+timekeeping-fixup-shadow-variable-argument.patch
+timerc-cleanup-recently-introduced-whitespace-damage.patch
+clockevents-remove-prototypes-of-removed-functions.patch
+clockevents-fix-resume-logic.patch
+clockevents-fix-device-replacement.patch
+tick-management-spread-timer-interrupt.patch
+highres-improve-debug-output.patch
+highres-improve-debug-output-fix.patch
+hrtimer-speedup-hrtimer_enqueue.patch
+pcspkr-use-the-global-pit-lock.patch
+ntp-move-the-cmos-update-code-into-ntpc.patch
+ntp-move-the-cmos-update-code-into-ntpc-fix.patch
+ntp-move-the-cmos-update-code-into-ntpc-fix-fix.patch
+i386-pit-stop-only-when-in-periodic-or-oneshot-mode.patch
+i386-remove-volatile-in-apicc.patch
+i386-hpet-assumes-boot-cpu-is-0.patch
+i386-move-pit-function-declarations-and-constants-to-correct-header-file.patch
+x86_64-untangle-asm-hpeth-from-asm-timexh.patch
+x86_64-use-generic-cmos-update.patch
+x86_64-remove-dead-code-and-other-janitor-work-in-tscc.patch
+x86_64-fix-apic-typo.patch
+x86_64-convert-to-cleckevents.patch
+acpi-remove-the-useless-ifdef-code.patch
+x86_64-hpet-restore-vread.patch
+x86_64-restore-restore-nohpet-cmdline.patch
+x86_64-block-irq-balancing-for-timer.patch
+x86_64-prep-idle-loop-for-dynticks.patch
+x86_64-enable-high-resolution-timers-and-dynticks.patch

dynticks for x86_64

+x86_64-dynticks-disable-hpet_id_legsup-hpets.patch

pretend to fix it

+ich-force-hpet-make-generic-time-capable-of-switching-broadcast-timer.patch
+ich-force-hpet-restructure-hpet-generic-clock-code.patch
+ich-force-hpet-ich7-or-later-quirk-to-force-detect-enable.patch
+ich-force-hpet-ich7-or-later-quirk-to-force-detect-enable-fix.patch
+ich-force-hpet-late-initialization-of-hpet-after-quirk.patch
+ich-force-hpet-ich5-quirk-to-force-detect-enable.patch
+ich-force-hpet-ich5-quirk-to-force-detect-enable-fix.patch
+ich-force-hpet-ich5-fix-a-bug-with-suspend-resume.patch
+ich-force-hpet-add-ich7_0-pciid-to-quirk-list.patch

Enable i386 hpet when the BIOS forgot to

+git-newsetup-fixup.patch

Fix rejects in git-newsetup.patch

+fix-xfs_ioc_fsgeometry_v1-in-compat-mode.patch
+fix-xfs_ioc__to_handle-and-xfs_ioc_openreadlink_by_handle-in-compat-mode.patch
+fix-xfs_ioc_fsbulkstat_single-and-xfs_ioc_fsinumbers-in-compat-mode.patch
+xfs-warning-fix.patch

XFS stuff

+git-kgdb.patch

KGDB tree

+git-kgdb-fixup.patch
+kgdb-warning-fix.patch
+kgdb-kconfig-fix.patch
+kgdb-use-new-style-interrupt-flags.patch
+kgdb-section-fix.patch
+kgdb_skipexception-warning-fix.patch
+kgdb-ia64-fixes.patch
+kgdb-bust-on-ia64.patch

fix it

+pci-x-pci-express-read-control-interfaces-qla2xxx-fix.patch

Fix pci-x-pci-express-read-control-interfaces-qla2xxx.patch

+irda-fix-printk-format.patch
+netconsole-fix-soft-lockup-when-removing-module.patch
+gen_estimator-fix-locking-and-timer-related-bugs.patch

net fixes which we might want in 2.6.22

+serial-convert-early_uart-to-earlycon-for-8250-ia64-fix.patch
+serial-convert-early_uart-to-earlycon-for-8250-fix-3-alias.patch

Fix serial patches in -mm some more

+mm-merge-populate-and-nopage-into-fault-fixes-nonlinear-fix.patch

Fix mm-merge-populate-and-nopage-into-fault-fixes-nonlinear.patch

-numa-mempolicy-allow-tunable-policy-for-system-init.patch
-numa-mempolicy-allow-tunable-policy-for-system-init-fix.patch
+numa-mempolicy-dynamic-interleave-map-for-system-init.patch
+oom-stop-allocating-user-memory-if-tif_memdie-is-set.patch
+numa-mempolicy-trivial-debug-fixes.patch
+mm-fix-improper-init-type-section-references.patch
+page-table-handling-cleanup.patch
+kill-vmalloc_earlyreserve.patch
+mm-more-__meminit-annotations.patch
+mm-slabc-start_cpu_timer-should-be-__cpuinit.patch
+madvise_need_mmap_write-usage.patch
+slob-initial-numa-support.patch

mm updates

+fs-introduce-write_begin-write_end-and-perform_write-aops-fix.patch
+fs-introduce-write_begin-write_end-and-perform_write-aops-fix-2.patch
+fs-introduce-write_begin-write_end-and-perform_write-aops-fix-3.patch
+fs-introduce-write_begin-write_end-and-perform_write-aops-fix-4.patch
+fs-introduce-write_begin-write_end-and-perform_write-aops-fix-5.patch

Fix fs-introduce-write_begin-write_end-and-perform_write-aops.patch rather a
lot.

+ext3-convert-to-new-aops-fix.patch

Fix ext3-convert-to-new-aops.patch

+ext4-convert-to-new-aops-fix.patch

Fix ext4-convert-to-new-aops.patch

+ufs-convert-to-new-aops-fix.patch

Fix ufs-convert-to-new-aops.patch

+sysv-convert-to-new-aops-fix.patch

Fix sysv-convert-to-new-aops.patch

+minix-convert-to-new-aops-fix.patch

Fix minix-convert-to-new-aops.patch

+fs-adfs-convert-to-new-aops.patch
+fs-affs-convert-to-new-aops.patch

Fix unconverted filesystems

-nick-broke-stuff.patch
-nick-broke-more-stuff.patch
-nick-broke-even-more-stuff.patch
-nick-really-did-it-this-time.patch

Unneeded

+fix-read-truncate-race.patch
+make-sure-readv-stops-reading-when-it-hits-end-of-file.patch

VFS fixes

+create-the-zone_movable-zone-fix-2.patch

Fix create-the-zone_movable-zone.patch some more

+allow-huge-page-allocations-to-use-gfp_high_movable-fix-3.patch

Fix allow-huge-page-allocations-to-use-gfp_high_movable.patch some more

+handle-kernelcore=-generic-fix.patch

Fix handle-kernelcore=-generic.patch

+mm-clean-up-and-kernelify-shrinker-registration-vs-git-nfs.patch

Fix mm-clean-up-and-kernelify-shrinker-registration.patch for git-nfs

+slub-remove-useless-export_symbol.patch
+slub-use-list_for_each_entry-for-loops-over-all-slabs.patch
+slub-slab-validation-move-tracking-information-alloc-outside-of.patch
+slub-ensure-that-the-object-per-slabs-stays-low-for-high-orders.patch
+slub-debug-fix-initial-object-debug-state-of-numa-bootstrap-objects.patch
+slab-allocators-consolidate-code-for-krealloc-in-mm-utilc.patch
+slab-allocators-consistent-zero_size_ptr-support-and-null-result-semantics.patch
+slub-add-some-more-inlines-and-ifdef-config_slub_debug.patch
+slub-extract-dma_kmalloc_cache-from-get_cache.patch
+slub-do-proper-locking-during-dma-slab-creation.patch
+slub-faster-more-efficient-slab-determination-for-__kmalloc.patch
+slub-faster-more-efficient-slab-determination-for-__kmalloc-fix.patch
+slub-faster-more-efficient-slab-determination-for-__kmalloc-fix-2.patch
+slub-simplify-dma-index-size-calculation.patch
+add-vm_bug_on-in-case-someone-uses-page_mapping-on-a-slab-page.patch

slub/slab/slob updates

-implement-file-posix-capabilities-update.patch

Folded into implement-file-posix-capabilities.patch

+implement-file-posix-capabilities-fix.patch
+file-capabilities-introduce-cap_setfcap.patch

Update implement-file-posix-capabilities.patch

+alpha-fix-trivial-section-mismatch-warnings.patch
+fix-alpha-isa-support.patch
+fix-alpha-isa-support-fix.patch

alpha fixes

+pm-reduce-code-duplication-between-mainc-and-userc.patch
+pm-prevent-frozen-user-mode-helpers-from-failing-the-freezing-of-tasks-rev-2.patch

PM updates

+uml-use-get_free_pages-to-allocate-kernel-stacks.patch
+add-generic-exit-time-stack-depth-checking-to-config_debug_stack_usage.patch
+uml-debug_shirq-fixes.patch
+uml-xterm-driver-tidying.patch
+uml-pty-channel-tidying.patch
+uml-handle-errors-on-opening-host-side-of-consoles.patch
+uml-sigio-support-cleanup.patch
+uml-simplify-helper-stack-handling.patch
+uml-eliminate-kernel-allocator-wrappers.patch

UML updates

+use-menuconfig-objects-ii-auxdisplay-fix.patch
+use-menuconfig-objects-ii-misc-strange-dev-fix.patch
+use-menuconfig-objects-ii-oprofile-fix.patch
+use-menuconfig-objects-crypto-hw-fix.patch

"fix" the menuconfig updates

+init-wait-for-asynchronously-scanned-block-devices-fix.patch

Fix init-wait-for-asynchronously-scanned-block-devices.patch

+kernel-utf-8-handling-fix.patch

Fix kernel-utf-8-handling.patch

+zsc-drain-the-transmission-line.patch
+hugetlbfs-use-lib-parser-fix-docs.patch
+report-that-kernel-is-tainted-if-there-were-an-oops-before.patch
+intel-rng-undo-mess-made-by-an-80-column-extremist.patch
+improve-behaviour-of-spurious-irq-detect.patch
+improve-behaviour-of-spurious-irq-detect-fix.patch
+audit-add-tty-input-auditing.patch
+audit-add-tty-input-auditing-fix.patch
+audit-add-tty-input-auditing-fix-2.patch
+remove-config_uts_ns-and-config_ipc_ns.patch
+user-namespace-add-the-framework.patch
+user-namespace-add-unshare.patch
+revert-vanishing-ioctl-handler-debugging.patch
+binfmt_elf-warning-fix.patch
+document-the-fact-that-rcu-callbacks-can-run-in-parallel.patch
+cobalt-remove-all-references-to-cobalt-nvram.patch
+allow-softlockup-to-be-runtime-disabled.patch
+dirty_writeback_centisecs_handler-cleanup.patch
+mm-fix-create_new_namespaces-return-value.patch
+add-a-kmem_cache-for-nsproxy-objects.patch
+ptrace_peekdata-consolidation.patch
+ptrace_pokedata-consolidation.patch
+adjust-nosmp-handling.patch
+ext3-fix-deadlock-in-ext3_remount-and-orphan-list-handling.patch
+ext4-fix-deadlock-in-ext4_remount-and-orphan-list-handling.patch
+remove-unused-lock_cpu_hotplug_interruptible-definition.patch
+add-werror-implicit-function-declaration.patch
+kerneldoc-fix-in-audit_core_dumps.patch
+add-lzo1x-algorithm-to-the-kernel.patch
+introduce-compat_u64-and-compat_s64-types.patch
+diskquota-32bit-quota-tools-on-64bit-architectures.patch
+diskquota-32bit-quota-tools-on-64bit-architectures-fix.patch
+diskquota-32bit-quota-tools-on-64bit-architectures-fix-fix.patch
+blink-only-blink-when-parameter-is-set.patch
+blink-only-blink-when-parameter-is-set-fix.patch
+remove-final-two-references-to-__obsolete_setup-macro.patch
+update-procfs-guide-doc-of-read_func.patch
+ext3-remove-extra-is_rdonly-check.patch
+namespace-ensure-clone_flags-are-always-stored-in-an-unsigned-long.patch
+doc-oops-tracing-add-code-decode-info.patch
+drop-obsolete-sys_ioctl-export.patch
+is_power_of_2-ext3-superc.patch
+is_power_of_2-jbd.patch
+sys_time-speedup.patch
+sys_time-speedup-build-fixes.patch
+cdrom-replace-hard-coded-constants-by-kernelh-macro.patch
+# hw_random-add-quality-categories.patch: mpm had design issues
+#hw_random-add-quality-categories-bcm43xx.patch
+update-description-in-documentation-filesystems-vfstxt-typo-fixed.patch
+futex-tidy-up-the-code-v2.patch
+add-documentation-sysctl-ctl_unnumberedtxt.patch
+sysctlc-add-text-telling-people-to-use-ctl_unnumbered.patch
+# drivers-pmc-msp71xx-gpio-char-driver.patch: david-b panned it
+drivers-pmc-msp71xx-gpio-char-driver.patch
+mistaken-ext4_inode_bitmap-for-ext4_block_bitmap.patch
+hfs-refactor-ascii-to-unicode-conversion-routine.patch
+hfs-refactor-ascii-to-unicode-conversion-routine-fix.patch
+hfs-add-custom-dentry-hash-and-comparison-operations.patch
+sprint_symbol-cleanup.patch
+hwrng-add-type-categories.patch
+#hwrng-add-type-categories-bcm43xx.patch
+fs-namespacec-should-include-internalh.patch
+proper-prototype-for-proc_nr_files.patch
+replace-obscure-constructs-in-fs-block_devc.patch
+replace-obscure-constructs-in-fs-block_devc-fix.patch
+bd_claim_by_disk-fix-warning.patch
+fs-reiserfs-cleanups.patch
+adb_probe_task-remove-unneeded-flush_signals-call.patch
+kcdrwd-remove-unneeded-flush_signals-call.patch
+nbdcsock_xmit-cleanup-signal-related-code.patch
+move-seccomp-from-proc-to-a-prctl.patch
+make-seccomp-zerocost-in-schedule.patch
+is_power_of_2-kernel-kfifoc.patch
+parport_pc-it887x-fix.patch
+is_power_of_2-ufs-superc.patch
+codingstyle-add-information-about-trailing-whitespace.patch
+codingstyle-add-information-about-editor-modelines.patch
+uninline-check_signature.patch

Misc

+introduce-i_sync-fix.patch

Fix introduce-i_sync.patch

+atmel_spi-minor-updates.patch
+s3c24xx-spi-controllers-both-select-bitbang.patch
+spi-tle620x-power-switch-driver.patch
+spi-master-driver-for-xilinx-virtex.patch
+spi-master-driver-for-xilinx-virtex-fix.patch

SPI updates

+isdn-capi-warning-fixes.patch
+i4l-leak-in-eicon-idifuncc.patch

ISDN updates

+knfsd-lockd-nfsd4-use-same-grace-period-for-lockd-and-nfsd4.patch
+knfsd-nfsd4-fix-nfsv4-filehandle-size-units-confusion.patch
+knfsd-nfsd4-silence-a-compiler-warning-in-acl-code.patch
+knfsd-nfsd4-fix-enc_stateid_sz-for-nfsd-callbacks.patch
+knfsd-nfsd4-fix-handling-of-acl-errrors.patch
+knfsd-nfsd-remove-unused-header-interfaceh.patch
+knfsd-nfsd4-vary-maximum-delegation-limit-based-on-ram-size.patch
+knfsd-nfsd4-vary-maximum-delegation-limit-based-on-ram-size-fix.patch
+knfsd-nfsd4-vary-maximum-delegation-limit-based-on-ram-size-fix-fix.patch
+knfsd-nfsd4-vary-maximum-delegation-limit-based-on-ram-size-fix-fix-fix.patch
+knfsd-nfsd4-vary-maximum-delegation-limit-based-on-ram-size-fix-fix-fix-fix.patch
+knfsd-nfsd4-dont-delegate-files-that-have-had-conflicts.patch

knfsd updates

+thecus-n2100-register-rtc-rs5c372-i2c-device.patch
+rtc-make-example-code-jump-to-done-instead-of-return-when-ioctl-not-supported.patch
+rtc-dev-return-enotty-in-ioctl-if-irq_set_freq-is-not-implemented-by-driver.patch
+driver-for-the-atmel-on-chip-rtc-on-at32ap700x-devices.patch
+driver-for-the-atmel-on-chip-rtc-on-at32ap700x-devices-fix.patch
+driver-for-the-atmel-on-chip-rtc-on-at32ap700x-devices-fix-2.patch
+driver-for-the-atmel-on-chip-rtc-on-at32ap700x-devices-fix-3.patch
+rtc_class-is-no-longer-considered-experimental.patch
+rtc-kconfig-tweax.patch
+rtc-add-rtc-m41t80-driver-take-2.patch
+rtc-add-rtc-m41t80-driver-take-2-fix.patch
+rtc-watchdog-support-for-rtc-m41t80-driver-take-2.patch
+rtc-add-support-for-the-st-m48t59-rtc.patch
+rtc-add-support-for-the-st-m48t59-rtc-fix-2.patch
+rtc-add-support-for-the-st-m48t59-rtc-vs-git-acpi.patch
+rtc-add-support-for-the-st-m48t59-rtc-fix-3.patch
+rtc-driver-for-ds1216-chips.patch
+rtc-driver-for-ds1216-chips-fix.patch
+rtc-ds1307-oscillator-restart-for-ds1337383940.patch

rtc driver updates

-lguest-the-guest-code-tidyups.patch
-lguest-the-guest-code-tidyups-update.patch
-lguest-the-guest-code-update-for-mm-disable-tsc-dont-set-pge-bit.patch
-lguest-speed-up-paravirt_lazy_flush-handling.patch
-lguest-more-lazy_hcalls.patch
-lguest-the-guest-code-tsc-fix.patch
-lguest-the-guest-code-suppress-ide-probing.patch

Folded into lguest-the-guest-code.patch

-lguest-the-host-code-tidyups.patch
-lguest-the-host-code-tidyups-update.patch
-lguest-the-host-code-borkages.patch
-lguest-faster-tls-switching.patch
-lguest-the-host-code-dont-signal-like-crazy-use-lhreq_break-command.patch
-lguest-the-host-code-use-tsc.patch
-lguest-the-host-code-use-hrtimers.patch
-lguest-the-host-code-update-for-mm-simplify-boot_params.patch

Folded into lguest-the-host-code.patch

+lguest-the-host-code-lguest-vs-clockevents-fix-resume-logic.patch

Fix lguest for x86_64 dynticks changes

-lguest-the-makefile-and-kconfig-tidyups.patch

Folded into lguest-the-makefile-and-kconfig.patch

-lguest-the-console-driver-tidyups.patch

Folded into lguest-the-console-driver.patch

-lguest-the-net-driver-tidyups.patch
-lguest-the-net-driver-tidyups-update.patch
-lguest-the-net-driver-include-fix.patch

Folded into lguest-the-net-driver.patch

-lguest-the-block-driver-tidyups.patch
-lguest-the-block-driver-tidyups-update.patch

Folded into lguest-the-block-driver.patch

-lguest-the-documentation-example-launcher-example-launcher-fix.patch
-lguest-dont-signal-like-crazy-use-lhreq_break-command-doc.patch

Folded into lguest-the-documentation-example-launcher.patch

+remove-options-depending-on-oss_obsolete.patch

OSS fix

+unprivileged-mounts-allow-unprivileged-fuse-mounts-fuse-fix-double-fs_flags-initializer.patch

Fix unprivileged-mounts-allow-unprivileged-mounts.patch some more

+char-istallion-initlocking-fixes-try-2.patch

stallion fix

+fbdev-move-arch-specific-bits-to-their-respective-fix.patch

Fix fbdev-move-arch-specific-bits-to-their-respective.patch

+fb-epson1355fb-kill-off-dead-sh-support.patch
+fix-the-graphic-corruption-issue-on-ia64-machines.patch
+omap-add-ti-omap-framebuffer-driver.patch
+omap-add-ti-omap1610-accelerator-entry.patch
+omap-add-ti-omap1-internal-lcd-controller.patch
+omap-add-ti-omap2-internal-display-controller-support.patch
+omap-add-ti-omap1-external-lcd-controller-support-sossi.patch
+omap-add-ti-omap2-external-lcd-controller-support-rfbi.patch
+omap-add-external-epson-hwa742-lcd-controller-support.patch
+omap-add-external-epson-blizzard-lcd-controller-support.patch
+omap-lcd-panel-support-for-the-ti-omap-h4-board.patch
+omap-lcd-panel-support-for-the-ti-omap-h3-board.patch
+omap-lcd-panel-support-for-the-palm-tungsten-e.patch
+omap-lcd-panel-support-for-palm-tungstent.patch
+omap-lcd-panel-support-for-the-palm-zire71.patch
+omap-lcd-panel-support-for-the-ti-omap1610-innovator-board.patch
+omap-lcd-panel-support-for-the-ti-omap1510-innovator-board.patch
+omap-lcd-panel-support-for-the-ti-omap-osk-board.patch
+omap-lcd-panel-support-for-the-siemens-sx1-mobile-phone.patch

fbdev updates

+readahead-move-synchronous-readahead-call-out-of-splice-loop.patch
+readahead-pass-real-splice-size.patch

readahead updates

-mm-share-pg_readahead-and-pg_reclaim-fix.patch
-mm-share-pg_readahead-and-pg_reclaim-fix-2.patch

Foldedinto mm-share-pg_readahead-and-pg_reclaim.patch

+readahead-split-ondemand-readahead-interface-into-two-functions.patch
+readahead-sanify-file_ra_state-names.patch

readahead updates

+jprobes-make-struct-jprobeentry-a-void.patch
+jprobes-remove-jprobe_entry.patch
+jprobes-make-jprobes-a-little-safer-for-users.patch
+jprobes-make-jprobes-a-little-safer-for-users-fix.patch

jprobes updates

+intel-iommu-dmar-detection-and-parsing-logic.patch
+intel-iommu-pci-generic-helper-function.patch
+intel-iommu-pci-generic-helper-function-fix.patch
+intel-iommu-clflush_cache_range-now-takes-size-param.patch
+intel-iommu-iova-allocation-and-management-routines.patch
+intel-iommu-iova-allocation-and-management-routines-fix.patch
+intel-iommu-iova-allocation-and-management-routines-fix-2.patch
+intel-iommu-intel-iommu-driver.patch
+intel-iommu-intel-iommu-driver-fix.patch
+intel-iommu-intel-iommu-driver-fix-2.patch
+intel-iommu-avoid-memory-allocation-failures-in-dma-map-api-calls.patch
+intel-iommu-intel-iommu-cmdline-option-forcedac.patch
+intel-iommu-dmar-fault-handling-support.patch
+intel-iommu-iommu-gfx-workaround.patch
+intel-iommu-iommu-floppy-workaround.patch
+intel-iommu-iommu-floppy-workaround-fix.patch
+intel-iommu-iommu-floppy-workaround-fix-fix.patch

Intel IOMMU support

+define-new-percpu-interface-for-shared-data-version-4.patch
+use-the-new-percpu-interface-for-shared-data-version-4.patch

percpu tweak

+arch-personality-independent-stack-top.patch
+audit-rework-execve-audit.patch
+mm-variable-length-argument-support.patch
+mm-variable-length-argument-support-fix.patch

Remove the fixed command-line length limit

+ext4-zero_user_page-conversion.patch
+ext4-remove-extra-is_rdonly-check.patch
+is_power_of_2-ext4-superc.patch

ext4 udpates

+cfs-scheduler-v16.patch
+sched-cfs-v2.6.22-git-v18.patch

CFS scheduler updates

+mm-implement-swap-prefetching-make-mm-swap_prefetchcremove_from_swapped_list.patch

Fix mm-implement-swap-prefetching.patch

+drivers-edac-new-i82443bxgz-mc-driver-broken.patch

Fix drivers-edac-new-i82443bxgz-mc-driver.patch

+driver-edac-add-mips-and-ppc-visibility.patch
+driver-edac-mod-race-fix-i82875p.patch
+driver-edac-fix-ignored-return-i82875p.patch
+include-linux-pci_id-h-add-amd-northbridge-defines.patch
+driver-edac-i5000-define-typo.patch
+driver-edac-remove-null-from-statics.patch
+driver-edac-i5000-code-tidying.patch
+driver-edac-edac_device-code-tidying.patch
+driver-edac-mod-edac_align_ptr-function.patch
+driver-edac-mod-edac_opt_state_to_string-function.patch
+driver-edac-remove-file-edac_mc-h.patch

More EDAC updates

+cpuset-zero-malloc-revert-the-old-cpuset-fix.patch

cpusets revert to make the containers patches apply

+containersv10-basic-container-framework-fix-3.patch
+containersv10-basic-container-framework-fix-for-bad-lock-balance-in-containers.patch

Fix containersv10-basic-container-framework-fix-2.patch

+containersv10-add-tasks-file-interface-fix-2.patch

Fix containersv10-add-tasks-file-interface.patch some more

+containersv10-make-cpusets-a-client-of-containers-whitespace.patch

Fix containersv10-make-cpusets-a-client-of-containers.patch

+containersv10-share-css_group-arrays-between-tasks-with-same-container-memberships-cpuset-zero-malloc-fix-for-new-containers.patch

Fix containersv10-share-css_group-arrays-between-tasks-with-same-container-memberships.patch

+containersv10-support-for-automatic-userspace-release-agents-whitespace.patch

Fix containersv10-support-for-automatic-userspace-release-agents.patch

+add-containerstats-v3.patch
+add-containerstats-v3-fix.patch
+update-getdelays-to-become-containerstats-aware.patch

Container stats

+containers-implement-subsys-post_clone.patch
+containers-implement-namespace-tracking-subsystem-v3.patch

More containers stuff

+lockstat-core-infrastructure-fix-fix-fix.patch

Fix lockstat-core-infrastructure.patch even more

+lockdep-various-fixes.patch
+lockdep-various-fixes-checkpatch.patch
+lockdep-fixup-sk_callback_lock-annotation.patch
+lockstat-measure-lock-bouncing.patch
+lockstat-measure-lock-bouncing-checkpatch.patch
+lockstat-better-class-name-representation.patch

lockdep/lockstat things

+reiser4-fix-for-new-aops-patches.patch
-nick-broke-reiser4-too.patch

Fix reiser4 for Nick's stuff

+allow-page_owner-to-be-set-on-any-architecture.patch
+allow-page_owner-to-be-set-on-any-architecture-fix.patch

Make page-owner tracking (potentially) non-x86

+beeping-patch-for-debugging-acpi-sleep.patch

Weird patch which goes beep (I still don't understand this)

+alloc_pages-debug.patch

More debugging




All 1689 patches:

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc6/2.6.22-rc6-mm1/patch-list
Gabriel C
2007-06-28 12:08:49 UTC
Permalink
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc6/2.6.22-rc6-mm1/
Compile error here.

...

Kernel: arch/i386/boot/bzImage is ready (#1)
ERROR: "check_signature" [drivers/input/misc/wistron_btns.ko] undefined!
ERROR: "check_signature" [drivers/block/xd.ko] undefined!
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2


...

http://frugalware.org/~crazy/other/kernel/config


Regards,

Gabriel C
Andrew Morton
2007-06-28 17:54:31 UTC
Permalink
Post by Gabriel C
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc6/2.6.22-rc6-mm1/
Compile error here.
...
Kernel: arch/i386/boot/bzImage is ready (#1)
ERROR: "check_signature" [drivers/input/misc/wistron_btns.ko] undefined!
ERROR: "check_signature" [drivers/block/xd.ko] undefined!
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2
grrr.

--- a/lib/Makefile~uninline-check_signature-fix
+++ a/lib/Makefile
@@ -5,8 +5,7 @@
lib-y := ctype.o string.o vsprintf.o cmdline.o \
rbtree.o radix-tree.o dump_stack.o \
idr.o int_sqrt.o bitmap.o extable.o prio_tree.o \
- sha1.o irq_regs.o reciprocal_div.o argv_split.o \
- check_signature.o
+ sha1.o irq_regs.o reciprocal_div.o argv_split.o

lib-$(CONFIG_MMU) += ioremap.o pagewalk.o
lib-$(CONFIG_SMP) += cpumask.o
@@ -14,7 +13,7 @@ lib-$(CONFIG_SMP) += cpumask.o
lib-y += kobject.o kref.o kobject_uevent.o klist.o

obj-y += div64.o sort.o parser.o halfmd4.o debug_locks.o random32.o \
- bust_spinlocks.o hexdump.o
+ bust_spinlocks.o hexdump.o check_signature.o

ifeq ($(CONFIG_DEBUG_KOBJECT),y)
CFLAGS_kobject.o += -DDEBUG
_
Heiko Carstens
2007-06-28 13:37:15 UTC
Permalink
From: Heiko Carstens <***@de.ibm.com>

check_signature() uses readb() and therefore should only be build on
CONFIG_HAS_IOMEM.

Otherwise breaks s390:
lib/check_signature.c: In function `check_signature':
lib/check_signature.c:19: error: implicit declaration of function `readb'

Cc: Martin Schwidefsky <***@de.ibm.com>
Signed-off-by: Heiko Carstens <***@de.ibm.com>
---
lib/Makefile | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)

Index: linux-2.6.22-rc6-mm1/lib/Makefile
===================================================================
--- linux-2.6.22-rc6-mm1.orig/lib/Makefile
+++ linux-2.6.22-rc6-mm1/lib/Makefile
@@ -5,8 +5,7 @@
lib-y := ctype.o string.o vsprintf.o cmdline.o \
rbtree.o radix-tree.o dump_stack.o \
idr.o int_sqrt.o bitmap.o extable.o prio_tree.o \
- sha1.o irq_regs.o reciprocal_div.o argv_split.o \
- check_signature.o
+ sha1.o irq_regs.o reciprocal_div.o argv_split.o

lib-$(CONFIG_MMU) += ioremap.o pagewalk.o
lib-$(CONFIG_SMP) += cpumask.o
@@ -22,7 +21,7 @@ CFLAGS_kobject_uevent.o += -DDEBUG
endif

obj-$(CONFIG_GENERIC_IOMAP) += iomap.o
-obj-$(CONFIG_HAS_IOMEM) += iomap_copy.o devres.o
+obj-$(CONFIG_HAS_IOMEM) += iomap_copy.o devres.o check_signature.o
obj-$(CONFIG_DEBUG_LOCKING_API_SELFTESTS) += locking-selftest.o
obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock_debug.o
lib-$(CONFIG_RWSEM_GENERIC_SPINLOCK) += rwsem-spinlock.o
Andrew Morton
2007-06-28 18:06:44 UTC
Permalink
Post by Heiko Carstens
check_signature() uses readb() and therefore should only be build on
CONFIG_HAS_IOMEM.
lib/check_signature.c:19: error: implicit declaration of function `readb'
Ah, right, I've been discussing identical m68k breakage with Roman and Geert.
Post by Heiko Carstens
---
lib/Makefile | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
Index: linux-2.6.22-rc6-mm1/lib/Makefile
===================================================================
--- linux-2.6.22-rc6-mm1.orig/lib/Makefile
+++ linux-2.6.22-rc6-mm1/lib/Makefile
@@ -5,8 +5,7 @@
lib-y := ctype.o string.o vsprintf.o cmdline.o \
rbtree.o radix-tree.o dump_stack.o \
idr.o int_sqrt.o bitmap.o extable.o prio_tree.o \
- sha1.o irq_regs.o reciprocal_div.o argv_split.o \
- check_signature.o
+ sha1.o irq_regs.o reciprocal_div.o argv_split.o
lib-$(CONFIG_MMU) += ioremap.o pagewalk.o
lib-$(CONFIG_SMP) += cpumask.o
@@ -22,7 +21,7 @@ CFLAGS_kobject_uevent.o += -DDEBUG
endif
obj-$(CONFIG_GENERIC_IOMAP) += iomap.o
-obj-$(CONFIG_HAS_IOMEM) += iomap_copy.o devres.o
+obj-$(CONFIG_HAS_IOMEM) += iomap_copy.o devres.o check_signature.o
obj-$(CONFIG_DEBUG_LOCKING_API_SELFTESTS) += locking-selftest.o
obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock_debug.o
lib-$(CONFIG_RWSEM_GENERIC_SPINLOCK) += rwsem-spinlock.o
We didn't think of that.

Alas, m68k `make allmodconfig' creates CONFIG_ISA=n, CONFIG_PCI=n,
CONFIG_HAS_IOMEM=y, so it will still be busted.

But this seems to be the correct fix. Perhaps m68k config needs
attention?
Geert Uytterhoeven
2007-06-28 18:27:22 UTC
Permalink
Post by Andrew Morton
Post by Heiko Carstens
check_signature() uses readb() and therefore should only be build on
CONFIG_HAS_IOMEM.
lib/check_signature.c:19: error: implicit declaration of function `readb'
Ah, right, I've been discussing identical m68k breakage with Roman and Geert.
Post by Heiko Carstens
---
lib/Makefile | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
Index: linux-2.6.22-rc6-mm1/lib/Makefile
===================================================================
--- linux-2.6.22-rc6-mm1.orig/lib/Makefile
+++ linux-2.6.22-rc6-mm1/lib/Makefile
@@ -5,8 +5,7 @@
lib-y := ctype.o string.o vsprintf.o cmdline.o \
rbtree.o radix-tree.o dump_stack.o \
idr.o int_sqrt.o bitmap.o extable.o prio_tree.o \
- sha1.o irq_regs.o reciprocal_div.o argv_split.o \
- check_signature.o
+ sha1.o irq_regs.o reciprocal_div.o argv_split.o
lib-$(CONFIG_MMU) += ioremap.o pagewalk.o
lib-$(CONFIG_SMP) += cpumask.o
@@ -22,7 +21,7 @@ CFLAGS_kobject_uevent.o += -DDEBUG
endif
obj-$(CONFIG_GENERIC_IOMAP) += iomap.o
-obj-$(CONFIG_HAS_IOMEM) += iomap_copy.o devres.o
+obj-$(CONFIG_HAS_IOMEM) += iomap_copy.o devres.o check_signature.o
obj-$(CONFIG_DEBUG_LOCKING_API_SELFTESTS) += locking-selftest.o
obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock_debug.o
lib-$(CONFIG_RWSEM_GENERIC_SPINLOCK) += rwsem-spinlock.o
We didn't think of that.
Alas, m68k `make allmodconfig' creates CONFIG_ISA=n, CONFIG_PCI=n,
CONFIG_HAS_IOMEM=y, so it will still be busted.
But this seems to be the correct fix. Perhaps m68k config needs
attention?
Euh, I don't think this is the correct fix.

CONFIG_HAS_IOMEM is apparently used in two meanings:
1. The architecture has support for memory mapped I/O (s390 obviously
hasn't)
2. The architecture has ISA/PCI-style memory mapped I/O (readb() and
friends)

check_signature() falls under the second category.

Setting NO_IOMEM on m68k will make us loose some drivers (e.g.
drivers/video/Kconfig depends on HAS_IOMEM).

Apart from many Kconfig dependencies on HAS_IOMEM, CONFIG_HAS_IOMEM is
further only used to control the build of lib/iomap_copy.c, which
doesn't use readb() and friends, but the __raw*() operations.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ***@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
Andrew Morton
2007-06-28 18:38:19 UTC
Permalink
Post by Geert Uytterhoeven
Post by Andrew Morton
Post by Heiko Carstens
endif
obj-$(CONFIG_GENERIC_IOMAP) += iomap.o
-obj-$(CONFIG_HAS_IOMEM) += iomap_copy.o devres.o
+obj-$(CONFIG_HAS_IOMEM) += iomap_copy.o devres.o check_signature.o
obj-$(CONFIG_DEBUG_LOCKING_API_SELFTESTS) += locking-selftest.o
obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock_debug.o
lib-$(CONFIG_RWSEM_GENERIC_SPINLOCK) += rwsem-spinlock.o
We didn't think of that.
Alas, m68k `make allmodconfig' creates CONFIG_ISA=n, CONFIG_PCI=n,
CONFIG_HAS_IOMEM=y, so it will still be busted.
But this seems to be the correct fix. Perhaps m68k config needs
attention?
Euh, I don't think this is the correct fix.
1. The architecture has support for memory mapped I/O (s390 obviously
hasn't)
2. The architecture has ISA/PCI-style memory mapped I/O (readb() and
friends)
check_signature() falls under the second category.
Setting NO_IOMEM on m68k will make us loose some drivers (e.g.
drivers/video/Kconfig depends on HAS_IOMEM).
Apart from many Kconfig dependencies on HAS_IOMEM, CONFIG_HAS_IOMEM is
further only used to control the build of lib/iomap_copy.c, which
doesn't use readb() and friends, but the __raw*() operations.
Well this is fun.

How to fix? Should we add a new CONFIG_HAS_IO? (IOPORTS?)
Geert Uytterhoeven
2007-06-28 18:47:33 UTC
Permalink
Post by Andrew Morton
Post by Geert Uytterhoeven
Post by Andrew Morton
Post by Heiko Carstens
endif
obj-$(CONFIG_GENERIC_IOMAP) += iomap.o
-obj-$(CONFIG_HAS_IOMEM) += iomap_copy.o devres.o
+obj-$(CONFIG_HAS_IOMEM) += iomap_copy.o devres.o check_signature.o
obj-$(CONFIG_DEBUG_LOCKING_API_SELFTESTS) += locking-selftest.o
obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock_debug.o
lib-$(CONFIG_RWSEM_GENERIC_SPINLOCK) += rwsem-spinlock.o
We didn't think of that.
Alas, m68k `make allmodconfig' creates CONFIG_ISA=n, CONFIG_PCI=n,
CONFIG_HAS_IOMEM=y, so it will still be busted.
But this seems to be the correct fix. Perhaps m68k config needs
attention?
Euh, I don't think this is the correct fix.
1. The architecture has support for memory mapped I/O (s390 obviously
hasn't)
2. The architecture has ISA/PCI-style memory mapped I/O (readb() and
friends)
check_signature() falls under the second category.
Setting NO_IOMEM on m68k will make us loose some drivers (e.g.
drivers/video/Kconfig depends on HAS_IOMEM).
Apart from many Kconfig dependencies on HAS_IOMEM, CONFIG_HAS_IOMEM is
further only used to control the build of lib/iomap_copy.c, which
doesn't use readb() and friends, but the __raw*() operations.
Well this is fun.
How to fix? Should we add a new CONFIG_HAS_IO? (IOPORTS?)
There already exists a CONFIG_HAS_IOPORT :-) (for ISA/PCI-style I/O port
access).

Just make check_signature() depend on ISA || PCI (and maybe || X86_32).
According to its comment, it's used to `find BIOS signatures', which is
a legacy PC thing. Please don't pollute non-legacy architectures with it ;-)

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ***@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
Andrew Morton
2007-06-28 20:29:47 UTC
Permalink
On Thu, 28 Jun 2007 20:47:33 +0200 (CEST)
Post by Geert Uytterhoeven
Post by Andrew Morton
Post by Geert Uytterhoeven
Apart from many Kconfig dependencies on HAS_IOMEM, CONFIG_HAS_IOMEM is
further only used to control the build of lib/iomap_copy.c, which
doesn't use readb() and friends, but the __raw*() operations.
Well this is fun.
How to fix? Should we add a new CONFIG_HAS_IO? (IOPORTS?)
There already exists a CONFIG_HAS_IOPORT :-) (for ISA/PCI-style I/O port
access).
Just make check_signature() depend on ISA || PCI (and maybe || X86_32).
According to its comment, it's used to `find BIOS signatures', which is
a legacy PC thing. Please don't pollute non-legacy architectures with it ;-)
I merged the below and will await the next explosion.


From: Andrew Morton <***@linux-foundation.org>

check_signature() needs readb() but with some setups (s390, m68k allmodconfig)
there is no implementation of readb. This causes build errors with
-Werror-implicit-function-declaration.

So make check_signature.o dependent upon ISA||PCI.

Cc: Geert Uytterhoeven <***@linux-m68k.org>
Cc: Heiko Carstens <***@de.ibm.com>
Cc: Martin Schwidefsky <***@de.ibm.com>
Cc: Roman Zippel <***@linux-m68k.org>
Signed-off-by: Andrew Morton <***@linux-foundation.org>
---

lib/Kconfig | 5 ++++-
lib/Makefile | 3 ++-
2 files changed, 6 insertions(+), 2 deletions(-)

diff -puN lib/Kconfig~check_signature-needs-readb lib/Kconfig
--- a/lib/Kconfig~check_signature-needs-readb
+++ a/lib/Kconfig
@@ -110,11 +110,14 @@ config TEXTSEARCH_FSM
tristate

#
-# plist support is select#ed if needed
+# plist support is selected if needed
#
config PLIST
boolean

+config CHECK_SIGNATURE
+ def_bool ISA || PCI
+
config HAS_IOMEM
boolean
depends on !NO_IOMEM
diff -puN lib/Makefile~check_signature-needs-readb lib/Makefile
--- a/lib/Makefile~check_signature-needs-readb
+++ a/lib/Makefile
@@ -13,7 +13,7 @@ lib-$(CONFIG_SMP) += cpumask.o
lib-y += kobject.o kref.o kobject_uevent.o klist.o

obj-y += div64.o sort.o parser.o halfmd4.o debug_locks.o random32.o \
- bust_spinlocks.o hexdump.o check_signature.o
+ bust_spinlocks.o hexdump.o

ifeq ($(CONFIG_DEBUG_KOBJECT),y)
CFLAGS_kobject.o += -DDEBUG
@@ -33,6 +33,7 @@ obj-$(CONFIG_LOCK_KERNEL) += kernel_lock
obj-$(CONFIG_PLIST) += plist.o
obj-$(CONFIG_DEBUG_PREEMPT) += smp_processor_id.o
obj-$(CONFIG_DEBUG_LIST) += list_debug.o
+obj-$(CONFIG_CHECK_SIGNATURE) += check_signature.o

ifneq ($(CONFIG_HAVE_DEC_LOCK),y)
lib-y += dec_and_lock.o
_
Alan Cox
2007-06-28 22:25:37 UTC
Permalink
Post by Andrew Morton
check_signature() needs readb() but with some setups (s390, m68k allmodconfig)
there is no implementation of readb. This causes build errors with
-Werror-implicit-function-declaration.
This completely bogus. readb() should be present on M68K, fix the
platform to implement readb() for MMIO, even if your MMIO readb is a
moveb instruction.

check_signature is relevant for anything with MMIO space (for example you
can legitimately want to check_signature a MAC68K Nubus ROM).

S/390 is a bit of a special case as no S/390 usage of check_signature
appears sane but equally it isn't used so you can stub it out.

Alan
Jeff Dike
2007-06-28 22:45:11 UTC
Permalink
Post by Alan Cox
This completely bogus. readb() should be present on M68K, fix the
platform to implement readb() for MMIO, even if your MMIO readb is a
moveb instruction.
check_signature is relevant for anything with MMIO space (for example you
can legitimately want to check_signature a MAC68K Nubus ROM).
S/390 is a bit of a special case as no S/390 usage of check_signature
appears sane but equally it isn't used so you can stub it out.
This is a problem for UML too.

I have a patch in my tree, which basically stubs readb, waiting to see
how this is fixed for the other arches.

Jeff
--
Work email - jdike at linux dot intel dot com
Andrew Morton
2007-06-28 23:01:52 UTC
Permalink
On Thu, 28 Jun 2007 18:45:11 -0400
Post by Jeff Dike
Post by Alan Cox
This completely bogus. readb() should be present on M68K, fix the
platform to implement readb() for MMIO, even if your MMIO readb is a
moveb instruction.
check_signature is relevant for anything with MMIO space (for example you
can legitimately want to check_signature a MAC68K Nubus ROM).
S/390 is a bit of a special case as no S/390 usage of check_signature
appears sane but equally it isn't used so you can stub it out.
This is a problem for UML too.
I have a patch in my tree, which basically stubs readb, waiting to see
how this is fixed for the other arches.
What a mess.

I guess we could add an empty readb() implementation to lib/lib.a so the
arch will pick that up if all else fails. But it's pretty stinky. And
it won't work either because we don't know at compile-time to declare
the prototype for that thing appropriately.

So... what's the proper fix here? "The arch must implement readb"? That's
bad: if the arch really cannot implement readb(), we want builds to fail
if someone tries to use it.

I think I'll go shopping instead.
Roman Zippel
2007-06-28 22:51:31 UTC
Permalink
Hi,
Post by Alan Cox
Post by Andrew Morton
check_signature() needs readb() but with some setups (s390, m68k allmodconfig)
there is no implementation of readb. This causes build errors with
-Werror-implicit-function-declaration.
This completely bogus. readb() should be present on M68K, fix the
platform to implement readb() for MMIO, even if your MMIO readb is a
moveb instruction.
check_signature is relevant for anything with MMIO space (for example you
can legitimately want to check_signature a MAC68K Nubus ROM).
A generic check_signature() is a little difficult if we have separate io
functions for every bus.

bye, Roman
Alan Cox
2007-06-28 23:12:44 UTC
Permalink
Post by Roman Zippel
Post by Alan Cox
check_signature is relevant for anything with MMIO space (for example you
can legitimately want to check_signature a MAC68K Nubus ROM).
A generic check_signature() is a little difficult if we have separate io
functions for every bus.
Does M68K implement iomap() and pci_iomap and friends yet ?
check_signature has fairly few users so moving to be iomap based wouldn't
be hard if that was a problem. The other option would seem to be
bus->check_signature() ?

Alan
Roman Zippel
2007-06-29 00:06:36 UTC
Permalink
Hi,
Post by Alan Cox
Post by Roman Zippel
Post by Alan Cox
check_signature is relevant for anything with MMIO space (for example you
can legitimately want to check_signature a MAC68K Nubus ROM).
A generic check_signature() is a little difficult if we have separate io
functions for every bus.
Does M68K implement iomap() and pci_iomap and friends yet ?
How is that related?
Post by Alan Cox
check_signature has fairly few users so moving to be iomap based wouldn't
be hard if that was a problem. The other option would seem to be
bus->check_signature() ?
IMO the first question would be whether that function is really this
important. We can also just leave it as a PCI/ISA template and other bus
specific header can implement when necessary.

bye, Roman
Geert Uytterhoeven
2007-06-29 13:08:59 UTC
Permalink
Post by Alan Cox
Post by Andrew Morton
check_signature() needs readb() but with some setups (s390, m68k allmodconfig)
there is no implementation of readb. This causes build errors with
-Werror-implicit-function-declaration.
This completely bogus. readb() should be present on M68K, fix the
platform to implement readb() for MMIO, even if your MMIO readb is a
moveb instruction.
check_signature is relevant for anything with MMIO space (for example you
can legitimately want to check_signature a MAC68K Nubus ROM).
To make it more generic, it should probably use the raw*() version, and
the caller should handle bus address conversion. But even that
isn't possible, as there's no guarantee readb(x+1) == raw_readb(x+1).

Anyway, here's a list of its users, as I responded to Andrew in a private
mail before this thread was started:

| drivers/block/xd.c: config BLK_DEV_XD depends on ISA && ISA_DMA_API
| drivers/input/misc/wistron_btns.c: config INPUT_WISTRON_BTNS depends on X86 && !X86_64

That should be X86_32 these days?

| drivers/scsi/aha152x.c: config SCSI_AHA152X depends on ISA && SCSI && !64BIT
| drivers/scsi/dtc.c: config SCSI_DTC3280 depends on ISA && SCSI
| drivers/scsi/fdomain.c: config SCSI_FUTURE_DOMAIN depends on (ISA || PCI) && SCSI
| drivers/scsi/seagate.c: config SCSI_SEAGATE depends on X86 && ISA && SCSI
| drivers/scsi/t128.c: config SCSI_T128 depends on ISA && SCSI
| drivers/scsi/wd7000.c: config SCSI_7000FASST depends on ISA && SCSI && ISA_DMA_API

BTW, include/asm-arm/io.h looks interesting:

| #elif !defined(readb)
|
| #define readb(c) (__readwrite_bug("readb"),0)
| #define readw(c) (__readwrite_bug("readw"),0)
| #define readl(c) (__readwrite_bug("readl"),0)
| #define writeb(v,c) __readwrite_bug("writeb")
| #define writew(v,c) __readwrite_bug("writew")
| #define writel(v,c) __readwrite_bug("writel")
|
| #define check_signature(io,sig,len) (0)
|
| #endif /* __mem_pci */

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ***@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
Heiko Carstens
2007-06-28 13:39:04 UTC
Permalink
From: Heiko Carstens <***@de.ibm.com>

git-acpi contains a patch that adds 'struct bin_attribute *' to
the read method of struct bin_attribute. This breaks s390:

CC arch/s390/kernel/ipl.o
arch/s390/kernel/ipl.c:317:
warning: initialization from incompatible pointer type
arch/s390/kernel/ipl.c:340:
warning: initialization from incompatible pointer type

Cc: Zhang Rui <***@intel.com>
Cc: Greg KH <***@kroah.com>
Cc: Len Brown <***@intel.com>
Cc: Martin Schwidefsky <***@de.ibm.com>
Signed-off-by: Heiko Carstens <***@de.ibm.com>
---
arch/s390/kernel/ipl.c | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)

Index: linux-2.6.22-rc6-mm1/arch/s390/kernel/ipl.c
===================================================================
--- linux-2.6.22-rc6-mm1.orig/arch/s390/kernel/ipl.c
+++ linux-2.6.22-rc6-mm1/arch/s390/kernel/ipl.c
@@ -295,8 +295,9 @@ static ssize_t sys_ipl_device_show(struc
static struct subsys_attribute sys_ipl_device_attr =
__ATTR(device, S_IRUGO, sys_ipl_device_show, NULL);

-static ssize_t ipl_parameter_read(struct kobject *kobj, char *buf, loff_t off,
- size_t count)
+static ssize_t ipl_parameter_read(struct kobject *kobj,
+ struct bin_attribute *attr,
+ char *buf, loff_t off, size_t count)
{
unsigned int size = IPL_PARMBLOCK_SIZE;

@@ -317,8 +318,9 @@ static struct bin_attribute ipl_paramete
.read = &ipl_parameter_read,
};

-static ssize_t ipl_scp_data_read(struct kobject *kobj, char *buf, loff_t off,
- size_t count)
+static ssize_t ipl_scp_data_read(struct kobject *kobj,
+ struct bin_attribute *attr,
+ char *buf, loff_t off, size_t count)
{
unsigned int size = IPL_PARMBLOCK_START->ipl_info.fcp.scp_data_len;
void *scp_data = &IPL_PARMBLOCK_START->ipl_info.fcp.scp_data;
Zhang, Rui
2007-06-28 16:04:04 UTC
Permalink
Oops. Sorry.
Thanks for fixing it.

Best regards,
Rui

-----Original Message-----
=46rom: Heiko Carstens [mailto:***@de.ibm.com]=20
Sent: 2007=C4=EA6=D4=C228=C8=D5 21:39
To: Andrew Morton
Cc: linux-***@vger.kernel.org; Martin Schwidefsky; Zhang, Rui; Greg =
KH; Brown, Len
Subject: [patch -mm] s390: struct bin_attribute changes

=46rom: Heiko Carstens <***@de.ibm.com>

git-acpi contains a patch that adds 'struct bin_attribute *' to
the read method of struct bin_attribute. This breaks s390:

CC arch/s390/kernel/ipl.o
arch/s390/kernel/ipl.c:317:
warning: initialization from incompatible pointer type
arch/s390/kernel/ipl.c:340:
warning: initialization from incompatible pointer type

Cc: Zhang Rui <***@intel.com>
Cc: Greg KH <***@kroah.com>
Cc: Len Brown <***@intel.com>
Cc: Martin Schwidefsky <***@de.ibm.com>
Signed-off-by: Heiko Carstens <***@de.ibm.com>
---
arch/s390/kernel/ipl.c | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)

Index: linux-2.6.22-rc6-mm1/arch/s390/kernel/ipl.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- linux-2.6.22-rc6-mm1.orig/arch/s390/kernel/ipl.c
+++ linux-2.6.22-rc6-mm1/arch/s390/kernel/ipl.c
@@ -295,8 +295,9 @@ static ssize_t sys_ipl_device_show(struc
static struct subsys_attribute sys_ipl_device_attr =3D
__ATTR(device, S_IRUGO, sys_ipl_device_show, NULL);
=20
-static ssize_t ipl_parameter_read(struct kobject *kobj, char *buf, lof=
f_t off,
- size_t count)
+static ssize_t ipl_parameter_read(struct kobject *kobj,
+ struct bin_attribute *attr,
+ char *buf, loff_t off, size_t count)
{
unsigned int size =3D IPL_PARMBLOCK_SIZE;
=20
@@ -317,8 +318,9 @@ static struct bin_attribute ipl_paramete
.read =3D &ipl_parameter_read,
};
=20
-static ssize_t ipl_scp_data_read(struct kobject *kobj, char *buf, loff=
_t off,
- size_t count)
+static ssize_t ipl_scp_data_read(struct kobject *kobj,
+ struct bin_attribute *attr,
+ char *buf, loff_t off, size_t count)
{
unsigned int size =3D IPL_PARMBLOCK_START->ipl_info.fcp.scp_data_len;
void *scp_data =3D &IPL_PARMBLOCK_START->ipl_info.fcp.scp_data;
Greg KH
2007-06-28 21:08:09 UTC
Permalink
Post by Heiko Carstens
git-acpi contains a patch that adds 'struct bin_attribute *' to
CC arch/s390/kernel/ipl.o
warning: initialization from incompatible pointer type
warning: initialization from incompatible pointer type
Thanks, I've merged this with the original patch so that nothing breaks
when applied to Linus's tree.

greg k-h
Heiko Carstens
2007-06-28 13:39:56 UTC
Permalink
From: Heiko Carstens <***@de.ibm.com>

sched-cfs-v2.6.22-git-v18.patch introduces CPU_IDLE in sched.h.
This conflict with the already existing define in
include/asm-s390/processor.h
Just rename the s390 defines, since they will go away as soon as
we support CONFIG_NO_HZ instead of our own CONFIG_NO_IDLE_HZ.

Cc: Ingo Molnar <***@elte.hu>
Cc: Martin Schwidefsky <***@de.ibm.com>
Signed-off-by: Heiko Carstens <***@de.ibm.com>
---
arch/s390/kernel/process.c | 6 +++---
arch/s390/kernel/time.c | 4 ++--
arch/s390/kernel/vtime.c | 4 ++--
include/asm-s390/processor.h | 4 ++--
4 files changed, 9 insertions(+), 9 deletions(-)

Index: linux-2.6.22-rc6-mm1/arch/s390/kernel/process.c
===================================================================
--- linux-2.6.22-rc6-mm1.orig/arch/s390/kernel/process.c
+++ linux-2.6.22-rc6-mm1/arch/s390/kernel/process.c
@@ -93,8 +93,8 @@ void do_monitor_call(struct pt_regs *reg
/* disable monitor call class 0 */
__ctl_clear_bit(8, 15);

- atomic_notifier_call_chain(&idle_chain, CPU_NOT_IDLE,
- (void *)(long) smp_processor_id());
+ atomic_notifier_call_chain(&idle_chain, S390_CPU_NOT_IDLE,
+ (void *)(long) smp_processor_id());
}

extern void s390_handle_mcck(void);
@@ -115,7 +115,7 @@ static void default_idle(void)
}

rc = atomic_notifier_call_chain(&idle_chain,
- CPU_IDLE, (void *)(long) cpu);
+ S390_CPU_IDLE, (void *)(long) cpu);
if (rc != NOTIFY_OK && rc != NOTIFY_DONE)
BUG();
if (rc != NOTIFY_OK) {
Index: linux-2.6.22-rc6-mm1/arch/s390/kernel/time.c
===================================================================
--- linux-2.6.22-rc6-mm1.orig/arch/s390/kernel/time.c
+++ linux-2.6.22-rc6-mm1/arch/s390/kernel/time.c
@@ -226,10 +226,10 @@ static int nohz_idle_notify(struct notif
unsigned long action, void *hcpu)
{
switch (action) {
- case CPU_IDLE:
+ case S390_CPU_IDLE:
stop_hz_timer();
break;
- case CPU_NOT_IDLE:
+ case S390_CPU_NOT_IDLE:
start_hz_timer();
break;
}
Index: linux-2.6.22-rc6-mm1/arch/s390/kernel/vtime.c
===================================================================
--- linux-2.6.22-rc6-mm1.orig/arch/s390/kernel/vtime.c
+++ linux-2.6.22-rc6-mm1/arch/s390/kernel/vtime.c
@@ -545,10 +545,10 @@ static int vtimer_idle_notify(struct not
unsigned long action, void *hcpu)
{
switch (action) {
- case CPU_IDLE:
+ case S390_CPU_IDLE:
stop_cpu_timer();
break;
- case CPU_NOT_IDLE:
+ case S390_CPU_NOT_IDLE:
start_cpu_timer();
break;
}
Index: linux-2.6.22-rc6-mm1/include/asm-s390/processor.h
===================================================================
--- linux-2.6.22-rc6-mm1.orig/include/asm-s390/processor.h
+++ linux-2.6.22-rc6-mm1/include/asm-s390/processor.h
@@ -357,8 +357,8 @@ extern void (*s390_base_ext_handler_fn)(
/*
* CPU idle notifier chain.
*/
-#define CPU_IDLE 0
-#define CPU_NOT_IDLE 1
+#define S390_CPU_IDLE 0
+#define S390_CPU_NOT_IDLE 1

struct notifier_block;
int register_idle_notifier(struct notifier_block *nb);
Ingo Molnar
2007-06-28 15:03:43 UTC
Permalink
Post by Heiko Carstens
sched-cfs-v2.6.22-git-v18.patch introduces CPU_IDLE in sched.h.
This conflict with the already existing define in
include/asm-s390/processor.h
Just rename the s390 defines, since they will go away as soon as
we support CONFIG_NO_HZ instead of our own CONFIG_NO_IDLE_HZ.
thanks for the fix. I _swear_ i did a grep for this new name when i
introduced it, but apparently i must have only done it for SCHED_IDLE
:-/

Ingo
Dave Kleikamp
2007-06-28 14:49:17 UTC
Permalink
Post by Andrew Morton
-agk-dm-dm-use-singlethread-workqueues.patch
+agk-dm-dm-use-singlethread-workqueues.patch
+agk-dm-dm-snapshot-fix-invalidation-deadlock.patch
+agk-dm-dm-snapshot-permit-invalid-activation.patch
+agk-dm-dm-raid1-clear-region-outside-spinlock.patch
+agk-dm-dm-netlink.patch
+agk-dm-dm-netlink-add-to-core.patch
+agk-dm-dm-netlink-mpath.patch
+agk-dm-dm-mpath-rdac.patch
device mapper tree updates
I got this compile error:

LD drivers/md/built-in.o
drivers/md/dm-multipath.o: In function `dm_path_event':
drivers/md/dm-netlink.h:56: multiple definition of `dm_path_event'
drivers/md/dm-mod.o:drivers/md/dm-netlink.h:56: first defined here
drivers/md/dm-multipath.o: In function `dm_netlink_send_events':
drivers/md/dm-netlink.h:51: multiple definition of `dm_netlink_send_events'
drivers/md/dm-mod.o:drivers/md/dm-netlink.h:51: first defined here
make[2]: *** [drivers/md/built-in.o] Error 1

I was able to fix it by making the dummy inline functions static.

Signed-off-by: Dave Kleikamp <***@linux.vnet.ibm.com>

diff -Nurp linux-2.6.22-rc6-mm1/drivers/md/dm-netlink.h linux/drivers/md/dm-netlink.h
--- linux-2.6.22-rc6-mm1/drivers/md/dm-netlink.h 2007-06-28 05:50:38.000000000 -0500
+++ linux/drivers/md/dm-netlink.h 2007-06-28 09:10:15.000000000 -0500
@@ -47,10 +47,10 @@ static inline int __init dm_netlink_init
static inline void dm_netlink_exit(void)
{
}
-void inline dm_netlink_send_events(struct list_head *events)
+static void inline dm_netlink_send_events(struct list_head *events)
{
}
-void inline dm_path_event(enum dm_netlink_event_type evt_type,
+static void inline dm_path_event(enum dm_netlink_event_type evt_type,
struct dm_table *t, const char *path,
int nr_valid_paths)
{
--
David Kleikamp
IBM Linux Technology Center
Alasdair G Kergon
2007-06-28 15:34:08 UTC
Permalink
Post by Dave Kleikamp
LD drivers/md/built-in.o
drivers/md/dm-netlink.h:56: multiple definition of `dm_path_event'
drivers/md/dm-mod.o:drivers/md/dm-netlink.h:56: first defined here
drivers/md/dm-netlink.h:51: multiple definition of `dm_netlink_send_events'
drivers/md/dm-mod.o:drivers/md/dm-netlink.h:51: first defined here
make[2]: *** [drivers/md/built-in.o] Error 1
I was able to fix it by making the dummy inline functions static.
Sorry for that - I've added your fix to dm-netlink-add-to-core.patch.
Of course I forgot to test with the new option disabled:-(

Alasdair
--
***@redhat.com
Adrian Bunk
2007-06-28 19:29:50 UTC
Permalink
Post by Andrew Morton
...
...
git-scsi-misc.patch
...
git trees
...
<-- snip -->

...
LD drivers/built-in.o
drivers/isdn/built-in.o: In function `check_reset': (.text+0xab974):
multiple definition of `check_reset'
drivers/scsi/built-in.o:(.data+0xdba8): first defined here
ld: Warning: size of symbol `check_reset' changed from 4 in drivers/scsi/built-in.o to 214 in drivers/isdn/built-in.o
ld: Warning: type of symbol `check_reset' changed from 1 to 2 in drivers/isdn/built-in.o
make[2]: *** [drivers/built-in.o] Error 1

<-- snip -->


cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed


-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Andrew Morton
2007-06-28 20:01:02 UTC
Permalink
On Thu, 28 Jun 2007 21:29:50 +0200
Post by Adrian Bunk
LD drivers/built-in.o
multiple definition of `check_reset'
drivers/scsi/built-in.o:(.data+0xdba8): first defined here
ld: Warning: size of symbol `check_reset' changed from 4 in drivers/scsi/built-in.o to 214 in drivers/isdn/built-in.o
ld: Warning: type of symbol `check_reset' changed from 1 to 2 in drivers/isdn/built-in.o
check_reset wasn't a great choice of identifier...


diff -puN drivers/scsi/aacraid/aachba.c~aacraid-rename-check_reset drivers/scsi/aacraid/aachba.c
--- a/drivers/scsi/aacraid/aachba.c~aacraid-rename-check_reset
+++ a/drivers/scsi/aacraid/aachba.c
@@ -177,9 +177,9 @@ int check_interval = 24 * 60 * 60;
module_param(check_interval, int, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(check_interval, "Interval in seconds between adapter health checks.");

-int check_reset = 1;
-module_param(check_reset, int, S_IRUGO|S_IWUSR);
-MODULE_PARM_DESC(check_reset, "If adapter fails health check, reset the adapter.");
+int aacraid_check_reset = 1;
+module_param_named(check_reset, aacraid_check_reset, int, S_IRUGO|S_IWUSR);
+MODULE_PARM_DESC(aacraid_check_reset, "If adapter fails health check, reset the adapter.");

int expose_physicals = -1;
module_param(expose_physicals, int, S_IRUGO|S_IWUSR);
@@ -1211,7 +1211,7 @@ int aac_get_adapter_info(struct aac_dev*
(int)sizeof(dev->supplement_adapter_info.VpdInfo.Tsid),
dev->supplement_adapter_info.VpdInfo.Tsid);
}
- if (!check_reset ||
+ if (!aacraid_check_reset ||
(dev->supplement_adapter_info.SupportedOptions2 &
le32_to_cpu(AAC_OPTION_IGNORE_RESET))) {
printk(KERN_INFO "%s%d: Reset Adapter Ignored\n",
diff -puN drivers/scsi/aacraid/aacraid.h~aacraid-rename-check_reset drivers/scsi/aacraid/aacraid.h
--- a/drivers/scsi/aacraid/aacraid.h~aacraid-rename-check_reset
+++ a/drivers/scsi/aacraid/aacraid.h
@@ -1857,4 +1857,4 @@ extern int aac_reset_devices;
extern int aac_commit;
extern int update_interval;
extern int check_interval;
-extern int check_reset;
+extern int aacraid_check_reset;
diff -puN drivers/scsi/aacraid/commsup.c~aacraid-rename-check_reset drivers/scsi/aacraid/commsup.c
--- a/drivers/scsi/aacraid/commsup.c~aacraid-rename-check_reset
+++ a/drivers/scsi/aacraid/commsup.c
@@ -1370,8 +1370,9 @@ int aac_check_health(struct aac_dev * aa

printk(KERN_ERR "%s: Host adapter BLINK LED 0x%x\n", aac->name, BlinkLED);

- if (!check_reset || (aac->supplement_adapter_info.SupportedOptions2 &
- le32_to_cpu(AAC_OPTION_IGNORE_RESET)))
+ if (!aacraid_check_reset ||
+ (aac->supplement_adapter_info.SupportedOptions2 &
+ le32_to_cpu(AAC_OPTION_IGNORE_RESET)))
goto out;
host = aac->scsi_host_ptr;
if (aac->thread->pid != current->pid)
_
Randy Dunlap
2007-06-28 20:09:21 UTC
Permalink
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc6/2.6.22-rc6-mm1/
on x86_64, with CONFIG_PCI disabled, CONFIG_PM disabled,
hence CONFIG_ACPI disabled:


arch/x86_64/kernel/built-in.o: In function `setup_IO_APIC':
(.init.text+0x4ef7): undefined reference to `mp_apic_pin_to_gsi'
make: *** [.tmp_vmlinux1] Error 1

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
Andrew Morton
2007-06-28 20:23:43 UTC
Permalink
On Thu, 28 Jun 2007 13:09:21 -0700
Post by Randy Dunlap
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc6/2.6.22-rc6-mm1/
on x86_64, with CONFIG_PCI disabled, CONFIG_PM disabled,
(.init.text+0x4ef7): undefined reference to `mp_apic_pin_to_gsi'
make: *** [.tmp_vmlinux1] Error 1
hm, it's not immediately obvious how to fix that so I'll ask John to do
repairs, please.
John Keller
2007-06-28 21:47:12 UTC
Permalink
Post by Andrew Morton
On Thu, 28 Jun 2007 13:09:21 -0700
Post by Randy Dunlap
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc6/2.6.22-rc6-mm1/
on x86_64, with CONFIG_PCI disabled, CONFIG_PM disabled,
(.init.text+0x4ef7): undefined reference to `mp_apic_pin_to_gsi'
make: *** [.tmp_vmlinux1] Error 1
hm, it's not immediately obvious how to fix that so I'll ask John to do
repairs, please.
OK, I'll take a look.

John
Adrian Bunk
2007-06-28 20:40:01 UTC
Permalink
<-- snip -->

...
RELOCS arch/i386/boot/compressed/vmlinux.relocs
WARNING: Absolute relocations present
Offset Info Type Sym.Value Sym.Name
c0101f80 020c6501 R_386_32 00000000 xen_irq_disable_direct_reloc
c0101f9a 0221ea01 R_386_32 00000000 xen_save_fl_direct_reloc
...

<-- snip -->

cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
Jeremy Fitzhardinge
2007-06-28 20:49:08 UTC
Permalink
Post by Adrian Bunk
<-- snip -->
...
RELOCS arch/i386/boot/compressed/vmlinux.relocs
WARNING: Absolute relocations present
Offset Info Type Sym.Value Sym.Name
c0101f80 020c6501 R_386_32 00000000 xen_irq_disable_direct_reloc
c0101f9a 0221ea01 R_386_32 00000000 xen_save_fl_direct_reloc
...
<-- snip -->
Hm. Those are false alarms. I guess I could do something to hide them,
but there's nothing inherently wrong with correctly used abs symbols.
Is there someway to whitelist them?

J
Eric W. Biederman
2007-07-01 15:37:46 UTC
Permalink
Post by Adrian Bunk
<-- snip -->
...
RELOCS arch/i386/boot/compressed/vmlinux.relocs
WARNING: Absolute relocations present
Offset Info Type Sym.Value Sym.Name
c0101f80 020c6501 R_386_32 00000000 xen_irq_disable_direct_reloc
c0101f9a 0221ea01 R_386_32 00000000 xen_save_fl_direct_reloc
...
<-- snip -->
Hm. Those are false alarms. I guess I could do something to hide them, but
there's nothing inherently wrong with correctly used abs symbols. Is there
someway to whitelist them?
Yes. Just add them to arch/i386/boot/compressed/relocs.c safe_abs_syms.

Eric
Jeremy Fitzhardinge
2007-07-01 16:33:08 UTC
Permalink
Post by Eric W. Biederman
Post by Adrian Bunk
<-- snip -->
...
RELOCS arch/i386/boot/compressed/vmlinux.relocs
WARNING: Absolute relocations present
Offset Info Type Sym.Value Sym.Name
c0101f80 020c6501 R_386_32 00000000 xen_irq_disable_direct_reloc
c0101f9a 0221ea01 R_386_32 00000000 xen_save_fl_direct_reloc
...
<-- snip -->
Hm. Those are false alarms. I guess I could do something to hide them, but
there's nothing inherently wrong with correctly used abs symbols. Is there
someway to whitelist them?
Yes. Just add them to arch/i386/boot/compressed/relocs.c safe_abs_syms.
OK, how's this?

Subject: xen: suppress abs symbol warnings for unused reloc pointers

The Xen code generates some abs symbols which are OK from a relocation
perspective.

Signed-off-by: Jeremy Fitzhardinge <***@xensource.com>
Cc: Adrian Bunk <***@stusta.de>

---
arch/i386/boot/compressed/relocs.c | 2 ++
1 file changed, 2 insertions(+)

===================================================================
--- a/arch/i386/boot/compressed/relocs.c
+++ b/arch/i386/boot/compressed/relocs.c
@@ -31,6 +31,8 @@ static const char* safe_abs_relocs[] = {
"__kernel_rt_sigreturn",
"__kernel_sigreturn",
"SYSENTER_RETURN",
+ "xen_irq_disable_direct_reloc",
+ "xen_save_fl_direct_reloc",
};

static int is_safe_abs_reloc(const char* sym_name)
Adrian Bunk
2007-07-01 20:23:47 UTC
Permalink
Post by Jeremy Fitzhardinge
Post by Eric W. Biederman
Post by Adrian Bunk
<-- snip -->
...
RELOCS arch/i386/boot/compressed/vmlinux.relocs
WARNING: Absolute relocations present
Offset Info Type Sym.Value Sym.Name
c0101f80 020c6501 R_386_32 00000000 xen_irq_disable_direct_reloc
c0101f9a 0221ea01 R_386_32 00000000 xen_save_fl_direct_reloc
...
<-- snip -->
Hm. Those are false alarms. I guess I could do something to hide them, but
there's nothing inherently wrong with correctly used abs symbols. Is there
someway to whitelist them?
Yes. Just add them to arch/i386/boot/compressed/relocs.c safe_abs_syms.
OK, how's this?
Subject: xen: suppress abs symbol warnings for unused reloc pointers
...
Thanks, works for me.

cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
Eric W. Biederman
2007-07-01 20:31:44 UTC
Permalink
Post by Jeremy Fitzhardinge
Post by Eric W. Biederman
Post by Adrian Bunk
<-- snip -->
...
RELOCS arch/i386/boot/compressed/vmlinux.relocs
WARNING: Absolute relocations present
Offset Info Type Sym.Value Sym.Name
c0101f80 020c6501 R_386_32 00000000 xen_irq_disable_direct_reloc
c0101f9a 0221ea01 R_386_32 00000000 xen_save_fl_direct_reloc
...
<-- snip -->
Hm. Those are false alarms. I guess I could do something to hide them, but
there's nothing inherently wrong with correctly used abs symbols. Is there
someway to whitelist them?
Yes. Just add them to arch/i386/boot/compressed/relocs.c safe_abs_syms.
OK, how's this?
Subject: xen: suppress abs symbol warnings for unused reloc pointers
The Xen code generates some abs symbols which are OK from a relocation
perspective.
Actually I have to ask. How in the world are these absolute symbols
ok from a relocation perspective.

If the kernel is not running at 0xc0100000 the offset value looks like
it will be completely bogus.

Maybe those are ok, but if you could please explain why those are
false positives I would appreciate it. (Especially in your patch
description).

If these are indeed false positives the patch looks ok.

Eric
Jeremy Fitzhardinge
2007-07-01 22:13:34 UTC
Permalink
Post by Eric W. Biederman
Post by Adrian Bunk
<-- snip -->
...
RELOCS arch/i386/boot/compressed/vmlinux.relocs
WARNING: Absolute relocations present
Offset Info Type Sym.Value Sym.Name
c0101f80 020c6501 R_386_32 00000000 xen_irq_disable_direct_reloc
c0101f9a 0221ea01 R_386_32 00000000 xen_save_fl_direct_reloc
Actually I have to ask. How in the world are these absolute symbols
ok from a relocation perspective.
If the kernel is not running at 0xc0100000 the offset value looks like
it will be completely bogus.
Notice they're absolute 0.
Post by Eric W. Biederman
Maybe those are ok, but if you could please explain why those are
false positives I would appreciate it. (Especially in your patch
description).
If these are indeed false positives the patch looks ok.
Subject: xen: suppress abs symbol warnings for unused reloc pointers

arch/i386/xen/xen-asm.S defines some small pieces of code which are
used to implement a few paravirt_ops. They're designed so they can be
used either in-place, or be inline patched into their callsites if
there's enough space.

Some of those operations need to make calls out (specifically, if you
re-enable events [interrupts], and there's a pending event at that
time). These calls need the call instruction to be relocated if the
code is patched inline. In this case xen_foo_reloc is a section-relative
symbol which points to xen_foo's required relocation.

Other operations have no need of a relocation, and so their
corresponding xen_bar_reloc is absolute 0. These are the cases which
are triggering the warning.

This patch adds those symbols to the list of safe abs symbols.

Signed-off-by: Jeremy Fitzhardinge <***@xensource.com>
Cc: Adrian Bunk <***@stusta.de>

---
arch/i386/boot/compressed/relocs.c | 2 ++
1 file changed, 2 insertions(+)

===================================================================
--- a/arch/i386/boot/compressed/relocs.c
+++ b/arch/i386/boot/compressed/relocs.c
@@ -31,6 +31,8 @@ static const char* safe_abs_relocs[] = {
"__kernel_rt_sigreturn",
"__kernel_sigreturn",
"SYSENTER_RETURN",
+ "xen_irq_disable_direct_reloc",
+ "xen_save_fl_direct_reloc",
};

static int is_safe_abs_reloc(const char* sym_name)
Zan Lynx
2007-06-28 20:40:32 UTC
Permalink
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc6/2.6.22-rc6-mm1/
+intel-iommu-dmar-detection-and-parsing-logic.patch
+intel-iommu-pci-generic-helper-function.patch
+intel-iommu-pci-generic-helper-function-fix.patch
+intel-iommu-clflush_cache_range-now-takes-size-param.patch
+intel-iommu-iova-allocation-and-management-routines.patch
+intel-iommu-iova-allocation-and-management-routines-fix.patch
+intel-iommu-iova-allocation-and-management-routines-fix-2.patch
+intel-iommu-intel-iommu-driver.patch
+intel-iommu-intel-iommu-driver-fix.patch
+intel-iommu-intel-iommu-driver-fix-2.patch
+intel-iommu-avoid-memory-allocation-failures-in-dma-map-api-calls.patch
+intel-iommu-intel-iommu-cmdline-option-forcedac.patch
+intel-iommu-dmar-fault-handling-support.patch
+intel-iommu-iommu-gfx-workaround.patch
+intel-iommu-iommu-floppy-workaround.patch
+intel-iommu-iommu-floppy-workaround-fix.patch
+intel-iommu-iommu-floppy-workaround-fix-fix.patch
Intel IOMMU support
I believe the above patch set is causing the problem. On my first try
with rc6-mm1 I said Yes to the CONFIG_DMAR options. (I'm nearly as good
as random option selection :-)

The system panicked during boot, I believe it was trying to detect an
Intel IOMMU. Later when I have a camera, I will try to post a
screenshot of the backtrace. (I can't seem to get netconsole to work on
boot, only in a module).

When I recompiled without DMAR set, things seem to be working great. I
seem to be getting better disk read throughput than rc3-mm1, by the way.

This laptop is an AMD Athlon64 on a NForce3 running a 64-bit Gentoo
build.

I'll provide more details on request, and when I get the chance. This
is a heads-up on the BUG in case someone has an "ah ha!" moment.
--
Zan Lynx <***@acm.org>
Zach Carter
2007-06-28 23:50:52 UTC
Permalink
Post by Zan Lynx
I'll provide more details on request, and when I get the chance. This
is a heads-up on the BUG in case someone has an "ah ha!" moment.
I believe I have also reproduced this bug. I have an ABIT K9 Ultra
motherboard with NFORCE hardware. My serial console cannot
seem to capture it, but removing the DMAR options definately takes
away the problem and allows me to boot.

If anyone would like me to gather other info or test out patches,
please let me know.

Linux hoth 2.6.22-rc6-mm1 #8 SMP Thu Jun 28 16:18:17 PDT 2007 x86_64 x86_64 x86_64 GNU/Linux

Gnu C 4.1.2
Gnu make 3.81
binutils 2.17.50.0.12-4
util-linux 2.13-pre7
mount 2.13-pre7
module-init-tools 3.3-pre11
e2fsprogs 1.39
pcmciautils 014
quota-tools 3.14.
PPP 2.4.4
isdn4k-utils 3.9
Linux C Library > libc.2.6
Dynamic linker (ldd) 2.6
Procps 3.2.7
Net-tools 1.60
Kbd 1.12
oprofile 0.9.2
Sh-utils 6.9
udev 106
wireless-tools 28
Modules Loaded tun ppdev ipt_MASQUERADE iptable_nat nf_nat nf_conntrack_ipv4 xt_state nf_conntrack nfnetlink ipt_REJECT xt_tcpudp iptable_filter ip_tables x_tables bridge llc hidp l2cap bluetooth ipv6 dm_mirror dm_multipath dm_mod raid10 raid0 video output sbs button dock battery ac lp loop kvm_amd kvm parport_serial snd_hda_intel snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd parport_pc parport soundcore snd_page_alloc usblp k8temp serio_raw hwmon forcedeth shpchp i2c_nforce2 i2c_core sr_mod cdrom floppy sg pata_amd sata_nv libata sd_mod scsi_mod raid456 async_xor async_memcpy async_tx xor raid1 ext3 jbd mbcache ehci_hcd ohci_hcd uhci_hcd

[***@hoth ~]# cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 75
model name : AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
stepping : 2
cpu MHz : 1000.000
cache size : 512 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy
bogomips : 2000.92
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc

processor : 1
vendor_id : AuthenticAMD
cpu family : 15
model : 75
model name : AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
stepping : 2
cpu MHz : 1000.000
cache size : 512 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy
bogomips : 2000.92
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc

00:00.0 RAM memory: nVidia Corporation MCP55 Memory Controller (rev a1)
Subsystem: ABIT Computer Corp. Unknown device 1c24
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Capabilities: [44] HyperTransport: Slave or Primary Interface
Command: BaseUnitID=0 UnitCnt=15 MastHost- DefDir- DUL-
Link Control 0: CFlE+ CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0 IsocEn- LSEn+ ExtCTL- 64b-
Link Config 0: MLWI=16bit DwFcIn- MLWO=16bit DwFcOut- LWI=16bit DwFcInEn- LWO=16bit DwFcOutEn-
Link Control 1: CFlE- CST- CFE- <LkFail+ Init- EOC+ TXO+ <CRCErr=0 IsocEn- LSEn- ExtCTL- 64b-
Link Config 1: MLWI=8bit DwFcIn- MLWO=8bit DwFcOut- LWI=8bit DwFcInEn- LWO=8bit DwFcOutEn-
Revision ID: 1.03
Link Frequency 0: 1.0GHz
Link Error 0: <Prot- <Ovfl- <EOC- CTLTm-
Link Frequency Capability 0: 200MHz+ 300MHz+ 400MHz+ 500MHz+ 600MHz+ 800MHz+ 1.0GHz+ 1.2GHz- 1.4GHz- 1.6GHz- Vend-
Feature Capability: IsocFC+ LDTSTOP+ CRCTM- ECTLT- 64bA- UIDRD-
Link Frequency 1: 200MHz
Link Error 1: <Prot- <Ovfl- <EOC- CTLTm-
Link Frequency Capability 1: 200MHz- 300MHz- 400MHz- 500MHz- 600MHz- 800MHz- 1.0GHz- 1.2GHz- 1.4GHz- 1.6GHz- Vend-
Error Handling: PFlE+ OFlE+ PFE- OFE- EOCFE- RFE- CRCFE- SERRFE- CF- RE- PNFE- ONFE- EOCNFE- RNFE- CRCNFE- SERRNFE-
Prefetchable memory behind bridge Upper: 00-00
Bus Number: 00
Capabilities: [e0] #00 [fee0]

00:01.0 ISA bridge: nVidia Corporation MCP55 LPC Bridge (rev a2)
Subsystem: ABIT Computer Corp. Unknown device 1c24
Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0

00:01.1 SMBus: nVidia Corporation MCP55 SMBus (rev a2)
Subsystem: ABIT Computer Corp. Unknown device 1c24
Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin A routed to IRQ 11
Region 0: I/O ports at fc00 [size=64]
Region 4: I/O ports at 1c00 [size=64]
Region 5: I/O ports at 1c40 [size=64]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:01.2 RAM memory: nVidia Corporation MCP55 Memory Controller (rev a2)
Subsystem: ABIT Computer Corp. Unknown device 1c24
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-

00:02.0 USB Controller: nVidia Corporation MCP55 USB Controller (rev a1) (prog-if 10 [OHCI])
Subsystem: ABIT Computer Corp. Unknown device 1c24
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0 (750ns min, 250ns max)
Interrupt: pin A routed to IRQ 23
Region 0: Memory at fe02f000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:02.1 USB Controller: nVidia Corporation MCP55 USB Controller (rev a2) (prog-if 20 [EHCI])
Subsystem: ABIT Computer Corp. Unknown device 1c24
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0 (750ns min, 250ns max)
Interrupt: pin B routed to IRQ 22
Region 0: Memory at fe02e000 (32-bit, non-prefetchable) [size=256]
Capabilities: [44] Debug port
Capabilities: [80] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME+

00:04.0 IDE interface: nVidia Corporation MCP55 IDE (rev a1) (prog-if 8a [Master SecP PriP])
Subsystem: Unknown device f47b:1c24
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0 (750ns min, 250ns max)
Region 0: [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [disabled] [size=8]
Region 1: [virtual] Memory at 000003f0 (type 3, non-prefetchable) [disabled] [size=1]
Region 2: [virtual] Memory at 00000170 (32-bit, non-prefetchable) [disabled] [size=8]
Region 3: [virtual] Memory at 00000370 (type 3, non-prefetchable) [disabled] [size=1]
Region 4: I/O ports at f000 [size=16]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

00:05.0 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a2) (prog-if 85 [Master SecO PriO])
Subsystem: ABIT Computer Corp. Unknown device 1c24
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0 (750ns min, 250ns max)
Interrupt: pin A routed to IRQ 21
Region 0: I/O ports at 09f0 [size=8]
Region 1: I/O ports at 0bf0 [size=4]
Region 2: I/O ports at 0970 [size=8]
Region 3: I/O ports at 0b70 [size=4]
Region 4: I/O ports at dc00 [size=16]
Region 5: Memory at fe02d000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [b0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/2 Enable-
Address: 0000000000000000 Data: 0000
Capabilities: [cc] HyperTransport: MSI Mapping

00:05.1 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a2) (prog-if 85 [Master SecO PriO])
Subsystem: ABIT Computer Corp. Unknown device 1c24
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0 (750ns min, 250ns max)
Interrupt: pin B routed to IRQ 20
Region 0: I/O ports at 09e0 [size=8]
Region 1: I/O ports at 0be0 [size=4]
Region 2: I/O ports at 0960 [size=8]
Region 3: I/O ports at 0b60 [size=4]
Region 4: I/O ports at c800 [size=16]
Region 5: Memory at fe02c000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [b0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/2 Enable-
Address: 0000000000000000 Data: 0000
Capabilities: [cc] HyperTransport: MSI Mapping

00:05.2 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a2) (prog-if 85 [Master SecO PriO])
Subsystem: ABIT Computer Corp. Unknown device 1c24
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0 (750ns min, 250ns max)
Interrupt: pin C routed to IRQ 23
Region 0: I/O ports at c400 [size=8]
Region 1: I/O ports at c000 [size=4]
Region 2: I/O ports at bc00 [size=8]
Region 3: I/O ports at b800 [size=4]
Region 4: I/O ports at b400 [size=16]
Region 5: Memory at fe02b000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [b0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/2 Enable-
Address: 0000000000000000 Data: 0000
Capabilities: [cc] HyperTransport: MSI Mapping

00:06.0 PCI bridge: nVidia Corporation MCP55 PCI bridge (rev a2) (prog-if 01 [Subtractive decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Bus: primary=00, secondary=01, subordinate=01, sec-latency=32
I/O behind bridge: 00008000-00009fff
Memory behind bridge: fdd00000-fddfffff
Prefetchable memory behind bridge: fde00000-fdefffff
Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B-
Capabilities: [b8] Subsystem: nVidia Corporation Unknown device cb84
Capabilities: [8c] HyperTransport: MSI Mapping

00:06.1 Audio device: nVidia Corporation MCP55 High Definition Audio (rev a2)
Subsystem: ABIT Computer Corp. Unknown device 1c20
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0 (500ns min, 1250ns max)
Interrupt: pin B routed to IRQ 20
Region 0: Memory at fe020000 (32-bit, non-prefetchable) [size=16K]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [50] Message Signalled Interrupts: Mask+ 64bit+ Queue=0/0 Enable-
Address: 0000000000000000 Data: 0000
Masking: 00000000 Pending: 00000000
Capabilities: [6c] HyperTransport: MSI Mapping

00:08.0 Bridge: nVidia Corporation MCP55 Ethernet (rev a2)
Subsystem: ABIT Computer Corp. Unknown device 1c24
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0 (250ns min, 5000ns max)
Interrupt: pin A routed to IRQ 2299
Region 0: Memory at fe02a000 (32-bit, non-prefetchable) [size=4K]
Region 1: I/O ports at b000 [size=8]
Region 2: Memory at fe029000 (32-bit, non-prefetchable) [size=256]
Region 3: Memory at fe028000 (32-bit, non-prefetchable) [size=16]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable+ DSel=0 DScale=0 PME-
Capabilities: [70] MSI-X: Enable- Mask- TabSize=8
Vector table: BAR=2 offset=00000000
PBA: BAR=3 offset=00000000
Capabilities: [50] Message Signalled Interrupts: Mask+ 64bit+ Queue=0/3 Enable+
Address: 00000000fee0200c Data: 4191
Masking: 000000fe Pending: 00000000
Capabilities: [6c] HyperTransport: MSI Mapping

00:09.0 Bridge: nVidia Corporation MCP55 Ethernet (rev a2)
Subsystem: ABIT Computer Corp. Unknown device 1c24
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0 (250ns min, 5000ns max)
Interrupt: pin A routed to IRQ 2298
Region 0: Memory at fe027000 (32-bit, non-prefetchable) [size=4K]
Region 1: I/O ports at ac00 [size=8]
Region 2: Memory at fe026000 (32-bit, non-prefetchable) [size=256]
Region 3: Memory at fe025000 (32-bit, non-prefetchable) [size=16]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable+ DSel=0 DScale=0 PME-
Capabilities: [70] MSI-X: Enable- Mask- TabSize=8
Vector table: BAR=2 offset=00000000
PBA: BAR=3 offset=00000000
Capabilities: [50] Message Signalled Interrupts: Mask+ 64bit+ Queue=0/3 Enable+
Address: 00000000fee0100c Data: 4199
Masking: 000000fe Pending: 00000000
Capabilities: [6c] HyperTransport: MSI Mapping

00:0c.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0, Cache Line Size: 64 bytes
Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
I/O behind bridge: 00007000-00007fff
Memory behind bridge: fdc00000-fdcfffff
Prefetchable memory behind bridge: 00000000fdb00000-00000000fdbfffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B-
Capabilities: [40] Subsystem: nVidia Corporation Unknown device 0000
Capabilities: [48] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=0/1 Enable+
Address: 00000000fee0300c Data: 4149
Capabilities: [60] HyperTransport: MSI Mapping
Capabilities: [80] Express Root Port (Slot+) IRQ 0
Device: Supported: MaxPayload 256 bytes, PhantFunc 0, ExtTag-
Device: Latency L0s <512ns, L1 <4us
Device: Errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
Device: MaxPayload 256 bytes, MaxReadReq 512 bytes
Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s L1, Port 3
Link: Latency L0s <512ns, L1 <4us
Link: ASPM Disabled RCB 64 bytes CommClk- ExtSynch-
Link: Speed 2.5Gb/s, Width x4
Slot: AtnBtn- PwrCtrl- MRL- AtnInd- PwrInd- HotPlug- Surpise-
Slot: Number 0, PowerLimit 0.000000
Slot: Enabled AtnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq-
Slot: AttnInd Off, PwrInd On, Power-
Root: Correctable- Non-Fatal- Fatal- PME-
Capabilities: [100] Virtual Channel

00:0d.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0, Cache Line Size: 64 bytes
Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
I/O behind bridge: 00006000-00006fff
Memory behind bridge: fda00000-fdafffff
Prefetchable memory behind bridge: 00000000fd900000-00000000fd9fffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B-
Capabilities: [40] Subsystem: nVidia Corporation Unknown device 0000
Capabilities: [48] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=0/1 Enable+
Address: 00000000fee0300c Data: 4151
Capabilities: [60] HyperTransport: MSI Mapping
Capabilities: [80] Express Root Port (Slot+) IRQ 0
Device: Supported: MaxPayload 256 bytes, PhantFunc 0, ExtTag-
Device: Latency L0s <512ns, L1 <4us
Device: Errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
Device: MaxPayload 256 bytes, MaxReadReq 512 bytes
Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s L1, Port 2
Link: Latency L0s <512ns, L1 <4us
Link: ASPM Disabled RCB 64 bytes CommClk- ExtSynch-
Link: Speed 2.5Gb/s, Width x4
Slot: AtnBtn- PwrCtrl- MRL- AtnInd- PwrInd- HotPlug- Surpise-
Slot: Number 0, PowerLimit 0.000000
Slot: Enabled AtnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq-
Slot: AttnInd Off, PwrInd On, Power-
Root: Correctable- Non-Fatal- Fatal- PME-
Capabilities: [100] Virtual Channel

00:0e.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0, Cache Line Size: 64 bytes
Bus: primary=00, secondary=04, subordinate=04, sec-latency=0
I/O behind bridge: 00005000-00005fff
Memory behind bridge: fd800000-fd8fffff
Prefetchable memory behind bridge: 00000000fd700000-00000000fd7fffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B-
Capabilities: [40] Subsystem: nVidia Corporation Unknown device 0000
Capabilities: [48] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=0/1 Enable+
Address: 00000000fee0300c Data: 4159
Capabilities: [60] HyperTransport: MSI Mapping
Capabilities: [80] Express Root Port (Slot+) IRQ 0
Device: Supported: MaxPayload 256 bytes, PhantFunc 0, ExtTag-
Device: Latency L0s <512ns, L1 <4us
Device: Errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
Device: MaxPayload 256 bytes, MaxReadReq 512 bytes
Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s L1, Port 1
Link: Latency L0s <512ns, L1 <4us
Link: ASPM Disabled RCB 64 bytes CommClk- ExtSynch-
Link: Speed 2.5Gb/s, Width x8
Slot: AtnBtn- PwrCtrl- MRL- AtnInd- PwrInd- HotPlug- Surpise-
Slot: Number 0, PowerLimit 0.000000
Slot: Enabled AtnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq-
Slot: AttnInd Off, PwrInd On, Power-
Root: Correctable- Non-Fatal- Fatal- PME-
Capabilities: [100] Virtual Channel

00:0f.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0, Cache Line Size: 64 bytes
Bus: primary=00, secondary=05, subordinate=05, sec-latency=0
I/O behind bridge: 00004000-00004fff
Memory behind bridge: fd600000-fd6fffff
Prefetchable memory behind bridge: 00000000e0000000-00000000efffffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR- NoISA+ VGA+ MAbort- >Reset- FastB2B-
Capabilities: [40] Subsystem: nVidia Corporation Unknown device 0000
Capabilities: [48] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=0/1 Enable+
Address: 00000000fee0300c Data: 4161
Capabilities: [60] HyperTransport: MSI Mapping
Capabilities: [80] Express Root Port (Slot+) IRQ 0
Device: Supported: MaxPayload 256 bytes, PhantFunc 0, ExtTag-
Device: Latency L0s <512ns, L1 <4us
Device: Errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
Device: MaxPayload 128 bytes, MaxReadReq 512 bytes
Link: Supported Speed 2.5Gb/s, Width x16, ASPM L0s L1, Port 0
Link: Latency L0s <512ns, L1 <4us
Link: ASPM Disabled RCB 64 bytes CommClk+ ExtSynch-
Link: Speed 2.5Gb/s, Width x16
Slot: AtnBtn- PwrCtrl- MRL- AtnInd- PwrInd- HotPlug- Surpise-
Slot: Number 0, PowerLimit 0.000000
Slot: Enabled AtnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq-
Slot: AttnInd Off, PwrInd On, Power-
Root: Correctable- Non-Fatal- Fatal- PME-
Capabilities: [100] Virtual Channel

00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Capabilities: [80] HyperTransport: Host or Secondary Interface
!!! Possibly incomplete decoding
Command: WarmRst+ DblEnd-
Link Control: CFlE- CST- CFE- <LkFail- Init+ EOC- TXO- <CRCErr=0
Link Config: MLWI=16bit MLWO=16bit LWI=16bit LWO=16bit
Revision ID: 1.02

00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-

00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-

00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Capabilities: [f0] #0f [0010]

01:08.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link) (prog-if 10 [OHCI])
Subsystem: ABIT Computer Corp. Unknown device 1c20
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 2 (500ns min, 1000ns max), Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 11
Region 0: Memory at fddff000 (32-bit, non-prefetchable) [size=2K]
Region 1: Memory at fddf8000 (32-bit, non-prefetchable) [size=16K]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-

01:09.0 Serial controller: NetMos Technology PCI 9835 Multi-I/O Controller (rev 01) (prog-if 02 [16550])
Subsystem: LSI Logic / Symbios Logic Unknown device 0001
Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin A routed to IRQ 17
Region 0: I/O ports at 9c00 [size=8]
Region 1: I/O ports at 9800 [size=8]
Region 2: I/O ports at 9400 [size=8]
Region 3: I/O ports at 9000 [size=8]
Region 4: I/O ports at 8c00 [size=8]
Region 5: I/O ports at 8800 [size=16]

05:00.0 VGA compatible controller: ATI Technologies Inc RV370 [Sapphire X550 Silent] (prog-if 00 [VGA])
Subsystem: PC Partner Limited Unknown device 1490
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 16
Region 0: Memory at e0000000 (32-bit, prefetchable) [size=256M]
Region 1: I/O ports at 4c00 [size=256]
Region 2: Memory at fd6f0000 (32-bit, non-prefetchable) [size=64K]
[virtual] Expansion ROM at fd600000 [disabled] [size=128K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [58] Express Endpoint IRQ 0
Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag+
Device: Latency L0s <128ns, L1 <2us
Device: AtnBtn- AtnInd- PwrInd-
Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-
Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
Device: MaxPayload 128 bytes, MaxReadReq 128 bytes
Link: Supported Speed 2.5Gb/s, Width x16, ASPM L0s L1, Port 0
Link: Latency L0s <128ns, L1 <1us
Link: ASPM Disabled RCB 64 bytes CommClk+ ExtSynch-
Link: Speed 2.5Gb/s, Width x16
Capabilities: [80] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
Address: 0000000000000000 Data: 0000
Capabilities: [100] Advanced Error Reporting

05:00.1 Display controller: ATI Technologies Inc RV370 secondary [Sapphire X550 Silent]
Subsystem: PC Partner Limited Unknown device 1491
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Region 0: Memory at fd6e0000 (32-bit, non-prefetchable) [disabled] [size=64K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [58] Express Endpoint IRQ 0
Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag-
Device: Latency L0s <128ns, L1 <2us
Device: AtnBtn- AtnInd- PwrInd-
Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-
Device: RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
Device: MaxPayload 128 bytes, MaxReadReq 128 bytes
Link: Supported Speed 2.5Gb/s, Width x16, ASPM L0s L1, Port 0
Link: Latency L0s <128ns, L1 <1us
Link: ASPM Disabled RCB 64 bytes CommClk- ExtSynch-
Link: Speed 2.5Gb/s, Width x16
Robert Hancock
2007-06-29 00:58:43 UTC
Permalink
Post by Zan Lynx
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc6/2.6.22-rc6-mm1/
+intel-iommu-dmar-detection-and-parsing-logic.patch
+intel-iommu-pci-generic-helper-function.patch
+intel-iommu-pci-generic-helper-function-fix.patch
+intel-iommu-clflush_cache_range-now-takes-size-param.patch
+intel-iommu-iova-allocation-and-management-routines.patch
+intel-iommu-iova-allocation-and-management-routines-fix.patch
+intel-iommu-iova-allocation-and-management-routines-fix-2.patch
+intel-iommu-intel-iommu-driver.patch
+intel-iommu-intel-iommu-driver-fix.patch
+intel-iommu-intel-iommu-driver-fix-2.patch
+intel-iommu-avoid-memory-allocation-failures-in-dma-map-api-calls.patch
+intel-iommu-intel-iommu-cmdline-option-forcedac.patch
+intel-iommu-dmar-fault-handling-support.patch
+intel-iommu-iommu-gfx-workaround.patch
+intel-iommu-iommu-floppy-workaround.patch
+intel-iommu-iommu-floppy-workaround-fix.patch
+intel-iommu-iommu-floppy-workaround-fix-fix.patch
Intel IOMMU support
I believe the above patch set is causing the problem. On my first try
with rc6-mm1 I said Yes to the CONFIG_DMAR options. (I'm nearly as good
as random option selection :-)
The system panicked during boot, I believe it was trying to detect an
Intel IOMMU. Later when I have a camera, I will try to post a
screenshot of the backtrace. (I can't seem to get netconsole to work on
boot, only in a module).
When I recompiled without DMAR set, things seem to be working great. I
seem to be getting better disk read throughput than rc3-mm1, by the way.
This laptop is an AMD Athlon64 on a NForce3 running a 64-bit Gentoo
build.
I'll provide more details on request, and when I get the chance. This
is a heads-up on the BUG in case someone has an "ah ha!" moment.
I took a picture of it, looks like the backtrace is:

NULL pointer dereference at 024
EIP:dmar_table_init+0x11
intel_iommu_init+0x30
pci_iommu_init+0xe
kernel_init+0x16e

Presumably something is NULL in dmar_table_init that wasn't expected to
be.. I would guess it likely crashes on any system without an Intel
IOMMU in it.
--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from ***@nospamshaw.ca
Home Page: http://www.roberthancock.com/
Li, Shaohua
2007-06-29 01:14:27 UTC
Permalink
Post by Zhang, Rui
-----Original Message-----
Sent: Friday, June 29, 2007 8:59 AM
To: Zan Lynx
Shaohua;
Post by Zhang, Rui
Keshavamurthy, Anil S
Subject: Re: 2.6.22-rc6-mm1 Intel DMAR crash on AMD x86_64
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-
Post by Zhang, Rui
rc6/2.6.22-rc6-mm1/
Post by Zan Lynx
Post by Andrew Morton
+intel-iommu-dmar-detection-and-parsing-logic.patch
+intel-iommu-pci-generic-helper-function.patch
+intel-iommu-pci-generic-helper-function-fix.patch
+intel-iommu-clflush_cache_range-now-takes-size-param.patch
+intel-iommu-iova-allocation-and-management-routines.patch
+intel-iommu-iova-allocation-and-management-routines-fix.patch
+intel-iommu-iova-allocation-and-management-routines-fix-2.patch
+intel-iommu-intel-iommu-driver.patch
+intel-iommu-intel-iommu-driver-fix.patch
+intel-iommu-intel-iommu-driver-fix-2.patch
+intel-iommu-avoid-memory-allocation-failures-in-dma-map-api-calls.patch
Post by Zhang, Rui
Post by Zan Lynx
Post by Andrew Morton
+intel-iommu-intel-iommu-cmdline-option-forcedac.patch
+intel-iommu-dmar-fault-handling-support.patch
+intel-iommu-iommu-gfx-workaround.patch
+intel-iommu-iommu-floppy-workaround.patch
+intel-iommu-iommu-floppy-workaround-fix.patch
+intel-iommu-iommu-floppy-workaround-fix-fix.patch
Intel IOMMU support
I believe the above patch set is causing the problem. On my first try
with rc6-mm1 I said Yes to the CONFIG_DMAR options. (I'm nearly as good
as random option selection :-)
The system panicked during boot, I believe it was trying to detect an
Intel IOMMU. Later when I have a camera, I will try to post a
screenshot of the backtrace. (I can't seem to get netconsole to work on
boot, only in a module).
When I recompiled without DMAR set, things seem to be working great.
I
Post by Zhang, Rui
Post by Zan Lynx
seem to be getting better disk read throughput than rc3-mm1, by the way.
This laptop is an AMD Athlon64 on a NForce3 running a 64-bit Gentoo
build.
I'll provide more details on request, and when I get the chance.
This
Post by Zhang, Rui
Post by Zan Lynx
is a heads-up on the BUG in case someone has an "ah ha!" moment.
NULL pointer dereference at 024
EIP:dmar_table_init+0x11
intel_iommu_init+0x30
pci_iommu_init+0xe
kernel_init+0x16e
Presumably something is NULL in dmar_table_init that wasn't expected to
be.. I would guess it likely crashes on any system without an Intel
IOMMU in it.
How about something like below?


int __init dmar_table_init(void)
{
+ if (!dmar_tbl)
+ return -ENODEV;
parse_dmar_table();
if (list_empty(&dmar_drhd_units)) {
printk(KERN_ERR PREFIX "No DMAR devices found\n");
return -ENODEV;
}
return 0;
}
Keshavamurthy, Anil S
2007-06-29 15:28:58 UTC
Permalink
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-
Post by Andrew Morton
rc6/2.6.22-rc6-mm1/
Post by Andrew Morton
+intel-iommu-dmar-detection-and-parsing-logic.patch
[..]
Post by Andrew Morton
Post by Andrew Morton
NULL pointer dereference at 024
EIP:dmar_table_init+0x11
intel_iommu_init+0x30
pci_iommu_init+0xe
kernel_init+0x16e
Presumably something is NULL in dmar_table_init that wasn't expected to
be.. I would guess it likely crashes on any system without an Intel
IOMMU in it.
Yup, that is correct.
Post by Andrew Morton
How about something like below?
int __init dmar_table_init(void)
{
+ if (!dmar_tbl)
+ return -ENODEV;
parse_dmar_table();
why not check for NULL in the function where it touched?
Also when there are no DMAR devices we need the below
printk on the console.
Post by Andrew Morton
if (list_empty(&dmar_drhd_units)) {
printk(KERN_ERR PREFIX "No DMAR devices found\n");
return -ENODEV;
}
return 0;
}
Here is the revised patch of the above.
Andrew, please add this fix to
+intel-iommu-dmar-detection-and-parsing-logic.patch
------------------------------------------------

Check for dmar_tbl pointer as this can be NULL on
systems with no Intel VT-d support.

Signed-off-by: Anil S Keshavamurthy <***@intel.com>

---
drivers/pci/dmar.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

Index: linux-2.6.22-rc4-mm2/drivers/pci/dmar.c
===================================================================
--- linux-2.6.22-rc4-mm2.orig/drivers/pci/dmar.c 2007-06-29 07:43:43.000000000 -0700
+++ linux-2.6.22-rc4-mm2/drivers/pci/dmar.c 2007-06-29 07:46:25.000000000 -0700
@@ -260,6 +260,8 @@
int ret = 0;

dmar = (struct acpi_table_dmar *)dmar_tbl;
+ if (!dmar)
+ return -ENODEV;

if (!dmar->width) {
printk (KERN_WARNING PREFIX "Zero: Invalid DMAR haw\n");
@@ -301,7 +303,7 @@

parse_dmar_table();
if (list_empty(&dmar_drhd_units)) {
- printk(KERN_ERR PREFIX "No DMAR devices found\n");
+ printk(KERN_INFO PREFIX "No DMAR devices found\n");
return -ENODEV;
}
return 0;
Muli Ben-Yehuda
2007-06-29 16:23:43 UTC
Permalink
Post by Keshavamurthy, Anil S
Here is the revised patch of the above.
Andrew, please add this fix to
+intel-iommu-dmar-detection-and-parsing-logic.patch
------------------------------------------------
Check for dmar_tbl pointer as this can be NULL on
systems with no Intel VT-d support.
---
drivers/pci/dmar.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Index: linux-2.6.22-rc4-mm2/drivers/pci/dmar.c
===================================================================
--- linux-2.6.22-rc4-mm2.orig/drivers/pci/dmar.c 2007-06-29 07:43:43.000000000 -0700
+++ linux-2.6.22-rc4-mm2/drivers/pci/dmar.c 2007-06-29 07:46:25.000000000 -0700
@@ -260,6 +260,8 @@
int ret = 0;
dmar = (struct acpi_table_dmar *)dmar_tbl;
+ if (!dmar)
+ return -ENODEV;
if (!dmar->width) {
printk (KERN_WARNING PREFIX "Zero: Invalid DMAR haw\n");
@@ -301,7 +303,7 @@
parse_dmar_table();
if (list_empty(&dmar_drhd_units)) {
- printk(KERN_ERR PREFIX "No DMAR devices found\n");
+ printk(KERN_INFO PREFIX "No DMAR devices found\n");
return -ENODEV;
}
return 0;
The convention is to print a KERN_DEBUG message if hardware is not
found when probing it, otherwise the boot messages become cluttered
with lots of "$FOO not found".

Cheers,
Muli
Keshavamurthy, Anil S
2007-06-29 19:23:53 UTC
Permalink
Post by Muli Ben-Yehuda
Post by Keshavamurthy, Anil S
+++ linux-2.6.22-rc4-mm2/drivers/pci/dmar.c 2007-06-29 07:46:25.000000000 -0700
@@ -260,6 +260,8 @@
int ret = 0;
dmar = (struct acpi_table_dmar *)dmar_tbl;
+ if (!dmar)
+ return -ENODEV;
if (!dmar->width) {
printk (KERN_WARNING PREFIX "Zero: Invalid DMAR haw\n");
@@ -301,7 +303,7 @@
parse_dmar_table();
if (list_empty(&dmar_drhd_units)) {
- printk(KERN_ERR PREFIX "No DMAR devices found\n");
+ printk(KERN_INFO PREFIX "No DMAR devices found\n");
return -ENODEV;
}
return 0;
The convention is to print a KERN_DEBUG message if hardware is not
found when probing it, otherwise the boot messages become cluttered
with lots of "$FOO not found".
Since this is IOMMU is built into the kernel and it is
good idea to report that the device is not present. The
above is printed only once and is consistent with other
IOMMU implementation. Atleast it is useful when people
report bugs we can makeout whether IOMMU is being detected
or not.

Here is what I see on my box.
[..]
"PCI-GART: No AMD northbridge found."
[..]
Calgary: detecting Calgary via BIOS EBDA area
Calgary: Unable to locate Rio Grande table in EBDA - bailing!
[..]

As you can see I don;t have either GART or Calgary on my box.

-Thanks,
Anil
Muli Ben-Yehuda
2007-06-29 21:18:15 UTC
Permalink
Since this is IOMMU is built into the kernel and it is good idea to
report that the device is not present.
Yes - as a debug message.
The above is printed only once and is consistent with other IOMMU
implementation. Atleast it is useful when people report bugs we can
makeout whether IOMMU is being detected or not.
If it was printed that it was detected it was - otherwise, it wasn't.
Here is what I see on my box.
[..]
"PCI-GART: No AMD northbridge found."
You're right, that should be a debug message as well.
[..]
Calgary: detecting Calgary via BIOS EBDA area
Calgary: Unable to locate Rio Grande table in EBDA - bailing!
These are KERN_DEBUG messages.

Cheers,
Muli
Andi Kleen
2007-06-30 19:50:47 UTC
Permalink
Post by Muli Ben-Yehuda
The convention is to print a KERN_DEBUG message if hardware is not
found when probing it, otherwise the boot messages become cluttered
with lots of "$FOO not found".
No the convention is to print no message at all when nothing is found
Some drivers fail this, but they're bad examples.

-Andi
Rafael J. Wysocki
2007-06-29 21:56:48 UTC
Permalink
Post by Keshavamurthy, Anil S
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-
Post by Andrew Morton
rc6/2.6.22-rc6-mm1/
Post by Andrew Morton
+intel-iommu-dmar-detection-and-parsing-logic.patch
[..]
Post by Andrew Morton
Post by Andrew Morton
NULL pointer dereference at 024
EIP:dmar_table_init+0x11
intel_iommu_init+0x30
pci_iommu_init+0xe
kernel_init+0x16e
Presumably something is NULL in dmar_table_init that wasn't expected to
be.. I would guess it likely crashes on any system without an Intel
IOMMU in it.
Yup, that is correct.
Post by Andrew Morton
How about something like below?
int __init dmar_table_init(void)
{
+ if (!dmar_tbl)
+ return -ENODEV;
parse_dmar_table();
why not check for NULL in the function where it touched?
Also when there are no DMAR devices we need the below
printk on the console.
Post by Andrew Morton
if (list_empty(&dmar_drhd_units)) {
printk(KERN_ERR PREFIX "No DMAR devices found\n");
return -ENODEV;
}
return 0;
}
Here is the revised patch of the above.
Andrew, please add this fix to
+intel-iommu-dmar-detection-and-parsing-logic.patch
------------------------------------------------
Check for dmar_tbl pointer as this can be NULL on
systems with no Intel VT-d support.
For the record, this patch fixes the boot crash on my AMD64-based test box.

Thanks,
Rafael
--
"Premature optimization is the root of all evil." - Donald Knuth
Mariusz Kozlowski
2007-06-29 12:32:09 UTC
Permalink
Hello,

allmodconfig on powerpc (iMac g3) fails due to
git-kgdb.patch. allmodconfig defaults should be changed?

CC arch/powerpc/kernel/kgdb.o
arch/powerpc/kernel/kgdb.c:485:2: error: #error Both XMON and KGDB selected
in .config. Unselect one of them.
make[1]: *** [arch/powerpc/kernel/kgdb.o] Blad 1
make: *** [arch/powerpc/kernel] Blad 2

anyway after unselecting XMON we can see:

CC [M] fs/xfs/linux-2.6/xfs_ioctl32.o
fs/xfs/linux-2.6/xfs_ioctl32.c: In function 'xfs_ioc_bulkstat_compat':
fs/xfs/linux-2.6/xfs_ioctl32.c:334: error: 'xfs_inumbers_fmt_compat'
undeclared (first use in this function)
fs/xfs/linux-2.6/xfs_ioctl32.c:334: error: (Each undeclared identifier is
reported only once
fs/xfs/linux-2.6/xfs_ioctl32.c:334: error: for each function it appears in.)
make[2]: *** [fs/xfs/linux-2.6/xfs_ioctl32.o] Blad 1
make[1]: *** [fs/xfs] Blad 2

This is just allmodconfig - not a .config that's used daily by users but I'm
used to compiling the kernel using it anyway 8)

Regards,

Mariusz
Sergei Shtylyov
2007-06-29 12:54:36 UTC
Permalink
Hello.
Post by Mariusz Kozlowski
allmodconfig on powerpc (iMac g3) fails due to
git-kgdb.patch. allmodconfig defaults should be changed?
CC arch/powerpc/kernel/kgdb.o
arch/powerpc/kernel/kgdb.c:485:2: error: #error Both XMON and KGDB selected
in .config. Unselect one of them.
make[1]: *** [arch/powerpc/kernel/kgdb.o] Blad 1
make: *** [arch/powerpc/kernel] Blad 2
I'm not sure if this will work out but maybe it's worth to disable XMON if
KGDB is selected, like this?

config XMON
bool "Include xmon kernel debugger"
depends on DEBUGGER && !KGDB
Post by Mariusz Kozlowski
Regards,
Mariusz
WBR, Sergei

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
Andrew Morton
2007-06-29 20:47:48 UTC
Permalink
On Fri, 29 Jun 2007 14:32:09 +0200
Post by Mariusz Kozlowski
Hello,
allmodconfig on powerpc (iMac g3) fails due to
git-kgdb.patch. allmodconfig defaults should be changed?
CC arch/powerpc/kernel/kgdb.o
arch/powerpc/kernel/kgdb.c:485:2: error: #error Both XMON and KGDB selected
in .config. Unselect one of them.
make[1]: *** [arch/powerpc/kernel/kgdb.o] Blad 1
make: *** [arch/powerpc/kernel] Blad 2
Jason cc'ed
Post by Mariusz Kozlowski
CC [M] fs/xfs/linux-2.6/xfs_ioctl32.o
fs/xfs/linux-2.6/xfs_ioctl32.c:334: error: 'xfs_inumbers_fmt_compat'
undeclared (first use in this function)
fs/xfs/linux-2.6/xfs_ioctl32.c:334: error: (Each undeclared identifier is
reported only once
fs/xfs/linux-2.6/xfs_ioctl32.c:334: error: for each function it appears in.)
make[2]: *** [fs/xfs/linux-2.6/xfs_ioctl32.o] Blad 1
make[1]: *** [fs/xfs] Blad 2
This is just allmodconfig - not a .config that's used daily by users but I'm
used to compiling the kernel using it anyway 8)
Michal cc'ed. I think this is the one which was already reported but
I haven't seen a fix yet?
Michal Marek
2007-06-30 08:40:45 UTC
Permalink
Post by Andrew Morton
On Fri, 29 Jun 2007 14:32:09 +0200
Post by Mariusz Kozlowski
CC [M] fs/xfs/linux-2.6/xfs_ioctl32.o
fs/xfs/linux-2.6/xfs_ioctl32.c:334: error: 'xfs_inumbers_fmt_compat'
undeclared (first use in this function)
fs/xfs/linux-2.6/xfs_ioctl32.c:334: error: (Each undeclared identifier is
reported only once
fs/xfs/linux-2.6/xfs_ioctl32.c:334: error: for each function it appears in.)
make[2]: *** [fs/xfs/linux-2.6/xfs_ioctl32.o] Blad 1
make[1]: *** [fs/xfs] Blad 2
Michal cc'ed. I think this is the one which was already reported but
I haven't seen a fix yet?
Hi, I sent you an updated patch yesterday (should I've changed the
subject / started a new thread? This was my first patch so bear with
me... :)). Anyway, the mail with the fix is here:
http://lkml.org/lkml/2007/6/29/87

Michal
Roman Zippel
2007-06-29 14:17:38 UTC
Permalink
Hi,
Post by Andrew Morton
So save yourself some hassle and check your .config carefully before
building this kernel. Make sure that everything you need is still enabled.
I found that manually adding "CONFIG_BLK_DEV=y" to the .config before
running oldconfig saved a large number of config items from getting lost.
This patch should help for this, so that this isn't done when Kconfig or
.config has been changed and they are not in sync.

bye, Roman


Reset generates values only if Kconfig and .config agree.

Signed-off-by: Roman Zippel <***@linux-m68k.org>

---
scripts/kconfig/confdata.c | 37 ++++++++++++++++++++++++++-----------
1 file changed, 26 insertions(+), 11 deletions(-)

Index: linux-2.6/scripts/kconfig/confdata.c
===================================================================
--- linux-2.6.orig/scripts/kconfig/confdata.c
+++ linux-2.6/scripts/kconfig/confdata.c
@@ -341,27 +341,42 @@ int conf_read(const char *name)
conf_unsaved++;
/* maybe print value in verbose mode... */
sym_ok:
+ if (!sym_is_choice(sym))
+ continue;
+ /* The choice symbol only has a set value (and thus is not new)
+ * if all its visible childs have values.
+ */
+ prop = sym_get_choice_prop(sym);
+ flags = sym->flags;
+ for (e = prop->expr; e; e = e->left.expr)
+ if (e->right.sym->visible != no)
+ flags &= e->right.sym->flags;
+ sym->flags &= flags | ~SYMBOL_DEF_USER;
+ }
+
+ for_all_symbols(i, sym) {
if (sym_has_value(sym) && !sym_is_choice_value(sym)) {
- if (sym->visible == no)
+ /* Reset values of generates values, so they'll appear
+ * as new, if they should become visible, but that
+ * doesn't quite work if the Kconfig and the saved
+ * configuration disagree.
+ */
+ if (sym->visible == no && !conf_unsaved)
sym->flags &= ~SYMBOL_DEF_USER;
switch (sym->type) {
case S_STRING:
case S_INT:
case S_HEX:
- if (!sym_string_within_range(sym, sym->def[S_DEF_USER].val))
- sym->flags &= ~(SYMBOL_VALID|SYMBOL_DEF_USER);
+ /* Reset a string value if it's out of range */
+ if (sym_string_within_range(sym, sym->def[S_DEF_USER].val))
+ break;
+ sym->flags &= ~(SYMBOL_VALID|SYMBOL_DEF_USER);
+ conf_unsaved++;
+ break;
default:
break;
}
}
- if (!sym_is_choice(sym))
- continue;
- prop = sym_get_choice_prop(sym);
- flags = sym->flags;
- for (e = prop->expr; e; e = e->left.expr)
- if (e->right.sym->visible != no)
- flags &= e->right.sym->flags;
- sym->flags &= flags | ~SYMBOL_DEF_USER;
}

sym_add_change_count(conf_warnings || conf_unsaved);
Andrew Morton
2007-06-29 20:58:47 UTC
Permalink
On Fri, 29 Jun 2007 16:17:38 +0200 (CEST)
Post by Roman Zippel
Post by Andrew Morton
So save yourself some hassle and check your .config carefully before
building this kernel. Make sure that everything you need is still enabled.
I found that manually adding "CONFIG_BLK_DEV=y" to the .config before
running oldconfig saved a large number of config items from getting lost.
This patch should help for this, so that this isn't done when Kconfig or
.config has been changed and they are not in sync.
bye, Roman
Reset generates values only if Kconfig and .config agree.
unclear. Could you please explain further what this change does?

Thanks.
Roman Zippel
2007-07-01 01:48:41 UTC
Permalink
Hi,
Post by Andrew Morton
Post by Roman Zippel
Reset generates values only if Kconfig and .config agree.
unclear. Could you please explain further what this change does?
Normally generated values (Kconfig entries without a prompt) are cleared
as they are regenerated anyway and so they appear as new should they
become visible and defaults work as expected (once a value is set defaults
aren't used anymore).
The detection whether a value is generated or not is only based on its
visibility status, which can quickly change for a lot of symbols by just
removing a single line from .config or adding a dependency to Kconfig as
you noticed.
The patch now suppresses this logic when .config and Kconfig aren't in
sync and .config needs to be updated, so that you can remove now a random
value from .config and oldconfig won't reask for many other values.

bye, Roman
V***@vt.edu
2007-06-29 14:50:30 UTC
Permalink
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc6/2.6.22-rc6-mm1/
Configures, builds, boots on first try. Dell Latitude D820 laptop, T7200 CPU,
x86_64 kernel. Doesn't break any of the out-of-tree stuff I use.
Post by Andrew Morton
`make oldconfig', your kernel probably won't work. I lost useful things
like CONFIG_BLK_DEV and the whole SCSI system, because they were added after
I generated my .config.
Odd - just for grins, I checked what 'make oldconfig' did when handed a .config
from 22-rc4-mm2, and it behaved just fine, much to my surprise.

I can't comment on the DMAR issues, my .config didn't include PCI_MSI so I never
got asked about that one by oldconfig. Maybe if I get brave this afternoon. :)
Andrew Morton
2007-06-29 21:01:30 UTC
Permalink
On Fri, 29 Jun 2007 10:50:30 -0400
Post by V***@vt.edu
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc6/2.6.22-rc6-mm1/
Configures, builds, boots on first try. Dell Latitude D820 laptop, T7200 CPU,
x86_64 kernel. Doesn't break any of the out-of-tree stuff I use.
Post by Andrew Morton
`make oldconfig', your kernel probably won't work. I lost useful things
like CONFIG_BLK_DEV and the whole SCSI system, because they were added after
I generated my .config.
Odd - just for grins, I checked what 'make oldconfig' did when handed a .config
from 22-rc4-mm2, and it behaved just fine, much to my surprise.
That's probably because your old config file was relatively recent, and
had things like CONFIG_BLK_DEV=y in it.

But those people who are still dragging around old config files which
predate the introduction of CONFIG_BLK_DEV will find that 2.6.22-rc6-mm1
oldconfig will give them CONFIG_BLK_DEV=n instead of current mainline's
deafult of CONFIG_BLK_DEV=y.

I think making BLK_DEV deafult to n was a bit dumb, so I dropped the
offending patches.
V***@vt.edu
2007-06-30 04:17:46 UTC
Permalink
Post by Andrew Morton
On Fri, 29 Jun 2007 10:50:30 -0400
Post by V***@vt.edu
Odd - just for grins, I checked what 'make oldconfig' did when handed a .config
from 22-rc4-mm2, and it behaved just fine, much to my surprise.
That's probably because your old config file was relatively recent, and
had things like CONFIG_BLK_DEV=y in it.
Ahh... <light bulb goes on> Yeah, it gets a 'make oldconfig' for pretty
much every single -mm, I suck at any regression testing other than "since
the last -mm".
Andrew Morton
2007-06-30 05:15:10 UTC
Permalink
Post by V***@vt.edu
Post by Andrew Morton
On Fri, 29 Jun 2007 10:50:30 -0400
Post by V***@vt.edu
Odd - just for grins, I checked what 'make oldconfig' did when handed a .config
from 22-rc4-mm2, and it behaved just fine, much to my surprise.
That's probably because your old config file was relatively recent, and
had things like CONFIG_BLK_DEV=y in it.
Ahh... <light bulb goes on> Yeah, it gets a 'make oldconfig' for pretty
much every single -mm, I suck at any regression testing other than "since
the last -mm".
All my .configs have mouldered since I lost the ability to have .config be
a symlink to a revision-controlled file (used to carry a custom patch for
this, but it died).

I continue to believe that kbuild's lets-trash-your-symlink behaviour is
obnoxious, but I was unable to persuade anyone else of this.
Jeremy Fitzhardinge
2007-06-30 16:22:38 UTC
Permalink
Post by Andrew Morton
All my .configs have mouldered since I lost the ability to have .config be
a symlink to a revision-controlled file (used to carry a custom patch for
this, but it died).
I continue to believe that kbuild's lets-trash-your-symlink behaviour is
obnoxious, but I was unable to persuade anyone else of this.
That's pretty awful, but it hasn't really affected me much since I
started using separate object directories for pretty much everything.

J
Sam Ravnborg
2007-06-30 21:10:17 UTC
Permalink
Post by Andrew Morton
Post by V***@vt.edu
Post by Andrew Morton
On Fri, 29 Jun 2007 10:50:30 -0400
Post by V***@vt.edu
Odd - just for grins, I checked what 'make oldconfig' did when handed a .config
from 22-rc4-mm2, and it behaved just fine, much to my surprise.
That's probably because your old config file was relatively recent, and
had things like CONFIG_BLK_DEV=y in it.
Ahh... <light bulb goes on> Yeah, it gets a 'make oldconfig' for pretty
much every single -mm, I suck at any regression testing other than "since
the last -mm".
All my .configs have mouldered since I lost the ability to have .config be
a symlink to a revision-controlled file (used to carry a custom patch for
this, but it died).
I continue to believe that kbuild's lets-trash-your-symlink behaviour is
obnoxious, but I was unable to persuade anyone else of this.
I thought we fixed that long time ago?!?!
I am heading for vacation for 20 days without Internet (real vacation :-))
and have properly forget most about Linux and everything about this
issue when I return.
In the unlikely event that I recall it I will take a look when I'm back.

By the way - kbuild.git is lacking behind on patches.
I have several queded from other peopel and have more in the works myself.
This will not be looked into until I'm back.

Sam
Andrew Morton
2007-06-30 21:39:14 UTC
Permalink
Post by Sam Ravnborg
Post by Andrew Morton
I continue to believe that kbuild's lets-trash-your-symlink behaviour is
obnoxious, but I was unable to persuade anyone else of this.
I thought we fixed that long time ago?!?!
Nope, a simple `make oldconfig' breaks the symlink.
Post by Sam Ravnborg
I am heading for vacation for 20 days without Internet (real vacation :-))
Can I come?
Post by Sam Ravnborg
and have properly forget most about Linux and everything about this
issue when I return.
In the unlikely event that I recall it I will take a look when I'm back.
By the way - kbuild.git is lacking behind on patches.
I have several queded from other peopel and have more in the works myself.
This will not be looked into until I'm back.
No probs - it's been like that for all time.
Roman Zippel
2007-07-01 01:53:08 UTC
Permalink
Hi,
Post by Andrew Morton
Post by Sam Ravnborg
Post by Andrew Morton
I continue to believe that kbuild's lets-trash-your-symlink behaviour is
obnoxious, but I was unable to persuade anyone else of this.
I thought we fixed that long time ago?!?!
Nope, a simple `make oldconfig' breaks the symlink.
KCONFIG_OVERWRITECONFIG was added especially for you. :-)

bye, Roman
Andrew Morton
2007-07-03 20:36:50 UTC
Permalink
On Sun, 1 Jul 2007 03:53:08 +0200 (CEST)
Post by Roman Zippel
Hi,
Post by Andrew Morton
Post by Sam Ravnborg
Post by Andrew Morton
I continue to believe that kbuild's lets-trash-your-symlink behaviour is
obnoxious, but I was unable to persuade anyone else of this.
I thought we fixed that long time ago?!?!
Nope, a simple `make oldconfig' breaks the symlink.
KCONFIG_OVERWRITECONFIG was added especially for you. :-)
But nobody told me!

It works, thanks ;)
Satyam Sharma
2007-07-01 05:31:45 UTC
Permalink
Post by Sam Ravnborg
[...]
I am heading for vacation for 20 days without Internet (real vacation :-))
I hope I'm not late in catching you here ...
Post by Sam Ravnborg
By the way - kbuild.git is lacking behind on patches.
I have several queded from other peopel and have more in the works myself.
... is http://lkml.org/lkml/2007/6/23/116/ one of those queued up too?

Note that that patch is also:
Tested-by: Adrian McMenamin <***@newgolddream.dyndns.info>

As you can see from:
http://readlist.com/lists/vger.kernel.org/linux-kernel/72/361641.html

[ I think I'll utilize the next few days going through my patches-to-do
list and resurrecting old patches-that-fell-into-lkml-blackhole ... ]

Satyam
Sam Ravnborg
2007-07-01 06:52:32 UTC
Permalink
Post by Satyam Sharma
Post by Sam Ravnborg
[...]
I am heading for vacation for 20 days without Internet (real vacation :-))
I hope I'm not late in catching you here ...
Post by Sam Ravnborg
By the way - kbuild.git is lacking behind on patches.
I have several queded from other peopel and have more in the works myself.
... is http://lkml.org/lkml/2007/6/23/116/ one of those queued up too?
Nope. I usually does not include section mismatch fixes in the kbuild.git
tree but leave that to the maintainers in the particular areas.

This patch should go in via SH maintainer since this is sh specific
driver(s).

Sam
Adrian Bunk
2007-07-01 20:23:10 UTC
Permalink
Post by Andrew Morton
...
...
+cpuidle-add-rating-to-the-governors-and-pick-the-one-with-highest-rating-by-default.patch
...
cpuidle updates
...
This patch makes the needlessly global cpuidle_replace_governor() static.

Signed-off-by: Adrian Bunk <***@stusta.de>

---
--- linux-2.6.22-rc6-mm1/drivers/cpuidle/governor.c.old 2007-06-30 03:37:06.000000000 +0200
+++ linux-2.6.22-rc6-mm1/drivers/cpuidle/governor.c 2007-06-30 03:37:14.000000000 +0200
@@ -147,7 +147,7 @@
* @exclude_rating: the rating that will be skipped while looking for
* new governor.
*/
-struct cpuidle_governor *cpuidle_replace_governor(int exclude_rating)
+static struct cpuidle_governor *cpuidle_replace_governor(int exclude_rating)
{
struct cpuidle_governor *gov;
struct cpuidle_governor *ret_gov = NULL;

-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Adrian Bunk
2007-07-01 20:23:44 UTC
Permalink
Post by Andrew Morton
...
...
git-net.patch
...
git trees
...
Struct dccp_li_cachep can become static.

Signed-off-by: Adrian Bunk <***@stusta.de>

---
--- linux-2.6.22-rc6-mm1/net/dccp/ccids/lib/loss_interval.c.old 2007-07-01 00:38:12.000000000 +0200
+++ linux-2.6.22-rc6-mm1/net/dccp/ccids/lib/loss_interval.c 2007-07-01 00:38:21.000000000 +0200
@@ -27,7 +27,7 @@
u32 dccplih_interval;
};

-struct kmem_cache *dccp_li_cachep __read_mostly;
+static struct kmem_cache *dccp_li_cachep __read_mostly;

static inline struct dccp_li_hist_entry *dccp_li_hist_entry_new(const gfp_t prio)
{

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Adrian Bunk
2007-07-01 20:23:36 UTC
Permalink
Post by Andrew Morton
...
...
+pm-reduce-code-duplication-between-mainc-and-userc.patch
...
PM updates
...
Some code can now become static.

Signed-off-by: Adrian Bunk <***@stusta.de>

---

include/linux/pm.h | 1 -
kernel/power/main.c | 4 ++--
kernel/power/power.h | 1 -
3 files changed, 2 insertions(+), 4 deletions(-)

--- linux-2.6.22-rc6-mm1/kernel/power/power.h.old 2007-07-01 00:21:34.000000000 +0200
+++ linux-2.6.22-rc6-mm1/kernel/power/power.h 2007-07-01 00:21:41.000000000 +0200
@@ -177,7 +177,6 @@
unsigned int, char *);

/* kernel/power/main.c */
-extern int suspend_enter(suspend_state_t state);
extern int suspend_devices_and_enter(suspend_state_t state);
extern struct blocking_notifier_head pm_chain_head;

--- linux-2.6.22-rc6-mm1/include/linux/pm.h.old 2007-07-01 00:22:53.000000000 +0200
+++ linux-2.6.22-rc6-mm1/include/linux/pm.h 2007-07-01 00:23:04.000000000 +0200
@@ -138,7 +138,6 @@
* @pm_ops: The new power management operations to set.
*/
extern void pm_set_ops(struct pm_ops *pm_ops);
-extern struct pm_ops *pm_ops;
extern int pm_suspend(suspend_state_t state);

extern int pm_valid_only_mem(suspend_state_t state);
--- linux-2.6.22-rc6-mm1/kernel/power/main.c.old 2007-07-01 00:21:49.000000000 +0200
+++ linux-2.6.22-rc6-mm1/kernel/power/main.c 2007-07-01 00:23:11.000000000 +0200
@@ -31,7 +31,7 @@

DEFINE_MUTEX(pm_mutex);

-struct pm_ops *pm_ops;
+static struct pm_ops *pm_ops;

/**
* pm_set_ops - Set the global power method table.
@@ -127,7 +127,7 @@
*
* This function should be called after devices have been suspended.
*/
-int suspend_enter(suspend_state_t state)
+static int suspend_enter(suspend_state_t state)
{
int error = 0;
Rafael J. Wysocki
2007-07-01 23:12:03 UTC
Permalink
Post by Adrian Bunk
Post by Andrew Morton
...
...
+pm-reduce-code-duplication-between-mainc-and-userc.patch
...
PM updates
...
Some code can now become static.
This clashes and partially overlaps with some patches that I have in the works.

Greetings,
Rafael
--
"Premature optimization is the root of all evil." - Donald Knuth
Adrian Bunk
2007-07-01 20:22:19 UTC
Permalink
Signed-off-by: Adrian Bunk <***@stusta.de>

---
--- linux-2.6.22-rc6-mm1/include/asm-m68k/fb.h.old 2007-06-30 02:40:16.000000000 +0200
+++ linux-2.6.22-rc6-mm1/include/asm-m68k/fb.h 2007-06-30 02:40:25.000000000 +0200
@@ -15,6 +15,7 @@
#else
static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma,
unsigned long off)
+{
if (CPU_IS_020_OR_030)
pgprot_val(vma->vm_page_prot) |= _PAGE_NOCACHE030;
if (CPU_IS_040_OR_060) {
Adrian Bunk
2007-07-01 20:22:43 UTC
Permalink
Post by Andrew Morton
...
...
+intel-iommu-intel-iommu-driver.patch
...
Intel IOMMU support
...
Contrary to popular belief, two identical Makefile lines don't bring any
advantages. ;-)

Signed-off-by: Adrian Bunk <***@stusta.de>

---
--- linux-2.6.22-rc6-mm1/drivers/pci/Makefile.old 2007-06-30 03:33:54.000000000 +0200
+++ linux-2.6.22-rc6-mm1/drivers/pci/Makefile 2007-06-30 03:34:04.000000000 +0200
@@ -23,9 +23,6 @@
# Build Intel IOMMU support
obj-$(CONFIG_DMAR) += dmar.o iova.o intel-iommu.o

-#Build Intel-IOMMU support
-obj-$(CONFIG_DMAR) += iova.o dmar.o intel-iommu.o
-
#
# Some architectures use the generic PCI setup functions
#
Adrian Bunk
2007-07-01 20:23:30 UTC
Permalink
This patch makes some needlessly global functions static.

Signed-off-by: Adrian Bunk <bunk-HeJ8Db2Gnd6zQB+***@public.gmane.org>

---

fs/unionfs/lookup.c | 4 +++-
fs/unionfs/mmap.c | 14 +++++++-------
fs/unionfs/union.h | 1 -
3 files changed, 10 insertions(+), 9 deletions(-)

--- linux-2.6.22-rc6-mm1/fs/unionfs/union.h.old 2007-07-01 00:01:19.000000000 +0200
+++ linux-2.6.22-rc6-mm1/fs/unionfs/union.h 2007-07-01 00:01:26.000000000 +0200
@@ -242,7 +242,6 @@
unionfs_lock_dentry(d2);
}

-extern int realloc_dentry_private_data(struct dentry *dentry);
extern int new_dentry_private_data(struct dentry *dentry);
extern void free_dentry_private_data(struct dentry *dentry);
extern void update_bstart(struct dentry *dentry);
--- linux-2.6.22-rc6-mm1/fs/unionfs/lookup.c.old 2007-07-01 00:05:02.000000000 +0200
+++ linux-2.6.22-rc6-mm1/fs/unionfs/lookup.c 2007-07-01 00:06:05.000000000 +0200
@@ -18,6 +18,8 @@

#include "union.h"

+static int realloc_dentry_private_data(struct dentry *dentry);
+
/* is the filename valid == !(whiteout for a file or opaque dir marker) */
static int is_validname(const char *name)
{
@@ -488,7 +490,7 @@
}

/* UNIONFS_D(dentry)->lock must be locked */
-int realloc_dentry_private_data(struct dentry *dentry)
+static int realloc_dentry_private_data(struct dentry *dentry)
{
if (!__realloc_dentry_private_data(dentry))
return 0;
--- linux-2.6.22-rc6-mm1/fs/unionfs/mmap.c.old 2007-07-01 00:08:07.000000000 +0200
+++ linux-2.6.22-rc6-mm1/fs/unionfs/mmap.c 2007-07-01 00:12:05.000000000 +0200
@@ -52,7 +52,7 @@
* such day as Linux can better support address_space_ops in a stackable
* fashion.
*/
-int unionfs_writepage(struct page *page, struct writeback_control *wbc)
+static int unionfs_writepage(struct page *page, struct writeback_control *wbc)
{
int err = -EIO;
struct inode *inode;
@@ -198,7 +198,7 @@
return err;
}

-int unionfs_readpage(struct file *file, struct page *page)
+static int unionfs_readpage(struct file *file, struct page *page)
{
int err;

@@ -225,8 +225,8 @@
return err;
}

-int unionfs_prepare_write(struct file *file, struct page *page, unsigned from,
- unsigned to)
+static int unionfs_prepare_write(struct file *file, struct page *page,
+ unsigned from, unsigned to)
{
int err;

@@ -239,8 +239,8 @@
return err;
}

-int unionfs_commit_write(struct file *file, struct page *page, unsigned from,
- unsigned to)
+static int unionfs_commit_write(struct file *file, struct page *page,
+ unsigned from, unsigned to)
{
int err = -ENOMEM;
struct inode *inode, *lower_inode;
@@ -308,7 +308,7 @@
return err; /* assume all is ok */
}

-void unionfs_sync_page(struct page *page)
+static void unionfs_sync_page(struct page *page)
{
struct inode *inode;
struct inode *lower_inode;
Josef Sipek
2007-07-02 01:42:49 UTC
Permalink
Post by Adrian Bunk
This patch makes some needlessly global functions static.
...
Post by Adrian Bunk
--- linux-2.6.22-rc6-mm1/fs/unionfs/lookup.c.old 2007-07-01 00:05:02.000000000 +0200
+++ linux-2.6.22-rc6-mm1/fs/unionfs/lookup.c 2007-07-01 00:06:05.000000000 +0200
@@ -18,6 +18,8 @@
#include "union.h"
+static int realloc_dentry_private_data(struct dentry *dentry);
+
/* is the filename valid == !(whiteout for a file or opaque dir marker) */
I forget who said it, but someone wasn't very happy with prototypes like
that in .c files. What's the prefered way - are they ok for static symbols?

Josef "Jeff" Sipek.
--
We have joy, we have fun, we have Linux on a Sun...
Satyam Sharma
2007-07-02 02:21:37 UTC
Permalink
Hi,

[ Cc:'s trimmed ]
Post by Josef Sipek
Post by Adrian Bunk
This patch makes some needlessly global functions static.
...
Post by Adrian Bunk
--- linux-2.6.22-rc6-mm1/fs/unionfs/lookup.c.old 2007-07-01 00:05:02.000000000 +0200
+++ linux-2.6.22-rc6-mm1/fs/unionfs/lookup.c 2007-07-01 00:06:05.000000000 +0200
@@ -18,6 +18,8 @@
#include "union.h"
+static int realloc_dentry_private_data(struct dentry *dentry);
+
/* is the filename valid == !(whiteout for a file or opaque dir marker) */
I forget who said it, but someone wasn't very happy with prototypes like
that in .c files. What's the prefered way - are they ok for static symbols?
The preferred way is to push static functions' definitions above the
callsites (caller functions) in the same file, if possible.
Perhaps Adrian was in a hurry so didn't do that ...

Satyam
Adrian Bunk
2007-07-02 02:27:59 UTC
Permalink
Post by Josef Sipek
Post by Adrian Bunk
This patch makes some needlessly global functions static.
...
Post by Adrian Bunk
--- linux-2.6.22-rc6-mm1/fs/unionfs/lookup.c.old 2007-07-01 00:05:02.000000000 +0200
+++ linux-2.6.22-rc6-mm1/fs/unionfs/lookup.c 2007-07-01 00:06:05.000000000 +0200
@@ -18,6 +18,8 @@
#include "union.h"
+static int realloc_dentry_private_data(struct dentry *dentry);
+
/* is the filename valid == !(whiteout for a file or opaque dir marker) */
I forget who said it, but someone wasn't very happy with prototypes like
that in .c files. What's the prefered way - are they ok for static symbols?
It might have even been me who said this - but about global functions.

For global functions, prototypes in header files allow gcc to check
whether the prototype matches the actual function. With a prototype
in the C file of the caller that's not possible, and if they are
different it can result in nasty runtime errors.

For static functions that's not an issue since gcc sees both the
prototype and the actual function.
Post by Josef Sipek
Josef "Jeff" Sipek.
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
Adrian Bunk
2007-07-01 20:23:20 UTC
Permalink
Post by Andrew Morton
...
...
git-dvb.patch
...
git trees
...
The following doesn't make much sense:

drivers/media/video/Kconfig:
...
config TUNER_TEA5761
tristate "TEA 5761 radio tuner (EXPERIMENTAL)"
...

drivers/media/video/Makefile:
...
ifneq ($(CONFIG_TUNER_TEA5761),)
tuner-objs += tea5761.o
endif
...

With this setup, TUNER_TEA5761=m is equivalent to TUNER_TEA5761=y.

This patch therefore changes TUNER_TEA5761 to a bool.

The missing dependency on EXPERIMENTAL the prompt text indicates also
gets added by this patch.

Additionally, the Makefile entry can now be written in a more compact way.

Signed-off-by: Adrian Bunk <***@stusta.de>

---

BTW: tea5761.c is currently completely unused.

drivers/media/video/Kconfig | 3 ++-
drivers/media/video/Makefile | 4 +---
2 files changed, 3 insertions(+), 4 deletions(-)

--- linux-2.6.22-rc6-mm1/drivers/media/video/Kconfig.old 2007-06-30 03:51:13.000000000 +0200
+++ linux-2.6.22-rc6-mm1/drivers/media/video/Kconfig 2007-06-30 03:51:40.000000000 +0200
@@ -490,7 +490,8 @@
If in doubt, say N.

config TUNER_TEA5761
- tristate "TEA 5761 radio tuner (EXPERIMENTAL)"
+ bool "TEA 5761 radio tuner (EXPERIMENTAL)"
+ depends on EXPERIMENTAL
depends on I2C
select VIDEO_TUNER
help
--- linux-2.6.22-rc6-mm1/drivers/media/video/Makefile.old 2007-06-30 03:52:00.000000000 +0200
+++ linux-2.6.22-rc6-mm1/drivers/media/video/Makefile 2007-06-30 03:53:25.000000000 +0200
@@ -7,9 +7,7 @@
tuner-objs := tuner-core.o tuner-types.o tuner-simple.o \
mt20xx.o tda8290.o tea5767.o tda9887.o

-ifneq ($(CONFIG_TUNER_TEA5761),)
- tuner-objs += tea5761.o
-endif
+tuner-$(CONFIG_TUNER_TEA5761) += tea5761.o

msp3400-objs := msp3400-driver.o msp3400-kthreads.o
Michael Krufky
2007-07-01 21:29:31 UTC
Permalink
Post by Adrian Bunk
Post by Andrew Morton
...
...
git-dvb.patch
...
git trees
...
...
config TUNER_TEA5761
tristate "TEA 5761 radio tuner (EXPERIMENTAL)"
...
...
ifneq ($(CONFIG_TUNER_TEA5761),)
tuner-objs += tea5761.o
endif
...
With this setup, TUNER_TEA5761=m is equivalent to TUNER_TEA5761=y.
This patch therefore changes TUNER_TEA5761 to a bool.
The missing dependency on EXPERIMENTAL the prompt text indicates also
gets added by this patch.
Additionally, the Makefile entry can now be written in a more compact way.
Acked-by: Michael Krufky <***@linuxtv.org>

Thanks, Adrian

Mauro, I'll push this into hg and send you a pull request.
Post by Adrian Bunk
---
BTW: tea5761.c is currently completely unused.
drivers/media/video/Kconfig | 3 ++-
drivers/media/video/Makefile | 4 +---
2 files changed, 3 insertions(+), 4 deletions(-)
--- linux-2.6.22-rc6-mm1/drivers/media/video/Kconfig.old 2007-06-30 03:51:13.000000000 +0200
+++ linux-2.6.22-rc6-mm1/drivers/media/video/Kconfig 2007-06-30 03:51:40.000000000 +0200
@@ -490,7 +490,8 @@
If in doubt, say N.
config TUNER_TEA5761
- tristate "TEA 5761 radio tuner (EXPERIMENTAL)"
+ bool "TEA 5761 radio tuner (EXPERIMENTAL)"
+ depends on EXPERIMENTAL
depends on I2C
select VIDEO_TUNER
help
--- linux-2.6.22-rc6-mm1/drivers/media/video/Makefile.old 2007-06-30 03:52:00.000000000 +0200
+++ linux-2.6.22-rc6-mm1/drivers/media/video/Makefile 2007-06-30 03:53:25.000000000 +0200
@@ -7,9 +7,7 @@
tuner-objs := tuner-core.o tuner-types.o tuner-simple.o \
mt20xx.o tda8290.o tea5767.o tda9887.o
-ifneq ($(CONFIG_TUNER_TEA5761),)
- tuner-objs += tea5761.o
-endif
+tuner-$(CONFIG_TUNER_TEA5761) += tea5761.o
msp3400-objs := msp3400-driver.o msp3400-kthreads.o
Adrian Bunk
2007-07-01 20:23:26 UTC
Permalink
Post by Andrew Morton
...
...
+mm-variable-length-argument-support.patch
...
Remove the fixed command-line length limit
...
bprm_mm_init doesn't have any modular users.

Signed-off-by: Adrian Bunk <***@stusta.de>

---
--- linux-2.6.22-rc6-mm1/fs/exec.c.old 2007-06-30 04:18:22.000000000 +0200
+++ linux-2.6.22-rc6-mm1/fs/exec.c 2007-06-30 04:18:36.000000000 +0200
@@ -379,7 +379,6 @@

return err;
}
-EXPORT_SYMBOL(bprm_mm_init);

/*
* count() counts the number of strings in array ARGV.
Adrian Bunk
2007-07-01 20:23:53 UTC
Permalink
Post by Andrew Morton
...
...
git-selinux.patch
...
git trees
...
Unneeded export.

Signed-off-by: Adrian Bunk <***@stusta.de>

---
--- linux-2.6.22-rc6-mm1/security/security.c.old 2007-07-01 21:28:34.000000000 +0200
+++ linux-2.6.22-rc6-mm1/security/security.c 2007-07-01 21:28:41.000000000 +0200
@@ -177,5 +177,4 @@
EXPORT_SYMBOL_GPL(unregister_security);
EXPORT_SYMBOL_GPL(mod_reg_security);
EXPORT_SYMBOL_GPL(mod_unreg_security);
-EXPORT_SYMBOL_GPL(mmap_min_addr);
EXPORT_SYMBOL(security_ops);
James Morris
2007-07-01 22:38:37 UTC
Permalink
Post by Adrian Bunk
Post by Andrew Morton
...
...
git-selinux.patch
...
git trees
...
Unneeded export.
Thanks, applied to
git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6.git#for-akpm
--
James Morris
<***@namei.org>
Adrian Bunk
2007-07-01 20:23:57 UTC
Permalink
Post by Andrew Morton
...
...
+git-selinux-disable-mmap_min_addr-by-default.patch
Fix git-selinux
...
This became dead code.

Signed-off-by: Adrian Bunk <***@stusta.de>

---

security/selinux/hooks.c | 7 -------
1 file changed, 7 deletions(-)

--- linux-2.6.22-rc6-mm1/security/selinux/hooks.c.old 2007-07-01 21:35:36.000000000 +0200
+++ linux-2.6.22-rc6-mm1/security/selinux/hooks.c 2007-07-01 21:35:48.000000000 +0200
@@ -112,9 +112,6 @@
/* Original (dummy) security module. */
static struct security_operations *original_ops = NULL;

-/* Did we enable minimum mmap address checking? */
-static int enabled_mmap_min_addr;
-
/* Minimal support for a secondary security module,
just to allow the use of the dummy or capability modules.
The owlsm module can alternatively be used as a secondary
@@ -5079,10 +5076,6 @@
selinux_disabled = 1;
selinux_enabled = 0;

- /* Disable minimum mmap address check only if we enabled it */
- if (enabled_mmap_min_addr)
- mmap_min_addr = 0;
-
/* Reset security_ops to the secondary module, dummy or capability. */
security_ops = secondary_ops;
James Morris
2007-07-01 22:39:04 UTC
Permalink
Post by Adrian Bunk
Post by Andrew Morton
...
...
+git-selinux-disable-mmap_min_addr-by-default.patch
Fix git-selinux
...
This became dead code.
Thanks, it was already fixed in my tree.


- James
--
James Morris
<***@namei.org>
Adrian Bunk
2007-07-01 20:24:03 UTC
Permalink
Post by Andrew Morton
...
...
git-dvb.patch
...
git trees
...
Now that it's static, it should no longer be exported to modules...

Signed-off-by: Adrian Bunk <***@stusta.de>

---
--- linux-2.6.22-rc6-mm1/drivers/media/dvb/frontends/dvb-pll.c.old 2007-07-01 21:42:17.000000000 +0200
+++ linux-2.6.22-rc6-mm1/drivers/media/dvb/frontends/dvb-pll.c 2007-07-01 21:42:25.000000000 +0200
@@ -587,7 +587,6 @@
// calculate the frequency we set it to
return (div * desc->entries[i].stepsize) - desc->iffreq;
}
-EXPORT_SYMBOL(dvb_pll_configure);

static int dvb_pll_release(struct dvb_frontend *fe)
{
Michael Krufky
2007-07-01 21:29:15 UTC
Permalink
Post by Adrian Bunk
Post by Andrew Morton
...
...
git-dvb.patch
...
git trees
...
Now that it's static, it should no longer be exported to modules...
---
--- linux-2.6.22-rc6-mm1/drivers/media/dvb/frontends/dvb-pll.c.old 2007-07-01 21:42:17.000000000 +0200
+++ linux-2.6.22-rc6-mm1/drivers/media/dvb/frontends/dvb-pll.c 2007-07-01 21:42:25.000000000 +0200
@@ -587,7 +587,6 @@
// calculate the frequency we set it to
return (div * desc->entries[i].stepsize) - desc->iffreq;
}
-EXPORT_SYMBOL(dvb_pll_configure);
static int dvb_pll_release(struct dvb_frontend *fe)
{
Thanks, Adrian... I'm not sure how I missed that one ;-)

Acked-by: Michael Krufky <***@linuxtv.org>


Mauro, I'll push this into hg and send you a pull request.

Cheers,
Mike
Adrian Bunk
2007-07-04 19:00:46 UTC
Permalink
<-- snip -->

=2E..
CC arch/i386/xen/enlighten.o
/home/bunk/linux/kernel-2.6/linux-2.6.22-rc6-mm1/arch/i386/xen/enlighte=
n.c: In function =E2=80=98xen_alloc_pt_init=E2=80=99:
/home/bunk/linux/kernel-2.6/linux-2.6.22-rc6-mm1/arch/i386/xen/enlighte=
n.c:657: error: =E2=80=98mem_map=E2=80=99 undeclared (first use in this=
function)
=2E..
make[2]: *** [arch/i386/xen/enlighten.o] Error 1

<-- snip -->

cu
Adrian

--=20

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
Jeremy Fitzhardinge
2007-07-05 00:32:57 UTC
Permalink
Xen currently relies on contigious memory (ie, no numa, discontig or
sparse memory). Specifically it uses mem_map, which is only available
if CONFIG_NEED_MULTIPLE_NODES is not defined.

Signed-off-by: Jeremy Fitzhardinge <***@xensource.com>
Cc: Adrian Bunk <***@stusta.de>
Cc: Andi Kleen <***@suse.de>

---
arch/i386/xen/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

===================================================================
--- a/arch/i386/xen/Kconfig
+++ b/arch/i386/xen/Kconfig
@@ -4,7 +4,7 @@

config XEN
bool "Enable support for Xen hypervisor"
- depends on PARAVIRT && X86_CMPXCHG && X86_TSC
+ depends on PARAVIRT && X86_CMPXCHG && X86_TSC && !NEED_MULTIPLE_NODES
help
This is the Linux Xen port. Enabling this will allow the
kernel to boot in a paravirtualized environment under the
Adrian Bunk
2007-07-05 23:22:24 UTC
Permalink
Every file should include the headers containing the prototypes for
its global functions.

Signed-off-by: Adrian Bunk <***@stusta.de>

---
--- linux-2.6.22-rc6-mm1/arch/i386/xen/events.c.old 2007-07-03 04:26:28.000000000 +0200
+++ linux-2.6.22-rc6-mm1/arch/i386/xen/events.c 2007-07-03 04:26:59.000000000 +0200
@@ -31,6 +31,7 @@
#include <asm/irq.h>
#include <asm/sync_bitops.h>
#include <asm/xen/hypercall.h>
+#include <asm/xen/hypervisor.h>

#include <xen/events.h>
#include <xen/interface/xen.h>
Jeremy Fitzhardinge
2007-07-06 00:10:12 UTC
Permalink
Post by Adrian Bunk
Every file should include the headers containing the prototypes for
its global functions
OK.

J
Adrian Bunk
2007-07-05 23:22:55 UTC
Permalink
xen_pgd_pin() can become static.

Signed-off-by: Adrian Bunk <***@stusta.de>

---

arch/i386/xen/mmu.c | 2 +-
arch/i386/xen/mmu.h | 3 ---
2 files changed, 1 insertion(+), 4 deletions(-)

--- linux-2.6.22-rc6-mm1/arch/i386/xen/mmu.h.old 2007-07-04 20:42:44.000000000 +0200
+++ linux-2.6.22-rc6-mm1/arch/i386/xen/mmu.h 2007-07-04 20:42:54.000000000 +0200
@@ -27,9 +27,6 @@
void xen_dup_mmap(struct mm_struct *oldmm, struct mm_struct *mm);
void xen_exit_mmap(struct mm_struct *mm);

-void xen_pgd_pin(pgd_t *pgd);
-//void xen_pgd_unpin(pgd_t *pgd);
-
#ifdef CONFIG_X86_PAE
unsigned long long xen_pte_val(pte_t);
unsigned long long xen_pmd_val(pmd_t);
--- linux-2.6.22-rc6-mm1/arch/i386/xen/mmu.c.old 2007-07-04 20:43:00.000000000 +0200
+++ linux-2.6.22-rc6-mm1/arch/i386/xen/mmu.c 2007-07-04 20:43:06.000000000 +0200
@@ -408,7 +408,7 @@
/* This is called just after a mm has been created, but it has not
been used yet. We need to make sure that its pagetable is all
read-only, and can be pinned. */
-void xen_pgd_pin(pgd_t *pgd)
+static void xen_pgd_pin(pgd_t *pgd)
{
struct multicall_space mcs;
struct mmuext_op *op;
Jeremy Fitzhardinge
2007-07-06 00:09:57 UTC
Permalink
Post by Adrian Bunk
xen_pgd_pin() can become static.
Hold off on that for now. I have some local patches which add other
xen/ files which use it.

J
Adrian Bunk
2007-07-05 23:22:42 UTC
Permalink
This patch fixes the following compile error:

<-- snip -->

=2E..
CC arch/i386/xen/mmu.o
In file included from=20
/home/bunk/linux/kernel-2.6/linux-2.6.22-rc6-mm1/arch/i386/xen/mmu.c:46=
:
include2/asm/mmu_context.h: In function =E2=80=98switch_mm=E2=80=99:
include2/asm/mmu_context.h:45: error: dereferencing pointer to incomple=
te type
include2/asm/mmu_context.h:50: error: dereferencing pointer to incomple=
te type
include2/asm/mmu_context.h:53: error: dereferencing pointer to incomple=
te type
include2/asm/mmu_context.h:58: error: dereferencing pointer to incomple=
te type
include2/asm/mmu_context.h:58: error: dereferencing pointer to incomple=
te type
include2/asm/mmu_context.h:59: error: dereferencing pointer to incomple=
te type
include2/asm/mmu_context.h:66: error: dereferencing pointer to incomple=
te type
include2/asm/mmu_context.h:70: error: dereferencing pointer to incomple=
te type
include2/asm/mmu_context.h:71: error: dereferencing pointer to incomple=
te type
=2E..
make[2]: *** [arch/i386/xen/mmu.o] Error 1

<-- snip -->

Signed-off-by: Adrian Bunk <***@stusta.de>

---
--- linux-2.6.22-rc6-mm1/arch/i386/xen/mmu.c.old 2007-07-04 00:11:28.00=
0000000 +0200
+++ linux-2.6.22-rc6-mm1/arch/i386/xen/mmu.c 2007-07-04 00:11:39.000000=
000 +0200
@@ -39,6 +39,7 @@
* Jeremy Fitzhardinge <***@xensource.com>, XenSource Inc, 2007
*/
#include <linux/highmem.h>
+#include <linux/sched.h>
=20
#include <asm/bug.h>
#include <asm/pgtable.h>
Jeremy Fitzhardinge
2007-07-06 00:08:52 UTC
Permalink
Hm, OK. What .config?

J
Adrian Bunk
2007-07-05 23:23:38 UTC
Permalink
This patch makes the following needlessly global functions static:
- load_balance_start()
- load_balance_next()

Signed-off-by: Adrian Bunk <***@stusta.de>

---

kernel/sched.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--- linux-2.6.22-rc6-mm1/kernel/sched.c.old 2007-07-05 16:39:42.000000000 +0200
+++ linux-2.6.22-rc6-mm1/kernel/sched.c 2007-07-05 16:43:38.000000000 +0200
@@ -2011,7 +2011,7 @@
* classes, starting with the highest-prio one:
*/

-struct task_struct * load_balance_start(struct rq *rq)
+static struct task_struct * load_balance_start(struct rq *rq)
{
struct sched_class *class = sched_class_highest;
struct task_struct *p;
@@ -2028,7 +2028,7 @@
return NULL;
}

-struct task_struct * load_balance_next(struct rq *rq)
+static struct task_struct * load_balance_next(struct rq *rq)
{
struct sched_class *class = rq->load_balance_class;
struct task_struct *p;
Tilman Schmidt
2007-07-06 14:03:17 UTC
Permalink
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc6/2.6.22-rc6-mm1/
- Added the kgdb tree, as git-kgdb.patch (Jason Wessel
This is a large patch which unifies all the various kgdb stubs lying
around various architectures and extends kgdb support to other
architectures. Supported architectures are at present arm, i386, ia64,
mips, ppc32, ppc64, sh, and x86_64.
Subject to review, we're aiming this at 2.6.24.
Built a kernel with this just for fun on a Pentium D 940 system running
a 32 bit install of SuSE 10.2. It complained thusly relatively early
during startup:

--------8<--------8<--------8<--------8<--------8<--------8<--------8<
Bad IO access at port 10000 (outb(val,port))
WARNING: at lib/iomap.c:44 bad_io_access()
[dump_trace+99/475] dump_trace+0x63/0x1db
[show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
[show_trace+18/20] show_trace+0x12/0x14
[dump_stack+22/24] dump_stack+0x16/0x18
[bad_io_access+84/86] bad_io_access+0x54/0x56
[iowrite8+52/54] iowrite8+0x34/0x36
[kgdb8250_uart_init+164/609] kgdb8250_uart_init+0xa4/0x261
[kgdb_init_io+172/200] kgdb_init_io+0xac/0xc8
[kgdb_late_entry+54/164] kgdb_late_entry+0x36/0xa4
[kernel_init+346/732] kernel_init+0x15a/0x2dc
[kernel_thread_helper+7/16] kernel_thread_helper+0x7/0x10
=======================
Bad IO access at port 10000 (return inb(port))
WARNING: at lib/iomap.c:44 bad_io_access()
[dump_trace+99/475] dump_trace+0x63/0x1db
[show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
[show_trace+18/20] show_trace+0x12/0x14
[dump_stack+22/24] dump_stack+0x16/0x18
[bad_io_access+84/86] bad_io_access+0x54/0x56
[ioread8+40/47] ioread8+0x28/0x2f
[kgdb8250_uart_init+334/609] kgdb8250_uart_init+0x14e/0x261
[kgdb_init_io+172/200] kgdb_init_io+0xac/0xc8
input: AT Translated Set 2 keyboard as /class/input/input1
[kgdb_late_entry+54/164] kgdb_late_entry+0x36/0xa4
[kernel_init+346/732] kernel_init+0x15a/0x2dc
[kernel_thread_helper+7/16] kernel_thread_helper+0x7/0x10
=======================
Bad IO access at port 10000 (outb(val,port))
WARNING: at lib/iomap.c:44 bad_io_access()
[dump_trace+99/475] dump_trace+0x63/0x1db
[show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
[show_trace+18/20] show_trace+0x12/0x14
[dump_stack+22/24] dump_stack+0x16/0x18
[bad_io_access+84/86] bad_io_access+0x54/0x56
[iowrite8+52/54] iowrite8+0x34/0x36
[kgdb8250_uart_init+164/609] kgdb8250_uart_init+0xa4/0x261
[kgdb8250_late_init+32/153] kgdb8250_late_init+0x20/0x99
[kgdb_late_entry+136/164] kgdb_late_entry+0x88/0xa4
[kernel_init+346/732] kernel_init+0x15a/0x2dc
[kernel_thread_helper+7/16] kernel_thread_helper+0x7/0x10
=======================
Bad IO access at port 10000 (return inb(port))
WARNING: at lib/iomap.c:44 bad_io_access()
[dump_trace+99/475] dump_trace+0x63/0x1db
[show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
[show_trace+18/20] show_trace+0x12/0x14
[dump_stack+22/24] dump_stack+0x16/0x18
[bad_io_access+84/86] bad_io_access+0x54/0x56
[ioread8+40/47] ioread8+0x28/0x2f
[kgdb8250_uart_init+334/609] kgdb8250_uart_init+0x14e/0x261
[kgdb8250_late_init+32/153] kgdb8250_late_init+0x20/0x99
[kgdb_late_entry+136/164] kgdb_late_entry+0x88/0xa4
[kernel_init+346/732] kernel_init+0x15a/0x2dc
[kernel_thread_helper+7/16] kernel_thread_helper+0x7/0x10
=======================
KGDB failed to request the serial IRQ (0)
registered taskstats version 1
Freeing unused kernel memory: 236k freed
--------8<--------8<--------8<--------8<--------8<--------8<--------8<

Apart from that, the kernel runs fine, though its subjectively a bit
sluggish compared to 2.6.22-rc6-mm1 without kgdb. Its uname -a is:
Linux xenon 2.6.22-rc6-mm1-test4 #10 SMP PREEMPT Thu Jul 5 23:41:32 CEST 2007 i686 i686 i386 GNU/Linux
I didn't even try to actually do anything with kgdb, though.

The .config delta is:

--- good.config-3 2007-07-05 22:35:30.000000000 +0200
+++ .config 2007-07-05 23:23:09.000000000 +0200
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.22-rc6-mm1
-# Thu Jul 5 22:05:32 2007
+# Thu Jul 5 23:23:09 2007
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
@@ -35,7 +35,7 @@
#
# General setup
#
-CONFIG_LOCALVERSION="-test3"
+CONFIG_LOCALVERSION="-test4"
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SWAP_PREFETCH=y
@@ -2529,8 +2529,24 @@
CONFIG_FAIL_MAKE_REQUEST=y
CONFIG_FAULT_INJECTION_DEBUG_FS=y
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
-# CONFIG_WANT_EXTRA_DEBUG_INFORMATION is not set
-# CONFIG_KGDB is not set
+CONFIG_WANT_EXTRA_DEBUG_INFORMATION=y
+CONFIG_KGDB=y
+# CONFIG_KGDB_CONSOLE is not set
+# CONFIG_KGDB_ONLY_MODULES is not set
+CONFIG_KGDB_8250_NOMODULE=y
+# CONFIG_KGDBOE_NOMODULE is not set
+# CONFIG_KGDB_MPSC is not set
+# CONFIG_KGDB_CPM_UART is not set
+# CONFIG_KGDB_SIBYTE is not set
+# CONFIG_KGDB_TXX9 is not set
+# CONFIG_KGDB_SH_SCI is not set
+# CONFIG_KGDB_AMBA_PL011 is not set
+# CONFIG_KGDB_PXA_SERIAL is not set
+# CONFIG_KGDBOE is not set
+CONFIG_KGDB_8250=y
+CONFIG_KGDB_SIMPLE_SERIAL=y
+CONFIG_KGDB_BAUDRATE=115200
+CONFIG_KGDB_PORT_NUM=1
CONFIG_EARLY_PRINTK=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y


HTH
T.
--
Tilman Schmidt E-Mail: ***@imap.cc
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Ungeöffnet mindestens haltbar bis: (siehe Rückseite)
Andrew Morton
2007-07-06 16:45:19 UTC
Permalink
Post by Tilman Schmidt
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc6/2.6.22-rc6-mm1/
- Added the kgdb tree, as git-kgdb.patch (Jason Wessel
This is a large patch which unifies all the various kgdb stubs lying
around various architectures and extends kgdb support to other
architectures. Supported architectures are at present arm, i386, ia64,
mips, ppc32, ppc64, sh, and x86_64.
Subject to review, we're aiming this at 2.6.24.
Built a kernel with this just for fun on a Pentium D 940 system running
a 32 bit install of SuSE 10.2. It complained thusly relatively early
--------8<--------8<--------8<--------8<--------8<--------8<--------8<
Bad IO access at port 10000 (outb(val,port))
WARNING: at lib/iomap.c:44 bad_io_access()
[dump_trace+99/475] dump_trace+0x63/0x1db
[show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
[show_trace+18/20] show_trace+0x12/0x14
[dump_stack+22/24] dump_stack+0x16/0x18
[bad_io_access+84/86] bad_io_access+0x54/0x56
[iowrite8+52/54] iowrite8+0x34/0x36
[kgdb8250_uart_init+164/609] kgdb8250_uart_init+0xa4/0x261
[kgdb_init_io+172/200] kgdb_init_io+0xac/0xc8
[kgdb_late_entry+54/164] kgdb_late_entry+0x36/0xa4
[kernel_init+346/732] kernel_init+0x15a/0x2dc
[kernel_thread_helper+7/16] kernel_thread_helper+0x7/0x10
=======================
Bad IO access at port 10000 (return inb(port))
WARNING: at lib/iomap.c:44 bad_io_access()
[dump_trace+99/475] dump_trace+0x63/0x1db
[show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
[show_trace+18/20] show_trace+0x12/0x14
[dump_stack+22/24] dump_stack+0x16/0x18
[bad_io_access+84/86] bad_io_access+0x54/0x56
[ioread8+40/47] ioread8+0x28/0x2f
[kgdb8250_uart_init+334/609] kgdb8250_uart_init+0x14e/0x261
[kgdb_init_io+172/200] kgdb_init_io+0xac/0xc8
input: AT Translated Set 2 keyboard as /class/input/input1
[kgdb_late_entry+54/164] kgdb_late_entry+0x36/0xa4
[kernel_init+346/732] kernel_init+0x15a/0x2dc
[kernel_thread_helper+7/16] kernel_thread_helper+0x7/0x10
=======================
Bad IO access at port 10000 (outb(val,port))
WARNING: at lib/iomap.c:44 bad_io_access()
[dump_trace+99/475] dump_trace+0x63/0x1db
[show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
[show_trace+18/20] show_trace+0x12/0x14
[dump_stack+22/24] dump_stack+0x16/0x18
[bad_io_access+84/86] bad_io_access+0x54/0x56
[iowrite8+52/54] iowrite8+0x34/0x36
[kgdb8250_uart_init+164/609] kgdb8250_uart_init+0xa4/0x261
[kgdb8250_late_init+32/153] kgdb8250_late_init+0x20/0x99
[kgdb_late_entry+136/164] kgdb_late_entry+0x88/0xa4
[kernel_init+346/732] kernel_init+0x15a/0x2dc
[kernel_thread_helper+7/16] kernel_thread_helper+0x7/0x10
=======================
Bad IO access at port 10000 (return inb(port))
WARNING: at lib/iomap.c:44 bad_io_access()
[dump_trace+99/475] dump_trace+0x63/0x1db
[show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
[show_trace+18/20] show_trace+0x12/0x14
[dump_stack+22/24] dump_stack+0x16/0x18
[bad_io_access+84/86] bad_io_access+0x54/0x56
[ioread8+40/47] ioread8+0x28/0x2f
[kgdb8250_uart_init+334/609] kgdb8250_uart_init+0x14e/0x261
[kgdb8250_late_init+32/153] kgdb8250_late_init+0x20/0x99
[kgdb_late_entry+136/164] kgdb_late_entry+0x88/0xa4
[kernel_init+346/732] kernel_init+0x15a/0x2dc
[kernel_thread_helper+7/16] kernel_thread_helper+0x7/0x10
=======================
KGDB failed to request the serial IRQ (0)
registered taskstats version 1
Freeing unused kernel memory: 236k freed
--------8<--------8<--------8<--------8<--------8<--------8<--------8<
Apart from that, the kernel runs fine, though its subjectively a bit
Linux xenon 2.6.22-rc6-mm1-test4 #10 SMP PREEMPT Thu Jul 5 23:41:32 CEST 2007 i686 i686 i386 GNU/Linux
I didn't even try to actually do anything with kgdb, though.
--- good.config-3 2007-07-05 22:35:30.000000000 +0200
+++ .config 2007-07-05 23:23:09.000000000 +0200
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.22-rc6-mm1
-# Thu Jul 5 22:05:32 2007
+# Thu Jul 5 23:23:09 2007
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
@@ -35,7 +35,7 @@
#
# General setup
#
-CONFIG_LOCALVERSION="-test3"
+CONFIG_LOCALVERSION="-test4"
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SWAP_PREFETCH=y
@@ -2529,8 +2529,24 @@
CONFIG_FAIL_MAKE_REQUEST=y
CONFIG_FAULT_INJECTION_DEBUG_FS=y
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
-# CONFIG_WANT_EXTRA_DEBUG_INFORMATION is not set
-# CONFIG_KGDB is not set
+CONFIG_WANT_EXTRA_DEBUG_INFORMATION=y
+CONFIG_KGDB=y
+# CONFIG_KGDB_CONSOLE is not set
+# CONFIG_KGDB_ONLY_MODULES is not set
+CONFIG_KGDB_8250_NOMODULE=y
+# CONFIG_KGDBOE_NOMODULE is not set
+# CONFIG_KGDB_MPSC is not set
+# CONFIG_KGDB_CPM_UART is not set
+# CONFIG_KGDB_SIBYTE is not set
+# CONFIG_KGDB_TXX9 is not set
+# CONFIG_KGDB_SH_SCI is not set
+# CONFIG_KGDB_AMBA_PL011 is not set
+# CONFIG_KGDB_PXA_SERIAL is not set
+# CONFIG_KGDBOE is not set
+CONFIG_KGDB_8250=y
+CONFIG_KGDB_SIMPLE_SERIAL=y
+CONFIG_KGDB_BAUDRATE=115200
+CONFIG_KGDB_PORT_NUM=1
CONFIG_EARLY_PRINTK=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y
hm. It _looks_ like kgdb hasn't been told the uart address and it's
defaulting to something silly. But a) it should guess better than that and
b) the addresses should differ at least a little bit.

Maybe Jason can tell us what went wrong?
Jason Wessel
2007-07-06 17:33:55 UTC
Permalink
Post by Tilman Schmidt
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-rc6/2.6.22-rc6-mm1/
- Added the kgdb tree, as git-kgdb.patch (Jason Wessel
This is a large patch which unifies all the various kgdb stubs lying
around various architectures and extends kgdb support to other
architectures. Supported architectures are at present arm, i386, ia64,
mips, ppc32, ppc64, sh, and x86_64.
Subject to review, we're aiming this at 2.6.24.
Built a kernel with this just for fun on a Pentium D 940 system running
a 32 bit install of SuSE 10.2. It complained thusly relatively early
--------8<--------8<--------8<--------8<--------8<--------8<--------8<
Bad IO access at port 10000 (outb(val,port))
WARNING: at lib/iomap.c:44 bad_io_access()
[dump_trace+99/475] dump_trace+0x63/0x1db
[show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
[show_trace+18/20] show_trace+0x12/0x14
[dump_stack+22/24] dump_stack+0x16/0x18
[bad_io_access+84/86] bad_io_access+0x54/0x56
[iowrite8+52/54] iowrite8+0x34/0x36
[kgdb8250_uart_init+164/609] kgdb8250_uart_init+0xa4/0x261
[kgdb_init_io+172/200] kgdb_init_io+0xac/0xc8
[kgdb_late_entry+54/164] kgdb_late_entry+0x36/0xa4
[kernel_init+346/732] kernel_init+0x15a/0x2dc
[kernel_thread_helper+7/16] kernel_thread_helper+0x7/0x10
=======================
Bad IO access at port 10000 (return inb(port))
WARNING: at lib/iomap.c:44 bad_io_access()
[dump_trace+99/475] dump_trace+0x63/0x1db
[show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
[show_trace+18/20] show_trace+0x12/0x14
[dump_stack+22/24] dump_stack+0x16/0x18
[bad_io_access+84/86] bad_io_access+0x54/0x56
[ioread8+40/47] ioread8+0x28/0x2f
[kgdb8250_uart_init+334/609] kgdb8250_uart_init+0x14e/0x261
[kgdb_init_io+172/200] kgdb_init_io+0xac/0xc8
input: AT Translated Set 2 keyboard as /class/input/input1
[kgdb_late_entry+54/164] kgdb_late_entry+0x36/0xa4
[kernel_init+346/732] kernel_init+0x15a/0x2dc
[kernel_thread_helper+7/16] kernel_thread_helper+0x7/0x10
=======================
Bad IO access at port 10000 (outb(val,port))
WARNING: at lib/iomap.c:44 bad_io_access()
[dump_trace+99/475] dump_trace+0x63/0x1db
[show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
[show_trace+18/20] show_trace+0x12/0x14
[dump_stack+22/24] dump_stack+0x16/0x18
[bad_io_access+84/86] bad_io_access+0x54/0x56
[iowrite8+52/54] iowrite8+0x34/0x36
[kgdb8250_uart_init+164/609] kgdb8250_uart_init+0xa4/0x261
[kgdb8250_late_init+32/153] kgdb8250_late_init+0x20/0x99
[kgdb_late_entry+136/164] kgdb_late_entry+0x88/0xa4
[kernel_init+346/732] kernel_init+0x15a/0x2dc
[kernel_thread_helper+7/16] kernel_thread_helper+0x7/0x10
=======================
Bad IO access at port 10000 (return inb(port))
WARNING: at lib/iomap.c:44 bad_io_access()
[dump_trace+99/475] dump_trace+0x63/0x1db
[show_trace_log_lvl+26/47] show_trace_log_lvl+0x1a/0x2f
[show_trace+18/20] show_trace+0x12/0x14
[dump_stack+22/24] dump_stack+0x16/0x18
[bad_io_access+84/86] bad_io_access+0x54/0x56
[ioread8+40/47] ioread8+0x28/0x2f
[kgdb8250_uart_init+334/609] kgdb8250_uart_init+0x14e/0x261
[kgdb8250_late_init+32/153] kgdb8250_late_init+0x20/0x99
[kgdb_late_entry+136/164] kgdb_late_entry+0x88/0xa4
[kernel_init+346/732] kernel_init+0x15a/0x2dc
[kernel_thread_helper+7/16] kernel_thread_helper+0x7/0x10
=======================
KGDB failed to request the serial IRQ (0)
registered taskstats version 1
Freeing unused kernel memory: 236k freed
--------8<--------8<--------8<--------8<--------8<--------8<--------8<
Apart from that, the kernel runs fine, though its subjectively a bit
Linux xenon 2.6.22-rc6-mm1-test4 #10 SMP PREEMPT Thu Jul 5 23:41:32 CEST 2007 i686 i686 i386 GNU/Linux
I didn't even try to actually do anything with kgdb, though.
--- good.config-3 2007-07-05 22:35:30.000000000 +0200
+++ .config 2007-07-05 23:23:09.000000000 +0200
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.22-rc6-mm1
-# Thu Jul 5 22:05:32 2007
+# Thu Jul 5 23:23:09 2007
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
@@ -35,7 +35,7 @@
#
# General setup
#
-CONFIG_LOCALVERSION="-test3"
+CONFIG_LOCALVERSION="-test4"
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SWAP_PREFETCH=y
@@ -2529,8 +2529,24 @@
CONFIG_FAIL_MAKE_REQUEST=y
CONFIG_FAULT_INJECTION_DEBUG_FS=y
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
-# CONFIG_WANT_EXTRA_DEBUG_INFORMATION is not set
-# CONFIG_KGDB is not set
+CONFIG_WANT_EXTRA_DEBUG_INFORMATION=y
+CONFIG_KGDB=y
+# CONFIG_KGDB_CONSOLE is not set
+# CONFIG_KGDB_ONLY_MODULES is not set
+CONFIG_KGDB_8250_NOMODULE=y
+# CONFIG_KGDBOE_NOMODULE is not set
+# CONFIG_KGDB_MPSC is not set
+# CONFIG_KGDB_CPM_UART is not set
+# CONFIG_KGDB_SIBYTE is not set
+# CONFIG_KGDB_TXX9 is not set
+# CONFIG_KGDB_SH_SCI is not set
+# CONFIG_KGDB_AMBA_PL011 is not set
+# CONFIG_KGDB_PXA_SERIAL is not set
+# CONFIG_KGDBOE is not set
+CONFIG_KGDB_8250=y
+CONFIG_KGDB_SIMPLE_SERIAL=y
+CONFIG_KGDB_BAUDRATE=115200
+CONFIG_KGDB_PORT_NUM=1
CONFIG_EARLY_PRINTK=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y
HTH
T.
Hi Tilman,

Perhaps you could send me your entire .config as well as the entire
output of the dmesg after your boot, or the entire boot log?

One of the kgdb patches does slightly modify the rs232 registration. If
your system did not have a second serial port, or if the virtual second
line is some kind of other device that "simple configuration" detect
needs further modification. Hopefully the full output of the boot will
shed some light as to what is going on.

Thanks,
Jason.
Jason Wessel
2007-07-06 17:51:02 UTC
Permalink
Post by Tilman Schmidt
Apart from that, the kernel runs fine, though its subjectively a bit
Linux xenon 2.6.22-rc6-mm1-test4 #10 SMP PREEMPT Thu Jul 5 23:41:32 CEST 2007 i686 i686 i386 GNU/Linux
I didn't even try to actually do anything with kgdb, though.
Do you have something that is more than subjective as a measure? Some
app runs slower, or it boots x seconds slower?

The only place I could foresee that kgdb could be eating extra cycles in
the runtime case is from the die_notifier processing. Any kind of
exception such as a page fault, trap etc... will have a few extra ops
and checks of variables so as to determine if the debugger should take
the exception. It looks to me like it would even benefit to add the
check at the top of the notify hook for kgdb to exit immediately if the
debugger is not attached.

I have contemplated making some changes to KGDB so as to make the
registration to the die_notifier to be dynamic with attaching and
detaching of the debugger. If this is done, I would also make a change
to allow for the case where the kernel would wait for the debugger to
attach on any fatal fault.

Jason.




-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
Jan Kiszka
2007-07-06 18:15:59 UTC
Permalink
Post by Jason Wessel
The only place I could foresee that kgdb could be eating extra cycles in
the runtime case is from the die_notifier processing. Any kind of
exception such as a page fault, trap etc... will have a few extra ops
and checks of variables so as to determine if the debugger should take
the exception. It looks to me like it would even benefit to add the
check at the top of the notify hook for kgdb to exit immediately if the
debugger is not attached.
I have contemplated making some changes to KGDB so as to make the
registration to the die_notifier to be dynamic with attaching and
detaching of the debugger. If this is done, I would also make a change
to allow for the case where the kernel would wait for the debugger to
attach on any fatal fault.
At this chance... Reminds me that this old issue still seems to be
unsolved in current kgdb:

http://www.mail-archive.com/kgdb-***@lists.sourceforge.net/msg00442.html

I'm only looking at that spot in kgdb right now and /may/ oversee new
border conditions elsewhere. But my feeling is there are none.

Jan (looking forward to see kgdb merged)
Jason Wessel
2007-07-06 18:24:14 UTC
Permalink
Post by Jan Kiszka
At this chance... Reminds me that this old issue still seems to be
I'm only looking at that spot in kgdb right now and /may/ oversee new
border conditions elsewhere. But my feeling is there are none.
Jan (looking forward to see kgdb merged)
Hi Jan,

This issue was fixed in a generic way in the patch set that is in the
-mm tree. Had you tried your test case in the current -mm tree?

The problem you mentioned was fixed by saving and restoring the preempt
count as a part of the fault handling from the kgdb core and not in the
arch specific portion.

Jason.

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
Jan Kiszka
2007-07-06 19:19:11 UTC
Permalink
Post by Jason Wessel
Post by Jan Kiszka
At this chance... Reminds me that this old issue still seems to be
I'm only looking at that spot in kgdb right now and /may/ oversee new
border conditions elsewhere. But my feeling is there are none.
Jan (looking forward to see kgdb merged)
Hi Jan,
This issue was fixed in a generic way in the patch set that is in the
-mm tree. Had you tried your test case in the current -mm tree?
Nope, I have unfortunately no adequate test setup at hand right now.
Post by Jason Wessel
The problem you mentioned was fixed by saving and restoring the preempt
count as a part of the fault handling from the kgdb core and not in the
arch specific portion.
Ah, OK, that was the piece I missed.

Then /me is just curious to finally learn why that hack I once proposed
(which unfortunately never received some feedback) is not the right way
to go. In other words, what is the reason for this special
fault_setjmp/fault_longjmp?

Jan
Badari Pulavarty
2007-07-06 21:31:52 UTC
Permalink
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.22-=
rc6/2.6.22-rc6-mm1/
=20
fs/xfs/linux-2.6/xfs_ioctl32.c: In function =E2=80=98xfs_ioc_bulkstat_c=
ompat=E2=80=99:
fs/xfs/linux-2.6/xfs_ioctl32.c:334: error: =E2=80=98xfs_inumbers_fmt_co=
mpat=E2=80=99
undeclared (first use in this
function)fs/xfs/linux-2.6/xfs_ioctl32.c:334: error: (Each undeclared
identifier is reported only once
fs/xfs/linux-2.6/xfs_ioctl32.c:334: error: for each function it appears
in.)
make[2]: *** [fs/xfs/linux-2.6/xfs_ioctl32.o] Error 1
Adrian Bunk
2007-07-07 01:50:21 UTC
Permalink
Post by Andrew Morton
...
...
+slub-add-some-more-inlines-and-ifdef-config_slub_debug.patch
...
slub/slab/slob updates
...
Tip of the day:
Also test the compilation of the configuration you are changing.

With CONFIG_SLUB_DEBUG=3Dn:

<-- snip -->

=2E..
CC mm/slub.o
/home/bunk/linux/kernel-2.6/linux-2.6.22-rc6-mm1/mm/slub.c: In function=
=E2=80=98init_kmem_cache_node=E2=80=99:
/home/bunk/linux/kernel-2.6/linux-2.6.22-rc6-mm1/mm/slub.c:1873: error:=
=E2=80=98struct kmem_cache_node=E2=80=99 has no member named =E2=80=98=
full=E2=80=99
=2E..
make[2]: *** [mm/slub.o] Error 1

<-- snip -->


Another problem with this patch are the added inline's:

gcc already automatically inlines static functions with only one caller=
,=20
and decides for other static functions based on the size of the functio=
n.


cu
Adrian

--=20

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

Loading...