Discussion:
2.6.25-rc8-mm1
(too old to reply)
Andrew Morton
2008-04-02 04:32:14 UTC
Permalink
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/

- Added the wm97xx touchscreen driver tree, as git-wm97xx.patch (Mark Brown
<***@opensource.wolfsonmicro.com>)

- git-alsa.patch has been replaced by git-alsa-tiwai.patch

- git-drm.patch is dropped due to build errors

- git-md-accel.patch has been replaced with git-async_tx.patch

- git-xfs.patch is dropped due to extensive git rejects.

- Added the VFS git tree, as git-vfs.patch (Al Viro <***@zeniv.linux.org.uk>)



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

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





Changes since 2.6.25-rc5-mm1:


git-x86.patch
git-kgdb-light.patch
git-acpi.patch
git-alsa-tiwai.patch
git-agpgart.patch
git-arm.patch
git-avr32.patch
git-cpufreq.patch
git-powerpc.patch
git-dvb.patch
git-hwmon.patch
git-gfs2-nmw.patch
git-dlm.patch
git-hid.patch
git-hrt.patch
git-ia64.patch
git-ieee1394.patch
git-infiniband.patch
git-wm97xx.patch
git-jfs.patch
git-kvm.patch
git-leds.patch
git-libata-all.patch
git-async-tx.patch
git-mips.patch
git-mmc.patch
git-mtd.patch
git-ubi.patch
git-udf.patch
git-net.patch
git-nfsd.patch
git-ocfs2.patch
git-parisc.patch
git-selinux.patch
git-security-testing.patch
git-s390.patch
git-sched.patch
git-sh.patch
git-scsi-misc.patch
git-block.patch
git-sparc64.patch
git-unionfs.patch
git-v9fs.patch
git-vfs.patch
git-watchdog.patch
git-cryptodev.patch
git-xtensa.patch
git-slub.patch
git-semaphore.patch

git trees

-smackfs-do-not-trust-count-in-inodes-writes.patch
-pagemap-proper-read-error-handling.patch
-h8300-fix-recent-uaccess-breakage.patch
-ntfs-fix-nommu-build.patch
-poweroff-workaround.patch
-arch-x86-kernel-ptracec-fix-defined-but-unused-warnings.patch
-documentation-i386-io-apictxt-fix-description.patch
-add-the-dff-desktop-form-factor-dell-optiplex-745-to-the-reboot-errata-list.patch
-acpi-add-acpi-aliases-to-toshiba_acpi-module.patch
-acpi-make-real-parent-for-acpi-button-input-devices.patch
-acpi-use-acpi_debug_print-instead-of-printk.patch
-acpi-replace-remaining-__function__-occurrences.patch
-sound-use-bug_on.patch
-at73c213-remove-redundant-private_free-routine.patch
-sound-replace-remaining-__function__-occurences.patch
-atmel_serial-avoid-stopping-pdc-during-transmission.patch
-atmel_serial-avoid-stopping-pdc-during-transmission-update.patch
-cifs-hack-around-biuld-error.patch
-agk-dm-dm-crypt-add-cond_resched.patch
-agk-dm-dm-io-write-error-bits-form-long-not-int.patch
-powerpc-replace-remaining-__function__-occurences.patch
-ppc-replace-remaining-__function__-occurences.patch
-drivers-block-viodasdc-use-field_sizeof.patch
-powerpc-8xx-fix-swap.patch
-powerpc-remove-redundant-display-of-free-swap-space-in-show_mem.patch
-ppc-remove-redundant-display-of-free-swap-space-in-show_mem.patch
-gregkh-driver-driver-core-convert-debug-functions-declared-inline-__attribute__-to-statement-expression-macros.patch
-gregkh-driver-memstick-convert-struct-class_device-to-struct-device.patch
-gregkh-driver-video-add-the-go7007-driver.patch
-revert-gregkh-driver-video-add-the-go7007-driver.patch
-kobjects-mark-cleaned-up-kobjects-as-unitialized-2.patch
-fix-gregkh-driver-net-convert-the-phy_device-file-to-use-bus_find_device_by_name.patch
-drivers-base-cpu-fix-section-mismatch-in-cpucstore_online.patch
-sysdev-detect-multiple-driver-registrations.patch
-driver-core-debug-for-bad-dev_attr_show-return-value.patch
-radeon-fix-integer-as-null-pointer-warnings-in-radeon_memc.patch
-drivers-media-video-pvrusb2-pvrusb2-sysfsc-fix-printk-warnings.patch
-drivers-media-video-tvp5150c-logical-bitwise-and-confusion.patch
-jdelvare-i2c-i2c-amd756-fix-off-by-one.patch
-jdelvare-i2c-i2c-fix-i2c_device_probe.patch
-infiniband-replace-remaining-__function__-occurrences.patch
-drivers-input-touchscreen-ads7846c-fix-uninitialized-var-warning.patch
-input-i8042-fix-warning-on-non-x86-builds.patch
-keyboard-notifier-documentation.patch
-input-core-driver-for-wm97xx-touchscreens.patch
-input-add-chip-driver-for-wm9705-touchscreen.patch
-input-add-chip-driver-for-wm9712-touchscreen.patch
-input-add-chip-driver-for-wm9713-touchscreen.patch
-input-driver-for-wm97xx-touchscreens-in-streaming-mode-on-mainstone.patch
-input-build-system-and-maintainers-entry-for-wm97xx-touchscreen-drivers.patch
-input-add-lenovo-3000-n100-to-nomux-blacklist.patch
-ide-mm-ide-add-warm-plug-support-for-ide-devices.patch
-ide-mm-ide-remove-config_blk_dev_hd_ide-config-option.patch
-ide-mm-ide-remove-obsoleted-idex-base_-ctl_-irq_-kernel-parameters.patch
-ide-mm-ide-remove-obsoleted-idex-noprobe-kernel-parameter.patch
-ide-mm-ide-do-complete-dma-setup-in-init_dma-method.patch
-ide-mm-ide-add-struct-ide_dma_ops.patch
-drivers-ide-idec-replace-init_modulecleanup_module-with-module_initmodule_exit.patch
-mips-remove-redundant-display-of-free-swap-space-in-show_mem.patch
-mips-replace-remaining-__function__-occurences.patch
-git-net-fix-build-with-config_net=n.patch
-cosa-srp-convert-channel_datarsem-to-mutex.patch
-drivers-net-mv643xx_ethc-use-field_sizeof.patch
-qla3xxx-convert-byte-order-of-constant-instead-of-variable.patch
-smc91x-pass-along-private-data-v2.patch
-smc91x-introduce-platform-data-flags-v2.patch
-smc91x-add-insw-outsw-to-default-config-v2.patch
-smc91x-make-superh-use-default-config-v2.patch
-3c509-convert-to-isa_driver-and-pnp_driver-v6.patch
-tulip-de_stop_rxtx-polling-wrong.patch
-3c501-further-coding-style-fixes.patch
-nfs-replace-remaining-__function__-occurrences.patch
-gregkh-pci-ide-remove-ide-reverse-ide-core.patch
-pci-iova-rb-tree-setup-tweak.patch
-pci-simplify-quirk-debug-output.patch
-pci-iommu-iotlb-flushing.patch
-s390-remove-redundant-display-of-free-swap-space-in-show_mem.patch
-drivers-s390-replace-remaining-__function__-occurrences.patch
-mptbase-reset-ioc-initiator-during-pci-resume.patch
-3w-raid-drivers-memset-not-needed-in-probe.patch
-scsi-le_add_cpu-conversion.patch
-arcmsr-modify-the-type-of-element-of-messageunit_b.patch
-fusion-mpt-convert-inactive_list_mutex-in-a-mutex.patch
-scsi-stc-make-class-attributes-static.patch
-scsi-osstc-make-class-attributes-static.patch
-scsi-chc-fix-shadowed-variable-warnings.patch
-scsi-chc-fix-shadowed-variable-warnings-checkpatch-fixes.patch
-remove-ps2esdi.patch
-gregkh-usb-usb-add-sensoray-2255-v4l-driver.patch
-gregkh-usb-usb-s2255drv-fix-memset.patch
-usb-add-support-for-motorola-rokr-z6-cellphone-in-mass-storage-mode.patch
-make-b43_mac_enablesuspend-static.patch
-wireless-rt2x00-fix-driver-menu-indenting.patch
-ipw2200-le_add_cpu-conversion.patch
-convert-acl-sem-in-a-mutex.patch
-convert-stats_sem-in-a-mutex.patch
-convert-wpa_sem-in-a-mutex.patch
-the-scheduled-bcm43xx-removal.patch
-the-scheduled-ieee80211-softmac-removal.patch
-the-scheduled-rc80211-simplec-removal.patch
-wdev-ath5k-typecheck-on-nondebug.patch
-prism54-support-for-124a4025-another-version-of-iogear-gwu513-80211g.patch
-xtensa-remove-redundant-display-of-free-swap-space-in-show_mem.patch
-char-riscom-fix-rc_board-indexing.patch
-alpha-use-iommu_is_span_boundary-helper-function.patch
-kernel-doc-set-verbose-mode-via-environment.patch
-block-floppy-fix-rmmod-lockup.patch
-kthread-call-wake_up_process-without-the-lock-being-held.patch
-romfs-prevent-romfs_lookup-from-always-failing.patch
-x86-cast-cmpxchg-and-cmpxchg_local-result-for-386-and-486.patch
-x86-fix-clearcopy_user_page-declarations-in-pageh.patch
-x86-visws-fix-printk-format-warnings.patch
-gdth-allocate-sense_buffer-to-prevent-null-pointer-dereference.patch
-at73c213-fix-error-checking-for-clk-api.patch
-at73c213-monaural-support.patch
-at73c213-fix-dma-size-at-the-end-of-dma-buffer.patch
-smc91x-fix-build-breakage-from-the-smc_get_mac_addr-api-upgrade.patch
-ioc3-fix-section-missmatch.patch
-forcedeth-limit-tx-to-16.patch
-drivers-net-wireless-iwlwifi-iwl-4965c-correct-use-of-and.patch
-iova-lockdep-false-alarm-fix.patch
-fix-typo-in-tick-broadcastc.patch
-acpi-ec-revert-208c70a45624400fafd7511b96bc426bf01f8f5e.patch
-drivers-acpi-asus_acpic-correct-use-of-and.patch
-acpi-fix-overflow.patch
-drm-fix-for-non-coherent-dma-powerpc.patch
-input-fix-cobalt_btns-loadable-keymap-support.patch
-keep-rd-online-and-cpu_online_map-in-sync.patch
-power-replace-remaining-__function__-occurrences.patch
-block-genhdc-check-class_register-return-value.patch
-tpm-fix-section-mismatch-warning.patch
-kernel-add-clamp-and-clamp_t-macros.patch
-kernel-add-clamp-and-clamp_t-macros-checkpatch-fixes.patch
-kernel-add-clamp-and-clamp_t-macros-fix.patch
-ioc3c-replace-remaining-__function__-occurrences.patch
-connector-convert-to-single-threaded-workqueue.patch
-reiserfs-eliminate-private-use-of-struct-file-in-xattr.patch
-hppfs-pass-vfsmount-to-dentry_open.patch
-check-for-null-vfsmount-in-dentry_open.patch
-fix-up-new-filp-allocators.patch
-do-namei_flags-calculation-inside-open_namei.patch
-merge-open_namei-and-do_filp_open.patch
-r-o-bind-mounts-stub-functions.patch
-r-o-bind-mounts-create-helper-to-drop-file-write-access.patch
-r-o-bind-mounts-drop-write-during-emergency-remount.patch
-r-o-bind-mounts-elevate-write-count-for-vfs_rmdir.patch
-r-o-bind-mounts-elevate-write-count-for-callers-of-vfs_mkdir.patch
-r-o-bind-mounts-elevate-write-count-for-callers-of-vfs_mkdir-fix.patch
-r-o-bind-mounts-elevate-mnt_writers-for-unlink-callers.patch
-r-o-bind-mounts-elevate-write-count-for-xattr_permission-callers.patch
-r-o-bind-mounts-elevate-write-count-for-xattr_permission-callers-fix.patch
-r-o-bind-mounts-elevate-write-count-for-ncp_ioctl.patch
-r-o-bind-mounts-write-counts-for-time-functions.patch
-r-o-bind-mounts-elevate-write-count-for-do_utimes.patch
-r-o-bind-mounts-write-count-for-file_update_time.patch
-r-o-bind-mounts-write-counts-for-link-symlink.patch
-r-o-bind-mounts-elevate-write-count-for-ioctls.patch
-r-o-bind-mounts-elevate-write-count-for-opens.patch
-r-o-bind-mounts-get-write-access-for-vfs_rename-callers.patch
-r-o-bind-mounts-get-write-access-for-vfs_rename-callers-fix.patch
-r-o-bind-mounts-elevate-write-count-for-chmod-chown-callers.patch
-r-o-bind-mounts-write-counts-for-truncate.patch
-r-o-bind-mounts-elevate-count-for-xfs-timestamp-updates.patch
-r-o-bind-mounts-make-access-use-new-r-o-helper.patch
-r-o-bind-mounts-check-mnt-instead-of-superblock-directly.patch
-r-o-bind-mounts-check-mnt-instead-of-superblock-directly-fix.patch
-r-o-bind-mounts-check-mnt-instead-of-superblock-directly-fix-2.patch
-r-o-bind-mounts-get-callers-of-vfs_mknod-create.patch
-r-o-bind-mounts-get-callers-of-vfs_mknod-create-fix.patch
-r-o-bind-mounts-track-numbers-of-writers-to-mounts.patch
-r-o-bind-mounts-honor-mount-writer-counts-at-remount.patch
-r-o-bind-mounts-debugging-for-missed-calls.patch
-serial-remove-double-initializer.patch
-gxfb-replace-fbsize-config-option-with-a-kernel-argument.patch
-fbdev-defio-and-metronomefb-v4.patch
-jbd-sparse-warnings-in-revokec-journalc.patch
-reiserfs-fix-sparse-warnings-in-fix_nodec.patch
-reiserfs-fix-sparse-warnings-in-do_balanc.patch
-reiserfs-fix-sparse-warning-in-nameic.patch
-reiserfs-fix-sparse-warnings-in-lbalancec.patch
-ext4-mm-jbd2-sparse-warnings-in-revokec-journalc.patch
-vfs-create-proc-pid-mountinfo.patch

Merged into mainline or a subsystem tree

+kvm-provide-kvmh-for-all-architecture-fixes-headers_install.patch
+atmel_serial-avoid-stopping-pdc-during-transmission.patch
+atmel_serial-fix-uart-console-concurrent-access.patch
+alpha-fix-alsa-dma-mmap-crash.patch
+fix-typos-in-documentation-unaligned-memory-accesstxt.patch
+doc-fix-typo-in-submittingpatches.patch
+nbd-prevent-sock_xmit-from-attempting-to-use-a-null-socket.patch
+char-ip2-fix-sparse-warnings.patch
+char-rio-fix-sparse-warnings.patch
+block-fix-the-setting-of-the-bounce-limit.patch
+efs-update-error-msg-to-not-refer-to-deleted-read_inode.patch
+vmcoreinfo-add-the-symbol-phys_base.patch
+markers-use-synchronize_sched.patch
+alpha-get_current-dont-add-zero-to-current_thread_info-task.patch

2.6.25 queue

+hotplug-memory-remove-generic-__remove_pages-support.patch

Not sure.

+revert-set-relay-file-can-not-be-read-by-pread2.patch

Seems that we're happy to break existing userspace.

+lib-swiotlbc-avoid-endless-loops-fix.patch

FUJITA Tomonori <***@lab.ntt.co.jp> had issues with this?

+git-x86-fix-printk-warning.patch
+x86_64-do-not-reserve-ramdisk-two-times.patch
+x86-handle_vm86_trap-cleanup.patch
+i386-arch-x86-math-emu-fpu_entryc-warning-fix.patch
+x86_64-ia32-ptrace-vs-enosys.patch
+x86_64-ptrace-vs-enosys.patch
+x86_64-ia32-ptrace-vs-enosys-sysenter-syscall.patch
+x86_32-fix-visualws-and-voyager-kexec-build-failures.patch

x86 stuff

+usb-audio-fix-another-dallas-quirk.patch
+usb-audio-make-quirk-handling-more-readable-and-fix-commented-out-code.patch

alsa stuff

+git-agpgart-export-agp_generic_alloc_pages.patch
+git-agpgart-fix-type-confusion.patch
+git-agpgart-drivers-char-agp-i460-agpc-hacks.patch

agp things

+cifs-suppress-warning.patch

cifs fix

+cpufreq-expose-cpufreq-coordination-requirements-regardless-of-coordination-mechanism.patch
+cpufreq-document-the-currently-undocumented-parts-of-the-sysfs-interface.patch
+allow-use-of-the-powersave-governor-as-the-default-one.patch

cpufreq things

+agk-dm-dm-raid1-use-list_split_init.patch
+agk-dm-dm-log-move-register-functions.patch
+agk-dm-dm-log-make-module-use-tracking-internal.patch
+agk-dm-dm-kcopyd-per-device.patch
+agk-dm-dm-kcopyd-private-mempool.patch
+agk-dm-dm-kcopyd-remove-redundant-client-counting.patch
+agk-dm-dm-expose-macros.patch
+agk-dm-dm-kcopyd-rename.patch
+agk-dm-dm-move-include-files.patch

device mapper updates

+lmb-add-lmb_alloc_nid.patch
+rapidio-change-rio-function-mpc85xx_-to-fsl_.patch
+rapidio-add-rapidio-option-to-kernel-configuration.patch
+rapidio-move-include-asm-ppc-rioh-to-include-asm-powerpc-rioh.patch
+rapidio-add-rapidio-multi-mport-support.patch
+rapidio-add-of-tree-support-to-rapidio-controller-driver.patch
+rapidio-change-the-kernel-configurated-rapidio-system-size-to-auto-probing.patch
+rapidio-add-rapidio-node-into-mpc8641hpcn-dts-file.patch
+rapidio-add-rapidio-node-probing-into-mpc86xx_hpcn-board-id-table.patch
+rapidio-add-serial-rapidio-controller-support-which-includes-mpc8548-mpc8641.patch
+rapidio-add-rapidio-connection-info-print-out-and-re-training-for-break-connection.patch
+rapidio-add-memory-mapping-driver-to-rapidio.patch
+rapidio-add-rapidio-space-allocation-bitmap-arithmetic.patch
+rapidio-add-fsl-rapidio-controller-memory-ops-functions.patch
+rapidio-add-the-rapidio-master-port-maintance-and-doorbell-window-to-space-resources.patch
+rapidio-add-rapidio-proc-fs-for-memory-mapping-debugging.patch
+rapidio-change-rapidio-doorbell-source-and-target-id-field-to-16-bit.patch
+rapidio-add-the-memory-mapping-support-in-rionet-driver.patch
+rapidio-fix-docbook-references.patch
+powerpc-hotplug-memory-notifications-for-ppc.patch
+powerpc-update-lmb-for-hotplug-memory-add-remove.patch
+powerpc-provide-walk_memory_resource-for-ppc.patch

powerpc things

+gregkh-driver-uio-implement-a-uio-interface-for-the-smx-cryptengine.patch
+gregkh-driver-driver-core-convert-debug-functions-declared-inline-__attribute__-to-statement-expression-macros.patch
+gregkh-driver-driver-core-cpu-fix-section-mismatch-in-cpuc-store_online.patch
+gregkh-driver-sysdev-detect-multiple-driver-registrations.patch
+gregkh-driver-block-send-disk-change-event-for-rescan_partitions.patch
+gregkh-driver-pm-handle-device-registrations-during-suspend-resume.patch
+gregkh-driver-driver-core-call-device_pm_add-after-bus_add_device-in-device_add.patch
+gregkh-driver-pm-fix-misuse-of-wakeup-flag-accessors-in-serial-core.patch
+gregkh-driver-pm-make-wakeup-flags-available-whenever-config_pm-is-set.patch
+gregkh-driver-pm-convert-wakeup-flag-accessors-to-inline-functions.patch
+gregkh-driver-driver-core-make-device_is_registered-work-for-class-devices.patch
+gregkh-driver-sysfs-explicitly-include-required-header-file-slabh.patch
+gregkh-driver-memstick-convert-struct-class_device-to-struct-device.patch
+gregkh-driver-drm-remove-unused-dev_class.patch
+gregkh-driver-scsi-convert-struct-class_device-to-struct-device.patch
+gregkh-driver-driver-core-remove-no-longer-used-struct-class_device.patch

driver tree updates

+pm-remove-legacy-pm-fix.patch
+power-replace-remaining-__function__-occurrences.patch
+pm-remove-destroy_suspended_device.patch
+scsi-add-iscsi-ibft-support.patch

driver tree things

+dvb-usb-leadtek-winfast-usb-dtv-dongle-support.patch
+radio-cadet-wrap-pnp-probe-code-in-ifdef-config_pnp.patch
+video-test-cmd-not-definition-in-decoder_command-drivers-media-video-zoran_devicec.patch
+bttv-bt832-fix-possible-null-pointer-deref.patch
+bttv-fix-missed-index-check.patch

DVB things

+jdelvare-i2c-i2c-new-co-maintainer.patch
+jdelvare-i2c-i2c-ibm_iic-fast-mode-parm-desc-fixup.patch
+jdelvare-i2c-i2c-davinci-01-fix-lost-interrupt.patch
+jdelvare-i2c-i2c-tiny-usb-new-vid-pid-pair.patch
+jdelvare-i2c-i2c-pca-03-platform-driver.patch
+jdelvare-i2c-i2c-remove-whitespaces-in-busses-kconfig.patch
+jdelvare-i2c-i2c-bfin-twi-01-add-repeated-start.patch
+jdelvare-i2c-i2c-bfin-twi-02-support-multiport-controllers.patch
+jdelvare-i2c-i2c-bfin-twi-03-add-pin-mux-operation.patch
+jdelvare-i2c-i2c-bfin-twi-04-driver-description.patch
+jdelvare-i2c-i2c-bfin-twi-05-use-simpler-comment-headers.patch
+jdelvare-i2c-i2c-bfin-twi-06-add-adsp-bf52x-support.patch
+jdelvare-i2c-i2c-bfin-twi-07-fix-mismatch-in-add-timer-and-delete-timer.patch
+jdelvare-i2c-i2c-scx200_acb-dont-use-0-as-null-pointer.patch

I2C tree updates

+i2c-renesas-highlander-fpga-smbus-support.patch

i2c driver

+adt7473-minor-documentation-update.patch

hwmon update

+fix-typo-in-tick-broadcastc.patch

fxi tpyo

-kprobes-kprobe-booster-for-ia64-fix.patch

Folded into kprobes-kprobe-booster-for-ia64.patch

+arch-ia64-kernel-use-time_-macros.patch

ia64 cleanup

+git-infiniband-vs-gregkh-driver-ib-convert-struct-class_device-to-struct-device.patch

Fix greg-vs-roland bunfight

+touch-screen-driver-for-the-superh-migor-board.patch
+touch-screen-driver-for-the-superh-migor-board-checkpatch-fixes.patch

New touchscreen driver

+kbuild-silence-documentation-gen-xml-messages-according-to-quiet.patch

kbuild fixlet

+git-kvm-fixup.patch
+git-kvm-vs-git-s390.patch

Mend kvm

+git-libata-fix-config_pci=n-build.patch

ata build fix

+pata_atiixp-simplex-clear.patch

pata update

+ide-mm-ide-remove-ide-reverse-ide-core.patch
+ide-mm-ide-remove-ide-devices-from-proc-ide-before-unregistering-them.patch
+ide-mm-ide-add-warm-plug-support-for-ide-devices-take-2.patch
+ide-mm-ide-remove-config_blk_dev_hd_ide-config-option-take-2.patch
+ide-mm-ide-remove-obsoleted-idex-base_-ctl_-irq_-kernel-parameters-take-2.patch
+ide-mm-ide-remove-obsoleted-idex-noprobe-kernel-parameter-take-2.patch
+ide-mm-ide-do-complete-dma-setup-in-init_dma-method-take-2.patch
+ide-mm-ide-add-struct-ide_dma_ops-take-2.patch
+ide-mm-ide-add-ignore_cable-kernel-parameter-take-2.patch
+ide-mm-ide-remove-obsoleted-idex-serialize-kernel-parameter.patch
+ide-mm-ide-remove-obsoleted-idex-reset-kernel-parameter.patch
+ide-mm-ide-remove-obsoleted-idex-kernel-parameters.patch
+ide-mm-ide-remove-obsoleted-hdx-noautotune-kernel-parameter.patch
+ide-mm-ide-tape-remove-unused-parameter-from-idetape_copy_stage_to_user.patch
+ide-mm-ide-tape-remove-unused-parameter-from-idetape_copy_stage_from_user.patch
+ide-mm-ide-tape-remove-pipeline-specific-code-in-idetape_space_over_filemarks.patch
+ide-mm-ide-tape-remove-idetape_pipeline_size.patch
+ide-mm-ide-tape-remove-idetape_remove_stage_head.patch
+ide-mm-ide-tape-remove-pipeline-specific-code-from-idetape_end_request.patch
+ide-mm-ide-tape-unwrap-idetape_queue_pc_tail.patch
+ide-mm-ide-tape-remove-remaining-pipeline-functionality.patch
+ide-mm-ide-tape-remove-pipelined-mode-tape-control-flags.patch
+ide-mm-ide-tape-remove-pipeline-specific-members-from-struct-ide_tape_obj.patch
+ide-mm-ide-tape-remove-pipelined-mode-parameters.patch
+ide-mm-ide-tape-remove-misc-references-to-pipelined-operation-in-the-comments.patch
+ide-mm-ide-tape-remove-pipelined-mode-description-from-documentation_ide_ide-tape-txt.patch
+ide-mm-ide-tape-remove-comments-markup-from-documentation_ide_ide-tape-txt.patch
+ide-mm-ide-add-vlb-pci_clock-parameter.patch
+ide-mm-ide-mark-idebus-kernel-parameter-as-obsoleted-take-2.patch
+ide-mm-ide-remove-obsoleted-idebus-kernel-parameter.patch
+ide-mm-ide-always-auto-tune-pio-in-legacy-vlb-host-drivers.patch
+ide-mm-cmd640-always-auto-tune-pio.patch
+ide-mm-ide-remove-ide_hflag_no_autotune-host-flag.patch
+ide-mm-ide-remove-obsoleted-hdx-autotune-kernel-parameter.patch
+ide-mm-ide-add-nodma-noflush-noprobe-nowerr-parameters.patch
+ide-mm-ide-add-cdrom-and-chs-parameters.patch
+ide-mm-ide-remove-obsoleted-hdx-kernel-parameters.patch
+ide-mm-ide-cleanup-init_ide_data.patch
+ide-mm-gayle-add-doubler-parameter.patch
+ide-mm-ide-add-noacpi-acpigtf-acpionboot-parameters.patch
+ide-mm-ide-remove-obsoleted-ide-parameters.patch
+ide-mm-mpc8xx-ide-use-ide_find_port.patch
+ide-mm-ide-sanitize-ide_unregister-usage.patch
+ide-mm-ide-make-ide_unregister-take-ide_hwif_t-as-an-argument.patch
+ide-mm-ide-fix-hwif-s-initialization.patch
+ide-mm-ide-make-ide_hwifs-static.patch

IDE tre updates

+fsldma-the-mpc8377mds-board-device-tree-node-for-fsldma-driver.patch

DMA driver update

+mmc-use-shorter-equivalent-set_current_state.patch

mmc cleanup

+mtd-prevent-physmap-from-causing-request_module-runaway-loop-modprobe-net-pf-1.patch
+jffs2-check-if-partition-is-marked-ro-on-remount.patch
+jffs2-check-if-partition-is-marked-ro-on-mount.patch
+mtd-nand-fix-possible-ooops-in-rfc_from4.patch

MTD updates

+net-mac80211-debugfs_netdevc-use-of-bool-triggers-a-gcc-bug.patch
+drivers-atm-firestreamc-suppress-uninitialized-var-warning.patch
+wan-new-ppp-code-for-generic-hdlc.patch
+drivers-net-bonding-bond_sysfsc-suppress-uninitialized-var-warning.patch
+lapb-use-the-shorter-list_head-form-for-brevity.patch

net things

+bluetooth-replace-deprecated-rw_lock_unlocked-macros.patch
+hci_usb-do-not-initialize-static-variables-to-0.patch
+hci_usb-remove-code-obfuscation.patch
+hci_usbh-fix-hard-to-trigger-race.patch

bluetooth updates

+smsc-ircc2-wrap-pnp-probe-code-in-ifdef-config_pnp.patch
+nsc-ircc-wrap-pnp-probe-code-in-ifdef-config_pnp.patch

irda updates

-drivers-net-appletalk-copsc-replace-init_modulecleanup_module-with-module_initmodule_exit.patch
-drivers-net-arcnet-com20020c-replace-init_modulecleanup_module-with-module_initmodule_exit.patch
-drivers-net-at1700c-replace-init_modulecleanup_module-with-module_initmodule_exit.patch
-drivers-net-atarilancec-replace-init_modulecleanup_module-with-module_initmodule_exit.patch
-drivers-net-3c501c-replace-init_modulecleanup_module-with-module_initmodule_exit.patch
-drivers-net-3c505c-replace-init_modulecleanup_module-with-module_initmodule_exit.patch
-drivers-net-3c507c-replace-init_modulecleanup_module-with-module_initmodule_exit.patch
-drivers-net-3c515c-replace-init_modulecleanup_module-with-module_initmodule_exit.patch
-drivers-net-3c523c-replace-init_modulecleanup_module-with-module_initmodule_exit.patch
-drivers-net-3c527c-replace-init_modulecleanup_module-with-module_initmodule_exit.patch
-drivers-net-82596c-replace-init_modulecleanup_module-with-module_initmodule_exit.patch

Dropped

+forcedeth-fix-locking-bug-with-netconsole.patch
+tulip-tulip_read_eeprom-fixes-for-bug-4420.patch

netdev fixes

+8390-split-8390-support-into-a-pausing-and-a-non-pausing-driver-core-fix.patch

Attempt to repair
8390-split-8390-support-into-a-pausing-and-a-non-pausing-driver-core.patch

+fs-nfs-callback_xdrc-suppress-uninitialiized-variable-warnings.patch

nfs warning fix

+nfs-replace-remaining-__function__-occurrences.patch

nfs cleanup

+arch-parisc-kernel-unalignedc-use-time_-macros.patch

parisc cleanup

+gregkh-pci-pci-doc-pci-create-documentation-pci-and-move-files-into-it.patch
+gregkh-pci-pci-iova-rb-tree-setup-tweak.patch
+gregkh-pci-pci-simplify-quirk-debug-output.patch
+gregkh-pci-pci-iommu-iotlb-flushing.patch
+gregkh-pci-pci-expose-pci-vpd-through-sysfs.patch

PCI tree updates

+revert-gregkh-pci-pci-arm-use-generic-pci_enable_resources.patch
+revert-gregkh-pci-pci-cris-use-generic-pci_enable_resources.patch
+revert-gregkh-pci-pci-frv-use-generic-pci_enable_resources.patch
+revert-gregkh-pci-pci-mips-use-generic-pci_enable_resources.patch
+revert-gregkh-pci-pci-mn10300-use-generic-pci_enable_resources.patch
+revert-gregkh-pci-pci-parisc-use-generic-pci_enable_resources.patch
+revert-gregkh-pci-pci-ppc-use-generic-pci_enable_resources.patch
+revert-gregkh-pci-pci-sh-use-generic-pci_enable_resources.patch
+revert-gregkh-pci-pci-sparc64-use-generic-pci_enable_resources.patch
+revert-gregkh-pci-pci-v850-use-generic-pci_enable_resources.patch
+revert-gregkh-pci-pci-xtensa-use-generic-pci_enable_resources.patch

revert dodgy stuff from the PCI tree

+pci-hotplug-fix-leaks-in-ibm-hot-plug-controller-driver-ibmphp_init_devno.patch
+pci-hotplug-construct-one-fakephp-slot-per-pci-slot.patch
+pci-hotplug-export-kobject_rename-for-pci_hotplug_core.patch
+pci-hotplug-introduce-pci_slot.patch
+pci-hotplug-introduce-pci_slot-fix.patch
+pci-hotplug-introduce-pci_slot-fix-fix.patch
+pci-hotplug-introduce-pci_slot-fix-2.patch
+pci-hotplug-introduce-pci_slot-fix-99.patch
+pci-hotplug-introduce-pci_slot-fix-3.patch
+pci-hotplug-acpi-pci-slot-detection-driver.patch
+pci-hotplug-acpi-pci-slot-detection-driver-fix.patch
+drivers-acpi-pci_slotc-fix-build-with-config_dmi=n.patch

PCI hotplug work

+git-s390-git-rejects.patch

git-s390 and git-kvm are bunfighting at present

+git-sched-schedc-needs-tickh.patch

fix git-sched

+git-scsi-misc-vs-gregkh-driver-driver-core-remove-no-longer-used-struct-class_device.patch
+git-scsi-misc-vs-gregkh-driver-driver-core-remove-no-longer-used-struct-class_device-fix.patch

greg and james are bunfighting too.

+drivers-scsi-hptiopc-fix-build-warning.patch
+drivers-scsi-mvsasc-fix-build-warnings.patch
+scsi-chc-fix-sparse-shadowed-variable-warnings.patch

scsi things

+sparc32-delete-bogus-js-rtc-records.patch

sparc32 fix

+gregkh-usb-usb-ehci-paranoia-reject-large-control-transfers.patch
+gregkh-usb-usb-cypress_m8-speed-handling.patch
+gregkh-usb-drivers-usb-core-devioc-suppress-warning-with-64k-page_size.patch
+gregkh-usb-usb-usbh-reduce-syslog-clutter.patch
+gregkh-usb-usb-standardize-inclusion-protection-and-add-where-missing.patch
+gregkh-usb-usb-mass-storage-emulation-of-sat-scsi_pass_thru-with-atacb.patch
+gregkh-usb-usb-remove-experimental-designation-from-usb-storage-kconfig-entries.patch
+gregkh-usb-usb-remove-experimental-tags-from-some-usb-gadget-kconfig-entries.patch
+gregkh-usb-usb-remove-experimental-designation-from-usb-misc-kconfig-entries.patch
+gregkh-usb-usb-remove-experimental-designation-from-usb-serial-kconfig-entries.patch
+gregkh-usb-usb-remove-experimental-designation-from-usb-mdc800-support.patch
+gregkh-usb-usb-remove-experimental-from-dynamic-usb-minor-allocation.patch
+gregkh-usb-usb-remove-experimental-designation-from-usb_ehci_root_hub_tt.patch
+gregkh-usb-usb-a-couple-corrections-and-clarifications-in-usb-doc.patch
+gregkh-usb-usb-fix-cut-and-paste-booboo-in-usbmon-makefile.patch
+gregkh-usb-ub-drop-bug-and-update-small-things.patch
+gregkh-usb-usbmon-restore-mmap.patch
+gregkh-usb-usb-cdc-acm-tell-tty-layer-not-to-split-things-up.patch
+gregkh-usb-usb-increase-cdc-acm-write-throughput.patch

USB tree updates

+fix-gregkh-usb-usb-ohci-port-reset-paranoia-timeout.patch
+usb-gadget-dummy_hcdc-fix-nested-switch-statements.patch
+drivers-net-usb-pegasusc-remove-in_atomic-check.patch
+usb-mem-leak-fixes-for-amd-5536-udc-high-full-speed-usb-device-controller-driver.patch
+usb-u132-hcd-driver-style-clean-up.patch
+usb-u132-hcd-driver-semaphore-to-mutex.patch
+usb-ohci-fix-2-timers-to-fire-at-jiffies-1s.patch
+usb-serial-fix-regression-in-visor-palm-os-module-for-kernels-=-2624.patch

usb things

+git-watchdog-git-rejects.patch

FIx rejects in git-watchdog

+mac80211-tkipcc-michaelc-use-kernel-bit-rotation-helpers.patch
+mac80211-tkipc-remove-opencoded-swab16-in-tkip_s.patch
+mac80211-tkipc-eliminate-the-hi16-lo16-functions.patch
+mac80211-tkipc-remove-mk16-hi8-lo8-helpers.patch
+mac80211-michaelc-replace-macro-with-function.patch
+mac80211-michaelc-use-unaligned-byteorder-helpers.patch
+mac80211-michaelc-fold-initial-xor-into-block-helper.patch

wireless cleanups

+xfs-suppress-uninitialized-var-warnings.patch

xfs warning fixes

+git-cryptodev-fixup.patch

git-cryptodev.patch is bunfighting with git-s390 too.

+xtensa-use-newer-__spin_lock_unlocked-macro.patch

xtensa celanup

+rusty-module-make_sect_attrs_private_to_kernel_c.patch
+rusty-module-reduce_image_and_resident_size.patch
+rusty-module-fix_verify_export_symbols.patch

rustree updates

+git-slub-git-rejects.patch

Fix git rejects in git-slub.patch

+mac80211-fix-deadlocks-in-debugfs_netdevc.patch
+forcedeth-mac-address-fix.patch
+r8169-fix-irqx-nobody-cared-for-shared-irq-with-intx.patch
+r8169-fix-irqx-nobody-cared-for-shared-irq-with-intx-checkpatch-fixes.patch
+smc91x-driver-fix-bug-print-warning-only-in-interrupt-mode.patch

Things which we probably need in 2.6.25, but whihc go via subsystem
maintainers

-dm-raid1-bitops-bug.patch

Dropped, unneeded

+mm-have-zonelist-contains-structs-with-both-a-zone-pointer-and-zone_idx-fix-memcg-ooms.patch
+mm-have-zonelist-contains-structs-with-both-a-zone-pointer-and-zone_idx-just-return-do_try_to_free_pages.patch
+mm-have-zonelist-contains-structs-with-both-a-zone-pointer-and-zone_idx-just-return-do_try_to_free_pages-do_try_to_free_pages-gfp_mask-redundant.patch

Repair
mm-have-zonelist-contains-structs-with-both-a-zone-pointer-and-zone_idx.patch

+mm-filter-based-on-a-nodemask-as-well-as-a-gfp_mask-deporkify.patch

Debloat mm-filter-based-on-a-nodemask-as-well-as-a-gfp_mask.patch

+mempolicy-support-optional-mode-flags-fix.patch

Fix mempolicy-support-optional-mode-flags.patch

+mempolicy-disallow-static-or-relative-flags-for-local-preferred-mode.patch
+mempolicy-fix-parsing-of-tmpfs-mpol-mount-option.patch
+mm-make-mem_map-allocation-continuous.patch
+mm-make-mem_map-allocation-continuous-checkpatch-fixes.patch
+mm-fix-alloc_bootmem_core-to-use-fast-searching-for-all-nodes.patch
+mm-allocate-section_map-for-sparse_init.patch
+mm-allocate-section_map-for-sparse_init-update.patch
+mm-allocate-section_map-for-sparse_init-update-fix.patch
+mm-offset-align-in-alloc_bootmem.patch
+mm-make-reserve_bootmem-can-crossed-the-nodes.patch
+mm-make-reserve_bootmem-can-crossed-the-nodes-checkpatch-fixes.patch
+dmapool-enable-debugging-for-config_slub_debug_on-too.patch
+mm-save-some-bytes-in-mm_struct-by-filling-holes-on-64bit.patch
+fix-indentation.patch
+mm-rotate_reclaimable_page-cleanup.patch
+mm-make-early_pfn_to_nid-a-c-function.patch
+vmalloc-show-vmalloced-areas-via-proc-vmallocinfo.patch
+vmalloc-show-vmalloced-areas-via-proc-vmallocinfo-checkpatch-fixes.patch
+vmalloc-show-vmalloced-areas-via-proc-vmallocinfo-fix.patch
+vmalloc-show-vmalloced-areas-via-proc-vmallocinfo-fix-2.patch
+vmallocinfo-add-caller-information.patch
+vmallocinfo-add-caller-information-checkpatch-fixes.patch
+sparsemem-vmemmap-does-not-need-section-bits.patch
+kbuild-create-a-way-to-create-preprocessor-constants-from-c-expressions.patch
+page_mapping-add-ifdef-around-reference-to-swapper_space.patch
+pageflags-use-an-enum-for-the-flags.patch
+pageflags-get-rid-of-flags_reserved.patch
+pageflags-introduce-macros-to-generate-page-flag-functions.patch
+pageflags-convert-to-the-use-of-new-macros.patch
+pageflags-use-proper-page-flag-functions-in-xen.patch
+pageflags-eliminate-pg_xxx-aliases.patch
+page-flags-handle-pg_uncached-like-all-other-flags.patch
+page-flags-add-pageflags_false-for-flags-that-are-always-false.patch
+mm-remove-unused-max_nodes_shift.patch
+smaps-account-swap-entries.patch
+smaps-account-swap-entries-sneak-in-a-coding-style-fix.patch
+mm-introduce-vm_mixedmap.patch
+mm-introduce-pte_special-pte-bit.patch
+mm-introduce-pte_special-pte-bit-fix.patch
+mm-add-vm_insert_mixed.patch
+return-pfn-from-direct_access-for-xip.patch
+xip-support-non-struct-page-backed-memory.patch
+s390-implement-pte-special-bit.patch
+s390-remove-struct-page-entries-for-dcss-memory-segments.patch
+vmcoreinfo-add-page-flags-values.patch
+hugetlb-vmstat-events-for-huge-page-allocations.patch
+hugetlb-vmstat-events-for-huge-page-allocations-cleanup.patch

MM updates

+arch-alpha-kernel-trapsc-use-time_-macros.patch
+arch-alpha-kernel-trapsc-use-time_-macros-fix.patch
+alpha-teach-the-compiler-that-bug-doesnt-return.patch

alpha updates

+arch-um-os-linux-start_upc-various-improvements.patch
+arch-um-os-linux-mainc-fix-memory-leaks.patch
+arch-um-os-linux-mainc-fix-memory-leaks-checkpatch-fixes.patch

UML fixlets

+codafs-fix-build-warning.patch
+lib-swiotlbc-cleanups.patch
+kthread-call-wake_up_process-without-the-lock-being-held.patch
+binfmt_miscc-avoid-potential-kernel-stack-overflow.patch
+kernel-explicitly-include-required-header-files-under-kernel.patch
+remove-superfluous-include-of-stringh-from-percpuh.patch
+fs-binfmt_aoutc-use-printk_ratelimit.patch
+kbuild-remove-duplicate-conflicting-entry-for-oomh.patch
+kbuild-move-files-that-dont-check-__kernel__.patch
+lists-add-const-qualifier-to-first-arg-of-list_splice-operations.patch
+lists-add-const-qualifier-to-first-arg-of-list_splice-operations-checkpatch-fixes.patch
+drivers-misc-elide-a-non-zero-test-on-a-result-that-is-never-0.patch
+scripts-lindent-support-gnu-indent-v2210.patch
+asm-generic-add-node_to_cpumask_ptr-macro.patch

Misc

+vfs-fix-lock-inversion-in-drop_pagecache_sb.patch
+vfs-skip-inodes-without-pages-to-free-in-drop_pagecache_sb.patch
+vfs-remove-lives_below_in_same_fs.patch
+xattr-add-missing-consts-to-function-arguments.patch

VFS things

+rcu-fix-rcu_try_flip_waitack_needed-to-prevent-grace-period-stall.patch

RCU fix

+add-warn_on_secs-macro-simplification.patch
+add-warn_on_secs-macro-simplification-fix.patch
+add-warn_on_secs-macro-simplification-fix-fix.patch

Fix add-warn_on_secs-macro.patch

+serial-add-vr41xx_siu_early_setup-for-serial-console.patch
+serial-add-vr41xx-siu-setup-for-serial-console.patch
+serial-8250-tighten-test-for-using-backup-timer.patch

Serial updates

+drivers-acpi-thermalc-fix-build-with-config_dmi=n.patch

Fix acpi build when x86-configurable-dmi-scanning-code.patch is applied.

+atmel_spi-support-zero-length-transfer.patch

SPI fix

+mfd-use-shorter-set_current_state.patch

mfs cleanup

+listh-add-list_singleton.patch
+listh-add-list_singleton-fix.patch

cleanups

+kprobes-add-unregister_kprobes-for-batch-registration.patch
+kprobes-add-unregister_kprobes-for-batch-registration-fix.patch
+kprobes-add-unregister_kretprobes-for-batch-registration.patch
+kprobes-add-unregister_jprobes-for-batch-registration.patch
+kprobes-update-document-about-batch-registration.patch

kprobes updates

+quota-do-not-allow-setting-of-quota-limits-to-too-high-values.patch
+quota-remove-superfluous-dquot_off-in-fs-namespacec.patch
+quota-various-style-cleanups.patch
+quota-various-style-cleanups-checkpatch-fixes.patch
+quota-quota-core-changes-for-quotaon-on-remount.patch
+quota-quota-core-changes-for-quotaon-on-remount-quota-ext3-make-ext3-handle-quotaon-on-remount.patch
+quota-quota-core-changes-for-quotaon-on-remount-quota-ext3-make-ext3-handle-quotaon-on-remount-checkpatch-fixes.patch
+quota-quota-core-changes-for-quotaon-on-remount-quota-ext4-make-ext4-handle-quotaon-on-remount.patch
+quota-quota-core-changes-for-quotaon-on-remount-quota-ext4-make-ext4-handle-quotaon-on-remount-checkpatch-fixes.patch
+quota-quota-core-changes-for-quotaon-on-remount-quota-reiserfs-make-reiserfs-handle-quotaon-on-remount.patch
+quota-convert-stub-functions-from-macros-into-inlines.patch

quota work

+isdn-fix-obvious-cut-and-paste-error-in-st5481_usbc.patch
+hisax-depend-on-config_pnp-not-__isapnp__.patch

ISDN things

+kerneldoc-for-linux-clkh-fix.patch

Fix kerneldoc-for-linux-clkh.patch

+rtc-rtc-rs5c372-fix-up-null-name-in-transfer-error-path.patch
+rtc-rtc-rs5c372-smbus-conversion-support.patch
+rtc-rtc-rs5c732-add-support-for-ricoh-r2025s-d-rtc.patch

RTC updates

+gpiolib-dynamic-gpio-number-allocation.patch
+gpiochip_reserve.patch
+gpiochip_reserve-fix.patch

GPIO updates

+x86-geode-msr-cleanup.patch
+gxfb-replace-fbsize-config-option-with-a-module-parameter.patch
+gxfb-create-dc-vp-fp-specific-handlers-rather-than-using-readl-writel.patch
+gxfb-clean-up-register-definitions.patch
+gxfb-move-msr-bit-fields-into-gxfbh.patch
+gxfb-stop-sharing-code-with-gx1fb.patch
+gxfb-add-power-management-functionality.patch
+gxfb-add-power-management-functionality-fix.patch
+pm-gxfb-add-hook-to-pm-console-layer-that-allows-disabling-of-suspend-vt-switch.patch
+pm-gxfb-add-hook-to-pm-console-layer-that-allows-disabling-of-suspend-vt-switch-fix.patch
+lxfb-create-gp-dc-vp-fp-specific-handlers-rather-than-using-readl-writel.patch
+lxfb-clean-up-register-definitions.patch
+lxfb-clean-up-final-bits-of-df_regs.patch
+lxfb-rearrange-rename-msr-bitfields.patch
+lxfb-add-power-management-functionality.patch
+lxfb-add-power-management-functionality-fix.patch
+lxfb-rename-kernel-arg-fbsize-to-vram.patch
+lxfb-disable-suspend-vt-switch-by-default.patch
+nv-drop-useless-module-ifdefs.patch
+nv-drop-useless-config_pci-checks.patch
+nv-fix-sparse-noise.patch
+fbdev-powerpc-driver-for-freescale-8610-and-5121-diu.patch
+powerpc-add-diu-platform-code-for-mpc8610hpcd.patch

fbdev updates

+md-introduce-get_priority_stripe-to-improve-raid456-write-performance.patch
+md-raid5c-convert-simple_strtoul-to-strict_strtoul.patch

MD updates

+pnp-use-dev_printk-for-quirk-messages-fix.patch

Fix pnp-use-dev_printk-for-quirk-messages.patch

+ext3-fix-update-of-mtime-and-ctime-on-rename.patch

ext3 fix

+fatfs-fix-build-warning-with-64k-page_size.patch

fatfs update

+cgroups-add-cgroup-support-for-enabling-controllers-at-boot-time-fix-boot-option-parsing.patch

Fix cgroups-add-cgroup-support-for-enabling-controllers-at-boot-time.patch

+cgroups-add-the-trigger-callback-to-struct-cftype.patch
+cgroups-implement-device-whitelist-v6.patch
+cgroups-implement-device-whitelist-v6-checkpatch-fixes.patch
+cgroups-implement-device-whitelist-v6-cleanups.patch
+cgroups-implement-device-whitelist-doc.patch
+cgroups-implement-device-whitelist-v6-fix.patch

cgroups updates

+memcgroup-add-the-max_usage-member-on-the-res_counter.patch
+add-a-document-describing-the-resource-counter-abstraction-v2.patch
+add-a-document-describing-the-resource-counter-abstraction-v2-fix.patch
+memcgroup-move-memory-controller-allocations-to-their-own-slabs.patch
+memcgroup-use-triggers-in-force_empty-and-max_usage-files.patch
+memcgroup-implement-failcounter-reset.patch
+memcgroup-implement-failcounter-reset-checkpatch-fixes.patch

memory controller updates

-signals-send_signal-factor-out-signal_group_exit-checks.patch
-signals-fold-sig_ignored-into-prepare_signal.patch
-signals-document-cld_continued-notification-mechanics.patch
+signals-fold-sig_ignored-into-handle_stop_signal.patch
+signals-fold-sig_ignored-into-handle_stop_signal-comment.patch
+signals-document-cld_continued-notification-mechanics.patch
+signals-document-cld_continued-notification-mechanics-more.patch
+signals-send_signal-be-paranoid-about-signalfd_notify.patch
+signals-check_kill_permission-check-session-under-tasklist_lock.patch
+signals-check_kill_permission-remove-tasklist_lock.patch
+signals-fix-sbin-init-protection-from-unwanted-signals.patch
+signals-de_thread-simplify-the-child_reaper-switching.patch
+signals-allow-the-kernel-to-actually-kill-sbin-init.patch

signal management updates

+ptrace-ptrace_attach-use-send_sig_info-instead-force_sig_specific.patch
+ptrace-allow-to-ptrace-sbin-init.patch

ptrace updates

+jbd2-fix-kernel-doc-notation.patch
+ext4-fix-wrong-gfp-type-under-transaction.patch
+ext4-fix-update-of-mtime-and-ctime-on-rename.patch

ext4 things

+dma-add-dma_map_attrs-interfaces.patch
+dma-document-dma_map_attrs-interfaces.patch
+dma-ia64-update-ia64-machvecs-swiotlbc.patch
+ib-expand-ib_umem_get-prototype.patch

DMA API updates

+ipc-add-definitions-of-ushort_max-and-others.patch
+ipc-add-definitions-of-ushort_max-and-others-checkpatch-fixes.patch

IPC cleanups

+tty-drop-the-bkl-for-driver-ldisc-ioctl-methods.patch

tty update

+sxc-fix-printk-warnings-on-sparc32.patch

fix warnings

+char-moxa-centralize-board-readiness-warning-fix.patch

Fix char-moxa-centralize-board-readiness.patch

+char-rio-fix-cirrus-defines.patch

char driver cleanup

+keys-dont-generate-user-and-user-session-keyrings-unless-theyre-accessed.patch
+keys-make-the-keyring-quotas-controllable-through-proc-sys.patch
+keys-make-the-keyring-quotas-controllable-through-proc-sys-fix.patch
+keys-explicitly-include-required-slabh-header-file.patch
+keys-make-key_serial-a-function-if-config_keys=y.patch

key management updates

+procfs-task-exe-symlink-fix-3.patch

Fix procfs-task-exe-symlink-fix.patch some more

+procfs-mem-permission-cleanup.patch
+proc-simplify-locking-in-remove_proc_entry.patch
+proc-less-special-case-in-xlate-code.patch
+proc-drop-several-pde-valid-invalid-checks.patch
+proc-remove-proc_bus.patch
+proc-remove-proc_root_fs.patch
+proc-remove-proc_root_driver.patch
+proc-remove-proc_root-from-drivers.patch

procfs updates

+pids-de_thread-dont-clear-session-pgrp-pids-for-the-old-leader.patch
+pids-introduce-change_pid-helper.patch
+pids-sys_setpgid-use-change_pid-helper.patch
+pids-__set_special_pids-use-change_pid-helper.patch
+pids-sys_getsid-fix-unsafe-pid-usage-fix-possible-0-instead-of-esrch.patch
+pids-sys_getpgid-fix-unsafe-pid-usage-s-tasklist-rcu.patch

PID management updates

+nbd-add-partition-support.patch

NBD feature work

+make-module_sect_attrs-private-to-kernel-modulec-checkpatch-fixes.patch

hm, this seems to have got stranded.

+mm-bdi-add-separate-writeback-accounting-capability.patch
+mm-bdi-export-bdi_writeout_inc.patch
+mm-bdi-export-bdi_writeout_inc-fix.patch
+mm-add-nr_writeback_temp-counter.patch
+mm-document-missing-fields-for-proc-meminfo.patch
+fuse-support-writable-mmap.patch
+fuse-support-writable-mmap-fix.patch
+fuse-clean-up-setting-i_size-in-write.patch
+fuse-implement-perform_write.patch
+fuse-update-file-size-on-short-read.patch

FUSE updates

+basic-braille-screen-reader-support-makefile-fix.patch

Fix basic-braille-screen-reader-support.patch some more

+hfs-fix-warning-with-64k-page_size.patch
+hfsplus-fix-warning-with-64k-page_size.patch
+alloc_uid-cleanup.patch
+add-macros-similar-to-min-max-min_t-max_t.patch
+add-macros-similar-to-min-max-min_t-max_t-doc.patch
+ide-eliminate-fit-macro.patch
+ata-remove-fit-macro.patch
+b43-replace-limit_value-macro-with-clamp_val.patch
+b43legacy-replace-limit_value-macro-with-clamp_val.patch
+fuse-use-clamp-rather-than-nested-min-max.patch
+ide-tape-use-clamp_t-rather-than-nested-min_t-max_t.patch
+input-ff-memlessc-use-clamp_val-macro.patch
+dccp-ccid2c-ccid3c-use-clamp-clamp_t.patch
+introduce-explicit-signed-unsigned-64bit-divide.patch
+convert-a-few-do_div-user.patch
+rename-div64_64-to-div64_u64.patch
+rename-div64_64-to-div64_u64-mm.patch
+remove-div_long_long_rem.patch

Various random fixes and cleanups

+ntp-cleanup-ntpc.patch
+ntp-ntp4-user-space-bits-update.patch
+ntp-increase-time_freq-resolution.patch
+ntp-increase-time_offset-resolution.patch
+ntp-support-for-tai.patch
+ntp-rename-tick_length_shift-to-ntp_scale_shift.patch
+ntp-remove-current_tick_length.patch
+ntp-handle-leap-second-via-timer.patch

NTP updates

+clocksource-keep-track-of-original-clocksource-frequency.patch
+clocksource-introduce-clock_monotonic_raw.patch
+clocksource-introduce-clock_monotonic_raw-fix.patch
+clocksource-introduce-clock_monotonic_raw-fix-checkpatch-fixes.patch

clocksource updates

+idr-create-idr_layer_cache-at-boot-time.patch
+idr-create-idr_layer_cache-at-boot-time-fix.patch
+idr-create-idr_layer_cache-at-boot-time-fix-fix.patch

IDR updates

+edac-new-support-for-intel-3100-chipset.patch
+edac-add-e752x-parameter-for-sysbus_parity-selection.patch
+edac-add-e752x-parameter-for-sysbus_parity-selection-checkpatch-fixes.patch
+edac-use-the-shorter-list_head-for-brevity.patch

EDAC updates

+introduce-a-generic-__fls-implementation.patch
+implement-__fls-on-all-64-bit-archs.patch
+use-__fls-for-fls64-on-64-bit-archs.patch

cleanups

+linuxpps-core-support.patch
+pps-userland-header-file-for-pps-api.patch
+pps-documentation-programs-and-examples.patch
+pps-linuxpps-clients-support.patch
+pps-serial-clients-support.patch
+pps-example-program-to-enable-pps-support-on-serial-ports.patch
+pps-parallel-port-clients-support.patch

"pulse per second" support. Updates are expected.

+slab-add-a-flag-to-prevent-debug_free-checks-on-a-kmem_cache.patch
+infrastructure-to-debug-dynamic-objects.patch
+debugobjects-add-documentation.patch
+debugobjects-add-timer-specific-object-debugging-code.patch
+add-hrtimer-specific-debugobjects-code.patch

Thomas's debug-objects stuff

+afs-use-the-shorter-list_head-for-brevity.patch

AFS update

+parport_pc-wrap-pnp-probe-code-in-ifdef-config_pnp.patch

parport update

+tpm-fix-section-mismatch-warning.patch
+tpm-change-kconfig-dependencies-from-pnpacpi-to-pnp.patch

tpm updates

+cpufreq-change-cpu-freq-arrays-to-per_cpu-variables.patch
+acpi-change-processors-from-array-to-per_cpu-variable.patch
+cpu-change-cpu_sys_devices-from-array-to-per_cpu-variable.patch
+net-remove-nr_cpus-arrays-in-net-core-devc-v2.patch

per-cpu work

+remove-ifdef-__kernel__-checks-from-unexported-headers.patch

cleanup

+reiser4-kgdb-fix.patch

reiser4 fix

+i386-arch-x86-math-emu-reg_ld_strc-fix-warning.patch

x86 warning fix (grubby, mm-only)

+likely_prof-changed-to-use-proc_create.patch
+likeliness-accounting-change-and-cleanup.patch
+proc-remove-proc_root-from-drivers-likelyprof.patch

likeliness-profiling updates



5011 commits in 1542 patch files


All patches:

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/patch-list
Dmitri Vorobiev
2008-04-02 05:40:22 UTC
Permalink
Hi Andrew,

MIPS build fails with the following:

$ make ARCH=mips CROSS_COMPILE=mips-unknown-linux-gnu-
...
[skipped]
...
CC arch/mips/mips-boards/generic/init.o
In file included from include/asm/cacheflush.h:13,
from arch/mips/mips-boards/generic/init.c:30:
include/linux/mm.h:411:63: "NR_PAGEFLAGS" is not defined
include/linux/mm.h:459:62: "NR_PAGEFLAGS" is not defined
make[1]: *** [arch/mips/mips-boards/generic/init.o] Error 1
make: *** [arch/mips/mips-boards/generic] Error 2

Thanks,
Dmitri
Andrew Morton
2008-04-02 06:03:22 UTC
Permalink
Post by Dmitri Vorobiev
Hi Andrew,
$ make ARCH=mips CROSS_COMPILE=mips-unknown-linux-gnu-
...
[skipped]
...
CC arch/mips/mips-boards/generic/init.o
In file included from include/asm/cacheflush.h:13,
include/linux/mm.h:411:63: "NR_PAGEFLAGS" is not defined
include/linux/mm.h:459:62: "NR_PAGEFLAGS" is not defined
make[1]: *** [arch/mips/mips-boards/generic/init.o] Error 1
make: *** [arch/mips/mips-boards/generic] Error 2
ahh, yup, known problem, sorry. We are slowly working on a fix.
Christoph Lameter
2008-04-02 17:33:32 UTC
Permalink
Post by Andrew Morton
Post by Dmitri Vorobiev
Hi Andrew,
$ make ARCH=mips CROSS_COMPILE=mips-unknown-linux-gnu-
...
[skipped]
...
CC arch/mips/mips-boards/generic/init.o
In file included from include/asm/cacheflush.h:13,
include/linux/mm.h:411:63: "NR_PAGEFLAGS" is not defined
include/linux/mm.h:459:62: "NR_PAGEFLAGS" is not defined
make[1]: *** [arch/mips/mips-boards/generic/init.o] Error 1
make: *** [arch/mips/mips-boards/generic] Error 2
ahh, yup, known problem, sorry. We are slowly working on a fix.
This the fix that I posted a couple of days ago after Andrew noted the
problem:




From: Christoph Lameter <***@sgi.com>
Subject: Allow override of definition for asm constant

MIPS has a different way of defining asm constants which causes troubles
for bounds.h generation (see also the Kbuild script).

Add a new per arch CONFIG variable

CONFIG_ASM_SYMBOL_PREFIX

which can be set to define an alternate header for asm constant definitions.
Use this for MIPS to make bounds determination work right.

Signed-off-by: Christoph Lameter <***@sgi.com>

---
arch/mips/Kconfig | 7 +++++++
kernel/bounds.c | 11 ++++++++++-
2 files changed, 17 insertions(+), 1 deletion(-)

Index: linux-2.6.25-rc5-mm1/arch/mips/Kconfig
===================================================================
--- linux-2.6.25-rc5-mm1.orig/arch/mips/Kconfig 2008-03-31 13:14:26.888383587 -0700
+++ linux-2.6.25-rc5-mm1/arch/mips/Kconfig 2008-03-31 13:14:28.028403612 -0700
@@ -2019,6 +2019,13 @@ config I8253
config ZONE_DMA32
bool

+#
+# Used to override gas symbol setup in kernel/bounds.c.
+#
+config ASM_SYMBOL_PREFIX
+ string
+ default "@@@#define "
+
source "drivers/pcmcia/Kconfig"

source "drivers/pci/hotplug/Kconfig"
Index: linux-2.6.25-rc5-mm1/kernel/bounds.c
===================================================================
--- linux-2.6.25-rc5-mm1.orig/kernel/bounds.c 2008-03-31 13:14:26.904383870 -0700
+++ linux-2.6.25-rc5-mm1/kernel/bounds.c 2008-03-31 13:14:28.028403612 -0700
@@ -9,8 +9,17 @@
#include <linux/page-flags.h>
#include <linux/mmzone.h>

+#ifdef CONFIG_ASM_SYMBOL_PREFIX
+#define PREFIX CONFIG_ASM_SYMBOL_PREFIX
+#else
+/*
+ * Standard gas way of defining an asm symbol
+ */
+#define PREFIX "->"
+#endif
+
#define DEFINE(sym, val) \
- asm volatile("\n->" #sym " %0 " #val : : "i" (val))
+ asm volatile("\n" PREFIX #sym " %0 " : : "i" (val))

#define BLANK() asm volatile("\n->" : :)
Andrew Morton
2008-04-02 18:29:07 UTC
Permalink
On Wed, 2 Apr 2008 10:33:32 -0700 (PDT)
Post by Christoph Lameter
Post by Andrew Morton
Post by Dmitri Vorobiev
Hi Andrew,
$ make ARCH=mips CROSS_COMPILE=mips-unknown-linux-gnu-
...
[skipped]
...
CC arch/mips/mips-boards/generic/init.o
In file included from include/asm/cacheflush.h:13,
include/linux/mm.h:411:63: "NR_PAGEFLAGS" is not defined
include/linux/mm.h:459:62: "NR_PAGEFLAGS" is not defined
make[1]: *** [arch/mips/mips-boards/generic/init.o] Error 1
make: *** [arch/mips/mips-boards/generic] Error 2
ahh, yup, known problem, sorry. We are slowly working on a fix.
This the fix that I posted a couple of days ago after Andrew noted the
Subject: Allow override of definition for asm constant
MIPS has a different way of defining asm constants which causes troubles
for bounds.h generation (see also the Kbuild script).
Add a new per arch CONFIG variable
CONFIG_ASM_SYMBOL_PREFIX
which can be set to define an alternate header for asm constant definitions.
Use this for MIPS to make bounds determination work right.
---
arch/mips/Kconfig | 7 +++++++
kernel/bounds.c | 11 ++++++++++-
2 files changed, 17 insertions(+), 1 deletion(-)
Index: linux-2.6.25-rc5-mm1/arch/mips/Kconfig
===================================================================
--- linux-2.6.25-rc5-mm1.orig/arch/mips/Kconfig 2008-03-31 13:14:26.888383587 -0700
+++ linux-2.6.25-rc5-mm1/arch/mips/Kconfig 2008-03-31 13:14:28.028403612 -0700
@@ -2019,6 +2019,13 @@ config I8253
config ZONE_DMA32
bool
+#
+# Used to override gas symbol setup in kernel/bounds.c.
+#
+config ASM_SYMBOL_PREFIX
+ string
+
source "drivers/pcmcia/Kconfig"
source "drivers/pci/hotplug/Kconfig"
Index: linux-2.6.25-rc5-mm1/kernel/bounds.c
===================================================================
--- linux-2.6.25-rc5-mm1.orig/kernel/bounds.c 2008-03-31 13:14:26.904383870 -0700
+++ linux-2.6.25-rc5-mm1/kernel/bounds.c 2008-03-31 13:14:28.028403612 -0700
@@ -9,8 +9,17 @@
#include <linux/page-flags.h>
#include <linux/mmzone.h>
+#ifdef CONFIG_ASM_SYMBOL_PREFIX
+#define PREFIX CONFIG_ASM_SYMBOL_PREFIX
+#else
+/*
+ * Standard gas way of defining an asm symbol
+ */
+#define PREFIX "->"
+#endif
+
#define DEFINE(sym, val) \
- asm volatile("\n->" #sym " %0 " #val : : "i" (val))
+ asm volatile("\n" PREFIX #sym " %0 " : : "i" (val))
#define BLANK() asm volatile("\n->" : :)
I'm obviously missing something here.

i386 generates

->NR_PAGEFLAGS $18 __NR_PAGEFLAGS #

mips generates

->NR_PAGEFLAGS 18 __NR_PAGEFLAGS #

The only difference is the "$". This can be trivially handled in the sed
expression which filters this .s file.

Why are we diddling with that "->" thing, and why does it even exist?
Christoph Lameter
2008-04-02 18:33:42 UTC
Permalink
Post by Andrew Morton
i386 generates
->NR_PAGEFLAGS $18 __NR_PAGEFLAGS #
mips generates
->NR_PAGEFLAGS 18 __NR_PAGEFLAGS #
For some reason the asm-offset.c for mips generates it differently and the
sed expression in kbuild is different. So it does not match.
Post by Andrew Morton
The only difference is the "$". This can be trivially handled in the sed
expression which filters this .s file.
Maybe the simple solution is to drop the strange mips way of doing things
and clean up Kbuild in the process?
Post by Andrew Morton
Why are we diddling with that "->" thing, and why does it even exist?
I guess this is some convention to allow the Kbuild set script to extract
the value. There must be some reason that they added the strange prefix.

ccing Sam who may shed some light on this.
Sam Ravnborg
2008-04-02 19:06:23 UTC
Permalink
Post by Christoph Lameter
Post by Andrew Morton
i386 generates
->NR_PAGEFLAGS $18 __NR_PAGEFLAGS #
mips generates
->NR_PAGEFLAGS 18 __NR_PAGEFLAGS #
For some reason the asm-offset.c for mips generates it differently and the
sed expression in kbuild is different. So it does not match.
When the asm-offset stuff were consolidated the mips variant
did not match the others.
I do not recall if I ever tried this on a mips tool-chain and as
my dev box is busted atm I cannot even test it out now.

I would be happy if we could kill the MIPS specific sed expression
in the top-level Kbuild file.

Ralf - can you take a look at this and see if mips really generates
different assembler syntax which warrants the different sed expression.

If mips really needs a different sed expression then we should adjust
it so the output is similar to the other archs.

Sam
Ralf Baechle
2008-04-03 16:02:30 UTC
Permalink
Post by Sam Ravnborg
Post by Christoph Lameter
Post by Andrew Morton
i386 generates
->NR_PAGEFLAGS $18 __NR_PAGEFLAGS #
mips generates
->NR_PAGEFLAGS 18 __NR_PAGEFLAGS #
For some reason the asm-offset.c for mips generates it differently and the
sed expression in kbuild is different. So it does not match.
When the asm-offset stuff were consolidated the mips variant
did not match the others.
I do not recall if I ever tried this on a mips tool-chain and as
my dev box is busted atm I cannot even test it out now.
I would be happy if we could kill the MIPS specific sed expression
in the top-level Kbuild file.
Ralf - can you take a look at this and see if mips really generates
different assembler syntax which warrants the different sed expression.
If mips really needs a different sed expression then we should adjust
it so the output is similar to the other archs.
The reason for MIPS doing things a little different is that the resulting
<asm/asm-offsets.h> doesn't look like machine generated jibberish. So
how about below patch which combines the two sed expressions.

Ralf

Signed-off-by: Ralf Baechle <***@linux-mips.org>

diff --git a/Kbuild b/Kbuild
index 7136de7..2bd4a3c 100644
--- a/Kbuild
+++ b/Kbuild
@@ -52,10 +52,8 @@ targets += arch/$(SRCARCH)/kernel/asm-offsets.s

# Default sed regexp - multiline due to syntax constraints
define sed-y
- "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"
+ "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}; /^@@@/{s/^@@@//; s/ \#.*\$$//; p;};"
endef
-# Override default regexp for specific architectures
-sed-$(CONFIG_MIPS) := "/^@@@/{s/^@@@//; s/ \#.*\$$//; p;}"

quiet_cmd_offsets = GEN $@
define cmd_offsets
Christoph Lameter
2008-04-03 22:17:22 UTC
Permalink
Post by Ralf Baechle
The reason for MIPS doing things a little different is that the resulting
<asm/asm-offsets.h> doesn't look like machine generated jibberish. So
how about below patch which combines the two sed expressions.
Well but it is machine generated and it may be best if mips would do more
of the same that is done in other arches? We do not want special arch
cases in Kbuild.

How about this patch?


Subject: Standardize mips asm-offsets.c somewhat

mips uses a different pattern to signal a constant in the asm code generated
by asm-offsets.c which in turn requires special handling in Kbuild and
causes trouble for the new mechanism to count the number of page flags.

Remove the special handling and make mips use the same string as all the
other arches (->).

It seems that MIPS tried to have nice looking asm output. Sadly this
patch disturbsthat nice formatting somewhat and makes it look like asm
output for any otherarch.

Signed-off-by: Christoph Lameter <***@sgi.com>

---
Kbuild | 2
arch/mips/kernel/asm-offsets.c | 392 ++++++++++++++++++++---------------------
2 files changed, 196 insertions(+), 198 deletions(-)

Index: linux-2.6.25-rc8-mm1/Kbuild
===================================================================
--- linux-2.6.25-rc8-mm1.orig/Kbuild 2008-04-03 14:53:38.581697916 -0700
+++ linux-2.6.25-rc8-mm1/Kbuild 2008-04-03 14:53:41.411694858 -0700
@@ -54,8 +54,6 @@ targets += arch/$(SRCARCH)/kernel/asm-of
define sed-y
"/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"
endef
-# Override default regexp for specific architectures
-sed-$(CONFIG_MIPS) := "/^@@@/{s/^@@@//; s/ \#.*\$$//; p;}"

quiet_cmd_offsets = GEN $@
define cmd_offsets
Index: linux-2.6.25-rc8-mm1/arch/mips/kernel/asm-offsets.c
===================================================================
--- linux-2.6.25-rc8-mm1.orig/arch/mips/kernel/asm-offsets.c 2008-04-03 14:53:38.601695308 -0700
+++ linux-2.6.25-rc8-mm1/arch/mips/kernel/asm-offsets.c 2008-04-03 14:59:46.939017142 -0700
@@ -20,193 +20,193 @@
#define text(t) __asm__("\n@@@" t)
#define _offset(type, member) (&(((type *)NULL)->member))
#define offset(string, ptr, member) \
- __asm__("\n@@@" string "%0" : : "i" (_offset(ptr, member)))
+ __asm__("\n->" string " %0" : : "i" (_offset(ptr, member)))
#define constant(string, member) \
- __asm__("\n@@@" string "%X0" : : "ri" (member))
+ __asm__("\n->" string " %0" : : "ri" (member))
#define size(string, size) \
- __asm__("\n@@@" string "%0" : : "i" (sizeof(size)))
+ __asm__("\n->" string " %0" : : "i" (sizeof(size)))
#define linefeed text("")

void output_ptreg_defines(void)
{
text("/* MIPS pt_regs offsets. */");
- offset("#define PT_R0 ", struct pt_regs, regs[0]);
- offset("#define PT_R1 ", struct pt_regs, regs[1]);
- offset("#define PT_R2 ", struct pt_regs, regs[2]);
- offset("#define PT_R3 ", struct pt_regs, regs[3]);
- offset("#define PT_R4 ", struct pt_regs, regs[4]);
- offset("#define PT_R5 ", struct pt_regs, regs[5]);
- offset("#define PT_R6 ", struct pt_regs, regs[6]);
- offset("#define PT_R7 ", struct pt_regs, regs[7]);
- offset("#define PT_R8 ", struct pt_regs, regs[8]);
- offset("#define PT_R9 ", struct pt_regs, regs[9]);
- offset("#define PT_R10 ", struct pt_regs, regs[10]);
- offset("#define PT_R11 ", struct pt_regs, regs[11]);
- offset("#define PT_R12 ", struct pt_regs, regs[12]);
- offset("#define PT_R13 ", struct pt_regs, regs[13]);
- offset("#define PT_R14 ", struct pt_regs, regs[14]);
- offset("#define PT_R15 ", struct pt_regs, regs[15]);
- offset("#define PT_R16 ", struct pt_regs, regs[16]);
- offset("#define PT_R17 ", struct pt_regs, regs[17]);
- offset("#define PT_R18 ", struct pt_regs, regs[18]);
- offset("#define PT_R19 ", struct pt_regs, regs[19]);
- offset("#define PT_R20 ", struct pt_regs, regs[20]);
- offset("#define PT_R21 ", struct pt_regs, regs[21]);
- offset("#define PT_R22 ", struct pt_regs, regs[22]);
- offset("#define PT_R23 ", struct pt_regs, regs[23]);
- offset("#define PT_R24 ", struct pt_regs, regs[24]);
- offset("#define PT_R25 ", struct pt_regs, regs[25]);
- offset("#define PT_R26 ", struct pt_regs, regs[26]);
- offset("#define PT_R27 ", struct pt_regs, regs[27]);
- offset("#define PT_R28 ", struct pt_regs, regs[28]);
- offset("#define PT_R29 ", struct pt_regs, regs[29]);
- offset("#define PT_R30 ", struct pt_regs, regs[30]);
- offset("#define PT_R31 ", struct pt_regs, regs[31]);
- offset("#define PT_LO ", struct pt_regs, lo);
- offset("#define PT_HI ", struct pt_regs, hi);
+ offset("PT_R0", struct pt_regs, regs[0]);
+ offset("PT_R1", struct pt_regs, regs[1]);
+ offset("PT_R2", struct pt_regs, regs[2]);
+ offset("PT_R3", struct pt_regs, regs[3]);
+ offset("PT_R4", struct pt_regs, regs[4]);
+ offset("PT_R5", struct pt_regs, regs[5]);
+ offset("PT_R6", struct pt_regs, regs[6]);
+ offset("PT_R7", struct pt_regs, regs[7]);
+ offset("PT_R8", struct pt_regs, regs[8]);
+ offset("PT_R9", struct pt_regs, regs[9]);
+ offset("PT_R10", struct pt_regs, regs[10]);
+ offset("PT_R11", struct pt_regs, regs[11]);
+ offset("PT_R12", struct pt_regs, regs[12]);
+ offset("PT_R13", struct pt_regs, regs[13]);
+ offset("PT_R14", struct pt_regs, regs[14]);
+ offset("PT_R15", struct pt_regs, regs[15]);
+ offset("PT_R16", struct pt_regs, regs[16]);
+ offset("PT_R17", struct pt_regs, regs[17]);
+ offset("PT_R18", struct pt_regs, regs[18]);
+ offset("PT_R19", struct pt_regs, regs[19]);
+ offset("PT_R20", struct pt_regs, regs[20]);
+ offset("PT_R21", struct pt_regs, regs[21]);
+ offset("PT_R22", struct pt_regs, regs[22]);
+ offset("PT_R23", struct pt_regs, regs[23]);
+ offset("PT_R24", struct pt_regs, regs[24]);
+ offset("PT_R25", struct pt_regs, regs[25]);
+ offset("PT_R26", struct pt_regs, regs[26]);
+ offset("PT_R27", struct pt_regs, regs[27]);
+ offset("PT_R28", struct pt_regs, regs[28]);
+ offset("PT_R29", struct pt_regs, regs[29]);
+ offset("PT_R30", struct pt_regs, regs[30]);
+ offset("PT_R31", struct pt_regs, regs[31]);
+ offset("PT_LO", struct pt_regs, lo);
+ offset("PT_HI", struct pt_regs, hi);
#ifdef CONFIG_CPU_HAS_SMARTMIPS
- offset("#define PT_ACX ", struct pt_regs, acx);
+ offset("PT_ACX", struct pt_regs, acx);
#endif
- offset("#define PT_EPC ", struct pt_regs, cp0_epc);
- offset("#define PT_BVADDR ", struct pt_regs, cp0_badvaddr);
- offset("#define PT_STATUS ", struct pt_regs, cp0_status);
- offset("#define PT_CAUSE ", struct pt_regs, cp0_cause);
+ offset("PT_EPC", struct pt_regs, cp0_epc);
+ offset("PT_BVADDR", struct pt_regs, cp0_badvaddr);
+ offset("PT_STATUS", struct pt_regs, cp0_status);
+ offset("PT_CAUSE", struct pt_regs, cp0_cause);
#ifdef CONFIG_MIPS_MT_SMTC
- offset("#define PT_TCSTATUS ", struct pt_regs, cp0_tcstatus);
+ offset("PT_TCSTATUS", struct pt_regs, cp0_tcstatus);
#endif /* CONFIG_MIPS_MT_SMTC */
- size("#define PT_SIZE ", struct pt_regs);
+ size("PT_SIZE", struct pt_regs);
linefeed;
}

void output_task_defines(void)
{
text("/* MIPS task_struct offsets. */");
- offset("#define TASK_STATE ", struct task_struct, state);
- offset("#define TASK_THREAD_INFO ", struct task_struct, stack);
- offset("#define TASK_FLAGS ", struct task_struct, flags);
- offset("#define TASK_MM ", struct task_struct, mm);
- offset("#define TASK_PID ", struct task_struct, pid);
- size( "#define TASK_STRUCT_SIZE ", struct task_struct);
+ offset("TASK_STATE", struct task_struct, state);
+ offset("TASK_THREAD_INFO", struct task_struct, stack);
+ offset("TASK_FLAGS", struct task_struct, flags);
+ offset("TASK_MM", struct task_struct, mm);
+ offset("TASK_PID", struct task_struct, pid);
+ size( "TASK_STRUCT_SIZE", struct task_struct);
linefeed;
}

void output_thread_info_defines(void)
{
text("/* MIPS thread_info offsets. */");
- offset("#define TI_TASK ", struct thread_info, task);
- offset("#define TI_EXEC_DOMAIN ", struct thread_info, exec_domain);
- offset("#define TI_FLAGS ", struct thread_info, flags);
- offset("#define TI_TP_VALUE ", struct thread_info, tp_value);
- offset("#define TI_CPU ", struct thread_info, cpu);
- offset("#define TI_PRE_COUNT ", struct thread_info, preempt_count);
- offset("#define TI_ADDR_LIMIT ", struct thread_info, addr_limit);
- offset("#define TI_RESTART_BLOCK ", struct thread_info, restart_block);
- offset("#define TI_REGS ", struct thread_info, regs);
- constant("#define _THREAD_SIZE ", THREAD_SIZE);
- constant("#define _THREAD_MASK ", THREAD_MASK);
+ offset("TI_TASK", struct thread_info, task);
+ offset("TI_EXEC_DOMAIN", struct thread_info, exec_domain);
+ offset("TI_FLAGS", struct thread_info, flags);
+ offset("TI_TP_VALUE", struct thread_info, tp_value);
+ offset("TI_CPU", struct thread_info, cpu);
+ offset("TI_PRE_COUNT", struct thread_info, preempt_count);
+ offset("TI_ADDR_LIMIT", struct thread_info, addr_limit);
+ offset("TI_RESTART_BLOCK", struct thread_info, restart_block);
+ offset("TI_REGS", struct thread_info, regs);
+ constant("_THREAD_SIZE", THREAD_SIZE);
+ constant("_THREAD_MASK", THREAD_MASK);
linefeed;
}

void output_thread_defines(void)
{
text("/* MIPS specific thread_struct offsets. */");
- offset("#define THREAD_REG16 ", struct task_struct, thread.reg16);
- offset("#define THREAD_REG17 ", struct task_struct, thread.reg17);
- offset("#define THREAD_REG18 ", struct task_struct, thread.reg18);
- offset("#define THREAD_REG19 ", struct task_struct, thread.reg19);
- offset("#define THREAD_REG20 ", struct task_struct, thread.reg20);
- offset("#define THREAD_REG21 ", struct task_struct, thread.reg21);
- offset("#define THREAD_REG22 ", struct task_struct, thread.reg22);
- offset("#define THREAD_REG23 ", struct task_struct, thread.reg23);
- offset("#define THREAD_REG29 ", struct task_struct, thread.reg29);
- offset("#define THREAD_REG30 ", struct task_struct, thread.reg30);
- offset("#define THREAD_REG31 ", struct task_struct, thread.reg31);
- offset("#define THREAD_STATUS ", struct task_struct,
+ offset("THREAD_REG16", struct task_struct, thread.reg16);
+ offset("THREAD_REG17", struct task_struct, thread.reg17);
+ offset("THREAD_REG18", struct task_struct, thread.reg18);
+ offset("THREAD_REG19", struct task_struct, thread.reg19);
+ offset("THREAD_REG20", struct task_struct, thread.reg20);
+ offset("THREAD_REG21", struct task_struct, thread.reg21);
+ offset("THREAD_REG22", struct task_struct, thread.reg22);
+ offset("THREAD_REG23", struct task_struct, thread.reg23);
+ offset("THREAD_REG29", struct task_struct, thread.reg29);
+ offset("THREAD_REG30", struct task_struct, thread.reg30);
+ offset("THREAD_REG31", struct task_struct, thread.reg31);
+ offset("THREAD_STATUS", struct task_struct,
thread.cp0_status);
- offset("#define THREAD_FPU ", struct task_struct, thread.fpu);
+ offset("THREAD_FPU", struct task_struct, thread.fpu);

- offset("#define THREAD_BVADDR ", struct task_struct, \
+ offset("THREAD_BVADDR", struct task_struct, \
thread.cp0_badvaddr);
- offset("#define THREAD_BUADDR ", struct task_struct, \
+ offset("THREAD_BUADDR", struct task_struct, \
thread.cp0_baduaddr);
- offset("#define THREAD_ECODE ", struct task_struct, \
+ offset("THREAD_ECODE", struct task_struct, \
thread.error_code);
- offset("#define THREAD_TRAPNO ", struct task_struct, thread.trap_no);
- offset("#define THREAD_TRAMP ", struct task_struct, \
+ offset("THREAD_TRAPNO", struct task_struct, thread.trap_no);
+ offset("THREAD_TRAMP", struct task_struct, \
thread.irix_trampoline);
- offset("#define THREAD_OLDCTX ", struct task_struct, \
+ offset("THREAD_OLDCTX", struct task_struct, \
thread.irix_oldctx);
linefeed;
}

void output_thread_fpu_defines(void)
{
- offset("#define THREAD_FPR0 ",
+ offset("THREAD_FPR0",
struct task_struct, thread.fpu.fpr[0]);
- offset("#define THREAD_FPR1 ",
+ offset("THREAD_FPR1",
struct task_struct, thread.fpu.fpr[1]);
- offset("#define THREAD_FPR2 ",
+ offset("THREAD_FPR2",
struct task_struct, thread.fpu.fpr[2]);
- offset("#define THREAD_FPR3 ",
+ offset("THREAD_FPR3",
struct task_struct, thread.fpu.fpr[3]);
- offset("#define THREAD_FPR4 ",
+ offset("THREAD_FPR4",
struct task_struct, thread.fpu.fpr[4]);
- offset("#define THREAD_FPR5 ",
+ offset("THREAD_FPR5",
struct task_struct, thread.fpu.fpr[5]);
- offset("#define THREAD_FPR6 ",
+ offset("THREAD_FPR6",
struct task_struct, thread.fpu.fpr[6]);
- offset("#define THREAD_FPR7 ",
+ offset("THREAD_FPR7",
struct task_struct, thread.fpu.fpr[7]);
- offset("#define THREAD_FPR8 ",
+ offset("THREAD_FPR8",
struct task_struct, thread.fpu.fpr[8]);
- offset("#define THREAD_FPR9 ",
+ offset("THREAD_FPR9",
struct task_struct, thread.fpu.fpr[9]);
- offset("#define THREAD_FPR10 ",
+ offset("THREAD_FPR10",
struct task_struct, thread.fpu.fpr[10]);
- offset("#define THREAD_FPR11 ",
+ offset("THREAD_FPR11",
struct task_struct, thread.fpu.fpr[11]);
- offset("#define THREAD_FPR12 ",
+ offset("THREAD_FPR12",
struct task_struct, thread.fpu.fpr[12]);
- offset("#define THREAD_FPR13 ",
+ offset("THREAD_FPR13",
struct task_struct, thread.fpu.fpr[13]);
- offset("#define THREAD_FPR14 ",
+ offset("THREAD_FPR14",
struct task_struct, thread.fpu.fpr[14]);
- offset("#define THREAD_FPR15 ",
+ offset("THREAD_FPR15",
struct task_struct, thread.fpu.fpr[15]);
- offset("#define THREAD_FPR16 ",
+ offset("THREAD_FPR16",
struct task_struct, thread.fpu.fpr[16]);
- offset("#define THREAD_FPR17 ",
+ offset("THREAD_FPR17",
struct task_struct, thread.fpu.fpr[17]);
- offset("#define THREAD_FPR18 ",
+ offset("THREAD_FPR18",
struct task_struct, thread.fpu.fpr[18]);
- offset("#define THREAD_FPR19 ",
+ offset("THREAD_FPR19",
struct task_struct, thread.fpu.fpr[19]);
- offset("#define THREAD_FPR20 ",
+ offset("THREAD_FPR20",
struct task_struct, thread.fpu.fpr[20]);
- offset("#define THREAD_FPR21 ",
+ offset("THREAD_FPR21",
struct task_struct, thread.fpu.fpr[21]);
- offset("#define THREAD_FPR22 ",
+ offset("THREAD_FPR22",
struct task_struct, thread.fpu.fpr[22]);
- offset("#define THREAD_FPR23 ",
+ offset("THREAD_FPR23",
struct task_struct, thread.fpu.fpr[23]);
- offset("#define THREAD_FPR24 ",
+ offset("THREAD_FPR24",
struct task_struct, thread.fpu.fpr[24]);
- offset("#define THREAD_FPR25 ",
+ offset("THREAD_FPR25",
struct task_struct, thread.fpu.fpr[25]);
- offset("#define THREAD_FPR26 ",
+ offset("THREAD_FPR26",
struct task_struct, thread.fpu.fpr[26]);
- offset("#define THREAD_FPR27 ",
+ offset("THREAD_FPR27",
struct task_struct, thread.fpu.fpr[27]);
- offset("#define THREAD_FPR28 ",
+ offset("THREAD_FPR28",
struct task_struct, thread.fpu.fpr[28]);
- offset("#define THREAD_FPR29 ",
+ offset("THREAD_FPR29",
struct task_struct, thread.fpu.fpr[29]);
- offset("#define THREAD_FPR30 ",
+ offset("THREAD_FPR30",
struct task_struct, thread.fpu.fpr[30]);
- offset("#define THREAD_FPR31 ",
+ offset("THREAD_FPR31",
struct task_struct, thread.fpu.fpr[31]);

- offset("#define THREAD_FCR31 ",
+ offset("THREAD_FCR31",
struct task_struct, thread.fpu.fcr31);
linefeed;
}
@@ -214,34 +214,34 @@ void output_thread_fpu_defines(void)
void output_mm_defines(void)
{
text("/* Size of struct page */");
- size("#define STRUCT_PAGE_SIZE ", struct page);
+ size("STRUCT_PAGE_SIZE", struct page);
linefeed;
text("/* Linux mm_struct offsets. */");
- offset("#define MM_USERS ", struct mm_struct, mm_users);
- offset("#define MM_PGD ", struct mm_struct, pgd);
- offset("#define MM_CONTEXT ", struct mm_struct, context);
- linefeed;
- constant("#define _PAGE_SIZE ", PAGE_SIZE);
- constant("#define _PAGE_SHIFT ", PAGE_SHIFT);
- linefeed;
- constant("#define _PGD_T_SIZE ", sizeof(pgd_t));
- constant("#define _PMD_T_SIZE ", sizeof(pmd_t));
- constant("#define _PTE_T_SIZE ", sizeof(pte_t));
- linefeed;
- constant("#define _PGD_T_LOG2 ", PGD_T_LOG2);
- constant("#define _PMD_T_LOG2 ", PMD_T_LOG2);
- constant("#define _PTE_T_LOG2 ", PTE_T_LOG2);
- linefeed;
- constant("#define _PGD_ORDER ", PGD_ORDER);
- constant("#define _PMD_ORDER ", PMD_ORDER);
- constant("#define _PTE_ORDER ", PTE_ORDER);
- linefeed;
- constant("#define _PMD_SHIFT ", PMD_SHIFT);
- constant("#define _PGDIR_SHIFT ", PGDIR_SHIFT);
- linefeed;
- constant("#define _PTRS_PER_PGD ", PTRS_PER_PGD);
- constant("#define _PTRS_PER_PMD ", PTRS_PER_PMD);
- constant("#define _PTRS_PER_PTE ", PTRS_PER_PTE);
+ offset("MM_USERS", struct mm_struct, mm_users);
+ offset("MM_PGD", struct mm_struct, pgd);
+ offset("MM_CONTEXT", struct mm_struct, context);
+ linefeed;
+ constant("_PAGE_SIZE", PAGE_SIZE);
+ constant("_PAGE_SHIFT", PAGE_SHIFT);
+ linefeed;
+ constant("_PGD_T_SIZE", sizeof(pgd_t));
+ constant("_PMD_T_SIZE", sizeof(pmd_t));
+ constant("_PTE_T_SIZE", sizeof(pte_t));
+ linefeed;
+ constant("_PGD_T_LOG2", PGD_T_LOG2);
+ constant("_PMD_T_LOG2", PMD_T_LOG2);
+ constant("_PTE_T_LOG2", PTE_T_LOG2);
+ linefeed;
+ constant("_PGD_ORDER", PGD_ORDER);
+ constant("_PMD_ORDER", PMD_ORDER);
+ constant("_PTE_ORDER", PTE_ORDER);
+ linefeed;
+ constant("_PMD_SHIFT", PMD_SHIFT);
+ constant("_PGDIR_SHIFT", PGDIR_SHIFT);
+ linefeed;
+ constant("_PTRS_PER_PGD", PTRS_PER_PGD);
+ constant("_PTRS_PER_PMD", PTRS_PER_PMD);
+ constant("_PTRS_PER_PTE", PTRS_PER_PTE);
linefeed;
}

@@ -249,20 +249,20 @@ void output_mm_defines(void)
void output_sc_defines(void)
{
text("/* Linux sigcontext offsets. */");
- offset("#define SC_REGS ", struct sigcontext, sc_regs);
- offset("#define SC_FPREGS ", struct sigcontext, sc_fpregs);
- offset("#define SC_ACX ", struct sigcontext, sc_acx);
- offset("#define SC_MDHI ", struct sigcontext, sc_mdhi);
- offset("#define SC_MDLO ", struct sigcontext, sc_mdlo);
- offset("#define SC_PC ", struct sigcontext, sc_pc);
- offset("#define SC_FPC_CSR ", struct sigcontext, sc_fpc_csr);
- offset("#define SC_FPC_EIR ", struct sigcontext, sc_fpc_eir);
- offset("#define SC_HI1 ", struct sigcontext, sc_hi1);
- offset("#define SC_LO1 ", struct sigcontext, sc_lo1);
- offset("#define SC_HI2 ", struct sigcontext, sc_hi2);
- offset("#define SC_LO2 ", struct sigcontext, sc_lo2);
- offset("#define SC_HI3 ", struct sigcontext, sc_hi3);
- offset("#define SC_LO3 ", struct sigcontext, sc_lo3);
+ offset("SC_REGS", struct sigcontext, sc_regs);
+ offset("SC_FPREGS", struct sigcontext, sc_fpregs);
+ offset("SC_ACX", struct sigcontext, sc_acx);
+ offset("SC_MDHI", struct sigcontext, sc_mdhi);
+ offset("SC_MDLO", struct sigcontext, sc_mdlo);
+ offset("SC_PC", struct sigcontext, sc_pc);
+ offset("SC_FPC_CSR", struct sigcontext, sc_fpc_csr);
+ offset("SC_FPC_EIR", struct sigcontext, sc_fpc_eir);
+ offset("SC_HI1", struct sigcontext, sc_hi1);
+ offset("SC_LO1", struct sigcontext, sc_lo1);
+ offset("SC_HI2", struct sigcontext, sc_hi2);
+ offset("SC_LO2", struct sigcontext, sc_lo2);
+ offset("SC_HI3", struct sigcontext, sc_hi3);
+ offset("SC_LO3", struct sigcontext, sc_lo3);
linefeed;
}
#endif
@@ -271,12 +271,12 @@ void output_sc_defines(void)
void output_sc_defines(void)
{
text("/* Linux sigcontext offsets. */");
- offset("#define SC_REGS ", struct sigcontext, sc_regs);
- offset("#define SC_FPREGS ", struct sigcontext, sc_fpregs);
- offset("#define SC_MDHI ", struct sigcontext, sc_mdhi);
- offset("#define SC_MDLO ", struct sigcontext, sc_mdlo);
- offset("#define SC_PC ", struct sigcontext, sc_pc);
- offset("#define SC_FPC_CSR ", struct sigcontext, sc_fpc_csr);
+ offset("SC_REGS", struct sigcontext, sc_regs);
+ offset("SC_FPREGS", struct sigcontext, sc_fpregs);
+ offset("SC_MDHI", struct sigcontext, sc_mdhi);
+ offset("SC_MDLO", struct sigcontext, sc_mdlo);
+ offset("SC_PC", struct sigcontext, sc_pc);
+ offset("SC_FPC_CSR", struct sigcontext, sc_fpc_csr);
linefeed;
}
#endif
@@ -285,9 +285,9 @@ void output_sc_defines(void)
void output_sc32_defines(void)
{
text("/* Linux 32-bit sigcontext offsets. */");
- offset("#define SC32_FPREGS ", struct sigcontext32, sc_fpregs);
- offset("#define SC32_FPC_CSR ", struct sigcontext32, sc_fpc_csr);
- offset("#define SC32_FPC_EIR ", struct sigcontext32, sc_fpc_eir);
+ offset("SC32_FPREGS", struct sigcontext32, sc_fpregs);
+ offset("SC32_FPC_CSR", struct sigcontext32, sc_fpc_csr);
+ offset("SC32_FPC_EIR", struct sigcontext32, sc_fpc_eir);
linefeed;
}
#endif
@@ -295,45 +295,45 @@ void output_sc32_defines(void)
void output_signal_defined(void)
{
text("/* Linux signal numbers. */");
- constant("#define _SIGHUP ", SIGHUP);
- constant("#define _SIGINT ", SIGINT);
- constant("#define _SIGQUIT ", SIGQUIT);
- constant("#define _SIGILL ", SIGILL);
- constant("#define _SIGTRAP ", SIGTRAP);
- constant("#define _SIGIOT ", SIGIOT);
- constant("#define _SIGABRT ", SIGABRT);
- constant("#define _SIGEMT ", SIGEMT);
- constant("#define _SIGFPE ", SIGFPE);
- constant("#define _SIGKILL ", SIGKILL);
- constant("#define _SIGBUS ", SIGBUS);
- constant("#define _SIGSEGV ", SIGSEGV);
- constant("#define _SIGSYS ", SIGSYS);
- constant("#define _SIGPIPE ", SIGPIPE);
- constant("#define _SIGALRM ", SIGALRM);
- constant("#define _SIGTERM ", SIGTERM);
- constant("#define _SIGUSR1 ", SIGUSR1);
- constant("#define _SIGUSR2 ", SIGUSR2);
- constant("#define _SIGCHLD ", SIGCHLD);
- constant("#define _SIGPWR ", SIGPWR);
- constant("#define _SIGWINCH ", SIGWINCH);
- constant("#define _SIGURG ", SIGURG);
- constant("#define _SIGIO ", SIGIO);
- constant("#define _SIGSTOP ", SIGSTOP);
- constant("#define _SIGTSTP ", SIGTSTP);
- constant("#define _SIGCONT ", SIGCONT);
- constant("#define _SIGTTIN ", SIGTTIN);
- constant("#define _SIGTTOU ", SIGTTOU);
- constant("#define _SIGVTALRM ", SIGVTALRM);
- constant("#define _SIGPROF ", SIGPROF);
- constant("#define _SIGXCPU ", SIGXCPU);
- constant("#define _SIGXFSZ ", SIGXFSZ);
+ constant("_SIGHUP", SIGHUP);
+ constant("_SIGINT", SIGINT);
+ constant("_SIGQUIT", SIGQUIT);
+ constant("_SIGILL", SIGILL);
+ constant("_SIGTRAP", SIGTRAP);
+ constant("_SIGIOT", SIGIOT);
+ constant("_SIGABRT", SIGABRT);
+ constant("_SIGEMT", SIGEMT);
+ constant("_SIGFPE", SIGFPE);
+ constant("_SIGKILL", SIGKILL);
+ constant("_SIGBUS", SIGBUS);
+ constant("_SIGSEGV", SIGSEGV);
+ constant("_SIGSYS", SIGSYS);
+ constant("_SIGPIPE", SIGPIPE);
+ constant("_SIGALRM", SIGALRM);
+ constant("_SIGTERM", SIGTERM);
+ constant("_SIGUSR1", SIGUSR1);
+ constant("_SIGUSR2", SIGUSR2);
+ constant("_SIGCHLD", SIGCHLD);
+ constant("_SIGPWR", SIGPWR);
+ constant("_SIGWINCH", SIGWINCH);
+ constant("_SIGURG", SIGURG);
+ constant("_SIGIO", SIGIO);
+ constant("_SIGSTOP", SIGSTOP);
+ constant("_SIGTSTP", SIGTSTP);
+ constant("_SIGCONT", SIGCONT);
+ constant("_SIGTTIN", SIGTTIN);
+ constant("_SIGTTOU", SIGTTOU);
+ constant("_SIGVTALRM", SIGVTALRM);
+ constant("_SIGPROF", SIGPROF);
+ constant("_SIGXCPU", SIGXCPU);
+ constant("_SIGXFSZ", SIGXFSZ);
linefeed;
}

void output_irq_cpustat_t_defines(void)
{
text("/* Linux irq_cpustat_t offsets. */");
- offset("#define IC_SOFTIRQ_PENDING ", irq_cpustat_t, __softirq_pending);
- size("#define IC_IRQ_CPUSTAT_T ", irq_cpustat_t);
+ offset("IC_SOFTIRQ_PENDING", irq_cpustat_t, __softirq_pending);
+ size("IC_IRQ_CPUSTAT_T", irq_cpustat_t);
linefeed;
}
Dmitri Vorobiev
2008-04-03 23:26:30 UTC
Permalink
=20
The reason for MIPS doing things a little different is that the resu=
lting
<asm/asm-offsets.h> doesn't look like machine generated jibberish. =
So
how about below patch which combines the two sed expressions.
=20
Well but it is machine generated and it may be best if mips would do =
more=20
of the same that is done in other arches? We do not want special arch=
=20
cases in Kbuild.
=20
How about this patch?
=20
I confirm that with this patch applied, the kernel build succeeds. Did
not try to boot it, though.

Thanks,
Dmitri
=20
Subject: Standardize mips asm-offsets.c somewhat
=20
mips uses a different pattern to signal a constant in the asm code ge=
nerated
by asm-offsets.c which in turn requires special handling in Kbuild an=
d=20
causes trouble for the new mechanism to count the number of page flag=
s.
=20
Remove the special handling and make mips use the same string as all =
the
other arches (->).
=20
It seems that MIPS tried to have nice looking asm output. Sadly this=20
patch disturbsthat nice formatting somewhat and makes it look like as=
m=20
output for any otherarch.
=20
=20
---
Kbuild | 2=20
arch/mips/kernel/asm-offsets.c | 392 ++++++++++++++++++++----------=
-----------
2 files changed, 196 insertions(+), 198 deletions(-)
=20
Index: linux-2.6.25-rc8-mm1/Kbuild
=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.25-rc8-mm1.orig/Kbuild 2008-04-03 14:53:38.581697916 -0=
700
+++ linux-2.6.25-rc8-mm1/Kbuild 2008-04-03 14:53:41.411694858 -0700
@@ -54,8 +54,6 @@ targets +=3D arch/$(SRCARCH)/kernel/asm-of
define sed-y
"/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 *=
/:; s:->::; p;}"
endef
-# Override default regexp for specific architectures
=20
define cmd_offsets
Index: linux-2.6.25-rc8-mm1/arch/mips/kernel/asm-offsets.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.25-rc8-mm1.orig/arch/mips/kernel/asm-offsets.c 2008-04-=
03 14:53:38.601695308 -0700
+++ linux-2.6.25-rc8-mm1/arch/mips/kernel/asm-offsets.c 2008-04-03 14=
:59:46.939017142 -0700
@@ -20,193 +20,193 @@
#define _offset(type, member) (&(((type *)NULL)->member))
#define offset(string, ptr, member) \
+ __asm__("\n->" string " %0" : : "i" (_offset(ptr, member)))
#define constant(string, member) \
+ __asm__("\n->" string " %0" : : "ri" (member))
#define size(string, size) \
+ __asm__("\n->" string " %0" : : "i" (sizeof(size)))
#define linefeed text("")
=20
void output_ptreg_defines(void)
{
text("/* MIPS pt_regs offsets. */");
- offset("#define PT_R0 ", struct pt_regs, regs[0]);
- offset("#define PT_R1 ", struct pt_regs, regs[1]);
- offset("#define PT_R2 ", struct pt_regs, regs[2]);
- offset("#define PT_R3 ", struct pt_regs, regs[3]);
- offset("#define PT_R4 ", struct pt_regs, regs[4]);
- offset("#define PT_R5 ", struct pt_regs, regs[5]);
- offset("#define PT_R6 ", struct pt_regs, regs[6]);
- offset("#define PT_R7 ", struct pt_regs, regs[7]);
- offset("#define PT_R8 ", struct pt_regs, regs[8]);
- offset("#define PT_R9 ", struct pt_regs, regs[9]);
- offset("#define PT_R10 ", struct pt_regs, regs[10]);
- offset("#define PT_R11 ", struct pt_regs, regs[11]);
- offset("#define PT_R12 ", struct pt_regs, regs[12]);
- offset("#define PT_R13 ", struct pt_regs, regs[13]);
- offset("#define PT_R14 ", struct pt_regs, regs[14]);
- offset("#define PT_R15 ", struct pt_regs, regs[15]);
- offset("#define PT_R16 ", struct pt_regs, regs[16]);
- offset("#define PT_R17 ", struct pt_regs, regs[17]);
- offset("#define PT_R18 ", struct pt_regs, regs[18]);
- offset("#define PT_R19 ", struct pt_regs, regs[19]);
- offset("#define PT_R20 ", struct pt_regs, regs[20]);
- offset("#define PT_R21 ", struct pt_regs, regs[21]);
- offset("#define PT_R22 ", struct pt_regs, regs[22]);
- offset("#define PT_R23 ", struct pt_regs, regs[23]);
- offset("#define PT_R24 ", struct pt_regs, regs[24]);
- offset("#define PT_R25 ", struct pt_regs, regs[25]);
- offset("#define PT_R26 ", struct pt_regs, regs[26]);
- offset("#define PT_R27 ", struct pt_regs, regs[27]);
- offset("#define PT_R28 ", struct pt_regs, regs[28]);
- offset("#define PT_R29 ", struct pt_regs, regs[29]);
- offset("#define PT_R30 ", struct pt_regs, regs[30]);
- offset("#define PT_R31 ", struct pt_regs, regs[31]);
- offset("#define PT_LO ", struct pt_regs, lo);
- offset("#define PT_HI ", struct pt_regs, hi);
+ offset("PT_R0", struct pt_regs, regs[0]);
+ offset("PT_R1", struct pt_regs, regs[1]);
+ offset("PT_R2", struct pt_regs, regs[2]);
+ offset("PT_R3", struct pt_regs, regs[3]);
+ offset("PT_R4", struct pt_regs, regs[4]);
+ offset("PT_R5", struct pt_regs, regs[5]);
+ offset("PT_R6", struct pt_regs, regs[6]);
+ offset("PT_R7", struct pt_regs, regs[7]);
+ offset("PT_R8", struct pt_regs, regs[8]);
+ offset("PT_R9", struct pt_regs, regs[9]);
+ offset("PT_R10", struct pt_regs, regs[10]);
+ offset("PT_R11", struct pt_regs, regs[11]);
+ offset("PT_R12", struct pt_regs, regs[12]);
+ offset("PT_R13", struct pt_regs, regs[13]);
+ offset("PT_R14", struct pt_regs, regs[14]);
+ offset("PT_R15", struct pt_regs, regs[15]);
+ offset("PT_R16", struct pt_regs, regs[16]);
+ offset("PT_R17", struct pt_regs, regs[17]);
+ offset("PT_R18", struct pt_regs, regs[18]);
+ offset("PT_R19", struct pt_regs, regs[19]);
+ offset("PT_R20", struct pt_regs, regs[20]);
+ offset("PT_R21", struct pt_regs, regs[21]);
+ offset("PT_R22", struct pt_regs, regs[22]);
+ offset("PT_R23", struct pt_regs, regs[23]);
+ offset("PT_R24", struct pt_regs, regs[24]);
+ offset("PT_R25", struct pt_regs, regs[25]);
+ offset("PT_R26", struct pt_regs, regs[26]);
+ offset("PT_R27", struct pt_regs, regs[27]);
+ offset("PT_R28", struct pt_regs, regs[28]);
+ offset("PT_R29", struct pt_regs, regs[29]);
+ offset("PT_R30", struct pt_regs, regs[30]);
+ offset("PT_R31", struct pt_regs, regs[31]);
+ offset("PT_LO", struct pt_regs, lo);
+ offset("PT_HI", struct pt_regs, hi);
#ifdef CONFIG_CPU_HAS_SMARTMIPS
- offset("#define PT_ACX ", struct pt_regs, acx);
+ offset("PT_ACX", struct pt_regs, acx);
#endif
- offset("#define PT_EPC ", struct pt_regs, cp0_epc);
- offset("#define PT_BVADDR ", struct pt_regs, cp0_badvaddr);
- offset("#define PT_STATUS ", struct pt_regs, cp0_status);
- offset("#define PT_CAUSE ", struct pt_regs, cp0_cause);
+ offset("PT_EPC", struct pt_regs, cp0_epc);
+ offset("PT_BVADDR", struct pt_regs, cp0_badvaddr);
+ offset("PT_STATUS", struct pt_regs, cp0_status);
+ offset("PT_CAUSE", struct pt_regs, cp0_cause);
#ifdef CONFIG_MIPS_MT_SMTC
- offset("#define PT_TCSTATUS ", struct pt_regs, cp0_tcstatus);
+ offset("PT_TCSTATUS", struct pt_regs, cp0_tcstatus);
#endif /* CONFIG_MIPS_MT_SMTC */
- size("#define PT_SIZE ", struct pt_regs);
+ size("PT_SIZE", struct pt_regs);
linefeed;
}
=20
void output_task_defines(void)
{
text("/* MIPS task_struct offsets. */");
- offset("#define TASK_STATE ", struct task_struct, state);
- offset("#define TASK_THREAD_INFO ", struct task_struct, stack);
- offset("#define TASK_FLAGS ", struct task_struct, flags);
- offset("#define TASK_MM ", struct task_struct, mm);
- offset("#define TASK_PID ", struct task_struct, pid);
- size( "#define TASK_STRUCT_SIZE ", struct task_struct);
+ offset("TASK_STATE", struct task_struct, state);
+ offset("TASK_THREAD_INFO", struct task_struct, stack);
+ offset("TASK_FLAGS", struct task_struct, flags);
+ offset("TASK_MM", struct task_struct, mm);
+ offset("TASK_PID", struct task_struct, pid);
+ size( "TASK_STRUCT_SIZE", struct task_struct);
linefeed;
}
=20
void output_thread_info_defines(void)
{
text("/* MIPS thread_info offsets. */");
- offset("#define TI_TASK ", struct thread_info, task);
- offset("#define TI_EXEC_DOMAIN ", struct thread_info, exec_doma=
in);
- offset("#define TI_FLAGS ", struct thread_info, flags);
- offset("#define TI_TP_VALUE ", struct thread_info, tp_value);
- offset("#define TI_CPU ", struct thread_info, cpu);
- offset("#define TI_PRE_COUNT ", struct thread_info, preempt_c=
ount);
- offset("#define TI_ADDR_LIMIT ", struct thread_info, addr_limi=
t);
- offset("#define TI_RESTART_BLOCK ", struct thread_info, restart_b=
lock);
- offset("#define TI_REGS ", struct thread_info, regs);
- constant("#define _THREAD_SIZE ", THREAD_SIZE);
- constant("#define _THREAD_MASK ", THREAD_MASK);
+ offset("TI_TASK", struct thread_info, task);
+ offset("TI_EXEC_DOMAIN", struct thread_info, exec_domain);
+ offset("TI_FLAGS", struct thread_info, flags);
+ offset("TI_TP_VALUE", struct thread_info, tp_value);
+ offset("TI_CPU", struct thread_info, cpu);
+ offset("TI_PRE_COUNT", struct thread_info, preempt_count);
+ offset("TI_ADDR_LIMIT", struct thread_info, addr_limit);
+ offset("TI_RESTART_BLOCK", struct thread_info, restart_block);
+ offset("TI_REGS", struct thread_info, regs);
+ constant("_THREAD_SIZE", THREAD_SIZE);
+ constant("_THREAD_MASK", THREAD_MASK);
linefeed;
}
=20
void output_thread_defines(void)
{
text("/* MIPS specific thread_struct offsets. */");
- offset("#define THREAD_REG16 ", struct task_struct, thread.reg16)=
;
- offset("#define THREAD_REG17 ", struct task_struct, thread.reg17)=
;
- offset("#define THREAD_REG18 ", struct task_struct, thread.reg18)=
;
- offset("#define THREAD_REG19 ", struct task_struct, thread.reg19)=
;
- offset("#define THREAD_REG20 ", struct task_struct, thread.reg20)=
;
- offset("#define THREAD_REG21 ", struct task_struct, thread.reg21)=
;
- offset("#define THREAD_REG22 ", struct task_struct, thread.reg22)=
;
- offset("#define THREAD_REG23 ", struct task_struct, thread.reg23)=
;
- offset("#define THREAD_REG29 ", struct task_struct, thread.reg29)=
;
- offset("#define THREAD_REG30 ", struct task_struct, thread.reg30)=
;
- offset("#define THREAD_REG31 ", struct task_struct, thread.reg31)=
;
- offset("#define THREAD_STATUS ", struct task_struct,
+ offset("THREAD_REG16", struct task_struct, thread.reg16);
+ offset("THREAD_REG17", struct task_struct, thread.reg17);
+ offset("THREAD_REG18", struct task_struct, thread.reg18);
+ offset("THREAD_REG19", struct task_struct, thread.reg19);
+ offset("THREAD_REG20", struct task_struct, thread.reg20);
+ offset("THREAD_REG21", struct task_struct, thread.reg21);
+ offset("THREAD_REG22", struct task_struct, thread.reg22);
+ offset("THREAD_REG23", struct task_struct, thread.reg23);
+ offset("THREAD_REG29", struct task_struct, thread.reg29);
+ offset("THREAD_REG30", struct task_struct, thread.reg30);
+ offset("THREAD_REG31", struct task_struct, thread.reg31);
+ offset("THREAD_STATUS", struct task_struct,
thread.cp0_status);
- offset("#define THREAD_FPU ", struct task_struct, thread.fpu);
+ offset("THREAD_FPU", struct task_struct, thread.fpu);
=20
- offset("#define THREAD_BVADDR ", struct task_struct, \
+ offset("THREAD_BVADDR", struct task_struct, \
thread.cp0_badvaddr);
- offset("#define THREAD_BUADDR ", struct task_struct, \
+ offset("THREAD_BUADDR", struct task_struct, \
thread.cp0_baduaddr);
- offset("#define THREAD_ECODE ", struct task_struct, \
+ offset("THREAD_ECODE", struct task_struct, \
thread.error_code);
- offset("#define THREAD_TRAPNO ", struct task_struct, thread.trap_n=
o);
- offset("#define THREAD_TRAMP ", struct task_struct, \
+ offset("THREAD_TRAPNO", struct task_struct, thread.trap_no);
+ offset("THREAD_TRAMP", struct task_struct, \
thread.irix_trampoline);
- offset("#define THREAD_OLDCTX ", struct task_struct, \
+ offset("THREAD_OLDCTX", struct task_struct, \
thread.irix_oldctx);
linefeed;
}
=20
void output_thread_fpu_defines(void)
{
- offset("#define THREAD_FPR0 ",
+ offset("THREAD_FPR0",
struct task_struct, thread.fpu.fpr[0]);
- offset("#define THREAD_FPR1 ",
+ offset("THREAD_FPR1",
struct task_struct, thread.fpu.fpr[1]);
- offset("#define THREAD_FPR2 ",
+ offset("THREAD_FPR2",
struct task_struct, thread.fpu.fpr[2]);
- offset("#define THREAD_FPR3 ",
+ offset("THREAD_FPR3",
struct task_struct, thread.fpu.fpr[3]);
- offset("#define THREAD_FPR4 ",
+ offset("THREAD_FPR4",
struct task_struct, thread.fpu.fpr[4]);
- offset("#define THREAD_FPR5 ",
+ offset("THREAD_FPR5",
struct task_struct, thread.fpu.fpr[5]);
- offset("#define THREAD_FPR6 ",
+ offset("THREAD_FPR6",
struct task_struct, thread.fpu.fpr[6]);
- offset("#define THREAD_FPR7 ",
+ offset("THREAD_FPR7",
struct task_struct, thread.fpu.fpr[7]);
- offset("#define THREAD_FPR8 ",
+ offset("THREAD_FPR8",
struct task_struct, thread.fpu.fpr[8]);
- offset("#define THREAD_FPR9 ",
+ offset("THREAD_FPR9",
struct task_struct, thread.fpu.fpr[9]);
- offset("#define THREAD_FPR10 ",
+ offset("THREAD_FPR10",
struct task_struct, thread.fpu.fpr[10]);
- offset("#define THREAD_FPR11 ",
+ offset("THREAD_FPR11",
struct task_struct, thread.fpu.fpr[11]);
- offset("#define THREAD_FPR12 ",
+ offset("THREAD_FPR12",
struct task_struct, thread.fpu.fpr[12]);
- offset("#define THREAD_FPR13 ",
+ offset("THREAD_FPR13",
struct task_struct, thread.fpu.fpr[13]);
- offset("#define THREAD_FPR14 ",
+ offset("THREAD_FPR14",
struct task_struct, thread.fpu.fpr[14]);
- offset("#define THREAD_FPR15 ",
+ offset("THREAD_FPR15",
struct task_struct, thread.fpu.fpr[15]);
- offset("#define THREAD_FPR16 ",
+ offset("THREAD_FPR16",
struct task_struct, thread.fpu.fpr[16]);
- offset("#define THREAD_FPR17 ",
+ offset("THREAD_FPR17",
struct task_struct, thread.fpu.fpr[17]);
- offset("#define THREAD_FPR18 ",
+ offset("THREAD_FPR18",
struct task_struct, thread.fpu.fpr[18]);
- offset("#define THREAD_FPR19 ",
+ offset("THREAD_FPR19",
struct task_struct, thread.fpu.fpr[19]);
- offset("#define THREAD_FPR20 ",
+ offset("THREAD_FPR20",
struct task_struct, thread.fpu.fpr[20]);
- offset("#define THREAD_FPR21 ",
+ offset("THREAD_FPR21",
struct task_struct, thread.fpu.fpr[21]);
- offset("#define THREAD_FPR22 ",
+ offset("THREAD_FPR22",
struct task_struct, thread.fpu.fpr[22]);
- offset("#define THREAD_FPR23 ",
+ offset("THREAD_FPR23",
struct task_struct, thread.fpu.fpr[23]);
- offset("#define THREAD_FPR24 ",
+ offset("THREAD_FPR24",
struct task_struct, thread.fpu.fpr[24]);
- offset("#define THREAD_FPR25 ",
+ offset("THREAD_FPR25",
struct task_struct, thread.fpu.fpr[25]);
- offset("#define THREAD_FPR26 ",
+ offset("THREAD_FPR26",
struct task_struct, thread.fpu.fpr[26]);
- offset("#define THREAD_FPR27 ",
+ offset("THREAD_FPR27",
struct task_struct, thread.fpu.fpr[27]);
- offset("#define THREAD_FPR28 ",
+ offset("THREAD_FPR28",
struct task_struct, thread.fpu.fpr[28]);
- offset("#define THREAD_FPR29 ",
+ offset("THREAD_FPR29",
struct task_struct, thread.fpu.fpr[29]);
- offset("#define THREAD_FPR30 ",
+ offset("THREAD_FPR30",
struct task_struct, thread.fpu.fpr[30]);
- offset("#define THREAD_FPR31 ",
+ offset("THREAD_FPR31",
struct task_struct, thread.fpu.fpr[31]);
=20
- offset("#define THREAD_FCR31 ",
+ offset("THREAD_FCR31",
struct task_struct, thread.fpu.fcr31);
linefeed;
}
@@ -214,34 +214,34 @@ void output_thread_fpu_defines(void)
void output_mm_defines(void)
{
text("/* Size of struct page */");
- size("#define STRUCT_PAGE_SIZE ", struct page);
+ size("STRUCT_PAGE_SIZE", struct page);
linefeed;
text("/* Linux mm_struct offsets. */");
- offset("#define MM_USERS ", struct mm_struct, mm_users);
- offset("#define MM_PGD ", struct mm_struct, pgd);
- offset("#define MM_CONTEXT ", struct mm_struct, context);
- linefeed;
- constant("#define _PAGE_SIZE ", PAGE_SIZE);
- constant("#define _PAGE_SHIFT ", PAGE_SHIFT);
- linefeed;
- constant("#define _PGD_T_SIZE ", sizeof(pgd_t));
- constant("#define _PMD_T_SIZE ", sizeof(pmd_t));
- constant("#define _PTE_T_SIZE ", sizeof(pte_t));
- linefeed;
- constant("#define _PGD_T_LOG2 ", PGD_T_LOG2);
- constant("#define _PMD_T_LOG2 ", PMD_T_LOG2);
- constant("#define _PTE_T_LOG2 ", PTE_T_LOG2);
- linefeed;
- constant("#define _PGD_ORDER ", PGD_ORDER);
- constant("#define _PMD_ORDER ", PMD_ORDER);
- constant("#define _PTE_ORDER ", PTE_ORDER);
- linefeed;
- constant("#define _PMD_SHIFT ", PMD_SHIFT);
- constant("#define _PGDIR_SHIFT ", PGDIR_SHIFT);
- linefeed;
- constant("#define _PTRS_PER_PGD ", PTRS_PER_PGD);
- constant("#define _PTRS_PER_PMD ", PTRS_PER_PMD);
- constant("#define _PTRS_PER_PTE ", PTRS_PER_PTE);
+ offset("MM_USERS", struct mm_struct, mm_users);
+ offset("MM_PGD", struct mm_struct, pgd);
+ offset("MM_CONTEXT", struct mm_struct, context);
+ linefeed;
+ constant("_PAGE_SIZE", PAGE_SIZE);
+ constant("_PAGE_SHIFT", PAGE_SHIFT);
+ linefeed;
+ constant("_PGD_T_SIZE", sizeof(pgd_t));
+ constant("_PMD_T_SIZE", sizeof(pmd_t));
+ constant("_PTE_T_SIZE", sizeof(pte_t));
+ linefeed;
+ constant("_PGD_T_LOG2", PGD_T_LOG2);
+ constant("_PMD_T_LOG2", PMD_T_LOG2);
+ constant("_PTE_T_LOG2", PTE_T_LOG2);
+ linefeed;
+ constant("_PGD_ORDER", PGD_ORDER);
+ constant("_PMD_ORDER", PMD_ORDER);
+ constant("_PTE_ORDER", PTE_ORDER);
+ linefeed;
+ constant("_PMD_SHIFT", PMD_SHIFT);
+ constant("_PGDIR_SHIFT", PGDIR_SHIFT);
+ linefeed;
+ constant("_PTRS_PER_PGD", PTRS_PER_PGD);
+ constant("_PTRS_PER_PMD", PTRS_PER_PMD);
+ constant("_PTRS_PER_PTE", PTRS_PER_PTE);
linefeed;
}
=20
@@ -249,20 +249,20 @@ void output_mm_defines(void)
void output_sc_defines(void)
{
text("/* Linux sigcontext offsets. */");
- offset("#define SC_REGS ", struct sigcontext, sc_regs);
- offset("#define SC_FPREGS ", struct sigcontext, sc_fpregs);
- offset("#define SC_ACX ", struct sigcontext, sc_acx);
- offset("#define SC_MDHI ", struct sigcontext, sc_mdhi);
- offset("#define SC_MDLO ", struct sigcontext, sc_mdlo);
- offset("#define SC_PC ", struct sigcontext, sc_pc);
- offset("#define SC_FPC_CSR ", struct sigcontext, sc_fpc_csr);
- offset("#define SC_FPC_EIR ", struct sigcontext, sc_fpc_eir);
- offset("#define SC_HI1 ", struct sigcontext, sc_hi1);
- offset("#define SC_LO1 ", struct sigcontext, sc_lo1);
- offset("#define SC_HI2 ", struct sigcontext, sc_hi2);
- offset("#define SC_LO2 ", struct sigcontext, sc_lo2);
- offset("#define SC_HI3 ", struct sigcontext, sc_hi3);
- offset("#define SC_LO3 ", struct sigcontext, sc_lo3);
+ offset("SC_REGS", struct sigcontext, sc_regs);
+ offset("SC_FPREGS", struct sigcontext, sc_fpregs);
+ offset("SC_ACX", struct sigcontext, sc_acx);
+ offset("SC_MDHI", struct sigcontext, sc_mdhi);
+ offset("SC_MDLO", struct sigcontext, sc_mdlo);
+ offset("SC_PC", struct sigcontext, sc_pc);
+ offset("SC_FPC_CSR", struct sigcontext, sc_fpc_csr);
+ offset("SC_FPC_EIR", struct sigcontext, sc_fpc_eir);
+ offset("SC_HI1", struct sigcontext, sc_hi1);
+ offset("SC_LO1", struct sigcontext, sc_lo1);
+ offset("SC_HI2", struct sigcontext, sc_hi2);
+ offset("SC_LO2", struct sigcontext, sc_lo2);
+ offset("SC_HI3", struct sigcontext, sc_hi3);
+ offset("SC_LO3", struct sigcontext, sc_lo3);
linefeed;
}
#endif
@@ -271,12 +271,12 @@ void output_sc_defines(void)
void output_sc_defines(void)
{
text("/* Linux sigcontext offsets. */");
- offset("#define SC_REGS ", struct sigcontext, sc_regs);
- offset("#define SC_FPREGS ", struct sigcontext, sc_fpregs);
- offset("#define SC_MDHI ", struct sigcontext, sc_mdhi);
- offset("#define SC_MDLO ", struct sigcontext, sc_mdlo);
- offset("#define SC_PC ", struct sigcontext, sc_pc);
- offset("#define SC_FPC_CSR ", struct sigcontext, sc_fpc_csr);
+ offset("SC_REGS", struct sigcontext, sc_regs);
+ offset("SC_FPREGS", struct sigcontext, sc_fpregs);
+ offset("SC_MDHI", struct sigcontext, sc_mdhi);
+ offset("SC_MDLO", struct sigcontext, sc_mdlo);
+ offset("SC_PC", struct sigcontext, sc_pc);
+ offset("SC_FPC_CSR", struct sigcontext, sc_fpc_csr);
linefeed;
}
#endif
@@ -285,9 +285,9 @@ void output_sc_defines(void)
void output_sc32_defines(void)
{
text("/* Linux 32-bit sigcontext offsets. */");
- offset("#define SC32_FPREGS ", struct sigcontext32, sc_fpregs);
- offset("#define SC32_FPC_CSR ", struct sigcontext32, sc_fpc_csr)=
;
- offset("#define SC32_FPC_EIR ", struct sigcontext32, sc_fpc_eir)=
;
+ offset("SC32_FPREGS", struct sigcontext32, sc_fpregs);
+ offset("SC32_FPC_CSR", struct sigcontext32, sc_fpc_csr);
+ offset("SC32_FPC_EIR", struct sigcontext32, sc_fpc_eir);
linefeed;
}
#endif
@@ -295,45 +295,45 @@ void output_sc32_defines(void)
void output_signal_defined(void)
{
text("/* Linux signal numbers. */");
- constant("#define _SIGHUP ", SIGHUP);
- constant("#define _SIGINT ", SIGINT);
- constant("#define _SIGQUIT ", SIGQUIT);
- constant("#define _SIGILL ", SIGILL);
- constant("#define _SIGTRAP ", SIGTRAP);
- constant("#define _SIGIOT ", SIGIOT);
- constant("#define _SIGABRT ", SIGABRT);
- constant("#define _SIGEMT ", SIGEMT);
- constant("#define _SIGFPE ", SIGFPE);
- constant("#define _SIGKILL ", SIGKILL);
- constant("#define _SIGBUS ", SIGBUS);
- constant("#define _SIGSEGV ", SIGSEGV);
- constant("#define _SIGSYS ", SIGSYS);
- constant("#define _SIGPIPE ", SIGPIPE);
- constant("#define _SIGALRM ", SIGALRM);
- constant("#define _SIGTERM ", SIGTERM);
- constant("#define _SIGUSR1 ", SIGUSR1);
- constant("#define _SIGUSR2 ", SIGUSR2);
- constant("#define _SIGCHLD ", SIGCHLD);
- constant("#define _SIGPWR ", SIGPWR);
- constant("#define _SIGWINCH ", SIGWINCH);
- constant("#define _SIGURG ", SIGURG);
- constant("#define _SIGIO ", SIGIO);
- constant("#define _SIGSTOP ", SIGSTOP);
- constant("#define _SIGTSTP ", SIGTSTP);
- constant("#define _SIGCONT ", SIGCONT);
- constant("#define _SIGTTIN ", SIGTTIN);
- constant("#define _SIGTTOU ", SIGTTOU);
- constant("#define _SIGVTALRM ", SIGVTALRM);
- constant("#define _SIGPROF ", SIGPROF);
- constant("#define _SIGXCPU ", SIGXCPU);
- constant("#define _SIGXFSZ ", SIGXFSZ);
+ constant("_SIGHUP", SIGHUP);
+ constant("_SIGINT", SIGINT);
+ constant("_SIGQUIT", SIGQUIT);
+ constant("_SIGILL", SIGILL);
+ constant("_SIGTRAP", SIGTRAP);
+ constant("_SIGIOT", SIGIOT);
+ constant("_SIGABRT", SIGABRT);
+ constant("_SIGEMT", SIGEMT);
+ constant("_SIGFPE", SIGFPE);
+ constant("_SIGKILL", SIGKILL);
+ constant("_SIGBUS", SIGBUS);
+ constant("_SIGSEGV", SIGSEGV);
+ constant("_SIGSYS", SIGSYS);
+ constant("_SIGPIPE", SIGPIPE);
+ constant("_SIGALRM", SIGALRM);
+ constant("_SIGTERM", SIGTERM);
+ constant("_SIGUSR1", SIGUSR1);
+ constant("_SIGUSR2", SIGUSR2);
+ constant("_SIGCHLD", SIGCHLD);
+ constant("_SIGPWR", SIGPWR);
+ constant("_SIGWINCH", SIGWINCH);
+ constant("_SIGURG", SIGURG);
+ constant("_SIGIO", SIGIO);
+ constant("_SIGSTOP", SIGSTOP);
+ constant("_SIGTSTP", SIGTSTP);
+ constant("_SIGCONT", SIGCONT);
+ constant("_SIGTTIN", SIGTTIN);
+ constant("_SIGTTOU", SIGTTOU);
+ constant("_SIGVTALRM", SIGVTALRM);
+ constant("_SIGPROF", SIGPROF);
+ constant("_SIGXCPU", SIGXCPU);
+ constant("_SIGXFSZ", SIGXFSZ);
linefeed;
}
=20
void output_irq_cpustat_t_defines(void)
{
text("/* Linux irq_cpustat_t offsets. */");
- offset("#define IC_SOFTIRQ_PENDING ", irq_cpustat_t, __softirq_pend=
ing);
- size("#define IC_IRQ_CPUSTAT_T ", irq_cpustat_t);
+ offset("IC_SOFTIRQ_PENDING", irq_cpustat_t, __softirq_pending);
+ size("IC_IRQ_CPUSTAT_T", irq_cpustat_t);
linefeed;
}
=20
Ralf Baechle
2008-04-04 10:24:07 UTC
Permalink
Post by Christoph Lameter
Post by Ralf Baechle
The reason for MIPS doing things a little different is that the resulting
<asm/asm-offsets.h> doesn't look like machine generated jibberish. So
how about below patch which combines the two sed expressions.
Well but it is machine generated and it may be best if mips would do more
of the same that is done in other arches? We do not want special arch
cases in Kbuild.
How about this patch?
Almost. It compiles into a usable header but breaks the text() macro
which is used to emit a commit (actually any string literal) into the
Post by Christoph Lameter
void output_ptreg_defines(void)
{
text("/* MIPS pt_regs offsets. */");
With your patch nothing will be emited. The existing non-MIPS sed
expression in Kbuild doesn't allow for that which is why I added the
handling of @@@-prefixed strings to the sed expression. And once that
is there the remaining asm-offset.c change is no longer needed.

Ralf
Christoph Lameter
2008-04-04 17:36:41 UTC
Permalink
Post by Ralf Baechle
Almost. It compiles into a usable header but breaks the text() macro
which is used to emit a commit (actually any string literal) into the
The text macro still emits the same text. Nothing is changed. Why does
this break anything?
Post by Ralf Baechle
With your patch nothing will be emited. The existing non-MIPS sed
expression in Kbuild doesn't allow for that which is why I added the
is there the remaining asm-offset.c change is no longer needed.
Why would kbuild have to handle comments?
Christoph Lameter
2008-04-04 17:50:31 UTC
Permalink
Post by Christoph Lameter
Why would kbuild have to handle comments?
Ahh you want to insert comments into the generated
include/asm-*/asm-offsets.h. Hmmm, the header comments state that it was
generated so one would hopefully look at the source file instead ?

If we want comments etc in there then we may want to do in some
standardized fashion that works across all arches. Most of the
arch/*/asm-offsets.c contents are exactly the same. Mips is deviating the
most. If we could put some of the common stuff into common header files
then this may turn out to be a nice code cleanup.
V***@vt.edu
2008-04-02 06:04:17 UTC
Permalink
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
Dell Latitude D820, Core2 T7200, x86_64.

Built my usual .config cleanly, booted OK, has gone for a half hour
of fairly representative usage without any oopsen or other dmesg surprises...
Andrew Morton
2008-04-02 06:15:56 UTC
Permalink
Post by V***@vt.edu
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
Dell Latitude D820, Core2 T7200, x86_64.
Built my usual .config cleanly, booted OK, has gone for a half hour
of fairly representative usage without any oopsen or other dmesg surprises...
Yes, it passed testing on my six test machines without any runtime problems
at all. Weird.

Lots of compile-time problems, but that's usual.
Kamalesh Babulal
2008-04-02 06:25:36 UTC
Permalink
Hi Andrew,

The 2.6.25-rc8-mm1 kernel panic's while bootup on the power machine(s).

[ 0.000000] ------------[ cut here ]------------
[ 0.000000] kernel BUG at arch/powerpc/mm/init_64.c:240!
[ 0.000000] Oops: Exception in kernel mode, sig: 5 [#1]
[ 0.000000] SMP NR_CPUS=32 NUMA PowerMac
[ 0.000000] Modules linked in:
[ 0.000000] NIP: c0000000003d1dcc LR: c0000000003d1dc4 CTR: c00000000002b6ac
[ 0.000000] REGS: c00000000049b960 TRAP: 0700 Not tainted (2.6.25-rc8-mm1-autokern1)
[ 0.000000] MSR: 9000000000021032 <ME,IR,DR> CR: 44000088 XER: 20000000
[ 0.000000] TASK = c0000000003f9c90[0] 'swapper' THREAD: c000000000498000 CPU: 0
[ 0.000000] GPR00: c0000000003d1dc4 c00000000049bbe0 c0000000004989d0 0000000000000001
[ 0.000000] GPR04: d59aca40f0000000 000000000b000000 0000000000000010 0000000000000000
[ 0.000000] GPR08: 0000000000000004 0000000000000001 c00000027e520800 c0000000004bf0f0
[ 0.000000] GPR12: c0000000004bf020 c0000000003fa900 0000000000000000 0000000000000000
[ 0.000000] GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[ 0.000000] GPR20: 0000000000000000 0000000000000000 0000000000000000 4000000001400000
[ 0.000000] GPR24: 00000000017d64b0 c0000000003d6250 0000000000000000 c000000000504000
[ 0.000000] GPR28: 0000000000000000 cf000000001f8000 0000000001000000 cf00000000000000
[ 0.000000] NIP [c0000000003d1dcc] .vmemmap_populate+0xb8/0xf4
[ 0.000000] LR [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4
[ 0.000000] Call Trace:
[ 0.000000] [c00000000049bbe0] [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4 (unreliable)
[ 0.000000] [c00000000049bc70] [c0000000003d2ee8] .sparse_mem_map_populate+0x38/0x60
[ 0.000000] [c00000000049bd00] [c0000000003c242c] .sparse_early_mem_map_alloc+0x54/0x94
[ 0.000000] [c00000000049bd90] [c0000000003c250c] .sparse_init+0xa0/0x20c
[ 0.000000] [c00000000049be50] [c0000000003ab7d0] .setup_arch+0x1ac/0x218
[ 0.000000] [c00000000049bee0] [c0000000003a36ac] .start_kernel+0xe0/0x3fc
[ 0.000000] [c00000000049bf90] [c000000000008594] .start_here_common+0x54/0xc0
[ 0.000000] Instruction dump:
[ 0.000000] 7fe3fb78 7ca02a14 4082000c 3860fff4 4800003c e92289c8 e96289c0 e9090002
[ 0.000000] e8eb0002 4bc575cd 60000000 78630fe0 <0b030000> 7ffff214 7fbfe840 7fe3fb78
[ 0.000000] ---[ end trace 31fd0ba7d8756001 ]---
[ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
--
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.
Andrew Morton
2008-04-02 06:39:09 UTC
Permalink
Post by Dmitri Vorobiev
Hi Andrew,
The 2.6.25-rc8-mm1 kernel panic's while bootup on the power machine(s).
[ 0.000000] ------------[ cut here ]------------
[ 0.000000] kernel BUG at arch/powerpc/mm/init_64.c:240!
[ 0.000000] Oops: Exception in kernel mode, sig: 5 [#1]
[ 0.000000] SMP NR_CPUS=32 NUMA PowerMac
[ 0.000000] NIP: c0000000003d1dcc LR: c0000000003d1dc4 CTR: c00000000002b6ac
[ 0.000000] REGS: c00000000049b960 TRAP: 0700 Not tainted (2.6.25-rc8-mm1-autokern1)
[ 0.000000] MSR: 9000000000021032 <ME,IR,DR> CR: 44000088 XER: 20000000
[ 0.000000] TASK = c0000000003f9c90[0] 'swapper' THREAD: c000000000498000 CPU: 0
[ 0.000000] GPR00: c0000000003d1dc4 c00000000049bbe0 c0000000004989d0 0000000000000001
[ 0.000000] GPR04: d59aca40f0000000 000000000b000000 0000000000000010 0000000000000000
[ 0.000000] GPR08: 0000000000000004 0000000000000001 c00000027e520800 c0000000004bf0f0
[ 0.000000] GPR12: c0000000004bf020 c0000000003fa900 0000000000000000 0000000000000000
[ 0.000000] GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[ 0.000000] GPR20: 0000000000000000 0000000000000000 0000000000000000 4000000001400000
[ 0.000000] GPR24: 00000000017d64b0 c0000000003d6250 0000000000000000 c000000000504000
[ 0.000000] GPR28: 0000000000000000 cf000000001f8000 0000000001000000 cf00000000000000
[ 0.000000] NIP [c0000000003d1dcc] .vmemmap_populate+0xb8/0xf4
[ 0.000000] LR [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4
[ 0.000000] [c00000000049bbe0] [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4 (unreliable)
[ 0.000000] [c00000000049bc70] [c0000000003d2ee8] .sparse_mem_map_populate+0x38/0x60
[ 0.000000] [c00000000049bd00] [c0000000003c242c] .sparse_early_mem_map_alloc+0x54/0x94
[ 0.000000] [c00000000049bd90] [c0000000003c250c] .sparse_init+0xa0/0x20c
[ 0.000000] [c00000000049be50] [c0000000003ab7d0] .setup_arch+0x1ac/0x218
[ 0.000000] [c00000000049bee0] [c0000000003a36ac] .start_kernel+0xe0/0x3fc
[ 0.000000] [c00000000049bf90] [c000000000008594] .start_here_common+0x54/0xc0
[ 0.000000] 7fe3fb78 7ca02a14 4082000c 3860fff4 4800003c e92289c8 e96289c0 e9090002
[ 0.000000] e8eb0002 4bc575cd 60000000 78630fe0 <0b030000> 7ffff214 7fbfe840 7fe3fb78
[ 0.000000] ---[ end trace 31fd0ba7d8756001 ]---
[ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
int __meminit vmemmap_populate(struct page *start_page,
unsigned long nr_pages, int node)
{
unsigned long mode_rw;
unsigned long start = (unsigned long)start_page;
unsigned long end = (unsigned long)(start_page + nr_pages);
unsigned long page_size = 1 << mmu_psize_defs[mmu_linear_psize].shift;

mode_rw = _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_COHERENT | PP_RWXX;

/* Align to the page size of the linear mapping. */
start = _ALIGN_DOWN(start, page_size);

for (; start < end; start += page_size) {
int mapped;
void *p;

if (vmemmap_populated(start, page_size))
continue;

p = vmemmap_alloc_block(page_size, node);
if (!p)
return -ENOMEM;

pr_debug("vmemmap %08lx allocated at %p, physical %08lx.\n",
start, p, __pa(p));

mapped = htab_bolt_mapping(start, start + page_size,
__pa(p), mode_rw, mmu_linear_psize,
mmu_kernel_ssize);
=====> BUG_ON(mapped < 0);
}

return 0;
}

Beats me. pseries? Badari has been diddling with the bolted memory code
in git-powerpc...
Kamalesh Babulal
2008-04-02 07:08:47 UTC
Permalink
Post by Andrew Morton
Post by Dmitri Vorobiev
Hi Andrew,
The 2.6.25-rc8-mm1 kernel panic's while bootup on the power machine(s).
[ 0.000000] ------------[ cut here ]------------
[ 0.000000] kernel BUG at arch/powerpc/mm/init_64.c:240!
[ 0.000000] Oops: Exception in kernel mode, sig: 5 [#1]
[ 0.000000] SMP NR_CPUS=32 NUMA PowerMac
[ 0.000000] NIP: c0000000003d1dcc LR: c0000000003d1dc4 CTR: c00000000002b6ac
[ 0.000000] REGS: c00000000049b960 TRAP: 0700 Not tainted (2.6.25-rc8-mm1-autokern1)
[ 0.000000] MSR: 9000000000021032 <ME,IR,DR> CR: 44000088 XER: 20000000
[ 0.000000] TASK = c0000000003f9c90[0] 'swapper' THREAD: c000000000498000 CPU: 0
[ 0.000000] GPR00: c0000000003d1dc4 c00000000049bbe0 c0000000004989d0 0000000000000001
[ 0.000000] GPR04: d59aca40f0000000 000000000b000000 0000000000000010 0000000000000000
[ 0.000000] GPR08: 0000000000000004 0000000000000001 c00000027e520800 c0000000004bf0f0
[ 0.000000] GPR12: c0000000004bf020 c0000000003fa900 0000000000000000 0000000000000000
[ 0.000000] GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[ 0.000000] GPR20: 0000000000000000 0000000000000000 0000000000000000 4000000001400000
[ 0.000000] GPR24: 00000000017d64b0 c0000000003d6250 0000000000000000 c000000000504000
[ 0.000000] GPR28: 0000000000000000 cf000000001f8000 0000000001000000 cf00000000000000
[ 0.000000] NIP [c0000000003d1dcc] .vmemmap_populate+0xb8/0xf4
[ 0.000000] LR [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4
[ 0.000000] [c00000000049bbe0] [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4 (unreliable)
[ 0.000000] [c00000000049bc70] [c0000000003d2ee8] .sparse_mem_map_populate+0x38/0x60
[ 0.000000] [c00000000049bd00] [c0000000003c242c] .sparse_early_mem_map_alloc+0x54/0x94
[ 0.000000] [c00000000049bd90] [c0000000003c250c] .sparse_init+0xa0/0x20c
[ 0.000000] [c00000000049be50] [c0000000003ab7d0] .setup_arch+0x1ac/0x218
[ 0.000000] [c00000000049bee0] [c0000000003a36ac] .start_kernel+0xe0/0x3fc
[ 0.000000] [c00000000049bf90] [c000000000008594] .start_here_common+0x54/0xc0
[ 0.000000] 7fe3fb78 7ca02a14 4082000c 3860fff4 4800003c e92289c8 e96289c0 e9090002
[ 0.000000] e8eb0002 4bc575cd 60000000 78630fe0 <0b030000> 7ffff214 7fbfe840 7fe3fb78
[ 0.000000] ---[ end trace 31fd0ba7d8756001 ]---
[ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
int __meminit vmemmap_populate(struct page *start_page,
unsigned long nr_pages, int node)
{
unsigned long mode_rw;
unsigned long start = (unsigned long)start_page;
unsigned long end = (unsigned long)(start_page + nr_pages);
unsigned long page_size = 1 << mmu_psize_defs[mmu_linear_psize].shift;
mode_rw = _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_COHERENT | PP_RWXX;
/* Align to the page size of the linear mapping. */
start = _ALIGN_DOWN(start, page_size);
for (; start < end; start += page_size) {
int mapped;
void *p;
if (vmemmap_populated(start, page_size))
continue;
p = vmemmap_alloc_block(page_size, node);
if (!p)
return -ENOMEM;
pr_debug("vmemmap %08lx allocated at %p, physical %08lx.\n",
start, p, __pa(p));
mapped = htab_bolt_mapping(start, start + page_size,
__pa(p), mode_rw, mmu_linear_psize,
mmu_kernel_ssize);
=====> BUG_ON(mapped < 0);
}
return 0;
}
Beats me. pseries? Badari has been diddling with the bolted memory code
in git-powerpc...
One of the machines is the Power5 and another is PowerMac G5, on which the
same kernel panic is seen.
--
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.
Michael Ellerman
2008-04-02 07:17:56 UTC
Permalink
Post by Kamalesh Babulal
Post by Andrew Morton
Post by Dmitri Vorobiev
Hi Andrew,
The 2.6.25-rc8-mm1 kernel panic's while bootup on the power machine(s).
[ 0.000000] ------------[ cut here ]------------
[ 0.000000] kernel BUG at arch/powerpc/mm/init_64.c:240!
[ 0.000000] Oops: Exception in kernel mode, sig: 5 [#1]
[ 0.000000] SMP NR_CPUS=32 NUMA PowerMac
[ 0.000000] NIP: c0000000003d1dcc LR: c0000000003d1dc4 CTR: c00000000002b6ac
[ 0.000000] REGS: c00000000049b960 TRAP: 0700 Not tainted (2.6.25-rc8-mm1-autokern1)
[ 0.000000] MSR: 9000000000021032 <ME,IR,DR> CR: 44000088 XER: 20000000
[ 0.000000] TASK = c0000000003f9c90[0] 'swapper' THREAD: c000000000498000 CPU: 0
[ 0.000000] GPR00: c0000000003d1dc4 c00000000049bbe0 c0000000004989d0 0000000000000001
[ 0.000000] GPR04: d59aca40f0000000 000000000b000000 0000000000000010 0000000000000000
[ 0.000000] GPR08: 0000000000000004 0000000000000001 c00000027e520800 c0000000004bf0f0
[ 0.000000] GPR12: c0000000004bf020 c0000000003fa900 0000000000000000 0000000000000000
[ 0.000000] GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[ 0.000000] GPR20: 0000000000000000 0000000000000000 0000000000000000 4000000001400000
[ 0.000000] GPR24: 00000000017d64b0 c0000000003d6250 0000000000000000 c000000000504000
[ 0.000000] GPR28: 0000000000000000 cf000000001f8000 0000000001000000 cf00000000000000
[ 0.000000] NIP [c0000000003d1dcc] .vmemmap_populate+0xb8/0xf4
[ 0.000000] LR [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4
[ 0.000000] [c00000000049bbe0] [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4 (unreliable)
[ 0.000000] [c00000000049bc70] [c0000000003d2ee8] .sparse_mem_map_populate+0x38/0x60
[ 0.000000] [c00000000049bd00] [c0000000003c242c] .sparse_early_mem_map_alloc+0x54/0x94
[ 0.000000] [c00000000049bd90] [c0000000003c250c] .sparse_init+0xa0/0x20c
[ 0.000000] [c00000000049be50] [c0000000003ab7d0] .setup_arch+0x1ac/0x218
[ 0.000000] [c00000000049bee0] [c0000000003a36ac] .start_kernel+0xe0/0x3fc
[ 0.000000] [c00000000049bf90] [c000000000008594] .start_here_common+0x54/0xc0
[ 0.000000] 7fe3fb78 7ca02a14 4082000c 3860fff4 4800003c e92289c8 e96289c0 e9090002
[ 0.000000] e8eb0002 4bc575cd 60000000 78630fe0 <0b030000> 7ffff214 7fbfe840 7fe3fb78
[ 0.000000] ---[ end trace 31fd0ba7d8756001 ]---
[ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
int __meminit vmemmap_populate(struct page *start_page,
unsigned long nr_pages, int node)
{
unsigned long mode_rw;
unsigned long start = (unsigned long)start_page;
unsigned long end = (unsigned long)(start_page + nr_pages);
unsigned long page_size = 1 << mmu_psize_defs[mmu_linear_psize].shift;
mode_rw = _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_COHERENT | PP_RWXX;
/* Align to the page size of the linear mapping. */
start = _ALIGN_DOWN(start, page_size);
for (; start < end; start += page_size) {
int mapped;
void *p;
if (vmemmap_populated(start, page_size))
continue;
p = vmemmap_alloc_block(page_size, node);
if (!p)
return -ENOMEM;
pr_debug("vmemmap %08lx allocated at %p, physical %08lx.\n",
start, p, __pa(p));
mapped = htab_bolt_mapping(start, start + page_size,
__pa(p), mode_rw, mmu_linear_psize,
mmu_kernel_ssize);
=====> BUG_ON(mapped < 0);
}
return 0;
}
Beats me. pseries? Badari has been diddling with the bolted memory code
in git-powerpc...
One of the machines is the Power5 and another is PowerMac G5, on which the
same kernel panic is seen.
Can you enable DEBUG_LOW in arch/powerpc/platforms/pseries/lpar.c, that
should show what's happening in hpte_insert().

cheers
--
Michael Ellerman
OzLabs, IBM Australia Development Lab

wwweb: http://michael.ellerman.id.au
phone: +61 2 6212 1183 (tie line 70 21183)

We do not inherit the earth from our ancestors,
we borrow it from our children. - S.M.A.R.T Person
Kamalesh Babulal
2008-04-02 17:09:40 UTC
Permalink
Post by Michael Ellerman
Post by Kamalesh Babulal
Post by Andrew Morton
Post by Dmitri Vorobiev
Hi Andrew,
The 2.6.25-rc8-mm1 kernel panic's while bootup on the power machine(s).
[ 0.000000] ------------[ cut here ]------------
[ 0.000000] kernel BUG at arch/powerpc/mm/init_64.c:240!
[ 0.000000] Oops: Exception in kernel mode, sig: 5 [#1]
[ 0.000000] SMP NR_CPUS=32 NUMA PowerMac
[ 0.000000] NIP: c0000000003d1dcc LR: c0000000003d1dc4 CTR: c00000000002b6ac
[ 0.000000] REGS: c00000000049b960 TRAP: 0700 Not tainted (2.6.25-rc8-mm1-autokern1)
[ 0.000000] MSR: 9000000000021032 <ME,IR,DR> CR: 44000088 XER: 20000000
[ 0.000000] TASK = c0000000003f9c90[0] 'swapper' THREAD: c000000000498000 CPU: 0
[ 0.000000] GPR00: c0000000003d1dc4 c00000000049bbe0 c0000000004989d0 0000000000000001
[ 0.000000] GPR04: d59aca40f0000000 000000000b000000 0000000000000010 0000000000000000
[ 0.000000] GPR08: 0000000000000004 0000000000000001 c00000027e520800 c0000000004bf0f0
[ 0.000000] GPR12: c0000000004bf020 c0000000003fa900 0000000000000000 0000000000000000
[ 0.000000] GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[ 0.000000] GPR20: 0000000000000000 0000000000000000 0000000000000000 4000000001400000
[ 0.000000] GPR24: 00000000017d64b0 c0000000003d6250 0000000000000000 c000000000504000
[ 0.000000] GPR28: 0000000000000000 cf000000001f8000 0000000001000000 cf00000000000000
[ 0.000000] NIP [c0000000003d1dcc] .vmemmap_populate+0xb8/0xf4
[ 0.000000] LR [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4
[ 0.000000] [c00000000049bbe0] [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4 (unreliable)
[ 0.000000] [c00000000049bc70] [c0000000003d2ee8] .sparse_mem_map_populate+0x38/0x60
[ 0.000000] [c00000000049bd00] [c0000000003c242c] .sparse_early_mem_map_alloc+0x54/0x94
[ 0.000000] [c00000000049bd90] [c0000000003c250c] .sparse_init+0xa0/0x20c
[ 0.000000] [c00000000049be50] [c0000000003ab7d0] .setup_arch+0x1ac/0x218
[ 0.000000] [c00000000049bee0] [c0000000003a36ac] .start_kernel+0xe0/0x3fc
[ 0.000000] [c00000000049bf90] [c000000000008594] .start_here_common+0x54/0xc0
[ 0.000000] 7fe3fb78 7ca02a14 4082000c 3860fff4 4800003c e92289c8 e96289c0 e9090002
[ 0.000000] e8eb0002 4bc575cd 60000000 78630fe0 <0b030000> 7ffff214 7fbfe840 7fe3fb78
[ 0.000000] ---[ end trace 31fd0ba7d8756001 ]---
[ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
int __meminit vmemmap_populate(struct page *start_page,
unsigned long nr_pages, int node)
{
unsigned long mode_rw;
unsigned long start = (unsigned long)start_page;
unsigned long end = (unsigned long)(start_page + nr_pages);
unsigned long page_size = 1 << mmu_psize_defs[mmu_linear_psize].shift;
mode_rw = _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_COHERENT | PP_RWXX;
/* Align to the page size of the linear mapping. */
start = _ALIGN_DOWN(start, page_size);
for (; start < end; start += page_size) {
int mapped;
void *p;
if (vmemmap_populated(start, page_size))
continue;
p = vmemmap_alloc_block(page_size, node);
if (!p)
return -ENOMEM;
pr_debug("vmemmap %08lx allocated at %p, physical %08lx.\n",
start, p, __pa(p));
mapped = htab_bolt_mapping(start, start + page_size,
__pa(p), mode_rw, mmu_linear_psize,
mmu_kernel_ssize);
=====> BUG_ON(mapped < 0);
}
return 0;
}
Beats me. pseries? Badari has been diddling with the bolted memory code
in git-powerpc...
One of the machines is the Power5 and another is PowerMac G5, on which the
same kernel panic is seen.
Can you enable DEBUG_LOW in arch/powerpc/platforms/pseries/lpar.c, that
should show what's happening in hpte_insert().
cheers
Just define DEBUG_LOW did not fetch and debug information, so added some printk to
htab_bolt_mapping () and pSeries_lpar_hpte_insert ()

[boot]0012 Setup Arch
htab_bolt_mapping (vstart cf00000000000000, vend cf00000001000000, pstart 3000000,mode 190, psize 4, ssize 0)
htab_bolt_mapping: calling c000000000888f00
_hpte_insert(group=252078, va=d59aca40f0000000, pa=0000000003000000, rflags=194, vflags=10, psize=4 ssize=0)
htab_bolt_mapping (vstart cf00000000000000, vend cf00000001000000, pstart 4000000,mode 190, psize 4, ssize 0)
htab_bolt_mapping: calling c000000000888f00
_hpte_insert(group=252078, va=d59aca40f0000000, pa=0000000004000000, rflags=194, vflags=10, psize=4 ssize=0)
htab_bolt_mapping (vstart cf00000000000000, vend cf00000001000000, pstart 5000000,mode 190, psize 4, ssize 0)
htab_bolt_mapping: calling c000000000888f00
_hpte_insert(group=252078, va=d59aca40f0000000, pa=0000000005000000, rflags=194, vflags=10, psize=4 ssize=0)
htab_bolt_mapping (vstart cf00000000000000, vend cf00000001000000, pstart 6000000,mode 190, psize 4, ssize 0)
htab_bolt_mapping: calling c000000000888f00
_hpte_insert(group=252078, va=d59aca40f0000000, pa=0000000006000000, rflags=194, vflags=10, psize=4 ssize=0)
htab_bolt_mapping (vstart cf00000000000000, vend cf00000001000000, pstart 8000000,mode 190, psize 4, ssize 0)
htab_bolt_mapping: calling c000000000888f00
_hpte_insert(group=252078, va=d59aca40f0000000, pa=0000000008000000, rflags=194, vflags=10, psize=4 ssize=0)
htab_bolt_mapping (vstart cf00000000000000, vend cf00000001000000, pstart 9000000,mode 190, psize 4, ssize 0)
htab_bolt_mapping: calling c000000000888f00
_hpte_insert(group=252078, va=d59aca40f0000000, pa=0000000009000000, rflags=194, vflags=10, psize=4 ssize=0)
htab_bolt_mapping (vstart cf00000000000000, vend cf00000001000000, pstart a000000,mode 190, psize 4, ssize 0)
htab_bolt_mapping: calling c000000000888f00
_hpte_insert(group=252078, va=d59aca40f0000000, pa=000000000a000000, rflags=194, vflags=10, psize=4 ssize=0)
htab_bolt_mapping (vstart cf00000000000000, vend cf00000001000000, pstart b000000,mode 190, psize 4, ssize 0)
htab_bolt_mapping: calling c000000000888f00
_hpte_insert(group=252078, va=d59aca40f0000000, pa=000000000b000000, rflags=194, vflags=10, psize=4 ssize=0)
htab_bolt_mapping (vstart cf00000000000000, vend cf00000001000000, pstart c000000,mode 190, psize 4, ssize 0)
htab_bolt_mapping: calling c000000000888f00
_hpte_insert(group=252078, va=d59aca40f0000000, pa=000000000c000000, rflags=194, vflags=10, psize=4 ssize=0)

------------[ cut here ]------------
kernel BUG at arch/powerpc/mm/init_64.c:240!
Oops: Exception in kernel mode, sig: 5 [#1]
SMP NR_CPUS=128 NUMA pSeries
Modules linked in:
NIP: c000000000774b88 LR: c000000000774b80 CTR: 0000000000000000
REGS: c0000000008f7950 TRAP: 0700 Not tainted (2.6.25-rc8-mm1-autotest)
MSR: 8000000000021032 <ME,IR,DR> CR: 24000088 XER: 00000001
TASK = c0000000007dffd0[0] 'swapper' THREAD: c0000000008f4000 CPU: 0

GPR00: c000000000774b80 c0000000008f7bd0 c0000000008f6c00 0000000000000001
GPR04: fffffffffffffffa 000000000000005f 000000000000005e 0000000000000477
GPR08: 00000009b346bb78 8000000006520800 fffffffffffffffa ffffffffffffffff
GPR12: 0000000024000082 c0000000007e0980 0000000000000000 c00000000069ab58
GPR16: 4000000001c00000 c0000000006993e8 0000000000000000 00000000002b1000
GPR20: 000000000237b450 c00000000077b450 000000000237b6c0 c00000000077b6c0
GPR24: c00000000069a5a0 0000000002700000 c0000000009b0000 0000000000000000
GPR28: cf000000001f8000 cf00000001000000 0000000001000000 cf00000000000000

NIP [c000000000774b88] .vmemmap_populate+0xbc/0x100
LR [c000000000774b80] .vmemmap_populate+0xb4/0x100

Call Trace:
[c0000000008f7bd0] [c000000000774b80] .vmemmap_populate+0xb4/0x100 (unreliable)
[c0000000008f7c70] [c0000000007757e4] .sparse_mem_map_populate+0x38/0x5c
[c0000000008f7d00] [c000000000762f14] .sparse_early_mem_map_alloc+0x54/0x94
[c0000000008f7d90] [c000000000763348] .sparse_init+0x1e8/0x224
[c0000000008f7e50] [c00000000074f428] .setup_arch+0x1ac/0x218
[c0000000008f7ee0] [c0000000007466bc] .start_kernel+0xe0/0x414
[c0000000008f7f90] [c000000000008594] .start_here_common+0x54/0xc0

Instruction dump:
7fe3fb78 7ca02a14 4082000c 3860fff4 48000040 e9228980 e9628988 e8e90002
e90b0002 4b8b712d 60000000 78630fe0 <0b030000> 7ffff214 7fbdf214 7fbfe040
---[ end trace 31fd0ba7d8756001 ]---
Kernel panic - not syncing: Attempted to kill the idle task!
--
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.
Badari Pulavarty
2008-04-02 18:15:07 UTC
Permalink
Post by Kamalesh Babulal
Post by Michael Ellerman
Post by Kamalesh Babulal
Post by Andrew Morton
Post by Dmitri Vorobiev
Hi Andrew,
The 2.6.25-rc8-mm1 kernel panic's while bootup on the power machine(s).
[ 0.000000] ------------[ cut here ]------------
[ 0.000000] kernel BUG at arch/powerpc/mm/init_64.c:240!
[ 0.000000] Oops: Exception in kernel mode, sig: 5 [#1]
[ 0.000000] SMP NR_CPUS=32 NUMA PowerMac
[ 0.000000] NIP: c0000000003d1dcc LR: c0000000003d1dc4 CTR: c00000000002b6ac
[ 0.000000] REGS: c00000000049b960 TRAP: 0700 Not tainted (2.6.25-rc8-mm1-autokern1)
[ 0.000000] MSR: 9000000000021032 <ME,IR,DR> CR: 44000088 XER: 20000000
[ 0.000000] TASK = c0000000003f9c90[0] 'swapper' THREAD: c000000000498000 CPU: 0
[ 0.000000] GPR00: c0000000003d1dc4 c00000000049bbe0 c0000000004989d0 0000000000000001
[ 0.000000] GPR04: d59aca40f0000000 000000000b000000 0000000000000010 0000000000000000
[ 0.000000] GPR08: 0000000000000004 0000000000000001 c00000027e520800 c0000000004bf0f0
[ 0.000000] GPR12: c0000000004bf020 c0000000003fa900 0000000000000000 0000000000000000
[ 0.000000] GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[ 0.000000] GPR20: 0000000000000000 0000000000000000 0000000000000000 4000000001400000
[ 0.000000] GPR24: 00000000017d64b0 c0000000003d6250 0000000000000000 c000000000504000
[ 0.000000] GPR28: 0000000000000000 cf000000001f8000 0000000001000000 cf00000000000000
[ 0.000000] NIP [c0000000003d1dcc] .vmemmap_populate+0xb8/0xf4
[ 0.000000] LR [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4
[ 0.000000] [c00000000049bbe0] [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4 (unreliable)
[ 0.000000] [c00000000049bc70] [c0000000003d2ee8] .sparse_mem_map_populate+0x38/0x60
[ 0.000000] [c00000000049bd00] [c0000000003c242c] .sparse_early_mem_map_alloc+0x54/0x94
[ 0.000000] [c00000000049bd90] [c0000000003c250c] .sparse_init+0xa0/0x20c
[ 0.000000] [c00000000049be50] [c0000000003ab7d0] .setup_arch+0x1ac/0x218
[ 0.000000] [c00000000049bee0] [c0000000003a36ac] .start_kernel+0xe0/0x3fc
[ 0.000000] [c00000000049bf90] [c000000000008594] .start_here_common+0x54/0xc0
[ 0.000000] 7fe3fb78 7ca02a14 4082000c 3860fff4 4800003c e92289c8 e96289c0 e9090002
[ 0.000000] e8eb0002 4bc575cd 60000000 78630fe0 <0b030000> 7ffff214 7fbfe840 7fe3fb78
[ 0.000000] ---[ end trace 31fd0ba7d8756001 ]---
[ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
int __meminit vmemmap_populate(struct page *start_page,
unsigned long nr_pages, int node)
{
unsigned long mode_rw;
unsigned long start = (unsigned long)start_page;
unsigned long end = (unsigned long)(start_page + nr_pages);
unsigned long page_size = 1 << mmu_psize_defs[mmu_linear_psize].shift;
mode_rw = _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_COHERENT | PP_RWXX;
/* Align to the page size of the linear mapping. */
start = _ALIGN_DOWN(start, page_size);
for (; start < end; start += page_size) {
int mapped;
void *p;
if (vmemmap_populated(start, page_size))
continue;
p = vmemmap_alloc_block(page_size, node);
if (!p)
return -ENOMEM;
pr_debug("vmemmap %08lx allocated at %p, physical %08lx.\n",
start, p, __pa(p));
mapped = htab_bolt_mapping(start, start + page_size,
__pa(p), mode_rw, mmu_linear_psize,
mmu_kernel_ssize);
=====> BUG_ON(mapped < 0);
}
return 0;
}
Beats me. pseries? Badari has been diddling with the bolted memory code
in git-powerpc...
One of the machines is the Power5 and another is PowerMac G5, on which the
same kernel panic is seen.
Can you enable DEBUG_LOW in arch/powerpc/platforms/pseries/lpar.c, that
should show what's happening in hpte_insert().
cheers
Just define DEBUG_LOW did not fetch and debug information, so added some printk to
htab_bolt_mapping () and pSeries_lpar_hpte_insert ()
[boot]0012 Setup Arch
htab_bolt_mapping (vstart cf00000000000000, vend cf00000001000000, pstart 3000000,mode 190, psize 4, ssize 0)
htab_bolt_mapping: calling c000000000888f00
_hpte_insert(group=252078, va=d59aca40f0000000, pa=0000000003000000, rflags=194, vflags=10, psize=4 ssize=0)
htab_bolt_mapping (vstart cf00000000000000, vend cf00000001000000, pstart 4000000,mode 190, psize 4, ssize 0)
htab_bolt_mapping: calling c000000000888f00
_hpte_insert(group=252078, va=d59aca40f0000000, pa=0000000004000000, rflags=194, vflags=10, psize=4 ssize=0)
htab_bolt_mapping (vstart cf00000000000000, vend cf00000001000000, pstart 5000000,mode 190, psize 4, ssize 0)
htab_bolt_mapping: calling c000000000888f00
_hpte_insert(group=252078, va=d59aca40f0000000, pa=0000000005000000, rflags=194, vflags=10, psize=4 ssize=0)
htab_bolt_mapping (vstart cf00000000000000, vend cf00000001000000, pstart 6000000,mode 190, psize 4, ssize 0)
htab_bolt_mapping: calling c000000000888f00
_hpte_insert(group=252078, va=d59aca40f0000000, pa=0000000006000000, rflags=194, vflags=10, psize=4 ssize=0)
htab_bolt_mapping (vstart cf00000000000000, vend cf00000001000000, pstart 8000000,mode 190, psize 4, ssize 0)
htab_bolt_mapping: calling c000000000888f00
_hpte_insert(group=252078, va=d59aca40f0000000, pa=0000000008000000, rflags=194, vflags=10, psize=4 ssize=0)
htab_bolt_mapping (vstart cf00000000000000, vend cf00000001000000, pstart 9000000,mode 190, psize 4, ssize 0)
htab_bolt_mapping: calling c000000000888f00
_hpte_insert(group=252078, va=d59aca40f0000000, pa=0000000009000000, rflags=194, vflags=10, psize=4 ssize=0)
htab_bolt_mapping (vstart cf00000000000000, vend cf00000001000000, pstart a000000,mode 190, psize 4, ssize 0)
htab_bolt_mapping: calling c000000000888f00
_hpte_insert(group=252078, va=d59aca40f0000000, pa=000000000a000000, rflags=194, vflags=10, psize=4 ssize=0)
htab_bolt_mapping (vstart cf00000000000000, vend cf00000001000000, pstart b000000,mode 190, psize 4, ssize 0)
htab_bolt_mapping: calling c000000000888f00
_hpte_insert(group=252078, va=d59aca40f0000000, pa=000000000b000000, rflags=194, vflags=10, psize=4 ssize=0)
htab_bolt_mapping (vstart cf00000000000000, vend cf00000001000000, pstart c000000,mode 190, psize 4, ssize 0)
htab_bolt_mapping: calling c000000000888f00
_hpte_insert(group=252078, va=d59aca40f0000000, pa=000000000c000000, rflags=194, vflags=10, psize=4 ssize=0)
------------[ cut here ]------------
kernel BUG at arch/powerpc/mm/init_64.c:240!
Oops: Exception in kernel mode, sig: 5 [#1]
SMP NR_CPUS=128 NUMA pSeries
NIP: c000000000774b88 LR: c000000000774b80 CTR: 0000000000000000
REGS: c0000000008f7950 TRAP: 0700 Not tainted (2.6.25-rc8-mm1-autotest)
MSR: 8000000000021032 <ME,IR,DR> CR: 24000088 XER: 00000001
TASK = c0000000007dffd0[0] 'swapper' THREAD: c0000000008f4000 CPU: 0
GPR00: c000000000774b80 c0000000008f7bd0 c0000000008f6c00 0000000000000001
GPR04: fffffffffffffffa 000000000000005f 000000000000005e 0000000000000477
GPR08: 00000009b346bb78 8000000006520800 fffffffffffffffa ffffffffffffffff
GPR12: 0000000024000082 c0000000007e0980 0000000000000000 c00000000069ab58
GPR16: 4000000001c00000 c0000000006993e8 0000000000000000 00000000002b1000
GPR20: 000000000237b450 c00000000077b450 000000000237b6c0 c00000000077b6c0
GPR24: c00000000069a5a0 0000000002700000 c0000000009b0000 0000000000000000
GPR28: cf000000001f8000 cf00000001000000 0000000001000000 cf00000000000000
NIP [c000000000774b88] .vmemmap_populate+0xbc/0x100
LR [c000000000774b80] .vmemmap_populate+0xb4/0x100
[c0000000008f7bd0] [c000000000774b80] .vmemmap_populate+0xb4/0x100 (unreliable)
[c0000000008f7c70] [c0000000007757e4] .sparse_mem_map_populate+0x38/0x5c
[c0000000008f7d00] [c000000000762f14] .sparse_early_mem_map_alloc+0x54/0x94
[c0000000008f7d90] [c000000000763348] .sparse_init+0x1e8/0x224
[c0000000008f7e50] [c00000000074f428] .setup_arch+0x1ac/0x218
[c0000000008f7ee0] [c0000000007466bc] .start_kernel+0xe0/0x414
[c0000000008f7f90] [c000000000008594] .start_here_common+0x54/0xc0
7fe3fb78 7ca02a14 4082000c 3860fff4 48000040 e9228980 e9628988 e8e90002
e90b0002 4b8b712d 60000000 78630fe0 <0b030000> 7ffff214 7fbdf214 7fbfe040
---[ end trace 31fd0ba7d8756001 ]---
Kernel panic - not syncing: Attempted to kill the idle task!
Kamalesh,

With your config, I am able to reproduce the problem. I haven't touched
that part of code. I can take a look at it. It looks like we are trying
to create mapping for same "vaddr" multiple times and we get failures
after few creates. I am not sure why we are trying to create so many
times with same vaddr.

Thanks,
Badari
Badari Pulavarty
2008-04-02 19:22:07 UTC
Permalink
Post by Michael Ellerman
Post by Kamalesh Babulal
Post by Andrew Morton
Post by Dmitri Vorobiev
Hi Andrew,
The 2.6.25-rc8-mm1 kernel panic's while bootup on the power machine(s).
[ 0.000000] ------------[ cut here ]------------
[ 0.000000] kernel BUG at arch/powerpc/mm/init_64.c:240!
[ 0.000000] Oops: Exception in kernel mode, sig: 5 [#1]
[ 0.000000] SMP NR_CPUS=32 NUMA PowerMac
[ 0.000000] NIP: c0000000003d1dcc LR: c0000000003d1dc4 CTR: c00000000002b6ac
[ 0.000000] REGS: c00000000049b960 TRAP: 0700 Not tainted (2.6.25-rc8-mm1-autokern1)
[ 0.000000] MSR: 9000000000021032 <ME,IR,DR> CR: 44000088 XER: 20000000
[ 0.000000] TASK = c0000000003f9c90[0] 'swapper' THREAD: c000000000498000 CPU: 0
[ 0.000000] GPR00: c0000000003d1dc4 c00000000049bbe0 c0000000004989d0 0000000000000001
[ 0.000000] GPR04: d59aca40f0000000 000000000b000000 0000000000000010 0000000000000000
[ 0.000000] GPR08: 0000000000000004 0000000000000001 c00000027e520800 c0000000004bf0f0
[ 0.000000] GPR12: c0000000004bf020 c0000000003fa900 0000000000000000 0000000000000000
[ 0.000000] GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[ 0.000000] GPR20: 0000000000000000 0000000000000000 0000000000000000 4000000001400000
[ 0.000000] GPR24: 00000000017d64b0 c0000000003d6250 0000000000000000 c000000000504000
[ 0.000000] GPR28: 0000000000000000 cf000000001f8000 0000000001000000 cf00000000000000
[ 0.000000] NIP [c0000000003d1dcc] .vmemmap_populate+0xb8/0xf4
[ 0.000000] LR [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4
[ 0.000000] [c00000000049bbe0] [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4 (unreliable)
[ 0.000000] [c00000000049bc70] [c0000000003d2ee8] .sparse_mem_map_populate+0x38/0x60
[ 0.000000] [c00000000049bd00] [c0000000003c242c] .sparse_early_mem_map_alloc+0x54/0x94
[ 0.000000] [c00000000049bd90] [c0000000003c250c] .sparse_init+0xa0/0x20c
[ 0.000000] [c00000000049be50] [c0000000003ab7d0] .setup_arch+0x1ac/0x218
[ 0.000000] [c00000000049bee0] [c0000000003a36ac] .start_kernel+0xe0/0x3fc
[ 0.000000] [c00000000049bf90] [c000000000008594] .start_here_common+0x54/0xc0
[ 0.000000] 7fe3fb78 7ca02a14 4082000c 3860fff4 4800003c e92289c8 e96289c0 e9090002
[ 0.000000] e8eb0002 4bc575cd 60000000 78630fe0 <0b030000> 7ffff214 7fbfe840 7fe3fb78
[ 0.000000] ---[ end trace 31fd0ba7d8756001 ]---
[ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
int __meminit vmemmap_populate(struct page *start_page,
unsigned long nr_pages, int node)
{
unsigned long mode_rw;
unsigned long start = (unsigned long)start_page;
unsigned long end = (unsigned long)(start_page + nr_pages);
unsigned long page_size = 1 << mmu_psize_defs[mmu_linear_psize].shift;
mode_rw = _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_COHERENT | PP_RWXX;
/* Align to the page size of the linear mapping. */
start = _ALIGN_DOWN(start, page_size);
for (; start < end; start += page_size) {
int mapped;
void *p;
if (vmemmap_populated(start, page_size))
continue;
p = vmemmap_alloc_block(page_size, node);
if (!p)
return -ENOMEM;
pr_debug("vmemmap %08lx allocated at %p, physical %08lx.\n",
start, p, __pa(p));
mapped = htab_bolt_mapping(start, start + page_size,
__pa(p), mode_rw, mmu_linear_psize,
mmu_kernel_ssize);
=====> BUG_ON(mapped < 0);
}
return 0;
}
Beats me. pseries? Badari has been diddling with the bolted memory code
in git-powerpc...
One of the machines is the Power5 and another is PowerMac G5, on which the
same kernel panic is seen.
Can you enable DEBUG_LOW in arch/powerpc/platforms/pseries/lpar.c, that
should show what's happening in hpte_insert().
cheers
Okay. Found it.

Root cause is:

mm-make-mem_map-allocation-continuous.patch
and its friends in -mm.

You have to call sparse_init_one_section() on each pmap and usemap
as we allocate - since valid_section() depends on it (which is needed
by vmemmap_populate() to check if the section is populated or not).
On ppc, we need to call htab_bolted_mapping() on each section and
we need to skip existing sections.

These patches tried to group all allocations together and then later
calls sparse_init_one_section() - which is not good :(

Please let me know, if its doesn't make sense - I will try to explain
better :)

Thanks,
Badari
Yinghai Lu
2008-04-02 21:57:37 UTC
Permalink
Post by Badari Pulavarty
Post by Michael Ellerman
Post by Kamalesh Babulal
Post by Andrew Morton
Post by Dmitri Vorobiev
Hi Andrew,
The 2.6.25-rc8-mm1 kernel panic's while bootup on the power machine(s).
[ 0.000000] ------------[ cut here ]------------
[ 0.000000] kernel BUG at arch/powerpc/mm/init_64.c:240!
[ 0.000000] Oops: Exception in kernel mode, sig: 5 [#1]
[ 0.000000] SMP NR_CPUS=32 NUMA PowerMac
[ 0.000000] NIP: c0000000003d1dcc LR: c0000000003d1dc4 CTR: c00000000002b6ac
[ 0.000000] REGS: c00000000049b960 TRAP: 0700 Not tainted (2.6.25-rc8-mm1-autokern1)
[ 0.000000] MSR: 9000000000021032 <ME,IR,DR> CR: 44000088 XER: 20000000
[ 0.000000] TASK = c0000000003f9c90[0] 'swapper' THREAD: c000000000498000 CPU: 0
[ 0.000000] GPR00: c0000000003d1dc4 c00000000049bbe0 c0000000004989d0 0000000000000001
[ 0.000000] GPR04: d59aca40f0000000 000000000b000000 0000000000000010 0000000000000000
[ 0.000000] GPR08: 0000000000000004 0000000000000001 c00000027e520800 c0000000004bf0f0
[ 0.000000] GPR12: c0000000004bf020 c0000000003fa900 0000000000000000 0000000000000000
[ 0.000000] GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[ 0.000000] GPR20: 0000000000000000 0000000000000000 0000000000000000 4000000001400000
[ 0.000000] GPR24: 00000000017d64b0 c0000000003d6250 0000000000000000 c000000000504000
[ 0.000000] GPR28: 0000000000000000 cf000000001f8000 0000000001000000 cf00000000000000
[ 0.000000] NIP [c0000000003d1dcc] .vmemmap_populate+0xb8/0xf4
[ 0.000000] LR [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4
[ 0.000000] [c00000000049bbe0] [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4 (unreliable)
[ 0.000000] [c00000000049bc70] [c0000000003d2ee8] .sparse_mem_map_populate+0x38/0x60
[ 0.000000] [c00000000049bd00] [c0000000003c242c] .sparse_early_mem_map_alloc+0x54/0x94
[ 0.000000] [c00000000049bd90] [c0000000003c250c] .sparse_init+0xa0/0x20c
[ 0.000000] [c00000000049be50] [c0000000003ab7d0] .setup_arch+0x1ac/0x218
[ 0.000000] [c00000000049bee0] [c0000000003a36ac] .start_kernel+0xe0/0x3fc
[ 0.000000] [c00000000049bf90] [c000000000008594] .start_here_common+0x54/0xc0
[ 0.000000] 7fe3fb78 7ca02a14 4082000c 3860fff4 4800003c e92289c8 e96289c0 e9090002
[ 0.000000] e8eb0002 4bc575cd 60000000 78630fe0 <0b030000> 7ffff214 7fbfe840 7fe3fb78
[ 0.000000] ---[ end trace 31fd0ba7d8756001 ]---
[ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
int __meminit vmemmap_populate(struct page *start_page,
unsigned long nr_pages, int node)
{
unsigned long mode_rw;
unsigned long start = (unsigned long)start_page;
unsigned long end = (unsigned long)(start_page + nr_pages);
unsigned long page_size = 1 << mmu_psize_defs[mmu_linear_psize].shift;
mode_rw = _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_COHERENT | PP_RWXX;
/* Align to the page size of the linear mapping. */
start = _ALIGN_DOWN(start, page_size);
for (; start < end; start += page_size) {
int mapped;
void *p;
if (vmemmap_populated(start, page_size))
continue;
p = vmemmap_alloc_block(page_size, node);
if (!p)
return -ENOMEM;
pr_debug("vmemmap %08lx allocated at %p, physical %08lx.\n",
start, p, __pa(p));
mapped = htab_bolt_mapping(start, start + page_size,
__pa(p), mode_rw, mmu_linear_psize,
mmu_kernel_ssize);
=====> BUG_ON(mapped < 0);
}
return 0;
}
Beats me. pseries? Badari has been diddling with the bolted memory code
in git-powerpc...
One of the machines is the Power5 and another is PowerMac G5, on which the
same kernel panic is seen.
Can you enable DEBUG_LOW in arch/powerpc/platforms/pseries/lpar.c, that
should show what's happening in hpte_insert().
cheers
Okay. Found it.
mm-make-mem_map-allocation-continuous.patch
and its friends in -mm.
You have to call sparse_init_one_section() on each pmap and usemap
as we allocate - since valid_section() depends on it (which is needed
by vmemmap_populate() to check if the section is populated or not).
On ppc, we need to call htab_bolted_mapping() on each section and
we need to skip existing sections.
These patches tried to group all allocations together and then later
calls sparse_init_one_section() - which is not good :(
will send you patch workaround it...

YH
Yinghai Lu
2008-04-02 22:24:41 UTC
Permalink
Post by Badari Pulavarty
Post by Michael Ellerman
Post by Kamalesh Babulal
Post by Andrew Morton
Post by Dmitri Vorobiev
Hi Andrew,
The 2.6.25-rc8-mm1 kernel panic's while bootup on the power machine(s).
[ 0.000000] ------------[ cut here ]------------
[ 0.000000] kernel BUG at arch/powerpc/mm/init_64.c:240!
[ 0.000000] Oops: Exception in kernel mode, sig: 5 [#1]
[ 0.000000] SMP NR_CPUS=32 NUMA PowerMac
[ 0.000000] NIP: c0000000003d1dcc LR: c0000000003d1dc4 CTR: c00000000002b6ac
[ 0.000000] REGS: c00000000049b960 TRAP: 0700 Not tainted (2.6.25-rc8-mm1-autokern1)
[ 0.000000] MSR: 9000000000021032 <ME,IR,DR> CR: 44000088 XER: 20000000
[ 0.000000] TASK = c0000000003f9c90[0] 'swapper' THREAD: c000000000498000 CPU: 0
[ 0.000000] GPR00: c0000000003d1dc4 c00000000049bbe0 c0000000004989d0 0000000000000001
[ 0.000000] GPR04: d59aca40f0000000 000000000b000000 0000000000000010 0000000000000000
[ 0.000000] GPR08: 0000000000000004 0000000000000001 c00000027e520800 c0000000004bf0f0
[ 0.000000] GPR12: c0000000004bf020 c0000000003fa900 0000000000000000 0000000000000000
[ 0.000000] GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[ 0.000000] GPR20: 0000000000000000 0000000000000000 0000000000000000 4000000001400000
[ 0.000000] GPR24: 00000000017d64b0 c0000000003d6250 0000000000000000 c000000000504000
[ 0.000000] GPR28: 0000000000000000 cf000000001f8000 0000000001000000 cf00000000000000
[ 0.000000] NIP [c0000000003d1dcc] .vmemmap_populate+0xb8/0xf4
[ 0.000000] LR [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4
[ 0.000000] [c00000000049bbe0] [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4 (unreliable)
[ 0.000000] [c00000000049bc70] [c0000000003d2ee8] .sparse_mem_map_populate+0x38/0x60
[ 0.000000] [c00000000049bd00] [c0000000003c242c] .sparse_early_mem_map_alloc+0x54/0x94
[ 0.000000] [c00000000049bd90] [c0000000003c250c] .sparse_init+0xa0/0x20c
[ 0.000000] [c00000000049be50] [c0000000003ab7d0] .setup_arch+0x1ac/0x218
[ 0.000000] [c00000000049bee0] [c0000000003a36ac] .start_kernel+0xe0/0x3fc
[ 0.000000] [c00000000049bf90] [c000000000008594] .start_here_common+0x54/0xc0
[ 0.000000] 7fe3fb78 7ca02a14 4082000c 3860fff4 4800003c e92289c8 e96289c0 e9090002
[ 0.000000] e8eb0002 4bc575cd 60000000 78630fe0 <0b030000> 7ffff214 7fbfe840 7fe3fb78
[ 0.000000] ---[ end trace 31fd0ba7d8756001 ]---
[ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
int __meminit vmemmap_populate(struct page *start_page,
unsigned long nr_pages, int node)
{
unsigned long mode_rw;
unsigned long start = (unsigned long)start_page;
unsigned long end = (unsigned long)(start_page + nr_pages);
unsigned long page_size = 1 << mmu_psize_defs[mmu_linear_psize].shift;
mode_rw = _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_COHERENT | PP_RWXX;
/* Align to the page size of the linear mapping. */
start = _ALIGN_DOWN(start, page_size);
for (; start < end; start += page_size) {
int mapped;
void *p;
if (vmemmap_populated(start, page_size))
continue;
p = vmemmap_alloc_block(page_size, node);
if (!p)
return -ENOMEM;
pr_debug("vmemmap %08lx allocated at %p, physical %08lx.\n",
start, p, __pa(p));
mapped = htab_bolt_mapping(start, start + page_size,
__pa(p), mode_rw, mmu_linear_psize,
mmu_kernel_ssize);
=====> BUG_ON(mapped < 0);
}
return 0;
}
Beats me. pseries? Badari has been diddling with the bolted memory code
in git-powerpc...
One of the machines is the Power5 and another is PowerMac G5, on which the
same kernel panic is seen.
Can you enable DEBUG_LOW in arch/powerpc/platforms/pseries/lpar.c, that
should show what's happening in hpte_insert().
cheers
Okay. Found it.
mm-make-mem_map-allocation-continuous.patch
and its friends in -mm.
You have to call sparse_init_one_section() on each pmap and usemap
as we allocate - since valid_section() depends on it (which is needed
by vmemmap_populate() to check if the section is populated or not).
On ppc, we need to call htab_bolted_mapping() on each section and
we need to skip existing sections.
These patches tried to group all allocations together and then later
calls sparse_init_one_section() - which is not good :(
http://lkml.org/lkml/2008/4/2/592

Thanks

YH
Andy Whitcroft
2008-04-04 09:24:22 UTC
Permalink
Post by Andrew Morton
Post by Dmitri Vorobiev
Hi Andrew,
The 2.6.25-rc8-mm1 kernel panic's while bootup on the power machine(s).
[ 0.000000] ------------[ cut here ]------------
[ 0.000000] kernel BUG at arch/powerpc/mm/init_64.c:240!
[ 0.000000] Oops: Exception in kernel mode, sig: 5 [#1]
[ 0.000000] SMP NR_CPUS=32 NUMA PowerMac
[ 0.000000] NIP: c0000000003d1dcc LR: c0000000003d1dc4 CTR: c00000000002b6ac
[ 0.000000] REGS: c00000000049b960 TRAP: 0700 Not tainted (2.6.25-rc8-mm1-autokern1)
[ 0.000000] MSR: 9000000000021032 <ME,IR,DR> CR: 44000088 XER: 20000000
[ 0.000000] TASK = c0000000003f9c90[0] 'swapper' THREAD: c000000000498000 CPU: 0
[ 0.000000] GPR00: c0000000003d1dc4 c00000000049bbe0 c0000000004989d0 0000000000000001
[ 0.000000] GPR04: d59aca40f0000000 000000000b000000 0000000000000010 0000000000000000
[ 0.000000] GPR08: 0000000000000004 0000000000000001 c00000027e520800 c0000000004bf0f0
[ 0.000000] GPR12: c0000000004bf020 c0000000003fa900 0000000000000000 0000000000000000
[ 0.000000] GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[ 0.000000] GPR20: 0000000000000000 0000000000000000 0000000000000000 4000000001400000
[ 0.000000] GPR24: 00000000017d64b0 c0000000003d6250 0000000000000000 c000000000504000
[ 0.000000] GPR28: 0000000000000000 cf000000001f8000 0000000001000000 cf00000000000000
[ 0.000000] NIP [c0000000003d1dcc] .vmemmap_populate+0xb8/0xf4
[ 0.000000] LR [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4
[ 0.000000] [c00000000049bbe0] [c0000000003d1dc4] .vmemmap_populate+0xb0/0xf4 (unreliable)
[ 0.000000] [c00000000049bc70] [c0000000003d2ee8] .sparse_mem_map_populate+0x38/0x60
[ 0.000000] [c00000000049bd00] [c0000000003c242c] .sparse_early_mem_map_alloc+0x54/0x94
[ 0.000000] [c00000000049bd90] [c0000000003c250c] .sparse_init+0xa0/0x20c
[ 0.000000] [c00000000049be50] [c0000000003ab7d0] .setup_arch+0x1ac/0x218
[ 0.000000] [c00000000049bee0] [c0000000003a36ac] .start_kernel+0xe0/0x3fc
[ 0.000000] [c00000000049bf90] [c000000000008594] .start_here_common+0x54/0xc0
[ 0.000000] 7fe3fb78 7ca02a14 4082000c 3860fff4 4800003c e92289c8 e96289c0 e9090002
[ 0.000000] e8eb0002 4bc575cd 60000000 78630fe0 <0b030000> 7ffff214 7fbfe840 7fe3fb78
[ 0.000000] ---[ end trace 31fd0ba7d8756001 ]---
[ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
int __meminit vmemmap_populate(struct page *start_page,
unsigned long nr_pages, int node)
{
unsigned long mode_rw;
unsigned long start = (unsigned long)start_page;
unsigned long end = (unsigned long)(start_page + nr_pages);
unsigned long page_size = 1 << mmu_psize_defs[mmu_linear_psize].shift;
mode_rw = _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_COHERENT | PP_RWXX;
/* Align to the page size of the linear mapping. */
start = _ALIGN_DOWN(start, page_size);
for (; start < end; start += page_size) {
int mapped;
void *p;
if (vmemmap_populated(start, page_size))
continue;
p = vmemmap_alloc_block(page_size, node);
if (!p)
return -ENOMEM;
pr_debug("vmemmap %08lx allocated at %p, physical %08lx.\n",
start, p, __pa(p));
mapped = htab_bolt_mapping(start, start + page_size,
__pa(p), mode_rw, mmu_linear_psize,
mmu_kernel_ssize);
=====> BUG_ON(mapped < 0);
}
return 0;
}
Beats me. pseries? Badari has been diddling with the bolted memory code
in git-powerpc...
It does look like this is resolved with the patch below, if my testing
is to be believed (results out on TKO):

[PATCH] mm: allocate usemap at first instead of mem_map in sparse_init
From: Yinghai Lu <***@gmail.com>

Andrew, I believe you just sucked that up into -mm.

-apw
Kamalesh Babulal
2008-04-02 09:02:35 UTC
Permalink
Hi Andrew,

The 2.6.25-rc8-mm1 kernel build fails on x86_64, when compiled with randconfig option

In file included from include/net/dst.h:15,
from include/net/sock.h:57,
from include/linux/if_pppox.h:145,
from fs/compat_ioctl.c:39:
include/net/neighbour.h: In function ‘neigh_parms_net’:
include/net/neighbour.h:227: error: ‘init_net’ undeclared (first use in this function)
include/net/neighbour.h:227: error: (Each undeclared identifier is reported only once
include/net/neighbour.h:227: error: for each function it appears in.)
include/net/neighbour.h: In function ‘pneigh_net’:
include/net/neighbour.h:248: error: ‘init_net’ undeclared (first use in this function)
include/net/neighbour.h: At top level:
include/net/neighbour.h:258: error: field ‘p’ has incomplete type
In file included from include/linux/if_pppox.h:145,
from fs/compat_ioctl.c:39:
include/net/sock.h: In function ‘sock_net’:
include/net/sock.h:1331: error: ‘init_net’ undeclared (first use in this function)
make[1]: *** [fs/compat_ioctl.o] Error 1
make: *** [fs] Error 2
--
Thanks & Regards,
Kamalesh Babulal,
Linux Technology Center,
IBM, ISTL.
Miles Lane
2008-04-02 10:49:14 UTC
Permalink
CC [M] drivers/net/wireless/iwlwifi/iwl3945-base.o
drivers/net/wireless/iwlwifi/iwl3945-base.c: In function
'iwl3945_build_tx_cmd_basic':
drivers/net/wireless/iwlwifi/iwl3945-base.c:2492: error: 'struct
iwl3945_priv' has no member named 'rxtxpackets'
make[4]: *** [drivers/net/wireless/iwlwifi/iwl3945-base.o] Error 1

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.25-rc8-mm1
# Tue Apr 1 21:44:54 2008
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
# CONFIG_X86_64 is not set
CONFIG_X86=y
# CONFIG_GENERIC_LOCKBREAK is not set
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_FAST_CMPXCHG_LOCAL=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
# CONFIG_GENERIC_GPIO is not set
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
# CONFIG_GENERIC_TIME_VSYSCALL is not set
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
# CONFIG_ZONE_DMA32 is not set
CONFIG_ARCH_POPULATES_NODE_MAP=y
# CONFIG_AUDIT_ARCH is not set
CONFIG_ARCH_SUPPORTS_AOUT=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_X86_SMP=y
CONFIG_X86_32_SMP=y
CONFIG_X86_HT=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_X86_TRAMPOLINE=y
CONFIG_KTIME_SCALAR=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
# CONFIG_TASKSTATS is not set
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_TREE=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=18
CONFIG_CGROUPS=y
CONFIG_CGROUP_DEBUG=y
CONFIG_CGROUP_NS=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CPUSETS=y
CONFIG_GROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
# CONFIG_RT_GROUP_SCHED is not set
# CONFIG_USER_SCHED is not set
CONFIG_CGROUP_SCHED=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_RESOURCE_COUNTERS=y
CONFIG_CGROUP_MEM_RES_CTLR=y
# CONFIG_SYSFS_DEPRECATED_V2 is not set
CONFIG_PROC_PID_CPUSET=y
CONFIG_RELAY=y
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
CONFIG_USER_NS=y
CONFIG_PID_NS=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_SYSCTL_SYSCALL_CHECK=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
# CONFIG_COMPAT_BRK is not set
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
CONFIG_PROFILING=y
CONFIG_MARKERS=y
CONFIG_OPROFILE=m
CONFIG_HAVE_OPROFILE=y
CONFIG_KPROBES=y
CONFIG_KRETPROBES=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
# CONFIG_HAVE_DMA_ATTRS is not set
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set
CONFIG_BLK_DEV_BSG=y

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

#
# Processor type and features
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_SMP=y
CONFIG_X86_PC=y
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
# CONFIG_X86_GENERICARCH is not set
# CONFIG_X86_ES7000 is not set
# CONFIG_X86_RDC321X is not set
# CONFIG_X86_VSMP is not set
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_PARAVIRT_GUEST=y
CONFIG_VMI=y
CONFIG_KVM_CLOCK=y
CONFIG_KVM_GUEST=y
CONFIG_LGUEST_GUEST=y
CONFIG_PARAVIRT=y
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
# CONFIG_MPSC is not set
CONFIG_MCORE2=y
# CONFIG_GENERIC_CPU is not set
# CONFIG_X86_GENERIC is not set
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_XADD=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_P6_NOP=y
CONFIG_X86_MINIMUM_CPU_FAMILY=6
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_DMI=y
# CONFIG_IOMMU_HELPER is not set
CONFIG_NR_CPUS=5
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_RCU=y
CONFIG_RCU_TRACE=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
# CONFIG_X86_MCE is not set
CONFIG_VM86=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_X86_REBOOTFIXUPS is not set
CONFIG_MICROCODE=m
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_HIGHMEM=y
CONFIG_NEED_NODE_MEMMAP_SIZE=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_SELECT_MEMORY_MODEL=y
# CONFIG_FLATMEM_MANUAL is not set
# CONFIG_DISCONTIGMEM_MANUAL is not set
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM=y
CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_SPARSEMEM_STATIC=y
# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set

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

#
# Power management options
#
CONFIG_PM=y
# CONFIG_PM_DEBUG is not set
CONFIG_PM_SLEEP_SMP=y
CONFIG_PM_SLEEP=y
CONFIG_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
CONFIG_HIBERNATION=y
CONFIG_PM_STD_PARTITION=""
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_PROCFS=y
CONFIG_ACPI_PROCFS_POWER=y
CONFIG_ACPI_SYSFS_POWER=y
CONFIG_ACPI_PROC_EVENT=y
CONFIG_ACPI_AC=m
CONFIG_ACPI_BATTERY=m
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_FAN=m
CONFIG_ACPI_DOCK=y
# CONFIG_ACPI_BAY is not set
CONFIG_ACPI_PROCESSOR=m
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_THERMAL=m
CONFIG_ACPI_WMI=m
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_TOSHIBA is not set
# CONFIG_ACPI_CUSTOM_DSDT is not set
CONFIG_ACPI_BLACKLIST_YEAR=2001
CONFIG_ACPI_DEBUG=y
CONFIG_ACPI_DEBUG_FUNC_TRACE=y
CONFIG_ACPI_EC=y
CONFIG_ACPI_PCI_SLOT=m
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=y
# CONFIG_ACPI_SBS is not set
CONFIG_X86_APM_BOOT=y
CONFIG_APM=m
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
# CONFIG_APM_DO_ENABLE is not set
# CONFIG_APM_CPU_IDLE is not set
# CONFIG_APM_DISPLAY_BLANK is not set
# CONFIG_APM_ALLOW_INTS is not set
# CONFIG_APM_REAL_MODE_POWER_OFF is not set

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

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

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

#
# Bus options (PCI etc.)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=m
CONFIG_PCIEAER=y
CONFIG_PCIEASPM=y
CONFIG_PCIEASPM_DEBUG=y
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
# CONFIG_PCI_LEGACY is not set
# CONFIG_PCI_DEBUG is not set
CONFIG_HT_IRQ=y
CONFIG_ISA_DMA_API=y
CONFIG_ISA=y
CONFIG_EISA=y
# CONFIG_EISA_VLB_PRIMING is not set
CONFIG_EISA_PCI_EISA=y
CONFIG_EISA_VIRTUAL_ROOT=y
CONFIG_EISA_NAMES=y
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
CONFIG_PCCARD=m
CONFIG_PCMCIA_DEBUG=y
CONFIG_PCMCIA=m
CONFIG_PCMCIA_LOAD_CIS=y
CONFIG_CARDBUS=y

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

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

#
# Networking
#
CONFIG_NET=y

#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
# CONFIG_IP_PNP_BOOTP is not set
# CONFIG_IP_PNP_RARP is not set
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
CONFIG_ARPD=y
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
CONFIG_INET_TUNNEL=y
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_LRO is not set
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
CONFIG_IPV6=y
# CONFIG_IPV6_PRIVACY is not set
# CONFIG_IPV6_ROUTER_PREF is not set
# CONFIG_IPV6_OPTIMISTIC_DAD is not set
# CONFIG_INET6_AH is not set
# CONFIG_INET6_ESP is not set
# CONFIG_INET6_IPCOMP is not set
# CONFIG_IPV6_MIP6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
CONFIG_INET6_XFRM_MODE_TRANSPORT=y
CONFIG_INET6_XFRM_MODE_TUNNEL=y
# CONFIG_INET6_XFRM_MODE_BEET is not set
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
CONFIG_IPV6_SIT=y
# CONFIG_IPV6_TUNNEL is not set
# CONFIG_IPV6_MULTIPLE_TABLES is not set
CONFIG_NETWORK_SECMARK=y
# CONFIG_NETFILTER is not set
CONFIG_IP_DCCP=m
CONFIG_INET_DCCP_DIAG=m
CONFIG_IP_DCCP_ACKVEC=y

#
# DCCP CCIDs Configuration (EXPERIMENTAL)
#
CONFIG_IP_DCCP_CCID2=m
# CONFIG_IP_DCCP_CCID2_DEBUG is not set
CONFIG_IP_DCCP_CCID3=m
# CONFIG_IP_DCCP_CCID3_DEBUG is not set
CONFIG_IP_DCCP_CCID3_RTO=100
CONFIG_IP_DCCP_TFRC_LIB=m

#
# DCCP Kernel Hacking
#
# CONFIG_IP_DCCP_DEBUG is not set
# CONFIG_NET_DCCPPROBE is not set
CONFIG_IP_SCTP=m
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
# CONFIG_SCTP_HMAC_NONE is not set
# CONFIG_SCTP_HMAC_SHA1 is not set
CONFIG_SCTP_HMAC_MD5=y
CONFIG_TIPC=m
# CONFIG_TIPC_ADVANCED is not set
# CONFIG_TIPC_DEBUG is not set
CONFIG_ATM=m
CONFIG_ATM_CLIP=m
# CONFIG_ATM_CLIP_NO_ICMP is not set
CONFIG_ATM_LANE=m
CONFIG_ATM_MPOA=m
CONFIG_ATM_BR2684=m
# CONFIG_ATM_BR2684_IPFILTER is not set
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
CONFIG_DECNET=m
# CONFIG_DECNET_ROUTER is not set
CONFIG_LLC=m
CONFIG_LLC2=m
CONFIG_IPX=m
# CONFIG_IPX_INTERN is not set
CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=m
# CONFIG_LTPC is not set
# CONFIG_COPS is not set
CONFIG_IPDDP=m
CONFIG_IPDDP_ENCAP=y
CONFIG_IPDDP_DECAP=y
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_SCHED is not set
CONFIG_NET_SCH_FIFO=y

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
CONFIG_IRDA=m

#
# IrDA protocols
#
CONFIG_IRLAN=m
CONFIG_IRNET=m
CONFIG_IRCOMM=m
CONFIG_IRDA_ULTRA=y

#
# IrDA options
#
CONFIG_IRDA_CACHE_LAST_LSAP=y
CONFIG_IRDA_FAST_RR=y
CONFIG_IRDA_DEBUG=y

#
# Infrared-port device drivers
#

#
# SIR device drivers
#
CONFIG_IRTTY_SIR=m

#
# Dongle support
#
CONFIG_DONGLE=y
CONFIG_ESI_DONGLE=m
CONFIG_ACTISYS_DONGLE=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_TOIM3232_DONGLE=m
CONFIG_LITELINK_DONGLE=m
CONFIG_MA600_DONGLE=m
CONFIG_GIRBIL_DONGLE=m
CONFIG_MCP2120_DONGLE=m
CONFIG_OLD_BELKIN_DONGLE=m
CONFIG_ACT200L_DONGLE=m
CONFIG_KINGSUN_DONGLE=m
CONFIG_KSDAZZLE_DONGLE=m
CONFIG_KS959_DONGLE=m

#
# FIR device drivers
#
CONFIG_USB_IRDA=m
CONFIG_SIGMATEL_FIR=m
CONFIG_NSC_FIR=m
CONFIG_WINBOND_FIR=m
CONFIG_TOSHIBA_FIR=m
CONFIG_SMC_IRCC_FIR=m
CONFIG_ALI_FIR=m
CONFIG_VLSI_FIR=m
CONFIG_VIA_FIR=m
CONFIG_MCS_FIR=m
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=m

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

#
# Wireless
#
CONFIG_CFG80211=m
CONFIG_NL80211=y
CONFIG_WIRELESS_EXT=y
CONFIG_MAC80211=m

#
# Rate control algorithm selection
#
CONFIG_MAC80211_RC_DEFAULT_PID=y
# CONFIG_MAC80211_RC_DEFAULT_NONE is not set

#
# Selecting 'y' for an algorithm will
#

#
# build the algorithm into mac80211.
#
CONFIG_MAC80211_RC_DEFAULT="pid"
CONFIG_MAC80211_RC_PID=y
CONFIG_MAC80211_MESH=y
CONFIG_MAC80211_LEDS=y
# CONFIG_MAC80211_DEBUGFS is not set
# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set
# CONFIG_MAC80211_DEBUG is not set
# CONFIG_IEEE80211 is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set

#
# Device Drivers
#

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

#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
CONFIG_MTD_BLKDEVS=m
CONFIG_MTD_BLOCK=m
CONFIG_MTD_BLOCK_RO=m
CONFIG_FTL=m
CONFIG_NFTL=m
CONFIG_NFTL_RW=y
CONFIG_INFTL=m
CONFIG_RFD_FTL=m
CONFIG_SSFDC=m
CONFIG_MTD_OOPS=m

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

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

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

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

#
# UBI - Unsorted block images
#
CONFIG_MTD_UBI=m
CONFIG_MTD_UBI_WL_THRESHOLD=4096
CONFIG_MTD_UBI_BEB_RESERVE=1
CONFIG_MTD_UBI_GLUEBI=y

#
# UBI debugging options
#
CONFIG_MTD_UBI_DEBUG=y
CONFIG_MTD_UBI_DEBUG_MSG=y
CONFIG_MTD_UBI_DEBUG_PARANOID=y
CONFIG_MTD_UBI_DEBUG_DISABLE_BGT=y
CONFIG_MTD_UBI_DEBUG_USERSPACE_IO=y
CONFIG_MTD_UBI_DEBUG_EMULATE_BITFLIPS=y
CONFIG_MTD_UBI_DEBUG_EMULATE_WRITE_FAILURES=y
CONFIG_MTD_UBI_DEBUG_EMULATE_ERASE_FAILURES=y

#
# Additional UBI debugging messages
#
CONFIG_MTD_UBI_DEBUG_MSG_BLD=y
CONFIG_MTD_UBI_DEBUG_MSG_EBA=y
CONFIG_MTD_UBI_DEBUG_MSG_WL=y
CONFIG_MTD_UBI_DEBUG_MSG_IO=y
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_SERIAL=m
CONFIG_PARPORT_PC_FIFO=y
CONFIG_PARPORT_PC_SUPERIO=y
CONFIG_PARPORT_PC_PCMCIA=m
# CONFIG_PARPORT_GSC is not set
CONFIG_PARPORT_AX88796=m
CONFIG_PARPORT_1284=y
CONFIG_PARPORT_NOT_PC=y
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set

#
# Protocols
#
# CONFIG_ISAPNP is not set
# CONFIG_PNPBIOS is not set
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_FD=m
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_CRYPTOLOOP=m
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_UB is not set
# CONFIG_BLK_DEV_RAM is not set
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
# CONFIG_ATA_OVER_ETH is not set
# CONFIG_VIRTIO_BLK is not set
CONFIG_MISC_DEVICES=y
# CONFIG_IBM_ASM is not set
# CONFIG_PHANTOM is not set
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_SGI_IOC4 is not set
CONFIG_TIFM_CORE=m
CONFIG_TIFM_7XX1=m
# CONFIG_TC1100_WMI is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_THINKPAD_ACPI is not set
CONFIG_INTEL_MENLOW=m
# CONFIG_ENCLOSURE_SERVICES is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set

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

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

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

#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=m
CONFIG_SCSI_FC_ATTRS=m
# CONFIG_SCSI_FC_TGT_ATTRS is not set
CONFIG_SCSI_ISCSI_ATTRS=m
CONFIG_SCSI_SAS_ATTRS=y
CONFIG_SCSI_SAS_LIBSAS=m
# CONFIG_SCSI_SAS_ATA is not set
CONFIG_SCSI_SAS_HOST_SMP=y
CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
CONFIG_SCSI_SRP_ATTRS=m
# CONFIG_SCSI_SRP_TGT_ATTRS is not set
CONFIG_SCSI_LOWLEVEL=y
# CONFIG_ISCSI_TCP is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_7000FASST is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AHA152X is not set
# CONFIG_SCSI_AHA1542 is not set
# CONFIG_SCSI_AHA1740 is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_IN2000 is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_DTC3280 is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_PPA is not set
# CONFIG_SCSI_IMM is not set
# CONFIG_SCSI_MVSAS is not set
# CONFIG_SCSI_NCR53C406A is not set
# CONFIG_SCSI_STEX is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_PAS16 is not set
# CONFIG_SCSI_QLOGIC_FAS is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_SIM710 is not set
# CONFIG_SCSI_SYM53C416 is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_T128 is not set
# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_ULTRASTOR is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_SRP is not set
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
CONFIG_PCMCIA_AHA152X=m
CONFIG_PCMCIA_FDOMAIN=m
CONFIG_PCMCIA_NINJA_SCSI=m
CONFIG_PCMCIA_QLOGIC=m
CONFIG_PCMCIA_SYM53C500=m
CONFIG_ATA=m
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_ATA_ACPI=y
CONFIG_SATA_AHCI=m
# CONFIG_SATA_SVW is not set
CONFIG_ATA_PIIX=m
# CONFIG_SATA_MV is not set
# CONFIG_SATA_NV is not set
# CONFIG_PDC_ADMA is not set
# CONFIG_SATA_QSTOR is not set
# CONFIG_SATA_PROMISE is not set
# CONFIG_SATA_SX4 is not set
# CONFIG_SATA_SIL is not set
# CONFIG_SATA_SIL24 is not set
# CONFIG_SATA_SIS is not set
# CONFIG_SATA_ULI is not set
# CONFIG_SATA_VIA is not set
# CONFIG_SATA_VITESSE is not set
# CONFIG_SATA_INIC162X is not set
CONFIG_PATA_ACPI=m
# CONFIG_PATA_ALI is not set
# CONFIG_PATA_AMD is not set
# CONFIG_PATA_ARTOP is not set
# CONFIG_PATA_ATIIXP is not set
# CONFIG_PATA_CMD640_PCI is not set
# CONFIG_PATA_CMD64X is not set
# CONFIG_PATA_CS5520 is not set
# CONFIG_PATA_CS5530 is not set
# CONFIG_PATA_CS5535 is not set
# CONFIG_PATA_CS5536 is not set
# CONFIG_PATA_CYPRESS is not set
# CONFIG_PATA_EFAR is not set
# CONFIG_ATA_GENERIC is not set
# CONFIG_PATA_HPT366 is not set
# CONFIG_PATA_HPT37X is not set
# CONFIG_PATA_HPT3X2N is not set
# CONFIG_PATA_HPT3X3 is not set
# CONFIG_PATA_IT821X is not set
# CONFIG_PATA_IT8213 is not set
# CONFIG_PATA_JMICRON is not set
# CONFIG_PATA_LEGACY is not set
# CONFIG_PATA_TRIFLEX is not set
# CONFIG_PATA_MARVELL is not set
CONFIG_PATA_MPIIX=m
CONFIG_PATA_OLDPIIX=m
# CONFIG_PATA_NETCELL is not set
# CONFIG_PATA_NINJA32 is not set
# CONFIG_PATA_NS87410 is not set
# CONFIG_PATA_NS87415 is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_OPTIDMA is not set
CONFIG_PATA_PCMCIA=m
# CONFIG_PATA_PDC_OLD is not set
# CONFIG_PATA_QDI is not set
# CONFIG_PATA_RADISYS is not set
# CONFIG_PATA_RZ1000 is not set
# CONFIG_PATA_SC1200 is not set
# CONFIG_PATA_SERVERWORKS is not set
# CONFIG_PATA_PDC2027X is not set
# CONFIG_PATA_SIL680 is not set
CONFIG_PATA_SIS=m
CONFIG_PATA_VIA=m
# CONFIG_PATA_WINBOND is not set
# CONFIG_PATA_WINBOND_VLB is not set
CONFIG_MD=y
# CONFIG_BLK_DEV_MD is not set
CONFIG_BLK_DEV_DM=m
# CONFIG_DM_DEBUG is not set
# CONFIG_DM_CRYPT is not set
# CONFIG_DM_SNAPSHOT is not set
# CONFIG_DM_MIRROR is not set
# CONFIG_DM_ZERO is not set
# CONFIG_DM_MULTIPATH is not set
# CONFIG_DM_DELAY is not set
# CONFIG_DM_UEVENT is not set
# CONFIG_FUSION is not set

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

#
# Subsystem Options
#
# CONFIG_IEEE1394_VERBOSEDEBUG is not set

#
# Controllers
#
CONFIG_IEEE1394_PCILYNX=m
CONFIG_IEEE1394_OHCI1394=m

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

#
# MII PHY device drivers
#
# CONFIG_MARVELL_PHY is not set
# CONFIG_DAVICOM_PHY is not set
# CONFIG_QSEMI_PHY is not set
CONFIG_LXT_PHY=m
# CONFIG_CICADA_PHY is not set
# CONFIG_VITESSE_PHY is not set
# CONFIG_SMSC_PHY is not set
# CONFIG_BROADCOM_PHY is not set
# CONFIG_ICPLUS_PHY is not set
# CONFIG_REALTEK_PHY is not set
# CONFIG_MDIO_BITBANG is not set
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_ENC28J60 is not set
# CONFIG_NET_VENDOR_RACAL is not set
# CONFIG_NET_TULIP is not set
# CONFIG_AT1700 is not set
# CONFIG_DEPCA is not set
# CONFIG_HP100 is not set
# CONFIG_NET_ISA is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_AC3200 is not set
# CONFIG_APRICOT is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_CS89x0 is not set
# CONFIG_EEPRO100 is not set
CONFIG_E100=m
# CONFIG_LNE390 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_NE3210 is not set
# CONFIG_ES3210 is not set
# CONFIG_8139CP is not set
# CONFIG_8139TOO is not set
# CONFIG_R6040 is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_SC92031 is not set
# CONFIG_NET_POCKET is not set
CONFIG_NETDEV_1000=y
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
CONFIG_E1000=m
# CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
CONFIG_E1000E=m
CONFIG_E1000E_ENABLED=y
# CONFIG_IP1000 is not set
# CONFIG_IGB is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SKGE is not set
# CONFIG_SKY2 is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_TIGON3 is not set
# CONFIG_BNX2 is not set
# CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set
# CONFIG_NETDEV_10000 is not set
# CONFIG_TR is not set

#
# Wireless LAN
#
CONFIG_WLAN_PRE80211=y
# CONFIG_STRIP is not set
# CONFIG_ARLAN is not set
# CONFIG_WAVELAN is not set
# CONFIG_PCMCIA_WAVELAN is not set
# CONFIG_PCMCIA_NETWAVE is not set
CONFIG_WLAN_80211=y
# CONFIG_PCMCIA_RAYCS is not set
# CONFIG_IPW2100 is not set
# CONFIG_IPW2200 is not set
# CONFIG_LIBERTAS is not set
# CONFIG_AIRO is not set
# CONFIG_HERMES is not set
# CONFIG_ATMEL is not set
# CONFIG_AIRO_CS is not set
# CONFIG_PCMCIA_WL3501 is not set
# CONFIG_PRISM54 is not set
# CONFIG_USB_ZD1201 is not set
# CONFIG_USB_NET_RNDIS_WLAN is not set
# CONFIG_RTL8180 is not set
# CONFIG_RTL8187 is not set
# CONFIG_ADM8211 is not set
# CONFIG_P54_COMMON is not set
# CONFIG_ATH5K is not set
CONFIG_IWLCORE=m
CONFIG_IWLWIFI_LEDS=y
# CONFIG_IWL4965 is not set
CONFIG_IWL3945=m
CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y
CONFIG_IWL3945_LEDS=y
# CONFIG_IWL3945_DEBUG is not set
# CONFIG_HOSTAP is not set
# CONFIG_B43 is not set
# CONFIG_B43LEGACY is not set
# CONFIG_ZD1211RW is not set
# CONFIG_RT2X00 is not set

#
# USB Network Adapters
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET is not set
# CONFIG_NET_PCMCIA is not set
# CONFIG_WAN is not set
CONFIG_ATM_DRIVERS=y
# CONFIG_ATM_DUMMY is not set
# CONFIG_ATM_TCP is not set
# CONFIG_ATM_LANAI is not set
# CONFIG_ATM_ENI is not set
# CONFIG_ATM_FIRESTREAM is not set
# CONFIG_ATM_ZATM is not set
# CONFIG_ATM_NICSTAR is not set
# CONFIG_ATM_IDT77252 is not set
# CONFIG_ATM_AMBASSADOR is not set
# CONFIG_ATM_HORIZON is not set
# CONFIG_ATM_IA is not set
# CONFIG_ATM_FORE200E_MAYBE is not set
# CONFIG_ATM_HE is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PLIP is not set
CONFIG_PPP=m
CONFIG_PPP_MULTILINK=y
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
CONFIG_PPP_MPPE=m
CONFIG_PPPOE=m
# CONFIG_PPPOATM is not set
CONFIG_PPPOL2TP=m
# CONFIG_SLIP is not set
CONFIG_SLHC=m
# CONFIG_NET_FC is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_VIRTIO_NET is not set
# CONFIG_ISDN is not set
# CONFIG_PHONE is not set

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

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1280
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=800
# CONFIG_INPUT_JOYDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
CONFIG_KEYBOARD_SUNKBD=m
CONFIG_KEYBOARD_LKKBD=m
CONFIG_KEYBOARD_XTKBD=m
CONFIG_KEYBOARD_NEWTON=m
CONFIG_KEYBOARD_STOWAWAY=m
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=m
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
CONFIG_MOUSE_PS2_TOUCHKIT=y
CONFIG_MOUSE_PS2_ELANTECH=y
CONFIG_MOUSE_SERIAL=m
CONFIG_MOUSE_APPLETOUCH=m
# CONFIG_MOUSE_INPORT is not set
# CONFIG_MOUSE_LOGIBM is not set
# CONFIG_MOUSE_PC110PAD is not set
CONFIG_MOUSE_VSXXXAA=m
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set

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

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

#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_PNP=y
CONFIG_SERIAL_8250_CS=m
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y
# CONFIG_SERIAL_8250_FOURPORT is not set
# CONFIG_SERIAL_8250_ACCENT is not set
# CONFIG_SERIAL_8250_BOCA is not set
# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
# CONFIG_SERIAL_8250_HUB6 is not set
CONFIG_SERIAL_8250_SHARE_IRQ=y
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
CONFIG_SERIAL_8250_RSA=y

#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
# CONFIG_PRINTER is not set
# CONFIG_PPDEV is not set
CONFIG_HVC_DRIVER=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_IPMI_WATCHDOG=m
CONFIG_IPMI_POWEROFF=m
CONFIG_HW_RANDOM=m
CONFIG_HW_RANDOM_INTEL=m
# CONFIG_HW_RANDOM_AMD is not set
# CONFIG_HW_RANDOM_GEODE is not set
# CONFIG_HW_RANDOM_VIA is not set
CONFIG_NVRAM=m
CONFIG_RTC=m
# CONFIG_GEN_RTC is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set

#
# PCMCIA character devices
#
# CONFIG_SYNCLINK_CS is not set
# CONFIG_CARDMAN_4000 is not set
# CONFIG_CARDMAN_4040 is not set
# CONFIG_IPWIRELESS is not set
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_NSC_GPIO is not set
# CONFIG_CS5535_GPIO is not set
# CONFIG_RAW_DRIVER is not set
CONFIG_HPET=y
# CONFIG_HPET_RTC_IRQ is not set
CONFIG_HPET_MMAP=y
# CONFIG_HANGCHECK_TIMER is not set
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
CONFIG_DEVPORT=y
CONFIG_I2C=m
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_ALGOBIT=m
CONFIG_I2C_ALGOPCA=m

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

#
# Miscellaneous I2C Chip support
#
CONFIG_DS1682=m
CONFIG_SENSORS_EEPROM=m
CONFIG_SENSORS_PCF8574=m
CONFIG_PCF8575=m
CONFIG_SENSORS_PCF8591=m
CONFIG_TPS65010=m
CONFIG_SENSORS_MAX6875=m
CONFIG_SENSORS_TSL2550=m
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
CONFIG_SPI=y
# CONFIG_SPI_DEBUG is not set
CONFIG_SPI_MASTER=y

#
# SPI Master Controller Drivers
#
CONFIG_SPI_BITBANG=m
# CONFIG_SPI_BUTTERFLY is not set
# CONFIG_SPI_LM70_LLP is not set

#
# SPI Protocol Masters
#
CONFIG_SPI_AT25=m
CONFIG_SPI_SPIDEV=m
CONFIG_SPI_TLE62X0=m

#
# PPS support
#
CONFIG_PPS=m
CONFIG_PPS_DEBUG=y

#
# PPS clients support
#
# CONFIG_PPS_CLIENT_KTIMER is not set

#
# UART serial support (forced off)
#

#
# Parallel printer support (forced off)
#
# CONFIG_W1 is not set
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
# CONFIG_PDA_POWER is not set
# CONFIG_BATTERY_DS2760 is not set
CONFIG_HWMON=m
# CONFIG_HWMON_VID is not set
# CONFIG_SENSORS_ABITUGURU is not set
# CONFIG_SENSORS_ABITUGURU3 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1029 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ADM9240 is not set
# CONFIG_SENSORS_ADT7470 is not set
# CONFIG_SENSORS_ADT7473 is not set
# CONFIG_SENSORS_K8TEMP is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_I5K_AMB is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_F71882FG is not set
# CONFIG_SENSORS_F75375S is not set
# CONFIG_SENSORS_FSCHER is not set
# CONFIG_SENSORS_FSCPOS is not set
# CONFIG_SENSORS_FSCHMD is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
CONFIG_SENSORS_CORETEMP=m
# CONFIG_SENSORS_IBMPEX is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM70 is not set
# CONFIG_SENSORS_LM75 is not set
# CONFIG_SENSORS_LM77 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM87 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_LM92 is not set
# CONFIG_SENSORS_LM93 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_SIS5595 is not set
# CONFIG_SENSORS_DME1737 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_VT8231 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
# CONFIG_SENSORS_W83792D is not set
# CONFIG_SENSORS_W83793 is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83L786NG is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_HDAPS is not set
# CONFIG_SENSORS_APPLESMC is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
CONFIG_THERMAL=y
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
CONFIG_WATCHDOG_CORE=m
CONFIG_WATCHDOG_DEBUG_CORE=y

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

#
# ISA-based Watchdog Cards
#
# CONFIG_PCWATCHDOG is not set
# CONFIG_MIXCOMWD is not set
# CONFIG_WDT is not set

#
# PCI-based Watchdog Cards
#
# CONFIG_PCIPCWATCHDOG is not set
# CONFIG_WDTPCI is not set

#
# USB-based Watchdog Cards
#
# CONFIG_USBPCWATCHDOG is not set

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

#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set

#
# Multimedia devices
#
CONFIG_VIDEO_DEV=m
CONFIG_VIDEO_V4L2_COMMON=m
# CONFIG_VIDEO_V4L1 is not set
CONFIG_VIDEO_V4L1_COMPAT=y
CONFIG_VIDEO_V4L2=y
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
CONFIG_VIDEO_TVAUDIO=m
CONFIG_VIDEO_TDA7432=m
CONFIG_VIDEO_TDA9875=m
CONFIG_VIDEO_MSP3400=m
CONFIG_VIDEO_WM8775=m
CONFIG_VIDEO_OV7670=m
CONFIG_VIDEO_SAA711X=m
CONFIG_VIDEO_TVP5150=m
CONFIG_VIDEO_CX25840=m
CONFIG_VIDEO_CX2341X=m
# CONFIG_VIDEO_VIVI is not set
CONFIG_VIDEO_BT848=m
CONFIG_VIDEO_SAA6588=m
CONFIG_VIDEO_SAA5246A=m
CONFIG_VIDEO_SAA5249=m
CONFIG_VIDEO_SAA7134=m
CONFIG_VIDEO_SAA7134_ALSA=m
CONFIG_VIDEO_HEXIUM_ORION=m
CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_CX88=m
CONFIG_VIDEO_CX88_ALSA=m
CONFIG_VIDEO_CX88_BLACKBIRD=m
CONFIG_VIDEO_CAFE_CCIC=m
CONFIG_V4L_USB_DRIVERS=y
CONFIG_VIDEO_PVRUSB2=m
# CONFIG_VIDEO_PVRUSB2_ONAIR_CREATOR is not set
# CONFIG_VIDEO_PVRUSB2_ONAIR_USB2 is not set
CONFIG_VIDEO_PVRUSB2_SYSFS=y
# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
CONFIG_VIDEO_EM28XX=m
# CONFIG_VIDEO_EM28XX_ALSA is not set
CONFIG_VIDEO_USBVISION=m
CONFIG_USB_ET61X251=m
CONFIG_USB_SN9C102=m
CONFIG_USB_ZC0301=m
CONFIG_USB_ZR364XX=m
CONFIG_USB_STKWEBCAM=m
# CONFIG_SOC_CAMERA is not set
# CONFIG_RADIO_ADAPTERS is not set
# CONFIG_DVB_CORE is not set
CONFIG_VIDEO_SAA7146=m
CONFIG_VIDEO_SAA7146_VV=m
CONFIG_VIDEO_TUNER_TYPES=m
CONFIG_VIDEO_TUNER=m
# CONFIG_VIDEO_TUNER_CUSTOMIZE is not set
CONFIG_TUNER_XC2028=m
CONFIG_TUNER_MT20XX=m
CONFIG_TUNER_TDA8290=m
CONFIG_TUNER_TEA5761=m
CONFIG_TUNER_TEA5767=m
CONFIG_TUNER_SIMPLE=m
CONFIG_TUNER_TDA9887=m
CONFIG_VIDEOBUF_GEN=m
CONFIG_VIDEOBUF_DMA_SG=m
CONFIG_VIDEO_BTCX=m
CONFIG_VIDEO_IR_I2C=m
CONFIG_VIDEO_IR=m
CONFIG_VIDEO_TVEEPROM=m
# CONFIG_DAB is not set

#
# Graphics support
#
CONFIG_AGP=y
# CONFIG_AGP_ALI is not set
# CONFIG_AGP_ATI is not set
# CONFIG_AGP_AMD is not set
# CONFIG_AGP_AMD64 is not set
CONFIG_AGP_INTEL=m
# CONFIG_AGP_NVIDIA is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_SWORKS is not set
# CONFIG_AGP_VIA is not set
# CONFIG_AGP_EFFICEON is not set
CONFIG_DRM=m
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
# CONFIG_DRM_RADEON is not set
# CONFIG_DRM_I810 is not set
# CONFIG_DRM_I830 is not set
CONFIG_DRM_I915=m
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_SIS is not set
# CONFIG_DRM_VIA is not set
# CONFIG_DRM_SAVAGE is not set
CONFIG_VGASTATE=m
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
CONFIG_FB_DDC=m
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
CONFIG_FB_FOREIGN_ENDIAN=y
CONFIG_FB_BOTH_ENDIAN=y
# CONFIG_FB_BIG_ENDIAN is not set
# CONFIG_FB_LITTLE_ENDIAN is not set
# CONFIG_FB_SYS_FOPS is not set
CONFIG_FB_DEFERRED_IO=y
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y

#
# Frame buffer hardware drivers
#
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
CONFIG_FB_UVESA=m
CONFIG_FB_VESA=y
CONFIG_FB_EFI=y
# CONFIG_FB_IMAC is not set
# CONFIG_FB_HECUBA is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
CONFIG_FB_I810=m
CONFIG_FB_I810_GTF=y
CONFIG_FB_I810_I2C=y
# CONFIG_FB_LE80578 is not set
CONFIG_FB_INTEL=m
CONFIG_FB_INTEL_DEBUG=y
CONFIG_FB_INTEL_I2C=y
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_VT8623 is not set
# CONFIG_FB_CYBLA is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_GEODE is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set

#
# Display device support
#
CONFIG_DISPLAY_SUPPORT=m

#
# Display hardware drivers
#

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=128
CONFIG_VIDEO_SELECT=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_LOGO_LINUX_CLUT224=y

#
# Sound
#
CONFIG_SOUND=m

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

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

#
# ISA devices
#
# CONFIG_SND_ADLIB is not set
# CONFIG_SND_AD1816A is not set
# CONFIG_SND_AD1848 is not set
# CONFIG_SND_ALS100 is not set
# CONFIG_SND_AZT2320 is not set
# CONFIG_SND_CMI8330 is not set
# CONFIG_SND_CS4231 is not set
# CONFIG_SND_CS4232 is not set
# CONFIG_SND_CS4236 is not set
# CONFIG_SND_DT019X is not set
# CONFIG_SND_ES968 is not set
# CONFIG_SND_ES1688 is not set
# CONFIG_SND_ES18XX is not set
# CONFIG_SND_SC6000 is not set
# CONFIG_SND_GUSCLASSIC is not set
# CONFIG_SND_GUSEXTREME is not set
# CONFIG_SND_GUSMAX is not set
# CONFIG_SND_INTERWAVE is not set
# CONFIG_SND_INTERWAVE_STB is not set
# CONFIG_SND_OPL3SA2 is not set
# CONFIG_SND_OPTI92X_AD1848 is not set
# CONFIG_SND_OPTI92X_CS4231 is not set
# CONFIG_SND_OPTI93X is not set
# CONFIG_SND_MIRO is not set
# CONFIG_SND_SB8 is not set
# CONFIG_SND_SB16 is not set
# CONFIG_SND_SBAWE is not set
# CONFIG_SND_SGALAXY is not set
# CONFIG_SND_SSCAPE is not set
# CONFIG_SND_WAVEFRONT is not set

#
# PCI devices
#
# CONFIG_SND_AD1889 is not set
# CONFIG_SND_ALS300 is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AW2 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_BT87X is not set
# CONFIG_SND_CA0106 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_OXYGEN is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CS5530 is not set
# CONFIG_SND_CS5535AUDIO is not set
# CONFIG_SND_DARLA20 is not set
# CONFIG_SND_GINA20 is not set
# CONFIG_SND_LAYLA20 is not set
# CONFIG_SND_DARLA24 is not set
# CONFIG_SND_GINA24 is not set
# CONFIG_SND_LAYLA24 is not set
# CONFIG_SND_MONA is not set
# CONFIG_SND_MIA is not set
# CONFIG_SND_ECHO3G is not set
# CONFIG_SND_INDIGO is not set
# CONFIG_SND_INDIGOIO is not set
# CONFIG_SND_INDIGODJ is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_FM801 is not set
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_CODEC_REALTEK=y
CONFIG_SND_HDA_CODEC_ANALOG=y
CONFIG_SND_HDA_CODEC_SIGMATEL=y
CONFIG_SND_HDA_CODEC_VIA=y
CONFIG_SND_HDA_CODEC_ATIHDMI=y
CONFIG_SND_HDA_CODEC_CONEXANT=y
CONFIG_SND_HDA_CODEC_CMEDIA=y
CONFIG_SND_HDA_CODEC_SI3054=y
CONFIG_SND_HDA_GENERIC=y
# CONFIG_SND_HDA_POWER_SAVE is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_HDSPM is not set
# CONFIG_SND_HIFIER is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
CONFIG_SND_INTEL8X0=m
CONFIG_SND_INTEL8X0M=m
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_PCXHR is not set
# CONFIG_SND_RIPTIDE is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SIS7019 is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VIRTUOSO is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_YMFPCI is not set
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0

#
# SPI devices
#

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

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

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

#
# ALSA SoC audio for Freescale SOCs
#

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

#
# USB Input Devices
#
CONFIG_USB_HID=m
# CONFIG_USB_HIDINPUT_POWERBOOK is not set
# CONFIG_HID_FF is not set
# CONFIG_USB_HIDDEV is not set

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

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

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

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

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

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

#
# USB Imaging devices
#
CONFIG_USB_MDC800=m
CONFIG_USB_MICROTEK=m
# CONFIG_USB_MON is not set

#
# USB port drivers
#
# CONFIG_USB_USS720 is not set
CONFIG_USB_SERIAL=m
CONFIG_USB_EZUSB=y
CONFIG_USB_SERIAL_GENERIC=y
# CONFIG_USB_SERIAL_AIRCABLE is not set
# CONFIG_USB_SERIAL_AIRPRIME is not set
# CONFIG_USB_SERIAL_ARK3116 is not set
# CONFIG_USB_SERIAL_BELKIN is not set
# CONFIG_USB_SERIAL_CH341 is not set
# CONFIG_USB_SERIAL_WHITEHEAT is not set
# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
# CONFIG_USB_SERIAL_CP2101 is not set
# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
# CONFIG_USB_SERIAL_EMPEG is not set
# CONFIG_USB_SERIAL_FTDI_SIO is not set
# CONFIG_USB_SERIAL_FUNSOFT is not set
# CONFIG_USB_SERIAL_VISOR is not set
# CONFIG_USB_SERIAL_IPAQ is not set
# CONFIG_USB_SERIAL_IR is not set
# CONFIG_USB_SERIAL_EDGEPORT is not set
# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
# CONFIG_USB_SERIAL_GARMIN is not set
# CONFIG_USB_SERIAL_IPW is not set
# CONFIG_USB_SERIAL_IUU is not set
# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
# CONFIG_USB_SERIAL_KEYSPAN is not set
# CONFIG_USB_SERIAL_KLSI is not set
# CONFIG_USB_SERIAL_KOBIL_SCT is not set
# CONFIG_USB_SERIAL_MCT_U232 is not set
# CONFIG_USB_SERIAL_MOS7720 is not set
# CONFIG_USB_SERIAL_MOS7840 is not set
# CONFIG_USB_SERIAL_NAVMAN is not set
# CONFIG_USB_SERIAL_PL2303 is not set
# CONFIG_USB_SERIAL_OTI6858 is not set
# CONFIG_USB_SERIAL_SPCP8X5 is not set
# CONFIG_USB_SERIAL_HP4X is not set
# CONFIG_USB_SERIAL_SAFE is not set
# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
# CONFIG_USB_SERIAL_TI is not set
# CONFIG_USB_SERIAL_CYBERJACK is not set
# CONFIG_USB_SERIAL_XIRCOM is not set
# CONFIG_USB_SERIAL_OPTION is not set
# CONFIG_USB_SERIAL_OMNINET is not set
# CONFIG_USB_SERIAL_DEBUG is not set

#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_BERRY_CHARGE is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGET is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set
# CONFIG_USB_GOTEMP is not set
# CONFIG_USB_ATM is not set
# CONFIG_USB_GADGET is not set
CONFIG_MMC=m
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set

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

#
# MMC/SD Host Controller Drivers
#
CONFIG_MMC_SDHCI=m
CONFIG_MMC_RICOH_MMC=m
CONFIG_MMC_WBSD=m
CONFIG_MMC_TIFM_SD=m
CONFIG_MEMSTICK=m
CONFIG_MEMSTICK_DEBUG=y

#
# MemoryStick drivers
#
# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
CONFIG_MSPRO_BLOCK=m

#
# MemoryStick Host Controller Drivers
#
CONFIG_MEMSTICK_TIFM_MS=m
CONFIG_MEMSTICK_JMICRON_38X=m
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=m

#
# LED drivers
#
CONFIG_LEDS_CLEVO_MAIL=m

#
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
# CONFIG_ACCESSIBILITY is not set
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
# CONFIG_RTC_CLASS is not set
CONFIG_DMADEVICES=y

#
# DMA Devices
#
CONFIG_INTEL_IOATDMA=m
CONFIG_DMA_ENGINE=y

#
# DMA Clients
#
# CONFIG_NET_DMA is not set
CONFIG_DCA=m
# CONFIG_AUXDISPLAY is not set
CONFIG_UIO=m
CONFIG_UIO_CIF=m
# CONFIG_UIO_SMX is not set

#
# Firmware Drivers
#
CONFIG_EDD=m
# CONFIG_EDD_OFF is not set
CONFIG_EFI_VARS=m
CONFIG_DELL_RBU=m
# CONFIG_DCDBAS is not set
CONFIG_DMIID=y
# CONFIG_ISCSI_IBFT_FIND is not set

#
# File systems
#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
# CONFIG_EXT2_FS_SECURITY is not set
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
# CONFIG_EXT3_FS_SECURITY is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISER4_FS is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
# CONFIG_XFS_FS is not set
# CONFIG_OCFS2_FS is not set
CONFIG_DNOTIFY=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
# CONFIG_AUTOFS_FS is not set
CONFIG_AUTOFS4_FS=m
CONFIG_FUSE_FS=m
CONFIG_GENERIC_ACL=y

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

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

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

#
# Layered filesystems
#
CONFIG_UNION_FS=m
# CONFIG_UNION_FS_XATTR is not set
# CONFIG_UNION_FS_DEBUG is not set

#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
CONFIG_HFS_FS=m
CONFIG_HFSPLUS_FS=m
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
CONFIG_JFFS2_FS=m
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
# CONFIG_JFFS2_SUMMARY is not set
# CONFIG_JFFS2_FS_XATTR is not set
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
CONFIG_JFFS2_ZLIB=y
# CONFIG_JFFS2_LZO is not set
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
# CONFIG_NFS_FS is not set
# CONFIG_NFSD is not set
# CONFIG_SMB_FS is not set
CONFIG_CIFS=m
CONFIG_CIFS_STATS=y
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_WEAK_PW_HASH=y
# CONFIG_CIFS_XATTR is not set
CONFIG_CIFS_DEBUG2=y
# CONFIG_CIFS_EXPERIMENTAL is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set

#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
CONFIG_MAC_PARTITION=y
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
# CONFIG_MINIX_SUBPARTITION is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
CONFIG_LDM_PARTITION=y
CONFIG_LDM_DEBUG=y
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_KARMA_PARTITION is not set
CONFIG_EFI_PARTITION=y
# CONFIG_SYSV68_PARTITION is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
CONFIG_NLS_ISO8859_15=y
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=y
CONFIG_DLM=m
CONFIG_DLM_DEBUG=y

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_PRINTK_TIME=y
CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_UNUSED_SYMBOLS=y
# CONFIG_PAGE_OWNER is not set
CONFIG_DEBUG_FS=y
CONFIG_HEADERS_CHECK=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_SHIRQ=y
CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
CONFIG_DEBUG_OBJECTS=y
# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
# CONFIG_DEBUG_OBJECTS_FREE is not set
CONFIG_DEBUG_OBJECTS_TIMERS=y
CONFIG_SLUB_DEBUG_ON=y
CONFIG_SLUB_STATS=y
CONFIG_DEBUG_PREEMPT=y
CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_PI_LIST=y
# CONFIG_RT_MUTEX_TESTER is not set
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_LOCK_ALLOC=y
CONFIG_PROVE_LOCKING=y
CONFIG_LOCKDEP=y
# CONFIG_LOCK_STAT is not set
CONFIG_DEBUG_LOCKDEP=y
CONFIG_TRACE_IRQFLAGS=y
CONFIG_DEBUG_SPINLOCK_SLEEP=y
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
CONFIG_STACKTRACE=y
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_HIGHMEM=y
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_INFO is not set
CONFIG_DEBUG_VM=y
# CONFIG_DEBUG_WRITECOUNT is not set
CONFIG_DEBUG_LIST=y
CONFIG_DEBUG_SG=y
CONFIG_FRAME_POINTER=y
# CONFIG_PROFILE_LIKELY is not set
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_DEBUG_SYNCHRO_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_BACKTRACE_SELF_TEST=m
# CONFIG_LKDTM is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_SAMPLES is not set
# CONFIG_KGDB is not set
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_EARLY_PRINTK=y
CONFIG_DEBUG_STACKOVERFLOW=y
# CONFIG_DEBUG_STACK_USAGE is not set
CONFIG_DEBUG_PAGEALLOC=y
# CONFIG_X86_PTDUMP is not set
CONFIG_DEBUG_RODATA=y
# CONFIG_DEBUG_RODATA_TEST is not set
# CONFIG_DEBUG_NX_TEST is not set
CONFIG_4KSTACKS=y
CONFIG_X86_FIND_SMP_CONFIG=y
CONFIG_X86_MPPARSE=y
CONFIG_DOUBLEFAULT=y
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
CONFIG_IO_DELAY_TYPE_UDELAY=2
CONFIG_IO_DELAY_TYPE_NONE=3
CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not set
CONFIG_DEFAULT_IO_DELAY_TYPE=0
# CONFIG_DEBUG_BOOT_PARAMS is not set
CONFIG_CPA_DEBUG=y

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

#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_CRC_CCITT=m
CONFIG_CRC16=m
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
CONFIG_LIBCRC32C=m
CONFIG_AUDIT_GENERIC=y
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
CONFIG_REED_SOLOMON=m
CONFIG_REED_SOLOMON_DEC16=y
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
# CONFIG_TRACE is not set
V***@vt.edu
2008-04-02 11:08:31 UTC
Permalink
Post by Miles Lane
CC [M] drivers/net/wireless/iwlwifi/iwl3945-base.o
drivers/net/wireless/iwlwifi/iwl3945-base.c: In function
drivers/net/wireless/iwlwifi/iwl3945-base.c:2492: error: 'struct
iwl3945_priv' has no member named 'rxtxpackets'
make[4]: *** [drivers/net/wireless/iwlwifi/iwl3945-base.o] Error 1
CONFIG_IWL3945_LEDS=y
Apparently not ready for prime time...
Chatre, Reinette
2008-04-02 16:58:46 UTC
Permalink
Post by Miles Lane
CC [M] drivers/net/wireless/iwlwifi/iwl3945-base.o
drivers/net/wireless/iwlwifi/iwl3945-base.c: In function
drivers/net/wireless/iwlwifi/iwl3945-base.c:2492: error: 'struct
iwl3945_priv' has no member named 'rxtxpackets'
make[4]: *** [drivers/net/wireless/iwlwifi/iwl3945-base.o] Error 1
Thanks! John Linville just posted a fix for this problem to
wireless-testing ("drivers/net/wireless/iwlwifi/iwl-3945.h: correct
CONFIG_IWL4965_LEDS typo")

Reinette
V***@vt.edu
2008-04-02 19:15:40 UTC
Permalink
Post by Chatre, Reinette
Post by Miles Lane
CC [M] drivers/net/wireless/iwlwifi/iwl3945-base.o
drivers/net/wireless/iwlwifi/iwl3945-base.c: In function
drivers/net/wireless/iwlwifi/iwl3945-base.c:2492: error: 'struct
iwl3945_priv' has no member named 'rxtxpackets'
make[4]: *** [drivers/net/wireless/iwlwifi/iwl3945-base.o] Error 1
Thanks! John Linville just posted a fix for this problem to
wireless-testing ("drivers/net/wireless/iwlwifi/iwl-3945.h: correct
CONFIG_IWL4965_LEDS typo")
And with John's fix, I'm able to build with IWL3945_LEDS defined and
there's now an "ooooh shiny" LED that hasn't worked since I got the laptop. :)
Mariusz Kozlowski
2008-04-02 16:20:13 UTC
Permalink
Hello,

sparc64 box, gcc 4.1.2

CC arch/sparc64/mm/init.o
arch/sparc64/mm/init.c: In function 'paging_init':
arch/sparc64/mm/init.c:1303: error: size of array 'type name' is negative

and this is

BUILD_BUG_ON(BITS_PER_LONG - NR_PAGEFLAGS != 32);

Mariusz
Andrew Morton
2008-04-02 16:30:36 UTC
Permalink
Post by Mariusz Kozlowski
Hello,
sparc64 box, gcc 4.1.2
CC arch/sparc64/mm/init.o
arch/sparc64/mm/init.c:1303: error: size of array 'type name' is negative
and this is
BUILD_BUG_ON(BITS_PER_LONG - NR_PAGEFLAGS != 32);
yup, thanks. That's due to some page-flag rework in the memory management
queue. The patches which broke mips as well. I'm pushing cross-compilers
in Christoph's direction and hoping stuff gets fixed...
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
V***@vt.edu
2008-04-02 19:12:49 UTC
Permalink
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
(Yes, I know the kernel is tainted. Hopefully the traceback will make
enough sense that it won't matter. I think I cc'd most everybody who is
listed in MAINTAINERS or had a non-trivial jbd, quota, or ext3 patch in the broken-out/)

So I was running a 'yum update' on my laptop, walked away to ask a cow-orker
a question, and came back to find it had BUG'ed twice... Amazingly
enough, although it died in ext3 code, it apparently only nuked whatever
filesystem it was handling, as syslog was still able to log the gory details
into a file in /var. Given that a kernel rpm was the one it failed on, the
I/O was almost certainly on either / or /boot - both ext3. / is mounted
with quotas, /boot isn't, so I'm betting on /

Apr 2 13:48:07 turing-police yum: Updated: texlive-texmf-latex-2007-18.fc9.noarch
Apr 2 13:48:08 turing-police yum: Updated: 1:openoffice.org-xsltfilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:09 turing-police yum: Updated: 1:openoffice.org-javafilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:12 turing-police yum: Updated: kernel-headers-2.6.25-0.185.rc7.git6.fc9.x86_64

(here, it started updating kernel-2.6.25-0.185.rc7.git6 and died while I wasn't looking)

[34895.379293] ------------[ cut here ]------------
[34895.379299] kernel BUG at fs/jbd/transaction.c:275!
[34895.379302] invalid opcode: 0000 [1] PREEMPT SMP
[34895.379306] last sysfs file: /sys/devices/platform/coretemp.1/temp1_input
[34895.379309] CPU 0
[34895.379311] Modules linked in: gspca(U) compat_ioctl32 videodev v4l1_compat irnet ppp_generic slhc irtty_sir sir_dev ircomm_tty ircomm irda crc_ccitt coretemp vmnet(P)(U) vmmon(P)(U) nf_conntrack_ftp xt_pkttype ipt_REJECT ipt_osf nf_conntrack_ipv4 xt_ipisforif ipt_recent ipt_LOG xt_u32 iptable_filter ip_tables xt_tcpudp nf_conntrack_ipv6 xt_state nf_conntrack ip6t_LOG xt_limit ip6table_filter ip6_tables x_tables sha256_generic aes_generic acpi_cpufreq tpm_tis arc4 pcmcia ecb iwl3945 yenta_socket nvidia(P)(U) iTCO_wdt firmware_class iTCO_vendor_support rsrc_nonstatic mac80211 video watchdog_core thermal ohci1394 pcmcia_core output ieee1394 watchdog_dev processor intel_agp snd_hda_intel(U) battery bay button ac cfg80211 [last unloaded: microcode]
[34895.379371] Pid: 24617, comm: yum Tainted: P 2.6.25-rc8-mm1 #3
[34895.379373] RIP: 0010:[<ffffffff80300ba7>] [<ffffffff80300ba7>] journal_start+0x57/0xef
[34895.379381] RSP: 0018:ffff81000cc49918 EFLAGS: 00010202
[34895.379383] RAX: 0000000000000001 RBX: ffff81007f6bbf00 RCX: ffff8100347db970
[34895.379386] RDX: ffff8100347b7d00 RSI: 0000000000000001 RDI: ffffffff806f3530
[34895.379388] RBP: ffff81000cc49938 R08: 8000000000000000 R09: ffff8100347dbeb8
[34895.379390] R10: 0000000000000004 R11: ffff8100347d9b58 R12: ffff81007e67d400
[34895.379393] R13: 0000000000000012 R14: ffff81000cc499d8 R15: 0000000000000080
[34895.379396] FS: 00007fe4468356f0(0000) GS:ffffffff8073f000(0000) knlGS:0000000000000000
[34895.379398] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[34895.379401] CR2: 00007f9921d00000 CR3: 000000000cdc3000 CR4: 00000000000006e0
[34895.379403] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[34895.379405] DR3: 0000000000000000 DR6: 00000000ffff4ff0 DR7: 0000000000000400
[34895.379408] Process yum (pid: 24617, threadinfo ffff81000cc48000, task ffff81000cc7c580)
[34895.379410] Stack: 0000000000000292 ffff8100347dbd30 ffff8100347dbd30 ffff8100347dbd30
[34895.379417] ffff81000cc49948 ffffffff802f9659 ffff81000cc49978 ffffffff802f9912
[34895.379422] ffff8100347dbd30 ffff8100347dbd30 ffff8100347dbd30 0000000000000004
[34895.379427] Call Trace:
[34895.379433] [<ffffffff802f9659>] ext3_journal_start_sb+0x4a/0x4c
[34895.379437] [<ffffffff802f9912>] ext3_dquot_drop+0x37/0x81
[34895.379443] [<ffffffff802aa757>] clear_inode+0xe1/0x153
[34895.379448] [<ffffffff802aa86f>] dispose_list+0x43/0xf8
[34895.379453] [<ffffffff802aaaec>] shrink_icache_memory+0x1c8/0x1fe
[34895.379459] [<ffffffff8027a231>] shrink_slab+0x111/0x1cf
[34895.379466] [<ffffffff8027ae60>] try_to_free_pages+0x26d/0x35e
[34895.379473] [<ffffffff80278e67>] ? isolate_pages_global+0x0/0x34
[34895.379479] [<ffffffff8027537b>] __alloc_pages_internal+0x297/0x421
[34895.379488] [<ffffffff8027551b>] __alloc_pages+0xb/0xd
[34895.379493] [<ffffffff802920e3>] cache_alloc_refill+0x2d3/0x533
[34895.379499] [<ffffffff80555548>] ? _spin_unlock+0x38/0x43
[34895.379505] [<ffffffff80291dd0>] kmem_cache_alloc+0x5d/0x9d
[34895.379512] [<ffffffff8033af82>] selinux_inode_alloc_security+0x31/0x8a
[34895.379517] [<ffffffff80331f47>] security_inode_alloc+0x1c/0x1e
[34895.379521] [<ffffffff802aa4f2>] alloc_inode+0xe1/0x1da
[34895.379526] [<ffffffff802aa60c>] new_inode+0x21/0x8b
[34895.379531] [<ffffffff802ed5f7>] ext3_new_inode+0x55/0xa2a
[34895.379539] [<ffffffff80300c07>] ? journal_start+0xb7/0xef
[34895.379545] [<ffffffff802f48c8>] ext3_mkdir+0xc7/0x2e6
[34895.379551] [<ffffffff8029eb02>] vfs_mkdir+0xe6/0x17b
[34895.379556] [<ffffffff802a1305>] sys_mkdirat+0xf3/0x149
[34895.379566] [<ffffffff80213511>] ? syscall_trace_enter+0xa4/0xa9
[34895.379571] [<ffffffff802a136e>] sys_mkdir+0x13/0x15
[34895.379574] [<ffffffff8020c3c2>] tracesys+0xd5/0xda
[34895.379581]
[34895.379582]
[34895.379583] Code: 00 0f 84 b1 00 00 00 48 89 c3 48 85 c0 74 28 48 8b 00 31 f6 48 39 38 48 c7 c7 30 35 6f 80 40 0f 95 c6 e8 00 a5 07 00 85 c0 74 04 <0f> 0b eb fe ff 43 0c e9 81 00 00 00 48 8b 3d fe dc 50 00 be 50
[34895.379621] RIP [<ffffffff80300ba7>] journal_start+0x57/0xef
[34895.379624] RSP <ffff81000cc49918>
[34895.382684] ---[ end trace 210b9a92878f99d6 ]---
[34895.411910] ------------[ cut here ]------------
[34895.411916] kernel BUG at fs/jbd/transaction.c:275!
[34895.411919] invalid opcode: 0000 [2] PREEMPT SMP
[34895.411923] last sysfs file: /sys/devices/platform/coretemp.1/temp1_input
[34895.411926] CPU 1
[34895.411928] Modules linked in: gspca(U) compat_ioctl32 videodev v4l1_compat irnet ppp_generic slhc irtty_sir sir_dev ircomm_tty ircomm irda crc_ccitt coretemp vmnet(P)(U) vmmon(P)(U) nf_conntrack_ftp xt_pkttype ipt_REJECT ipt_osf nf_conntrack_ipv4 xt_ipisforif ipt_recent ipt_LOG xt_u32 iptable_filter ip_tables xt_tcpudp nf_conntrack_ipv6 xt_state nf_conntrack ip6t_LOG xt_limit ip6table_filter ip6_tables x_tables sha256_generic aes_generic acpi_cpufreq tpm_tis arc4 pcmcia ecb iwl3945 yenta_socket nvidia(P)(U) iTCO_wdt firmware_class iTCO_vendor_support rsrc_nonstatic mac80211 video watchdog_core thermal ohci1394 pcmcia_core output ieee1394 watchdog_dev processor intel_agp snd_hda_intel(U) battery bay button ac cfg80211 [last unloaded: microcode]
[34895.411988] Pid: 24617, comm: yum Tainted: P D 2.6.25-rc8-mm1 #3
[34895.411990] RIP: 0010:[<ffffffff80300ba7>] [<ffffffff80300ba7>] journal_start+0x57/0xef
[34895.411998] RSP: 0000:ffff81000cc491c8 EFLAGS: 00010202
[34895.412001] RAX: 0000000000000001 RBX: ffff81007f6bbf00 RCX: 0000000000000001
[34895.412003] RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffffffff806f3530
[34895.412005] RBP: ffff81000cc491e8 R08: 0000000000000003 R09: ffff81000cc49638
[34895.412008] R10: 0000000000000002 R11: 0000001000000000 R12: ffff81007e642000
[34895.412010] R13: 0000000000000002 R14: 0000000000f93280 R15: ffff81007de17400
[34895.412013] FS: 00007fe4468356f0(0000) GS:ffff81007f84d840(0000) knlGS:0000000000000000
[34895.412016] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[34895.412018] CR2: 00007f9921d00000 CR3: 000000007dea4000 CR4: 00000000000006e0
[34895.412020] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[34895.412023] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[34895.412025] Process yum (pid: 24617, threadinfo ffff81000cc48000, task ffff81000cc7c580)
[34895.412027] Stack: ffff81000cc49228 ffff810075ce8cf0 ffff81007f6bbf00 ffff810075ce8cf0
[34895.412034] ffff81000cc491f8 ffffffff802f9659 ffff81000cc49228 ffffffff802ef105
[34895.412039] ffff81000cc49218 ffff810075ce8cf0 0000000000000001 ffff81007de019c0
[34895.412044] Call Trace:
[34895.412051] [<ffffffff802f9659>] ext3_journal_start_sb+0x4a/0x4c
[34895.412055] [<ffffffff802ef105>] ext3_dirty_inode+0x31/0x97
[34895.412062] [<ffffffff802b5d92>] __mark_inode_dirty+0x33/0x199
[34895.412069] [<ffffffff802a9d3e>] file_update_time+0xbd/0x101
[34895.412077] [<ffffffff80271164>] __generic_file_aio_write_nolock+0x31a/0x463
[34895.412081] [<ffffffff8036ede9>] ? number+0x113/0x216
[34895.412088] [<ffffffff80273dff>] ? free_pages_bulk+0x1fe/0x254
[34895.412095] [<ffffffff80271325>] generic_file_aio_write+0x78/0xd4
[34895.412101] [<ffffffff802ed1a3>] ext3_file_write+0x1e/0x9f
[34895.412106] [<ffffffff802950a9>] do_sync_write+0xe7/0x12d
[34895.412110] [<ffffffff80335fd7>] ? avc_has_perm+0x4e/0x60
[34895.412119] [<ffffffff80245c3e>] ? autoremove_wake_function+0x0/0x38
[34895.412125] [<ffffffff80555548>] ? _spin_unlock+0x38/0x43
[34895.412129] [<ffffffff80373c26>] ? __list_add+0x62/0x9a
[34895.412134] [<ffffffff80555479>] ? _spin_unlock_irqrestore+0x3a/0x45
[34895.412138] [<ffffffff8023b4f8>] ? __mod_timer+0xe6/0xf8
[34895.412143] [<ffffffff8024a874>] ? getnstimeofday+0x90/0x9e
[34895.412149] [<ffffffff80259b77>] do_acct_process+0x539/0x572
[34895.412154] [<ffffffff80373c26>] ? __list_add+0x62/0x9a
[34895.412167] [<ffffffff80259c1f>] acct_process+0x6f/0x7c
[34895.412173] [<ffffffff80235a1d>] do_exit+0x38c/0x90b
[34895.412179] [<ffffffff80555dcd>] oops_begin+0x0/0x90
[34895.412185] [<ffffffff8020ddb2>] die+0x5d/0x66
[34895.412190] [<ffffffff80556326>] do_trap+0x110/0x11f
[34895.412195] [<ffffffff8020e486>] do_invalid_op+0x93/0x9c
[34895.412199] [<ffffffff80300ba7>] ? journal_start+0x57/0xef
[34895.412203] [<ffffffff80277a7b>] ? release_pages+0x197/0x1a9
[34895.412209] [<ffffffff802ff1fb>] ? journal_try_to_free_buffers+0x1f4/0x201
[34895.412213] [<ffffffff80555839>] error_exit+0x0/0x51
[34895.412221] [<ffffffff80300ba7>] ? journal_start+0x57/0xef
[34895.412225] [<ffffffff80300ba3>] ? journal_start+0x53/0xef
[34895.412230] [<ffffffff802f9659>] ? ext3_journal_start_sb+0x4a/0x4c
[34895.412234] [<ffffffff802f9912>] ? ext3_dquot_drop+0x37/0x81
[34895.412239] [<ffffffff802aa757>] ? clear_inode+0xe1/0x153
[34895.412243] [<ffffffff802aa86f>] ? dispose_list+0x43/0xf8
[34895.412248] [<ffffffff802aaaec>] ? shrink_icache_memory+0x1c8/0x1fe
[34895.412255] [<ffffffff8027a231>] ? shrink_slab+0x111/0x1cf
[34895.412261] [<ffffffff8027ae60>] ? try_to_free_pages+0x26d/0x35e
[34895.412268] [<ffffffff80278e67>] ? isolate_pages_global+0x0/0x34
[34895.412274] [<ffffffff8027537b>] ? __alloc_pages_internal+0x297/0x421
[34895.412282] [<ffffffff8027551b>] ? __alloc_pages+0xb/0xd
[34895.412287] [<ffffffff802920e3>] ? cache_alloc_refill+0x2d3/0x533
[34895.412291] [<ffffffff80555548>] ? _spin_unlock+0x38/0x43
[34895.412298] [<ffffffff80291dd0>] ? kmem_cache_alloc+0x5d/0x9d
[34895.412304] [<ffffffff8033af82>] ? selinux_inode_alloc_security+0x31/0x8a
[34895.412309] [<ffffffff80331f47>] ? security_inode_alloc+0x1c/0x1e
[34895.412313] [<ffffffff802aa4f2>] ? alloc_inode+0xe1/0x1da
[34895.412318] [<ffffffff802aa60c>] ? new_inode+0x21/0x8b
[34895.412323] [<ffffffff802ed5f7>] ? ext3_new_inode+0x55/0xa2a
[34895.412332] [<ffffffff80300c07>] ? journal_start+0xb7/0xef
[34895.412337] [<ffffffff802f48c8>] ? ext3_mkdir+0xc7/0x2e6
[34895.412344] [<ffffffff8029eb02>] ? vfs_mkdir+0xe6/0x17b
[34895.412348] [<ffffffff802a1305>] ? sys_mkdirat+0xf3/0x149
[34895.412358] [<ffffffff80213511>] ? syscall_trace_enter+0xa4/0xa9
[34895.412363] [<ffffffff802a136e>] ? sys_mkdir+0x13/0x15
[34895.412367] [<ffffffff8020c3c2>] ? tracesys+0xd5/0xda
[34895.412373]
[34895.412374]
[34895.412375] Code: 00 0f 84 b1 00 00 00 48 89 c3 48 85 c0 74 28 48 8b 00 31 f6 48 39 38 48 c7 c7 30 35 6f 80 40 0f 95 c6 e8 00 a5 07 00 85 c0 74 04 <0f> 0b eb fe ff 43 0c e9 81 00 00 00 48 8b 3d fe dc 50 00 be 50
[34895.412413] RIP [<ffffffff80300ba7>] journal_start+0x57/0xef
[34895.412417] RSP <ffff81000cc491c8>
[34895.412425] ---[ end trace 210b9a92878f99d6 ]---
[34895.412428] Fixing recursive fault but reboot is needed!
Andrew Morton
2008-04-02 19:30:30 UTC
Permalink
On Wed, 02 Apr 2008 15:12:49 -0400
Post by V***@vt.edu
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
(Yes, I know the kernel is tainted. Hopefully the traceback will make
enough sense that it won't matter. I think I cc'd most everybody who is
listed in MAINTAINERS or had a non-trivial jbd, quota, or ext3 patch in the broken-out/)
So I was running a 'yum update' on my laptop, walked away to ask a cow-orker
a question, and came back to find it had BUG'ed twice... Amazingly
enough, although it died in ext3 code, it apparently only nuked whatever
filesystem it was handling, as syslog was still able to log the gory details
into a file in /var. Given that a kernel rpm was the one it failed on, the
I/O was almost certainly on either / or /boot - both ext3. / is mounted
with quotas, /boot isn't, so I'm betting on /
Apr 2 13:48:07 turing-police yum: Updated: texlive-texmf-latex-2007-18.fc9.noarch
Apr 2 13:48:08 turing-police yum: Updated: 1:openoffice.org-xsltfilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:09 turing-police yum: Updated: 1:openoffice.org-javafilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:12 turing-police yum: Updated: kernel-headers-2.6.25-0.185.rc7.git6.fc9.x86_64
(here, it started updating kernel-2.6.25-0.185.rc7.git6 and died while I wasn't looking)
[34895.379293] ------------[ cut here ]------------
[34895.379299] kernel BUG at fs/jbd/transaction.c:275!
[34895.379302] invalid opcode: 0000 [1] PREEMPT SMP
[34895.379306] last sysfs file: /sys/devices/platform/coretemp.1/temp1_input
[34895.379309] CPU 0
[34895.379311] Modules linked in: gspca(U) compat_ioctl32 videodev v4l1_compat irnet ppp_generic slhc irtty_sir sir_dev ircomm_tty ircomm irda crc_ccitt coretemp vmnet(P)(U) vmmon(P)(U) nf_conntrack_ftp xt_pkttype ipt_REJECT ipt_osf nf_conntrack_ipv4 xt_ipisforif ipt_recent ipt_LOG xt_u32 iptable_filter ip_tables xt_tcpudp nf_conntrack_ipv6 xt_state nf_conntrack ip6t_LOG xt_limit ip6table_filter ip6_tables x_tables sha256_generic aes_generic acpi_cpufreq tpm_tis arc4 pcmcia ecb iwl3945 yenta_socket nvidia(P)(U) iTCO_wdt firmware_class iTCO_vendor_support rsrc_nonstatic mac80211 video watchdog_core thermal ohci1394 pcmcia_core output ieee1394 watchdog_dev processor intel_agp snd_hda_intel(U) battery bay button ac cfg80211 [last unloaded: microcode]
[34895.379371] Pid: 24617, comm: yum Tainted: P 2.6.25-rc8-mm1 #3
[34895.379373] RIP: 0010:[<ffffffff80300ba7>] [<ffffffff80300ba7>] journal_start+0x57/0xef
[34895.379381] RSP: 0018:ffff81000cc49918 EFLAGS: 00010202
[34895.379383] RAX: 0000000000000001 RBX: ffff81007f6bbf00 RCX: ffff8100347db970
[34895.379386] RDX: ffff8100347b7d00 RSI: 0000000000000001 RDI: ffffffff806f3530
[34895.379388] RBP: ffff81000cc49938 R08: 8000000000000000 R09: ffff8100347dbeb8
[34895.379390] R10: 0000000000000004 R11: ffff8100347d9b58 R12: ffff81007e67d400
[34895.379393] R13: 0000000000000012 R14: ffff81000cc499d8 R15: 0000000000000080
[34895.379396] FS: 00007fe4468356f0(0000) GS:ffffffff8073f000(0000) knlGS:0000000000000000
[34895.379398] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[34895.379401] CR2: 00007f9921d00000 CR3: 000000000cdc3000 CR4: 00000000000006e0
[34895.379403] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[34895.379405] DR3: 0000000000000000 DR6: 00000000ffff4ff0 DR7: 0000000000000400
[34895.379408] Process yum (pid: 24617, threadinfo ffff81000cc48000, task ffff81000cc7c580)
[34895.379410] Stack: 0000000000000292 ffff8100347dbd30 ffff8100347dbd30 ffff8100347dbd30
[34895.379417] ffff81000cc49948 ffffffff802f9659 ffff81000cc49978 ffffffff802f9912
[34895.379422] ffff8100347dbd30 ffff8100347dbd30 ffff8100347dbd30 0000000000000004
[34895.379433] [<ffffffff802f9659>] ext3_journal_start_sb+0x4a/0x4c
[34895.379437] [<ffffffff802f9912>] ext3_dquot_drop+0x37/0x81
[34895.379443] [<ffffffff802aa757>] clear_inode+0xe1/0x153
[34895.379448] [<ffffffff802aa86f>] dispose_list+0x43/0xf8
[34895.379453] [<ffffffff802aaaec>] shrink_icache_memory+0x1c8/0x1fe
[34895.379459] [<ffffffff8027a231>] shrink_slab+0x111/0x1cf
[34895.379466] [<ffffffff8027ae60>] try_to_free_pages+0x26d/0x35e
[34895.379473] [<ffffffff80278e67>] ? isolate_pages_global+0x0/0x34
[34895.379479] [<ffffffff8027537b>] __alloc_pages_internal+0x297/0x421
[34895.379488] [<ffffffff8027551b>] __alloc_pages+0xb/0xd
[34895.379493] [<ffffffff802920e3>] cache_alloc_refill+0x2d3/0x533
[34895.379499] [<ffffffff80555548>] ? _spin_unlock+0x38/0x43
[34895.379505] [<ffffffff80291dd0>] kmem_cache_alloc+0x5d/0x9d
[34895.379512] [<ffffffff8033af82>] selinux_inode_alloc_security+0x31/0x8a
[34895.379517] [<ffffffff80331f47>] security_inode_alloc+0x1c/0x1e
[34895.379521] [<ffffffff802aa4f2>] alloc_inode+0xe1/0x1da
[34895.379526] [<ffffffff802aa60c>] new_inode+0x21/0x8b
[34895.379531] [<ffffffff802ed5f7>] ext3_new_inode+0x55/0xa2a
[34895.379539] [<ffffffff80300c07>] ? journal_start+0xb7/0xef
[34895.379545] [<ffffffff802f48c8>] ext3_mkdir+0xc7/0x2e6
[34895.379551] [<ffffffff8029eb02>] vfs_mkdir+0xe6/0x17b
[34895.379556] [<ffffffff802a1305>] sys_mkdirat+0xf3/0x149
[34895.379566] [<ffffffff80213511>] ? syscall_trace_enter+0xa4/0xa9
[34895.379571] [<ffffffff802a136e>] sys_mkdir+0x13/0x15
[34895.379574] [<ffffffff8020c3c2>] tracesys+0xd5/0xda
[34895.379581]
The backtrace tells it all - we were inside a transaction for filesystem A,
went into page reclaim, reclaimed an inode for filesystem B and then
DQUOT_DROP() tried to start a transaction on filesystem B. JBD doesn't
like cross-fs nested transactions (it'll corrupt task_struct.journal_info,
and will cause ab/ba deadlocks). So it went BUG.

Presumably something in the quota updates in -mm caused this.
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Jan Kara
2008-04-03 08:57:49 UTC
Permalink
Post by Andrew Morton
On Wed, 02 Apr 2008 15:12:49 -0400
Post by V***@vt.edu
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
(Yes, I know the kernel is tainted. Hopefully the traceback will make
enough sense that it won't matter. I think I cc'd most everybody who is
listed in MAINTAINERS or had a non-trivial jbd, quota, or ext3 patch in the broken-out/)
So I was running a 'yum update' on my laptop, walked away to ask a cow-orker
a question, and came back to find it had BUG'ed twice... Amazingly
enough, although it died in ext3 code, it apparently only nuked whatever
filesystem it was handling, as syslog was still able to log the gory details
into a file in /var. Given that a kernel rpm was the one it failed on, the
I/O was almost certainly on either / or /boot - both ext3. / is mounted
with quotas, /boot isn't, so I'm betting on /
Apr 2 13:48:07 turing-police yum: Updated: texlive-texmf-latex-2007-18.fc9.noarch
Apr 2 13:48:08 turing-police yum: Updated: 1:openoffice.org-xsltfilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:09 turing-police yum: Updated: 1:openoffice.org-javafilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:12 turing-police yum: Updated: kernel-headers-2.6.25-0.185.rc7.git6.fc9.x86_64
(here, it started updating kernel-2.6.25-0.185.rc7.git6 and died while I wasn't looking)
[34895.379293] ------------[ cut here ]------------
[34895.379299] kernel BUG at fs/jbd/transaction.c:275!
[34895.379302] invalid opcode: 0000 [1] PREEMPT SMP
[34895.379306] last sysfs file: /sys/devices/platform/coretemp.1/temp1_input
[34895.379309] CPU 0
[34895.379311] Modules linked in: gspca(U) compat_ioctl32 videodev v4l1_compat irnet ppp_generic slhc irtty_sir sir_dev ircomm_tty ircomm irda crc_ccitt coretemp vmnet(P)(U) vmmon(P)(U) nf_conntrack_ftp xt_pkttype ipt_REJECT ipt_osf nf_conntrack_ipv4 xt_ipisforif ipt_recent ipt_LOG xt_u32 iptable_filter ip_tables xt_tcpudp nf_conntrack_ipv6 xt_state nf_conntrack ip6t_LOG xt_limit ip6table_filter ip6_tables x_tables sha256_generic aes_generic acpi_cpufreq tpm_tis arc4 pcmcia ecb iwl3945 yenta_socket nvidia(P)(U) iTCO_wdt firmware_class iTCO_vendor_support rsrc_nonstatic mac80211 video watchdog_core thermal ohci1394 pcmcia_core output ieee1394 watchdog_dev processor intel_agp snd_hda_intel(U) battery bay button ac cfg80211 [last unloaded: microcode]
[34895.379371] Pid: 24617, comm: yum Tainted: P 2.6.25-rc8-mm1 #3
[34895.379373] RIP: 0010:[<ffffffff80300ba7>] [<ffffffff80300ba7>] journal_start+0x57/0xef
[34895.379381] RSP: 0018:ffff81000cc49918 EFLAGS: 00010202
[34895.379383] RAX: 0000000000000001 RBX: ffff81007f6bbf00 RCX: ffff8100347db970
[34895.379386] RDX: ffff8100347b7d00 RSI: 0000000000000001 RDI: ffffffff806f3530
[34895.379388] RBP: ffff81000cc49938 R08: 8000000000000000 R09: ffff8100347dbeb8
[34895.379390] R10: 0000000000000004 R11: ffff8100347d9b58 R12: ffff81007e67d400
[34895.379393] R13: 0000000000000012 R14: ffff81000cc499d8 R15: 0000000000000080
[34895.379396] FS: 00007fe4468356f0(0000) GS:ffffffff8073f000(0000) knlGS:0000000000000000
[34895.379398] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[34895.379401] CR2: 00007f9921d00000 CR3: 000000000cdc3000 CR4: 00000000000006e0
[34895.379403] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[34895.379405] DR3: 0000000000000000 DR6: 00000000ffff4ff0 DR7: 0000000000000400
[34895.379408] Process yum (pid: 24617, threadinfo ffff81000cc48000, task ffff81000cc7c580)
[34895.379410] Stack: 0000000000000292 ffff8100347dbd30 ffff8100347dbd30 ffff8100347dbd30
[34895.379417] ffff81000cc49948 ffffffff802f9659 ffff81000cc49978 ffffffff802f9912
[34895.379422] ffff8100347dbd30 ffff8100347dbd30 ffff8100347dbd30 0000000000000004
[34895.379433] [<ffffffff802f9659>] ext3_journal_start_sb+0x4a/0x4c
[34895.379437] [<ffffffff802f9912>] ext3_dquot_drop+0x37/0x81
[34895.379443] [<ffffffff802aa757>] clear_inode+0xe1/0x153
[34895.379448] [<ffffffff802aa86f>] dispose_list+0x43/0xf8
[34895.379453] [<ffffffff802aaaec>] shrink_icache_memory+0x1c8/0x1fe
[34895.379459] [<ffffffff8027a231>] shrink_slab+0x111/0x1cf
[34895.379466] [<ffffffff8027ae60>] try_to_free_pages+0x26d/0x35e
[34895.379473] [<ffffffff80278e67>] ? isolate_pages_global+0x0/0x34
[34895.379479] [<ffffffff8027537b>] __alloc_pages_internal+0x297/0x421
[34895.379488] [<ffffffff8027551b>] __alloc_pages+0xb/0xd
[34895.379493] [<ffffffff802920e3>] cache_alloc_refill+0x2d3/0x533
[34895.379499] [<ffffffff80555548>] ? _spin_unlock+0x38/0x43
[34895.379505] [<ffffffff80291dd0>] kmem_cache_alloc+0x5d/0x9d
[34895.379512] [<ffffffff8033af82>] selinux_inode_alloc_security+0x31/0x8a
[34895.379517] [<ffffffff80331f47>] security_inode_alloc+0x1c/0x1e
[34895.379521] [<ffffffff802aa4f2>] alloc_inode+0xe1/0x1da
[34895.379526] [<ffffffff802aa60c>] new_inode+0x21/0x8b
[34895.379531] [<ffffffff802ed5f7>] ext3_new_inode+0x55/0xa2a
[34895.379539] [<ffffffff80300c07>] ? journal_start+0xb7/0xef
[34895.379545] [<ffffffff802f48c8>] ext3_mkdir+0xc7/0x2e6
[34895.379551] [<ffffffff8029eb02>] vfs_mkdir+0xe6/0x17b
[34895.379556] [<ffffffff802a1305>] sys_mkdirat+0xf3/0x149
[34895.379566] [<ffffffff80213511>] ? syscall_trace_enter+0xa4/0xa9
[34895.379571] [<ffffffff802a136e>] sys_mkdir+0x13/0x15
[34895.379574] [<ffffffff8020c3c2>] tracesys+0xd5/0xda
[34895.379581]
The backtrace tells it all - we were inside a transaction for filesystem A,
went into page reclaim, reclaimed an inode for filesystem B and then
DQUOT_DROP() tried to start a transaction on filesystem B. JBD doesn't
like cross-fs nested transactions (it'll corrupt task_struct.journal_info,
and will cause ab/ba deadlocks). So it went BUG.
Presumably something in the quota updates in -mm caused this.
I think quota is innocent in this ;). We start a transaction in
ext3_dquot_drop() for quite some time already. The problem is really in
inode_alloc_security() and Josef pointed out. We really aren't allowed to
allocate with GFP_KERNEL there because the reclaim code could as well
decide to just write an inode on a different filesystem...

Honza
--
Jan Kara <***@suse.cz>
SUSE Labs, CR
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Josef Bacik
2008-04-02 19:27:15 UTC
Permalink
Post by V***@vt.edu
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
(Yes, I know the kernel is tainted. Hopefully the traceback will make
enough sense that it won't matter. I think I cc'd most everybody who is
listed in MAINTAINERS or had a non-trivial jbd, quota, or ext3 patch in the broken-out/)
So I was running a 'yum update' on my laptop, walked away to ask a cow-orker
a question, and came back to find it had BUG'ed twice... Amazingly
enough, although it died in ext3 code, it apparently only nuked whatever
filesystem it was handling, as syslog was still able to log the gory details
into a file in /var. Given that a kernel rpm was the one it failed on, the
I/O was almost certainly on either / or /boot - both ext3. / is mounted
with quotas, /boot isn't, so I'm betting on /
Apr 2 13:48:07 turing-police yum: Updated: texlive-texmf-latex-2007-18.fc9.noarch
Apr 2 13:48:08 turing-police yum: Updated: 1:openoffice.org-xsltfilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:09 turing-police yum: Updated: 1:openoffice.org-javafilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:12 turing-police yum: Updated: kernel-headers-2.6.25-0.185.rc7.git6.fc9.x86_64
(here, it started updating kernel-2.6.25-0.185.rc7.git6 and died while I wasn't looking)
<snip>

Try this patch, it will keep us from re-entering the fs when we aren't supposed
to. cc'ing Eric Paris since he's the only selinux guy I know :). I don't think
any of the other allocations in here need to be fixed, but I didn't look too
carefully.

Signed-off-by: Josef Bacik <***@redhat.com>


diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index c2fef7b..820d07a 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -180,7 +180,7 @@ static int inode_alloc_security(struct inode *inode)
struct task_security_struct *tsec = current->security;
struct inode_security_struct *isec;

- isec = kmem_cache_zalloc(sel_inode_cache, GFP_KERNEL);
+ isec = kmem_cache_zalloc(sel_inode_cache, GFP_NOFS);
if (!isec)
return -ENOMEM;

@@ -2429,7 +2429,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
return -EOPNOTSUPP;

if (name) {
- namep = kstrdup(XATTR_SELINUX_SUFFIX, GFP_KERNEL);
+ namep = kstrdup(XATTR_SELINUX_SUFFIX, GFP_NOFS);
if (!namep)
return -ENOMEM;
*name = namep;
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Andrew Morton
2008-04-02 19:39:05 UTC
Permalink
On Wed, 2 Apr 2008 15:27:15 -0400
Post by Josef Bacik
Post by V***@vt.edu
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
(Yes, I know the kernel is tainted. Hopefully the traceback will make
enough sense that it won't matter. I think I cc'd most everybody who is
listed in MAINTAINERS or had a non-trivial jbd, quota, or ext3 patch in the broken-out/)
So I was running a 'yum update' on my laptop, walked away to ask a cow-orker
a question, and came back to find it had BUG'ed twice... Amazingly
enough, although it died in ext3 code, it apparently only nuked whatever
filesystem it was handling, as syslog was still able to log the gory details
into a file in /var. Given that a kernel rpm was the one it failed on, the
I/O was almost certainly on either / or /boot - both ext3. / is mounted
with quotas, /boot isn't, so I'm betting on /
Apr 2 13:48:07 turing-police yum: Updated: texlive-texmf-latex-2007-18.fc9.noarch
Apr 2 13:48:08 turing-police yum: Updated: 1:openoffice.org-xsltfilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:09 turing-police yum: Updated: 1:openoffice.org-javafilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:12 turing-police yum: Updated: kernel-headers-2.6.25-0.185.rc7.git6.fc9.x86_64
(here, it started updating kernel-2.6.25-0.185.rc7.git6 and died while I wasn't looking)
<snip>
Try this patch, it will keep us from re-entering the fs when we aren't supposed
to. cc'ing Eric Paris since he's the only selinux guy I know :). I don't think
any of the other allocations in here need to be fixed, but I didn't look too
carefully.
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index c2fef7b..820d07a 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -180,7 +180,7 @@ static int inode_alloc_security(struct inode *inode)
struct task_security_struct *tsec = current->security;
struct inode_security_struct *isec;
- isec = kmem_cache_zalloc(sel_inode_cache, GFP_KERNEL);
+ isec = kmem_cache_zalloc(sel_inode_cache, GFP_NOFS);
if (!isec)
return -ENOMEM;
@@ -2429,7 +2429,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
return -EOPNOTSUPP;
if (name) {
- namep = kstrdup(XATTR_SELINUX_SUFFIX, GFP_KERNEL);
+ namep = kstrdup(XATTR_SELINUX_SUFFIX, GFP_NOFS);
if (!namep)
return -ENOMEM;
*name = namep;
Might fix it. But 2.6.24's inode_alloc_security() also uses GFP_KERNEL and
doesn't have this bug. What changed?


--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Josef Bacik
2008-04-02 19:41:32 UTC
Permalink
Post by Andrew Morton
On Wed, 2 Apr 2008 15:27:15 -0400
Post by Josef Bacik
Post by V***@vt.edu
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
(Yes, I know the kernel is tainted. Hopefully the traceback will make
enough sense that it won't matter. I think I cc'd most everybody who is
listed in MAINTAINERS or had a non-trivial jbd, quota, or ext3 patch in the broken-out/)
So I was running a 'yum update' on my laptop, walked away to ask a cow-orker
a question, and came back to find it had BUG'ed twice... Amazingly
enough, although it died in ext3 code, it apparently only nuked whatever
filesystem it was handling, as syslog was still able to log the gory details
into a file in /var. Given that a kernel rpm was the one it failed on, the
I/O was almost certainly on either / or /boot - both ext3. / is mounted
with quotas, /boot isn't, so I'm betting on /
Apr 2 13:48:07 turing-police yum: Updated: texlive-texmf-latex-2007-18.fc9.noarch
Apr 2 13:48:08 turing-police yum: Updated: 1:openoffice.org-xsltfilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:09 turing-police yum: Updated: 1:openoffice.org-javafilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:12 turing-police yum: Updated: kernel-headers-2.6.25-0.185.rc7.git6.fc9.x86_64
(here, it started updating kernel-2.6.25-0.185.rc7.git6 and died while I wasn't looking)
<snip>
Try this patch, it will keep us from re-entering the fs when we aren't supposed
to. cc'ing Eric Paris since he's the only selinux guy I know :). I don't think
any of the other allocations in here need to be fixed, but I didn't look too
carefully.
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index c2fef7b..820d07a 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -180,7 +180,7 @@ static int inode_alloc_security(struct inode *inode)
struct task_security_struct *tsec = current->security;
struct inode_security_struct *isec;
- isec = kmem_cache_zalloc(sel_inode_cache, GFP_KERNEL);
+ isec = kmem_cache_zalloc(sel_inode_cache, GFP_NOFS);
if (!isec)
return -ENOMEM;
@@ -2429,7 +2429,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
return -EOPNOTSUPP;
if (name) {
- namep = kstrdup(XATTR_SELINUX_SUFFIX, GFP_KERNEL);
+ namep = kstrdup(XATTR_SELINUX_SUFFIX, GFP_NOFS);
if (!namep)
return -ENOMEM;
*name = namep;
Might fix it. But 2.6.24's inode_alloc_security() also uses GFP_KERNEL and
doesn't have this bug. What changed?
I don't see why the problem couldn't happen in 2.6.24, I'm sure if I generate
enough memory pressure and start creating a bunch of files I could reproduce the
same thing. /me wanders off to try,

Josef
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Stephen Smalley
2008-04-03 18:18:15 UTC
Permalink
Post by Andrew Morton
On Wed, 2 Apr 2008 15:27:15 -0400
Post by Josef Bacik
Post by V***@vt.edu
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
(Yes, I know the kernel is tainted. Hopefully the traceback will make
enough sense that it won't matter. I think I cc'd most everybody who is
listed in MAINTAINERS or had a non-trivial jbd, quota, or ext3 patch in the broken-out/)
So I was running a 'yum update' on my laptop, walked away to ask a cow-orker
a question, and came back to find it had BUG'ed twice... Amazingly
enough, although it died in ext3 code, it apparently only nuked whatever
filesystem it was handling, as syslog was still able to log the gory details
into a file in /var. Given that a kernel rpm was the one it failed on, the
I/O was almost certainly on either / or /boot - both ext3. / is mounted
with quotas, /boot isn't, so I'm betting on /
Apr 2 13:48:07 turing-police yum: Updated: texlive-texmf-latex-2007-18.fc9.noarch
Apr 2 13:48:08 turing-police yum: Updated: 1:openoffice.org-xsltfilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:09 turing-police yum: Updated: 1:openoffice.org-javafilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:12 turing-police yum: Updated: kernel-headers-2.6.25-0.185.rc7.git6.fc9.x86_64
(here, it started updating kernel-2.6.25-0.185.rc7.git6 and died while I wasn't looking)
<snip>
Try this patch, it will keep us from re-entering the fs when we aren't supposed
to. cc'ing Eric Paris since he's the only selinux guy I know :). I don't think
any of the other allocations in here need to be fixed, but I didn't look too
carefully.
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index c2fef7b..820d07a 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -180,7 +180,7 @@ static int inode_alloc_security(struct inode *inode)
struct task_security_struct *tsec = current->security;
struct inode_security_struct *isec;
- isec = kmem_cache_zalloc(sel_inode_cache, GFP_KERNEL);
+ isec = kmem_cache_zalloc(sel_inode_cache, GFP_NOFS);
if (!isec)
return -ENOMEM;
@@ -2429,7 +2429,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
return -EOPNOTSUPP;
if (name) {
- namep = kstrdup(XATTR_SELINUX_SUFFIX, GFP_KERNEL);
+ namep = kstrdup(XATTR_SELINUX_SUFFIX, GFP_NOFS);
if (!namep)
return -ENOMEM;
*name = namep;
Might fix it. But 2.6.24's inode_alloc_security() also uses GFP_KERNEL and
doesn't have this bug. What changed?
Looks legitimate, although we've been doing that since Linux 2.6.0-test3
(selinux merge) for inode_alloc_security and d_instantiate, and since
Linux 2.6.14 for inode_init_security, so something is at least
triggering it more easily now. inode_doinit_with_dentry looks like
another instance and security_context_to_sid_core as well.
--
Stephen Smalley
National Security Agency

--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
James Morris
2008-04-03 23:02:39 UTC
Permalink
Post by Josef Bacik
Try this patch, it will keep us from re-entering the fs when we aren't supposed
to. cc'ing Eric Paris since he's the only selinux guy I know :). I don't think
Please see the MAINTAINERS file.
Post by Josef Bacik
any of the other allocations in here need to be fixed, but I didn't look too
carefully.
Thanks, I'll push this to Linus, but note that further analysis is
required.
--
James Morris
<***@namei.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Stephen Smalley
2008-04-04 12:46:05 UTC
Permalink
Post by James Morris
Post by Josef Bacik
Try this patch, it will keep us from re-entering the fs when we aren't supposed
to. cc'ing Eric Paris since he's the only selinux guy I know :). I don't think
Please see the MAINTAINERS file.
Post by Josef Bacik
any of the other allocations in here need to be fixed, but I didn't look too
carefully.
Thanks, I'll push this to Linus, but note that further analysis is
required.
Please review.

More cases where SELinux must not re-enter the fs code.
Called from the d_instantiate security hook.

Signed-off-by: Stephen Smalley <***@tycho.nsa.gov>

---

security/selinux/hooks.c | 7 ++++---
security/selinux/include/security.h | 3 ++-
security/selinux/ss/services.c | 12 +++++++-----
3 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 41a049f..95b51b6 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -1143,7 +1143,7 @@ static int inode_doinit_with_dentry(struct inode *inode, struct dentry *opt_dent
}

len = INITCONTEXTLEN;
- context = kmalloc(len, GFP_KERNEL);
+ context = kmalloc(len, GFP_NOFS);
if (!context) {
rc = -ENOMEM;
dput(dentry);
@@ -1161,7 +1161,7 @@ static int inode_doinit_with_dentry(struct inode *inode, struct dentry *opt_dent
}
kfree(context);
len = rc;
- context = kmalloc(len, GFP_KERNEL);
+ context = kmalloc(len, GFP_NOFS);
if (!context) {
rc = -ENOMEM;
dput(dentry);
@@ -1185,7 +1185,8 @@ static int inode_doinit_with_dentry(struct inode *inode, struct dentry *opt_dent
rc = 0;
} else {
rc = security_context_to_sid_default(context, rc, &sid,
- sbsec->def_sid);
+ sbsec->def_sid,
+ GFP_NOFS);
if (rc) {
printk(KERN_WARNING "%s: context_to_sid(%s) "
"returned %d for dev=%s ino=%ld\n",
diff --git a/security/selinux/include/security.h b/security/selinux/include/security.h
index f7d2f03..44e12ec 100644
--- a/security/selinux/include/security.h
+++ b/security/selinux/include/security.h
@@ -86,7 +86,8 @@ int security_sid_to_context(u32 sid, char **scontext,
int security_context_to_sid(char *scontext, u32 scontext_len,
u32 *out_sid);

-int security_context_to_sid_default(char *scontext, u32 scontext_len, u32 *out_sid, u32 def_sid);
+int security_context_to_sid_default(char *scontext, u32 scontext_len,
+ u32 *out_sid, u32 def_sid, gfp_t gfp_flags);

int security_get_user_sids(u32 callsid, char *username,
u32 **sids, u32 *nel);
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c
index f374186..3f2bad2 100644
--- a/security/selinux/ss/services.c
+++ b/security/selinux/ss/services.c
@@ -680,7 +680,8 @@ out:

}

-static int security_context_to_sid_core(char *scontext, u32 scontext_len, u32 *sid, u32 def_sid)
+static int security_context_to_sid_core(char *scontext, u32 scontext_len,
+ u32 *sid, u32 def_sid, gfp_t gfp_flags)
{
char *scontext2;
struct context context;
@@ -709,7 +710,7 @@ static int security_context_to_sid_core(char *scontext, u32 scontext_len, u32 *s
null suffix to the copy to avoid problems with the existing
attr package, which doesn't view the null terminator as part
of the attribute value. */
- scontext2 = kmalloc(scontext_len+1,GFP_KERNEL);
+ scontext2 = kmalloc(scontext_len+1, gfp_flags);
if (!scontext2) {
rc = -ENOMEM;
goto out;
@@ -809,7 +810,7 @@ out:
int security_context_to_sid(char *scontext, u32 scontext_len, u32 *sid)
{
return security_context_to_sid_core(scontext, scontext_len,
- sid, SECSID_NULL);
+ sid, SECSID_NULL, GFP_KERNEL);
}

/**
@@ -829,10 +830,11 @@ int security_context_to_sid(char *scontext, u32 scontext_len, u32 *sid)
* Returns -%EINVAL if the context is invalid, -%ENOMEM if insufficient
* memory is available, or 0 on success.
*/
-int security_context_to_sid_default(char *scontext, u32 scontext_len, u32 *sid, u32 def_sid)
+int security_context_to_sid_default(char *scontext, u32 scontext_len, u32 *sid,
+ u32 def_sid, gfp_t gfp_flags)
{
return security_context_to_sid_core(scontext, scontext_len,
- sid, def_sid);
+ sid, def_sid, gfp_flags);
}

static int compute_sid_handle_invalid_context(
--
Stephen Smalley
National Security Agency

--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
James Morris
2008-04-06 23:54:27 UTC
Permalink
Post by Stephen Smalley
Post by James Morris
Post by Josef Bacik
Try this patch, it will keep us from re-entering the fs when we aren't supposed
to. cc'ing Eric Paris since he's the only selinux guy I know :). I don't think
Please see the MAINTAINERS file.
Post by Josef Bacik
any of the other allocations in here need to be fixed, but I didn't look too
carefully.
Thanks, I'll push this to Linus, but note that further analysis is
required.
Please review.
Looks good to me.
Post by Stephen Smalley
More cases where SELinux must not re-enter the fs code.
Called from the d_instantiate security hook.
---
security/selinux/hooks.c | 7 ++++---
security/selinux/include/security.h | 3 ++-
security/selinux/ss/services.c | 12 +++++++-----
3 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 41a049f..95b51b6 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -1143,7 +1143,7 @@ static int inode_doinit_with_dentry(struct inode *inode, struct dentry *opt_dent
}
len = INITCONTEXTLEN;
- context = kmalloc(len, GFP_KERNEL);
+ context = kmalloc(len, GFP_NOFS);
if (!context) {
rc = -ENOMEM;
dput(dentry);
@@ -1161,7 +1161,7 @@ static int inode_doinit_with_dentry(struct inode *inode, struct dentry *opt_dent
}
kfree(context);
len = rc;
- context = kmalloc(len, GFP_KERNEL);
+ context = kmalloc(len, GFP_NOFS);
if (!context) {
rc = -ENOMEM;
dput(dentry);
@@ -1185,7 +1185,8 @@ static int inode_doinit_with_dentry(struct inode *inode, struct dentry *opt_dent
rc = 0;
} else {
rc = security_context_to_sid_default(context, rc, &sid,
- sbsec->def_sid);
+ sbsec->def_sid,
+ GFP_NOFS);
if (rc) {
printk(KERN_WARNING "%s: context_to_sid(%s) "
"returned %d for dev=%s ino=%ld\n",
diff --git a/security/selinux/include/security.h b/security/selinux/include/security.h
index f7d2f03..44e12ec 100644
--- a/security/selinux/include/security.h
+++ b/security/selinux/include/security.h
@@ -86,7 +86,8 @@ int security_sid_to_context(u32 sid, char **scontext,
int security_context_to_sid(char *scontext, u32 scontext_len,
u32 *out_sid);
-int security_context_to_sid_default(char *scontext, u32 scontext_len, u32 *out_sid, u32 def_sid);
+int security_context_to_sid_default(char *scontext, u32 scontext_len,
+ u32 *out_sid, u32 def_sid, gfp_t gfp_flags);
int security_get_user_sids(u32 callsid, char *username,
u32 **sids, u32 *nel);
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c
index f374186..3f2bad2 100644
--- a/security/selinux/ss/services.c
+++ b/security/selinux/ss/services.c
}
-static int security_context_to_sid_core(char *scontext, u32 scontext_len, u32 *sid, u32 def_sid)
+static int security_context_to_sid_core(char *scontext, u32 scontext_len,
+ u32 *sid, u32 def_sid, gfp_t gfp_flags)
{
char *scontext2;
struct context context;
@@ -709,7 +710,7 @@ static int security_context_to_sid_core(char *scontext, u32 scontext_len, u32 *s
null suffix to the copy to avoid problems with the existing
attr package, which doesn't view the null terminator as part
of the attribute value. */
- scontext2 = kmalloc(scontext_len+1,GFP_KERNEL);
+ scontext2 = kmalloc(scontext_len+1, gfp_flags);
if (!scontext2) {
rc = -ENOMEM;
goto out;
int security_context_to_sid(char *scontext, u32 scontext_len, u32 *sid)
{
return security_context_to_sid_core(scontext, scontext_len,
- sid, SECSID_NULL);
+ sid, SECSID_NULL, GFP_KERNEL);
}
/**
@@ -829,10 +830,11 @@ int security_context_to_sid(char *scontext, u32 scontext_len, u32 *sid)
* Returns -%EINVAL if the context is invalid, -%ENOMEM if insufficient
* memory is available, or 0 on success.
*/
-int security_context_to_sid_default(char *scontext, u32 scontext_len, u32 *sid, u32 def_sid)
+int security_context_to_sid_default(char *scontext, u32 scontext_len, u32 *sid,
+ u32 def_sid, gfp_t gfp_flags)
{
return security_context_to_sid_core(scontext, scontext_len,
- sid, def_sid);
+ sid, def_sid, gfp_flags);
}
static int compute_sid_handle_invalid_context(
--
James Morris
<***@namei.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Jan Kara
2008-04-04 10:15:09 UTC
Permalink
Post by Stephen Smalley
Post by Andrew Morton
On Wed, 2 Apr 2008 15:27:15 -0400
Post by Josef Bacik
Post by V***@vt.edu
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
(Yes, I know the kernel is tainted. Hopefully the traceback will make
enough sense that it won't matter. I think I cc'd most everybody who is
listed in MAINTAINERS or had a non-trivial jbd, quota, or ext3 patch in the broken-out/)
So I was running a 'yum update' on my laptop, walked away to ask a cow-orker
a question, and came back to find it had BUG'ed twice... Amazingly
enough, although it died in ext3 code, it apparently only nuked whatever
filesystem it was handling, as syslog was still able to log the gory details
into a file in /var. Given that a kernel rpm was the one it failed on, the
I/O was almost certainly on either / or /boot - both ext3. / is mounted
with quotas, /boot isn't, so I'm betting on /
Apr 2 13:48:07 turing-police yum: Updated: texlive-texmf-latex-2007-18.fc9.noarch
Apr 2 13:48:08 turing-police yum: Updated: 1:openoffice.org-xsltfilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:09 turing-police yum: Updated: 1:openoffice.org-javafilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:12 turing-police yum: Updated: kernel-headers-2.6.25-0.185.rc7.git6.fc9.x86_64
(here, it started updating kernel-2.6.25-0.185.rc7.git6 and died while I wasn't looking)
<snip>
Try this patch, it will keep us from re-entering the fs when we aren't supposed
to. cc'ing Eric Paris since he's the only selinux guy I know :). I don't think
any of the other allocations in here need to be fixed, but I didn't look too
carefully.
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index c2fef7b..820d07a 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -180,7 +180,7 @@ static int inode_alloc_security(struct inode *inode)
struct task_security_struct *tsec = current->security;
struct inode_security_struct *isec;
- isec = kmem_cache_zalloc(sel_inode_cache, GFP_KERNEL);
+ isec = kmem_cache_zalloc(sel_inode_cache, GFP_NOFS);
if (!isec)
return -ENOMEM;
@@ -2429,7 +2429,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
return -EOPNOTSUPP;
if (name) {
- namep = kstrdup(XATTR_SELINUX_SUFFIX, GFP_KERNEL);
+ namep = kstrdup(XATTR_SELINUX_SUFFIX, GFP_NOFS);
if (!namep)
return -ENOMEM;
*name = namep;
Might fix it. But 2.6.24's inode_alloc_security() also uses GFP_KERNEL and
doesn't have this bug. What changed?
Looks legitimate, although we've been doing that since Linux 2.6.0-test3
(selinux merge) for inode_alloc_security and d_instantiate, and since
Linux 2.6.14 for inode_init_security, so something is at least
triggering it more easily now. inode_doinit_with_dentry looks like
another instance and security_context_to_sid_core as well.
I guess it is just the combination of someone using SELinux + quota
(or several journaling filesystems) + being unlucky under memory
pressure that makes this happen only rarely. Josef, have you been
successful in reproducing the problem under older kernel?

Honza
--
Jan Kara <***@suse.cz>
SuSE CR Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Josef Bacik
2008-04-04 12:53:30 UTC
Permalink
Post by Jan Kara
Post by Stephen Smalley
Post by Andrew Morton
On Wed, 2 Apr 2008 15:27:15 -0400
Post by Josef Bacik
Post by V***@vt.edu
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
(Yes, I know the kernel is tainted. Hopefully the traceback will make
enough sense that it won't matter. I think I cc'd most everybody who is
listed in MAINTAINERS or had a non-trivial jbd, quota, or ext3 patch in the broken-out/)
So I was running a 'yum update' on my laptop, walked away to ask a cow-orker
a question, and came back to find it had BUG'ed twice... Amazingly
enough, although it died in ext3 code, it apparently only nuked whatever
filesystem it was handling, as syslog was still able to log the gory details
into a file in /var. Given that a kernel rpm was the one it failed on, the
I/O was almost certainly on either / or /boot - both ext3. / is mounted
with quotas, /boot isn't, so I'm betting on /
Apr 2 13:48:07 turing-police yum: Updated: texlive-texmf-latex-2007-18.fc9.noarch
Apr 2 13:48:08 turing-police yum: Updated: 1:openoffice.org-xsltfilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:09 turing-police yum: Updated: 1:openoffice.org-javafilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:12 turing-police yum: Updated: kernel-headers-2.6.25-0.185.rc7.git6.fc9.x86_64
(here, it started updating kernel-2.6.25-0.185.rc7.git6 and died while I wasn't looking)
<snip>
Try this patch, it will keep us from re-entering the fs when we aren't supposed
to. cc'ing Eric Paris since he's the only selinux guy I know :). I don't think
any of the other allocations in here need to be fixed, but I didn't look too
carefully.
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index c2fef7b..820d07a 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -180,7 +180,7 @@ static int inode_alloc_security(struct inode *inode)
struct task_security_struct *tsec = current->security;
struct inode_security_struct *isec;
- isec = kmem_cache_zalloc(sel_inode_cache, GFP_KERNEL);
+ isec = kmem_cache_zalloc(sel_inode_cache, GFP_NOFS);
if (!isec)
return -ENOMEM;
@@ -2429,7 +2429,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
return -EOPNOTSUPP;
if (name) {
- namep = kstrdup(XATTR_SELINUX_SUFFIX, GFP_KERNEL);
+ namep = kstrdup(XATTR_SELINUX_SUFFIX, GFP_NOFS);
if (!namep)
return -ENOMEM;
*name = namep;
Might fix it. But 2.6.24's inode_alloc_security() also uses GFP_KERNEL and
doesn't have this bug. What changed?
Looks legitimate, although we've been doing that since Linux 2.6.0-test3
(selinux merge) for inode_alloc_security and d_instantiate, and since
Linux 2.6.14 for inode_init_security, so something is at least
triggering it more easily now. inode_doinit_with_dentry looks like
another instance and security_context_to_sid_core as well.
I guess it is just the combination of someone using SELinux + quota
(or several journaling filesystems) + being unlucky under memory
pressure that makes this happen only rarely. Josef, have you been
successful in reproducing the problem under older kernel?
Not yet, I haven't been lucky enough apparently. I'm going to kick it off on a
couple of boxes over the weekend and see if I can't hit it on one of them
instead of just relying on the one box.

Josef
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Stephen Smalley
2008-04-03 18:25:52 UTC
Permalink
Post by Josef Bacik
Post by V***@vt.edu
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
(Yes, I know the kernel is tainted. Hopefully the traceback will make
enough sense that it won't matter. I think I cc'd most everybody who is
listed in MAINTAINERS or had a non-trivial jbd, quota, or ext3 patch in the broken-out/)
So I was running a 'yum update' on my laptop, walked away to ask a cow-orker
a question, and came back to find it had BUG'ed twice... Amazingly
enough, although it died in ext3 code, it apparently only nuked whatever
filesystem it was handling, as syslog was still able to log the gory details
into a file in /var. Given that a kernel rpm was the one it failed on, the
I/O was almost certainly on either / or /boot - both ext3. / is mounted
with quotas, /boot isn't, so I'm betting on /
Apr 2 13:48:07 turing-police yum: Updated: texlive-texmf-latex-2007-18.fc9.noarch
Apr 2 13:48:08 turing-police yum: Updated: 1:openoffice.org-xsltfilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:09 turing-police yum: Updated: 1:openoffice.org-javafilter-2.4.0-12.4.fc9.x86_64
Apr 2 13:48:12 turing-police yum: Updated: kernel-headers-2.6.25-0.185.rc7.git6.fc9.x86_64
(here, it started updating kernel-2.6.25-0.185.rc7.git6 and died while I wasn't looking)
<snip>
Try this patch, it will keep us from re-entering the fs when we aren't supposed
to. cc'ing Eric Paris since he's the only selinux guy I know :). I don't think
any of the other allocations in here need to be fixed, but I didn't look too
carefully.
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index c2fef7b..820d07a 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -180,7 +180,7 @@ static int inode_alloc_security(struct inode *inode)
struct task_security_struct *tsec = current->security;
struct inode_security_struct *isec;
- isec = kmem_cache_zalloc(sel_inode_cache, GFP_KERNEL);
+ isec = kmem_cache_zalloc(sel_inode_cache, GFP_NOFS);
if (!isec)
return -ENOMEM;
@@ -2429,7 +2429,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
return -EOPNOTSUPP;
if (name) {
- namep = kstrdup(XATTR_SELINUX_SUFFIX, GFP_KERNEL);
+ namep = kstrdup(XATTR_SELINUX_SUFFIX, GFP_NOFS);
if (!namep)
return -ENOMEM;
*name = namep;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
--
Stephen Smalley
National Security Agency

--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Dave Airlie
2008-04-03 12:11:30 UTC
Permalink
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
- Added the wm97xx touchscreen driver tree, as git-wm97xx.patch (Mark Brown
- git-alsa.patch has been replaced by git-alsa-tiwai.patch
- git-drm.patch is dropped due to build errors
Actually git-agp.patch is broken, and should have been dropped. the
drm patch is fine.

I did mention this to you in two separate e-mails :)

Dave.
Andrew Morton
2008-04-03 16:59:24 UTC
Permalink
Post by Dave Airlie
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
- Added the wm97xx touchscreen driver tree, as git-wm97xx.patch (Mark Brown
- git-alsa.patch has been replaced by git-alsa-tiwai.patch
- git-drm.patch is dropped due to build errors
Actually git-agp.patch is broken, and should have been dropped. the
drm patch is fine.
I did mention this to you in two separate e-mails :)
git-drm has a bunch of git rejects against mainline. I had a go at fixing
them but it didn't work out and I had other stuff to look at.
Tilman Schmidt
2008-04-03 23:08:19 UTC
Permalink
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
This fails to come up on my development machine, apparently because it
has trouble accessing the SATA hard disks.
Hardware: Intel Pentium D940, Intel DQ965GF board, two SATA hard disks.
Some unusual things I noticed during the boot process:

- a message "doing fast boot" that looked unfamiliar; unfortunately
it scrolled off too quickly to note its context

- for each of the two SATA ports in use, a message
"SATA port is slow to respond, please be patient"
accompanied by about 10 secs wait

- it actually got past the point where it mounts the root file system,
so it must have thought it could access the disks

- finally, the system hung completely after the SUSE startup messages

Setting current sysctl status from /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_broadcasts = 1

with a dead keyboard and I had to hit the Win^Wreset button.

- After rebooting into 2.6.24-rc8 (which works fine), nothing had been
written to the disks, not even the dmesg output which SUSE usually
dumps into /var/log/boot.msg early during startup.

Before I try booting that kernel again, any instructions on what to
watch out for? Is netconsole usable again? Other ideas?

Regards,
Tilman
Andrew Morton
2008-04-03 23:17:33 UTC
Permalink
On Fri, 04 Apr 2008 01:08:19 +0200
Post by Tilman Schmidt
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
This fails to come up on my development machine, apparently because it
has trouble accessing the SATA hard disks.
Hardware: Intel Pentium D940, Intel DQ965GF board, two SATA hard disks.
- a message "doing fast boot" that looked unfamiliar; unfortunately
it scrolled off too quickly to note its context
- for each of the two SATA ports in use, a message
"SATA port is slow to respond, please be patient"
accompanied by about 10 secs wait
- it actually got past the point where it mounts the root file system,
so it must have thought it could access the disks
- finally, the system hung completely after the SUSE startup messages
Setting current sysctl status from /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_broadcasts = 1
with a dead keyboard and I had to hit the Win^Wreset button.
- After rebooting into 2.6.24-rc8 (which works fine), nothing had been
written to the disks, not even the dmesg output which SUSE usually
dumps into /var/log/boot.msg early during startup.
Before I try booting that kernel again, any instructions on what to
watch out for? Is netconsole usable again?
Yes, netconsole is usable again ;)
Post by Tilman Schmidt
Other ideas?
Usual stuff: `diff -u dmesg-2.6.25-rc8 dmesg-2.6.25-rc8-mm1'. Bisection.

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Tilman Schmidt
2008-04-09 14:29:53 UTC
Permalink
This is taking longer than I hoped, so here's a little progress report.
Post by Andrew Morton
On Fri, 04 Apr 2008 01:08:19 +0200
Post by Tilman Schmidt
This fails to come up on my development machine, apparently because it
has trouble accessing the SATA hard disks.
Hardware: Intel Pentium D940, Intel DQ965GF board, two SATA hard disks.
- a message "doing fast boot" that looked unfamiliar; unfortunately
it scrolled off too quickly to note its context
That message doesn't make it into dmesg. It's apparently a Suse thing,
and perhaps normal, so let's ignore that for now.
Post by Andrew Morton
Post by Tilman Schmidt
- for each of the two SATA ports in use, a message
"SATA port is slow to respond, please be patient"
accompanied by about 10 secs wait
These messages seem to be a separate issue. I also get them with
a .config that otherwise brings up the system successfully. That
allowed me to capture a dmesg, so here are some possibly interesting
hunks of the diff between a mainline kernel and a working 2.6.25-rc8-mm1
one:

--- dmesg-2.6.25-rc8-git.nots-reordered 2008-04-09 15:29:52.000000000 +0200
+++ dmesg-2.6.25-rc8-mm1.nots 2008-04-09 00:48:42.000000000 +0200
@@ -1,4 +1,4 @@
- Linux version 2.6.25-rc8-testing-00210-g51ac03f (***@xenon) (gcc version 4.2.1 (SUSE Linux)) #37 SMP PREEMPT Wed Apr 9 01:27:07 CEST 2008
+ Linux version 2.6.25-rc8-mm1-testing (***@xenon) (gcc version 4.2.1 (SUSE Linux)) #6 SMP PREEMPT Wed Apr 9 00:24:23 CEST 2008
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000008f000 (usable)
BIOS-e820: 000000000008f000 - 00000000000a0000 (reserved)

[...]

@@ -244,12 +277,10 @@
CPU1: Intel P4/Xeon Extended MCE MSRs (24) available
CPU1: Thermal monitoring enabled
CPU1: Intel(R) Pentium(R) D CPU 3.20GHz stepping 04
- Total of 2 processors activated (12796.06 BogoMIPS).
+ Total of 2 processors activated (12796.87 BogoMIPS).
ENABLING IO-APIC IRQs
..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1
- checking TSC synchronization [CPU#0 -> CPU#1]:
- Measured 560 cycles TSC warp between CPUs, turning off TSC clock.
- Marking TSC unstable due to: check_tsc_sync_source failed.
+ checking TSC synchronization [CPU#0 -> CPU#1]: passed.
Brought up 2 CPUs
CPU0 attaching sched-domain:
domain 0: span 03

[Nice - at last a kernel that likes my TSC; not sure if it matters though.]

@@ -846,26 +880,36 @@
PCI: Setting latency timer of device 0000:00:1f.2 to 64
scsi0 : ahci
PM: Adding info for No Bus:host0
+ PM: Adding info for No Bus:host0
scsi1 : ahci
PM: Adding info for No Bus:host1
+ PM: Adding info for No Bus:host1
scsi2 : ahci
PM: Adding info for No Bus:host2
+ PM: Adding info for No Bus:host2
scsi3 : ahci
PM: Adding info for No Bus:host3
+ PM: Adding info for No Bus:host3
scsi4 : ahci
PM: Adding info for No Bus:host4
+ PM: Adding info for No Bus:host4
scsi5 : ahci
PM: Adding info for No Bus:host5
+ PM: Adding info for No Bus:host5
ata1: SATA max UDMA/133 abar ***@0x92c25000 port 0x92c25100 irq 217
ata2: SATA max UDMA/133 abar ***@0x92c25000 port 0x92c25180 irq 217
ata3: SATA max UDMA/133 abar ***@0x92c25000 port 0x92c25200 irq 217
ata4: SATA max UDMA/133 abar ***@0x92c25000 port 0x92c25280 irq 217
ata5: SATA max UDMA/133 abar ***@0x92c25000 port 0x92c25300 irq 217
ata6: SATA max UDMA/133 abar ***@0x92c25000 port 0x92c25380 irq 217
+ ata1: port is slow to respond, please be patient (Status 0x80)
+ ata1: COMRESET failed (errno=-16)
ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata1.00: ATA-7: ST380811AS, 3.AAE, max UDMA/133
ata1.00: 156301488 sectors, multi 0: LBA48 NCQ (depth 31/32)
ata1.00: configured for UDMA/133
+ ata2: port is slow to respond, please be patient (Status 0x80)
+ ata2: COMRESET failed (errno=-16)
ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata2.00: ATA-7: ST380811AS, 3.AAE, max UDMA/133
ata2.00: 156301488 sectors, multi 0: LBA48 NCQ (depth 31/32)
@@ -877,15 +921,22 @@
PM: Adding info for No Bus:target0:0:0
scsi 0:0:0:0: Direct-Access ATA ST380811AS 3.AA PQ: 0 ANSI: 5
PM: Adding info for scsi:0:0:0:0
+ PM: Adding info for No Bus:0:0:0:0
+ PM: Adding info for No Bus:0:0:0:0
PM: Adding info for No Bus:target1:0:0
scsi 1:0:0:0: Direct-Access ATA ST380811AS 3.AA PQ: 0 ANSI: 5
PM: Adding info for scsi:1:0:0:0
+ PM: Adding info for No Bus:1:0:0:0
+ PM: Adding info for No Bus:1:0:0:0
+ modprobe used greatest stack depth: 2200 bytes left
ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 17 (level, low) -> IRQ 17
PCI: Setting latency timer of device 0000:02:00.0 to 64
scsi6 : pata_marvell
PM: Adding info for No Bus:host6
+ PM: Adding info for No Bus:host6
scsi7 : pata_marvell
PM: Adding info for No Bus:host7
+ PM: Adding info for No Bus:host7
ata7: PATA max UDMA/100 cmd 0x2018 ctl 0x2024 bmdma 0x2000 irq 17
ata8: DUMMY
BAR5:00:00 01:7F 02:22 03:CA 04:00 05:00 06:00 07:00 08:00 09:00 0A:00 0B:00 0C:01 0D:00 0E:00 0F:00

After that, it quickly diverges because of major differences in the
ordering of device startup. Already, to get the diffs above I had to
shift a few blocks of lines around.
Post by Andrew Morton
Post by Tilman Schmidt
Before I try booting that kernel again, any instructions on what to
watch out for? Is netconsole usable again?
Yes, netconsole is usable again ;)
Good to know. I'm now looking in my netconsole setup for the reason
why I don't receive anything from it.

Thanks,
Tilman
--
Tilman Schmidt E-Mail: ***@imap.cc
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Ungeöffnet mindestens haltbar bis: (siehe Rückseite)
Tilman Schmidt
2008-04-14 00:28:40 UTC
Permalink
Final report, seeing -mm2 is out:

- Netconsole works. (grumblestupidsusefirewallgrumble)

- The hang during boot only happens with kernels compiled with
CONFIG_CIFS_EXPERIMENTAL=y
It also doesn't always happen at the same point in the boot sequence.
I'm suspecting it might be triggered by some network packet.
Anyway, it's obviously *not* a SATA problem.
(That was just me jumping to conclusions, because ...)

- That leaves only the messages

ata1: port is slow to respond, please be patient (Status 0x80)
ata1: COMRESET failed (errno=-16)

and accompanying delays during boot, for each installed SATA disk.
I'll try to find the time to retest this with 2.6.25-rc8-mm2.

Thanks,
Tilman
--
Tilman Schmidt E-Mail: ***@imap.cc
Wehrhausweg 66 Fax: +49 228 4299019
53227 Bonn, Germany
Andrew Morton
2008-04-14 02:05:56 UTC
Permalink
Post by Tilman Schmidt
- Netconsole works. (grumblestupidsusefirewallgrumble)
- The hang during boot only happens with kernels compiled with
CONFIG_CIFS_EXPERIMENTAL=y
It also doesn't always happen at the same point in the boot sequence.
I'm suspecting it might be triggered by some network packet.
Anyway, it's obviously *not* a SATA problem.
(That was just me jumping to conclusions, because ...)
I don't remember seeing a report of the CIFS hang.

It might be caused by
bkl-removal-convert-cifs-over-to-unlocked_ioctl.patch, but it's hard to see
how that could affect things before userspace has started.
Post by Tilman Schmidt
- That leaves only the messages
ata1: port is slow to respond, please be patient (Status 0x80)
ata1: COMRESET failed (errno=-16)
and accompanying delays during boot, for each installed SATA disk.
I'll try to find the time to retest this with 2.6.25-rc8-mm2.
That would be good, thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Tilman Schmidt
2008-04-15 23:33:21 UTC
Permalink
Post by Tilman Schmidt
- That leaves only the messages
ata1: port is slow to respond, please be patient (Status 0x80)
ata1: COMRESET failed (errno=-16)
and accompanying delays during boot, for each installed SATA disk.
I'll try to find the time to retest this with 2.6.25-rc8-mm2.
Done. The messages and delays do *not* happen with 2.6.25-rc8-mm2.

HTH
Tilman

Jiri Slaby
2008-04-04 20:16:32 UTC
Permalink
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-=
rc8/2.6.25-rc8-mm1/

After
$ echo -n 4-1.2 >/sys/bus/usb/drivers/usb/unbind
$ echo -n 4-1.2 >/sys/bus/usb/drivers/usb/bind

I have this in logs:

sysfs: duplicate filename 'usbdev4.12_ep81' can not be created
------------[ cut here ]------------
WARNING: at /home/l/latest/xxx/fs/sysfs/dir.c:425 sysfs_add_one+0x99/0x=
c0()
Modules linked in: usbhid hid nls_cp437 vfat fat usb_storage tun bitrev=
ipv6=20
arc4 ecb crypto_blkcipher cryptomgr crypto_algapi ath5k mac80211 sr_mod=
crc32=20
ohci1394 rtc_cmos cfg80211 ieee1394 floppy rtc_core ehci_hcd rtc_lib ff=
_memless=20
cdrom [last unloaded: hid]
Pid: 539, comm: bash Tainted: G W 2.6.25-rc8-mm1_64 #395

Call Trace:
[<ffffffff8022f07f>] warn_on_slowpath+0x5f/0x80
[<ffffffff80230197>] ? printk+0x67/0x70
[<ffffffff802d9bd0>] ? sysfs_ilookup_test+0x0/0x20
[<ffffffff802a12e8>] ? ifind+0x58/0xc0
[<ffffffff802d9bd0>] ? sysfs_ilookup_test+0x0/0x20
[<ffffffff802d9f49>] sysfs_add_one+0x99/0xc0
[<ffffffff802daf68>] sysfs_create_link+0xa8/0x130
[<ffffffff8038ebda>] device_add+0x2aa/0x4d0
[<ffffffff80310c26>] ? kobject_init+0x36/0x80
[<ffffffff8038ee19>] device_register+0x19/0x20
[<ffffffff803dbbec>] usb_create_ep_files+0x19c/0x320
[<ffffffff803dadb3>] usb_create_sysfs_intf_files+0xd3/0x100
[<ffffffff803d630c>] usb_set_configuration+0x3ac/0x5f0
[<ffffffff803df81a>] generic_probe+0x7a/0xb0
[<ffffffff803d83fa>] usb_probe_device+0x3a/0x40
[<ffffffff80390ceb>] driver_probe_device+0x9b/0x1a0
[<ffffffff803901b3>] driver_bind+0xb3/0x100
[<ffffffff8038f8a7>] drv_attr_store+0x27/0x30
[<ffffffff802d94ab>] sysfs_write_file+0xeb/0x140
[<ffffffff8028cc57>] vfs_write+0xc7/0x170
[<ffffffff8028d2f0>] sys_write+0x50/0x90
[<ffffffff8020b5eb>] system_call_after_swapgs+0x7b/0x80

---[ end trace 6ee6d593d4e510b4 ]---




I think, this is a 2.6.25-rc5-mm1 regression, there
while :; do
echo -n 4-1.2 >/sys/bus/usb/drivers/usb/unbind
echo -n 4-1.2 >/sys/bus/usb/drivers/usb/bind
usleep 10000
done
went just fine for about 2000 times. Also real disconnect/connect works=
just=20
fine (on disconnect the link disappears). Do you need kobject debug out=
put?




The dir looks like:
=2E..
usbdev4.10_ep83 ->=20
=2E./../devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.3/4-1.3:1.0/usb_en=
dpoint/usbdev4.10_ep83
usbdev4.12_ep81 ->=20
=2E./../devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.2/4-1.2:1.0/usb_en=
dpoint/usbdev4.12_ep81

^^^^
this is the unbound, the link is broken, there is no such device even a=
fter=20
binding it back.

usbdev4.1_ep00 ->=20
=2E./../devices/pci0000:00/0000:00:1d.0/usb4/usb_endpoint/usbdev4.1_ep0=
0
usbdev4.1_ep81 ->=20
=2E./../devices/pci0000:00/0000:00:1d.0/usb4/4-0:1.0/usb_endpoint/usbde=
v4.1_ep81
usbdev4.5_ep00 ->=20
=2E./../devices/pci0000:00/0000:00:1d.0/usb4/4-1/usb_endpoint/usbdev4.5=
_ep00
=2E..


The device is:
Bus 004 Device 012: ID 045e:00f0 Microsoft Corp.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x045e Microsoft Corp.
idProduct 0x00f0
bcdDevice 1.01
iManufacturer 1 Microsoft Corporation
iProduct 2 Microsoft =EF=BF=BD Laser Mouse 6000
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Devices
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 33 US
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 59
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 10
Device Status: 0x0000
(Bus Powered)
Greg KH
2008-04-04 20:51:54 UTC
Permalink
Post by Jiri Slaby
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
After
$ echo -n 4-1.2 >/sys/bus/usb/drivers/usb/unbind
$ echo -n 4-1.2 >/sys/bus/usb/drivers/usb/bind
sysfs: duplicate filename 'usbdev4.12_ep81' can not be created
Does this also show up in 2.6.25-rc8 without -mm?

I thought I fixed this already, I don't see what slipped into -mm that
would have caused it to come back. Time to run some more tests...

Oh, also note that binding and unbinding the main "usb" driver is not
encouraged, or even supported. I'm amazed it works, as this is not
something that any "real" user would do as it makes no sense at all
because we have no "alternative" drivers yet for the main USB device.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-***@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Alan Stern
2008-04-04 21:23:16 UTC
Permalink
Post by Greg KH
Post by Jiri Slaby
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
After
$ echo -n 4-1.2 >/sys/bus/usb/drivers/usb/unbind
$ echo -n 4-1.2 >/sys/bus/usb/drivers/usb/bind
sysfs: duplicate filename 'usbdev4.12_ep81' can not be created
Does this also show up in 2.6.25-rc8 without -mm?
I thought I fixed this already, I don't see what slipped into -mm that
would have caused it to come back. Time to run some more tests...
Oh, also note that binding and unbinding the main "usb" driver is not
encouraged, or even supported. I'm amazed it works, as this is not
something that any "real" user would do as it makes no sense at all
because we have no "alternative" drivers yet for the main USB device.
It's a real bug. I don't have time to track it down now. Next week...

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-***@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Alan Stern
2008-04-05 03:46:59 UTC
Permalink
Post by Alan Stern
Post by Greg KH
Post by Jiri Slaby
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
After
$ echo -n 4-1.2 >/sys/bus/usb/drivers/usb/unbind
$ echo -n 4-1.2 >/sys/bus/usb/drivers/usb/bind
sysfs: duplicate filename 'usbdev4.12_ep81' can not be created
Does this also show up in 2.6.25-rc8 without -mm?
I thought I fixed this already, I don't see what slipped into -mm that
would have caused it to come back. Time to run some more tests...
Oh, also note that binding and unbinding the main "usb" driver is not
encouraged, or even supported. I'm amazed it works, as this is not
something that any "real" user would do as it makes no sense at all
because we have no "alternative" drivers yet for the main USB device.
It's a real bug. I don't have time to track it down now. Next week...
Here's the answer. The bug was introduced when the definition of
device_is_registered() in include/linux/device.h was changed. The old
definition returned 0 when called inside a driver's remove method for a
device being unregistered, whereas the new definition returns 1. I
don't know when this change was made.

This patch ought to fix the problem. Jiri, can you confirm that it
works?

Alan Stern

-----------------------------------------------------------

Removing an interface's sysfs files before unregistering the interface
doesn't work properly, because usb_unbind_interface() will reinstall
altsetting 0 and thereby create new sysfs files. This patch (as1074)
removes the files after the unregistration is finished. It's not
quite as clean, but at least it works.

Also, there's no need to check if an interface has been registered
before removing its sysfs files. If it hasn't been registered then
the files won't have been created, so usb_remove_sysfs_intf_files()
will simply do nothing.

Signed-off-by: Alan Stern <***@rowland.harvard.edu>

---

Index: usb-2.6/drivers/usb/core/message.c
===================================================================
--- usb-2.6.orig/drivers/usb/core/message.c
+++ usb-2.6/drivers/usb/core/message.c
@@ -1089,8 +1089,8 @@ void usb_disable_device(struct usb_devic
continue;
dev_dbg(&dev->dev, "unregistering interface %s\n",
interface->dev.bus_id);
- usb_remove_sysfs_intf_files(interface);
device_del(&interface->dev);
+ usb_remove_sysfs_intf_files(interface);
}

/* Now that the interfaces are unbound, nobody should
@@ -1231,7 +1231,7 @@ int usb_set_interface(struct usb_device
*/

/* prevent submissions using previous endpoint settings */
- if (iface->cur_altsetting != alt && device_is_registered(&iface->dev))
+ if (iface->cur_altsetting != alt)
usb_remove_sysfs_intf_files(iface);
usb_disable_interface(dev, iface);

@@ -1330,8 +1330,7 @@ int usb_reset_configuration(struct usb_d
struct usb_interface *intf = config->interface[i];
struct usb_host_interface *alt;

- if (device_is_registered(&intf->dev))
- usb_remove_sysfs_intf_files(intf);
+ usb_remove_sysfs_intf_files(intf);
alt = usb_altnum_to_altsetting(intf, 0);

/* No altsetting 0? We'll assume the first altsetting.
Greg KH
2008-04-05 04:37:41 UTC
Permalink
Post by Alan Stern
Post by Alan Stern
Post by Greg KH
Post by Jiri Slaby
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
After
$ echo -n 4-1.2 >/sys/bus/usb/drivers/usb/unbind
$ echo -n 4-1.2 >/sys/bus/usb/drivers/usb/bind
sysfs: duplicate filename 'usbdev4.12_ep81' can not be created
Does this also show up in 2.6.25-rc8 without -mm?
I thought I fixed this already, I don't see what slipped into -mm that
would have caused it to come back. Time to run some more tests...
Oh, also note that binding and unbinding the main "usb" driver is not
encouraged, or even supported. I'm amazed it works, as this is not
something that any "real" user would do as it makes no sense at all
because we have no "alternative" drivers yet for the main USB device.
It's a real bug. I don't have time to track it down now. Next week...
Here's the answer. The bug was introduced when the definition of
device_is_registered() in include/linux/device.h was changed. The old
definition returned 0 when called inside a driver's remove method for a
device being unregistered, whereas the new definition returns 1. I
don't know when this change was made.
I've changed that in the -mm tree to make some PCI stuff much easier. I
didn't realize that USB was depending on when this was being set, sorry
about it.

I like your fix better, it makes the code path much simpler :)

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-***@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Alan Stern
2008-04-05 14:16:11 UTC
Permalink
Post by Greg KH
Post by Alan Stern
Here's the answer. The bug was introduced when the definition of
device_is_registered() in include/linux/device.h was changed. The old
definition returned 0 when called inside a driver's remove method for a
device being unregistered, whereas the new definition returns 1. I
don't know when this change was made.
I've changed that in the -mm tree to make some PCI stuff much easier. I
didn't realize that USB was depending on when this was being set, sorry
about it.
I like your fix better, it makes the code path much simpler :)
Well, it's not really any _simpler_, since all I did was interchange
two lines of code.

But I agree this way is better. It doesn't depend on the behavior of
device_is_registered() in the ill-defined situation where the device is
in the middle of being unregistered.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-***@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Jiri Slaby
2008-04-05 08:17:34 UTC
Permalink
Post by Alan Stern
Removing an interface's sysfs files before unregistering the interface
doesn't work properly, because usb_unbind_interface() will reinstall
altsetting 0 and thereby create new sysfs files. This patch (as1074)
removes the files after the unregistration is finished. It's not
quite as clean, but at least it works.
Also, there's no need to check if an interface has been registered
before removing its sysfs files. If it hasn't been registered then
the files won't have been created, so usb_remove_sysfs_intf_files()
will simply do nothing.
Tested-by: Jiri Slaby <***@gmail.com>

Works well, thanks.
V***@vt.edu
2008-04-07 06:21:22 UTC
Permalink
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
Been seeing these crop up once in a while - can take hours after a reboot
before I see the first one, but once I see one, I'm likely to see more, at
a frequency of anywhere from ~5seconds to ~10 minutes between BUG msgs.

BUG: scheduling while atomic: swapper/0/0xffffffff
Pid: 0, comm: swapper Tainted: P 2.6.25-rc8-mm1 #4

Call Trace:
[<ffffffff8020b2f4>] ? default_idle+0x0/0x74
[<ffffffff8022be19>] __schedule_bug+0x5d/0x61
[<ffffffff80552aea>] schedule+0x11a/0x9e4
[<ffffffff805536ce>] ? preempt_schedule+0x3c/0xaa
[<ffffffff802480f1>] ? hrtimer_forward+0x82/0x96
[<ffffffff804600a4>] ? cpuidle_idle_call+0x0/0xd5
[<ffffffff8020b2f4>] ? default_idle+0x0/0x74
[<ffffffff8020b2e0>] cpu_idle+0xf6/0x10a
[<ffffffff80540cb2>] rest_init+0x86/0x8a

Eventually, I end up with a basically hung system, and need to alt-sysrq-B.

Yes, I know it's tainted, and it's possible the root cause is a self-inflicted
buggy module - but the traceback above seems odd. Did some of my code manage
to idle the CPU while is_atomic was set, or is the path from cpu_idle on down
doing something it shouldn't be?

(I admit being confused - if my code was the source of the is_atomic error,
shouldn't it have been caught on the *previous* call to schedule - the one
that ran through all the queues and decided we should invoke idle?
Andrew Morton
2008-04-07 06:48:14 UTC
Permalink
Post by V***@vt.edu
Post by Andrew Morton
ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc8/2.6.25-rc8-mm1/
Been seeing these crop up once in a while - can take hours after a reboot
before I see the first one, but once I see one, I'm likely to see more, at
a frequency of anywhere from ~5seconds to ~10 minutes between BUG msgs.
BUG: scheduling while atomic: swapper/0/0xffffffff
Pid: 0, comm: swapper Tainted: P 2.6.25-rc8-mm1 #4
[<ffffffff8020b2f4>] ? default_idle+0x0/0x74
[<ffffffff8022be19>] __schedule_bug+0x5d/0x61
[<ffffffff80552aea>] schedule+0x11a/0x9e4
[<ffffffff805536ce>] ? preempt_schedule+0x3c/0xaa
[<ffffffff802480f1>] ? hrtimer_forward+0x82/0x96
[<ffffffff804600a4>] ? cpuidle_idle_call+0x0/0xd5
[<ffffffff8020b2f4>] ? default_idle+0x0/0x74
[<ffffffff8020b2e0>] cpu_idle+0xf6/0x10a
[<ffffffff80540cb2>] rest_init+0x86/0x8a
Eventually, I end up with a basically hung system, and need to alt-sysrq-B.
Yes, I know it's tainted, and it's possible the root cause is a self-inflicted
buggy module - but the traceback above seems odd. Did some of my code manage
to idle the CPU while is_atomic was set, or is the path from cpu_idle on down
doing something it shouldn't be?
I'd say that there's an unlock missing somewhere.
Post by V***@vt.edu
(I admit being confused - if my code was the source of the is_atomic error,
shouldn't it have been caught on the *previous* call to schedule - the one
that ran through all the queues and decided we should invoke idle?
Sounds sane. Perhaps preempt_count is getting mucked up in interrupt
context?

iirc there's some toy in either the recently-added tracing code or still in
the -rt tree which would help find a missed unlock, but I forget what it was.
Ingo will know...
Continue reading on narkive:
Loading...