2007-08-22 09:17:34

by Andrew Morton

[permalink] [raw]
Subject: 2.6.23-rc3-mm1


ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/

- git-ixgbe.patch got dropped - git-net.patch destroyed it

- then git-net got dropped as it doesn't work

- the -mm import-to-git engine still isn't working



Boilerplate:

- See the `hot-fixes' directory for any important updates to this patchset.

- To fetch an -mm tree using git, use (for example)

git-fetch git://git.kernel.org/pub/scm/linux/kernel/git/smurf/linux-trees.git tag v2.6.16-rc2-mm1
git-checkout -b local-v2.6.16-rc2-mm1 v2.6.16-rc2-mm1

- -mm kernel commit activity can be reviewed by subscribing to the
mm-commits mailing list.

echo "subscribe mm-commits" | mail [email protected]

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

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

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

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

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

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



Changes since 2.6.23-rc2-mm2:

origin.patch
git-acpi.patch
git-alsa.patch
git-agpgart.patch
git-audit-master.patch
git-cpufreq.patch
git-powerpc.patch
git-dma.patch
git-drm.patch
git-dvb.patch
git-hwmon.patch
git-gfs2-nmw.patch
git-hid.patch
git-ieee1394.patch
git-infiniband.patch
git-input.patch
git-jfs.patch
git-jg-misc.patch
git-kvm.patch
git-libata-all.patch
git-m32r.patch
git-md-accel.patch
git-mips.patch
git-mmc.patch
git-mtd.patch
git-ubi.patch
git-netdev-all.patch
git-backlight.patch
git-nfs.patch
git-nfsd.patch
git-r8169.patch
git-selinux.patch
git-s390.patch
git-sh.patch
git-scsi-misc.patch
git-scsi-rc-fixes.patch
git-sparc64.patch
git-unionfs.patch
git-v9fs.patch
git-watchdog.patch
git-wireless.patch
git-ipwireless_cs.patch
git-newsetup.patch
git-xfs.patch
git-cryptodev.patch
git-kgdb.patch

git trees

-blackfin-arch-after-removing-fsh-from-mmh-fix-the-broken-on-blackfin-arch.patch
-fix-hpet-init-race.patch
-direct-io-fix-error-path-crashes.patch
-stifb-detect-cards-in-double-buffer-mode-more-reliably.patch
-fbcon-kill-compile-warning.patch
-fbcon-kill-compile-warning-fix.patch
-pvr2fb-fix-oops-when-pseudo_palette-is-written.patch
-pvr2fb-consolidated-cleanup-of-pvr2fbc.patch
-pvr2fb-update-documentation-fb-pvr2fbtxt.patch
-matroxfb-rectify-jitter-g450-g550.patch
-frv-connect-up-fallocate.patch
ecryptfs-fix-lookup-error-for-special-files.patch
-fix-missing-numa_zonelist_order-sysctl.patch
-remove-unused-struct-proc_dir_entryset.patch
-linux-audit-list-is-subscribers-only.patch
-ecryptfs-fix-error-handling-in-ecryptfs_init.patch
-hibernation-do-not-try-to-mark-invalid-pfns-as-nosave.patch
-drivers-char-pcmcia-cm40x0_csc-fix-release-function-call.patch
-memory-hotplug-document-take-3.patch
-kernel-parameterstxt-watchdogtxt-should-be-wdttxt.patch
-spi_mpc83xx-in-qe-mode-use-sysclk-2.patch
-spi_mpc83xx-fix-prescale-modulus-calculation.patch
-update-checkpatchpl-to-version-009.patch
-documentation-sysrq-description-of-h-slightly-inaccurate.patch
-docs-note-about-select-in-kconfig-languagetxt.patch
-fix-serial-buffer-memory-leak.patch
-fix-serial-buffer-memory-leak-fix.patch
-mtdchar-build-fix.patch
-hex_dump-add-missing-const-qualifiers.patch
-rcu-remove-prototype-for-nonexistent-function.patch
-cris-drivers-cdrom-kconfig-no-longer.patch
-spidev-warning-fix.patch
-timerremove-clockevents_unregister_notifier.patch
-fix-compilation-with-gcc-42.patch
-fix-compilation-with-gcc-42-fix.patch
-lguest-files-should-explicitly-include-asm-paravirth.patch
-alpha-werror-fixes-for-sys_titanc.patch
-readahead-docbook-fix.patch
-finish-i386-and-x86-64-sysdata-conversion.patch
-changing-include-asm-generic-pgtableh-for-non-mmu.patch
-acpi-add-reboot-mechanism-fix.patch
-acpi-move-timer-broadcast-and-pmtimer-access-before-c3-arbiter-shutdown.patch
-make-drivers-acpi-eventcacpi_event_seqnum-static.patch
-acpi-ec-remove-potential-deadlock-from-ec.patch
-emu10k1-remove-redundant-memset.patch
-sound-pci-ioremap-iounmap-balancing.patch
-kcopyd-use-mutex-instead-of-semaphore.patch
-drivers-md-dm-hw-handlerc-kmalloc-memset-conversion-to-kzalloc.patch
-drivers-md-dm-path-selectorc-kmalloc-memset-conversion-to-kzalloc.patch
-drivers-md-dm-tablec-kmalloc-memset-conversion-to-kzalloc.patch
-drivers-md-dm-targetc-kmalloc-memset-conversion-to-kzalloc.patch
-powerpc-clean-out-a-bunch-of-duplicate-includes.patch
-fix-typos-in-fs-sysfs-filec.patch
-nozomi-shoot-defunct-label.patch
-drivers-base-power-make-2-functions-static.patch
-dma-arch-fix.patch
-dma-intel_ioatdma-build-fix.patch
-git-dma-up-fix.patch
-initialize-filp-private_data-only-once-in-em28xx_v4l2_open.patch
-jdelvare-i2c-i2c-i801-typo-erroneous.patch
-jdelvare-i2c-i2c-mpc-pass-correct-dev_id-to-free_irq.patch
-jdelvare-i2c-i2c-isp1301_omap-build-fixes.patch
-jdelvare-i2c-i2c-iop3xx-set-adapater-class.patch
-jdelvare-i2c-i2c-mpc-dont-disable-i2c-module-on-stop-condition.patch
-ds1682-add-sesnsors-kconfig-variable-prefix.patch
-add-includes-to-scsi_transport_iscsih.patch
-m68k-mac-make-mac_hid_mouse_emulate_buttons.patch
-libata-add-irq_flags-to-struct-pata_platform_info-fix.patch
-ata-add-the-sw-ncq-support-to-sata_nv-for-mcp51-mcp55-mcp61.patch
-ata-add-the-sw-ncq-support-to-sata_nv-for-mcp51-mcp55-mcp61-fix.patch
-sata_nv-allow-changing-queue-depth.patch
-libata-adjust-libata-to-ignore-errors-after.patch
-libata-acpi-checks-for-80wire-cable-headers.patch
-libata-acpi-checks-for-80wire-cable-implementation.patch
-libata-acpi-checks-for-80wire-cable-use-in-pata_amd.patch
-libata-acpi-checks-for-80wire-cable-use-in-pata_via.patch
-fix-libata-warnings-with-config_pm=n.patch
-libata-correct-iordy-handling.patch
-libata-check-for-an-support.patch
-libata-send-event-when-an-received.patch
-pata_cmd64x-set-up-mwdma-modes-properly.patch
-ata_piix-disallow-udma-133-on-ich5-ich7.patch
-ide-ide-make-config_ide_generic-default-to-n.patch
-ide-ide-cris-fix-set-pio-mode.patch
-ide-ide-config-drive-for-dma-fixes.patch
-ide-ide-pmac-fix-drive-init-speed-reporting.patch
-ide-ide-add-cable-detection-for-early-udma66-devices-take-3.patch
-ide-ide-config-drive-speed-bugfixes.patch
-ide-cs5530-add-missing-dma-base-check.patch
-ide-pdc202xx_new-add-missing-dma-base-check.patch
-ide-pdc202xx_old-add-missing-dma-base-check.patch
-ide-triflex-add-missing-dma-base-check.patch
-ide-ide-st340823a-hpa-workaround-take-3.patch
-ide-hpt34x-fix-config-hpt34x-autodma-n-handling.patch
-drivers-net-ns83820c-add-paramter-to-disable-auto.patch
-via-rhine-disable-rx_copybreak-on-archs-that.patch
-3c59x-check-return-of-pci_enable_device.patch
-clean-up-duplicate-includes-in-drivers-net.patch
-ax88796-printk-fixes.patch
-usb-remove-redundant-memset-from-amd5536udc.patch
-natsemi-fix-netdev-error-acounting.patch
-drivers-net-remove-superfluous-memset.patch
-net-tulip-xircom_cbc-remove-superfulous-priv-assignment.patch
-3c59x-fix-duplex-configuration.patch
-fore200e_param_bs_queue-must-be-__devinit.patch
-ip_auto_config-fix.patch
-ip_auto_config-fix-fix.patch
-clean-up-duplicate-includes-in-drivers-atm.patch
-clean-up-duplicate-includes-in-net-atm.patch
-clean-up-duplicate-includes-in-net-ipv4.patch
-clean-up-duplicate-includes-in-net-ipv6.patch
-clean-up-duplicate-includes-in-net-sched.patch
-clean-up-duplicate-includes-in-net-sunrpc.patch
-clean-up-duplicate-includes-in-net-tipc.patch
-clean-up-duplicate-includes-in-net-xfrm.patch
-fix-theoretical-ccids_readwrite_lock-race.patch
-fib_trie-cleanup.patch
-fib_trie-cleanup-fix.patch
-fib_trie-macro-cleanup.patch
-dccp-fix-memory-leak-and-clean-up-style-dccp_feat_empty_confirm.patch
-drivers-net-wan-hdlc_frc-kmalloc-memset-conversion-to-kzalloc.patch
-drivers-net-irda-irda-usbc-mostly-kmalloc-memset-conversion-to-kalloc.patch
-drivers-atm-iphasec-mostly-kmalloc-memset-conversion-to-kzalloc.patch
-netconsole-cleanups-codingstyle-prettyfication.patch
-netconsole-remove-bogus-check.patch
-netconsole-simplify-boot-module-option-setup-logic.patch
-netconsole-use-netif_running-in-write_msg.patch
-netconsole-add-some-useful-tips-to-documentation.patch
-netconsole-introduce-netconsole_target.patch
-netconsole-introduce-netconsole_netdev_notifier.patch
-netconsole-support-multiple-logging-targets.patch
-netconsole-support-dynamic-reconfiguration-using-configfs.patch
-introduce-u16_max-and-u32_max.patch
-introduce-u16_max-and-u32_max-fix.patch
-introduce-strtol_check_range.patch
-introduce-strtol_check_range-fix.patch
-backlight-make-2-structs-static.patch
-fix-several-memory-leaks-in-cr_backlight_probe-take2.patch
-64-bit-ino-support-for-nfs-client.patch
-dont-optimise-away-baud-rate-changes-when-bother-is-used.patch
-serial-add-support-for-ite-887x-chips.patch
-serial_txx9-fix-modem-control-line-handling.patch
-serial-8250-handle-saving-the-clear-on-read-bits-from-the-lsr.patch
-serial-8250-handle-saving-the-clear-on-read-bits-from-the-lsr-fix.patch
-add-blacklisting-capability-to-serial_pci-to-avoid-misdetection.patch
-add-blacklisting-capability-to-serial_pci-to-avoid-misdetection-fix.patch
-kernel-schedc-make-code-static.patch
-sh64-arch-sh64-kernel-signalh-duplicate-include-removal.patch
-aacraid-rename-check_reset.patch
-incorrect-scsi-transfer-length-computation-from-odd.patch
-clean-up-duplicate-includes-in-drivers-scsi.patch
-megaraid-add-cerc_ata100-support.patch
-drivers-scsi-g_ncr5380c-ncr53c400_pseudo_dma-is-not.patch
-dtc-clean-up-indent-damage-and-add-printk-levels.patch
-drivers-scsi-scsi_errorc-should-include.patch
-drivers-scsi-constantsc-make-2-functions-static.patch
-drivers-scsi-a4000tc-kmalloc-memset-conversion-to-kzalloc.patch
-drivers-scsi-bvme6000_scsic-kmalloc-memset-conversion-to-kzalloc.patch
-drivers-scsi-gdthc-kmalloc-memset-conversion-to-kzalloc.patch
-drivers-scsi-lpfc-lpfc_debugfsc-kmalloc-memset-conversion-to-kcalloc.patch
-drivers-scsi-lpfc-lpfc_initc-kmalloc-memset-conversion-to-kcalloc.patch
-drivers-scsi-lpfc-lpfc_scsic-kmalloc-memset-conversion-to-kzalloc.patch
-drivers-scsi-megaraidc-kmalloc-memset-conversion-to-kzalloc.patch
-drivers-scsi-dpt_i2oc-kmalloc-memset-conversion-to-kzalloc.patch
-drivers-scsi-ipsc-fix-scsi_add_host-warning.patch
-drivers-scsi-ipsc-fix-scsi_add_host-warning-fix.patch
-scsi-ipsc-warning-fix.patch
-clean-up-duplicate-includes-in-drivers-block.patch
-drivers-block-ccissc-kmalloc-memset-conversion-to-kzalloc.patch
-drivers-block-cpqarrayc-better-error-handling-and-kmalloc-memset-conversion-to-kalloc.patch
-sysace-hdio_getgeo-has-its-own-method-for-ages.patch
-gregkh-usb-usb-px2xx_udc-bugfix-missing-check-for-gpio_pullup.patch
-gregkh-usb-usb-fix-bug-with-ehci-cpufreq-patch-on-nvidia-controllers.patch
-usb-typo-in-usb-r8a66597-hcd-config.patch
-nikon-d50-is-an-unusual-device.patch
-kl5kusb105-switch-to-new-speed-api.patch
-mct_u232-convert-to-proper-speed-handling-api-fix.patch
-drivers-usb-misc-ftdi-elanc-kmalloc-memset-conversion-to-kzalloc.patch
-usb-enable-hcd-support-on-sh-unconditionally.patch
-usb-r8a66597-hcd-clean-up-error-path.patch
-x86_64-mm-pci-mmconfig-eax.patch
-revert-x86_64-mm-pci-mmconfig-eax.patch
-fix-x86_64-mm-early-quirks-unification.patch
-x86_64-clean-up-apicid_to_node-declaration.patch
-x86_64-block-irq-balancing-for-timer.patch
-i386-deactivate-the-test-for-the-dead-config_debug_page_type.patch
-i386-vdso-install-unstripped-copies-on-disk.patch
-i386-vdso-install-unstripped-copies-on-disk-fix.patch
-x86_64-ia32-vdso-install-unstripped-copies-on-disk.patch
-x86_64-hide-cond_syscall-behind-__kernel__.patch
-x86_64-vdso-install-unstripped-copies-on-disk.patch
-arch-i386-kernel-smpbootcsetup_trampoline-must-be.patch
-x86_64-make-acpi-the-default-reset-option.patch
-mmconfig-validate-against-acpi-motherboard-resources.patch
-x86_64-use-wbinvd-macro-instead-of-raw-inline-assembly-in-c-files.patch
-i386-remove-unnecessary-code.patch
-x86_64-use-descriptors-functions-instead-of-inline-assembly.patch
-clean-up-duplicate-includes-in-arch-i386-xen.patch
-mtrr-simplify-smp_call_function_single-call-sequence.patch
-cpuid-driver-simplify-smp_call_function_single-call-sequence.patch
-msr-driver-simplify-smp_call_function_single-call-sequence.patch
-x86-disable-unhandled-signals-printk-by-default.patch
-x86_64-store-core-id-bits-in-cpuinfo_x8.patch
-x86_64-use-core-id-bits-for-apicid_to_node-initialization.patch
-x86_64-remove-never-used-apic_mapped.patch
-x86-add-cpu-codenames-for-kconfigcpu.patch
-change-order-in-kconfigcpu-i386.patch
-i386-add-amd64-barcelona-pmu-msr-definitions.patch
-i386-remove-maccumulate-outgoing-args.patch
-arch-i386-mach-generic-probec-make-struct-apic_probe.patch
-arch-i386-mach-es7000-es7000platc-cleanups.patch
-i386-alternativec-really-stop-mces-during-code.patch
-i386-no-need-to-make-enable_cpu_hotplug-a-variable.patch
-arch-i386-mm-discontigc-make-some-variables-static.patch
-x86-expand-proc-interrupts-to-include-missing-vectors-v2.patch
-expand-proc-interrupts-to-include-missing-vectors-v3.patch
-x86-expand-proc-interrupts-to-include-missing-vectors.patch
-arch-x86_64-kernel-io_apicc-kmalloc-memset-conversion-to-kzalloc.patch
-optimize-x86-page-faults-like-all-other-achitectures-and-kill-notifier-cruft.patch
-x86_64-remove-sync_arb_ids.patch
-x86_64-clear-io_apic-before-enabing-apic-error-vector.patch
-x86_64-get-mp_bus_to_node-as-early-v3-fix.patch
-consolidate-show_regs-and-show_registers-for-i386.patch
-i386-clean-up-oops-bug-reports.patch
-x86_64-remove-x86_cpu_to_log_apicid.patch
-fix-a-potential-null-pointer-deref-in-xfs-on-failed-mount.patch
-dma_free_coherent-needs-irqs-enabled-sigh.patch
-usb-serial-fix-oti6858c-segfault-in-termios-handling.patch
-sparsemem-ensure-we-initialise-the-node-mapping-for-sparsemem_static.patch
-sparsemem-ensure-we-initialise-the-node-mapping-for-sparsemem_static-fix.patch
-tpmdd-maintainers.patch
-make-oprofile-call-shutdown-only-once-per-session.patch
-perfctr_watchdog-do-not-bug_on-when-msr-is-unknown.patch
-acpi-bay-send-envp-with-uevent-fix.patch
-acpi-dock-send-key=value-pair-instead-of-plain-value.patch
-kernel-auditscc-fix-an-off-by-one.patch
-document-linux-memory-policy-v3.patch
-futex_unlock_pi-hurts-my-brain-and-may-cause.patch
-block-hide-the-contents-of-linux-bioh-if-config_block=n.patch
-rtc-periodic-irq-fix.patch
-calgary-fix-mis-handled-pci-topology.patch
-fix-some-x86-x86-64-acpi-cpufreq-driver-issues.patch
-belkin_sa-avoid-divide-by-zero-error.patch
-pci-align-bar-settings-for-legacy-mode-ide-fix.patch
-ensure-we-count-pages-transitioning-inactive-via-clear_active_flags.patch
-wait-for-page-writeback-when-directly-reclaiming-contiguous-areas.patch
-wait-for-page-writeback-when-directly-reclaiming-contiguous-areas-fix.patch
-sunrpc-convert-rpc_pipefs-to-use-the-generic-filesystem-notification-hooks.patch

Merged into mainline or a subsystem tree

+sparsemem-ensure-we-initialise-the-node-mapping-for-sparsemem_static.patch
+tpmdd-maintainers.patch
+kernel-auditscc-fix-an-off-by-one.patch
+document-linux-memory-policy-v3.patch
+futex_unlock_pi-hurts-my-brain-and-may-cause.patch
+dont-optimise-away-baud-rate-changes-when-bother-is-used.patch
+serial-add-support-for-ite-887x-chips.patch
+serial_txx9-fix-modem-control-line-handling.patch
+serial-8250-handle-saving-the-clear-on-read-bits-from-the-lsr.patch
+add-blacklisting-capability-to-serial_pci-to-avoid-misdetection.patch
+free_irq-fix-debug_shirq-handling.patch
+documentation-fix-getdelaysc-example-l-option-and-segv.patch
+h8300-missing-include.patch
+ensure-we-count-pages-transitioning-inactive-via-clear_active_flags.patch
+wait-for-page-writeback-when-directly-reclaiming-contiguous-areas.patch
+wait-for-page-writeback-when-directly-reclaiming-contiguous-areas-fix.patch
+correct-name-for-rtc-m41t80.patch
+fix-null-pointer-dereference-in-__vm_enough_memory.patch
+m68k-asm-pageh-needs-linux-compilerh.patch
+m68k-kill-superfluous-extern.patch
+m68k-remove-unnecessary-m68k_memoffset-export-and-init.patch
+remove-dead-code-in-via-pmu68k.patch
+m68k-use-_ac-instead-of-ifdef-__assembly__.patch
+m68k-enable-arbitary-speed-tty-support.patch
+m68k-dont-include-rodata-into-text-segment.patch
+m68k-fix-a-few-hickups-in-drivers-scsi-kconfig.patch
+zorro-make-sysfs-config-attribute-read-only.patch
+m68k-mac-make-mac_hid_mouse_emulate_buttons-declaration-visible.patch
+introduce-config_check_signature-was-re-uninline.patch
+posix-timers-fix-deletion-race.patch
+posix-timers-fix-creation-race.patch
+signalfd-fix-interaction-with-posix-timers.patch
+signalfd-make-it-group-wide-fix-posix-timers-scheduling.patch
+ipmi-fix-warning-in-ipmi_si_intfc.patch
+slab-skip-calling-cache_free_alien-when-the-platform-is-not-numa-capable.patch
+synclink_gt-fix-module-reference.patch
+fix-vm_fault-flags-conversion-for-hugetlb.patch
+w1-fix-w1_remove_master_device-searching.patch
+md-make-sure-a-re-add-after-a-restart-honours-bitmap-when-resyncing.patch
+md-correctly-update-sysfs-when-a-raid1-is-reshaped.patch
+uml-fix-previous-request-size-limit-fix.patch
+autofs4-deadlock-during-create.patch
+serial-add-pci-ids-for-pa-semi-pwrficient-onchip-uarts.patch
+cfag12864b-fix.patch
+slub-use-atomic_long_read-for-atomic_long-variables.patch
+slub-do-not-fail-on-broken-memory-configurations.patch
+rtc-max6902-minor-fixes.patch
+exec-kill-unsafe-bug_onsig-count-checks.patch
+xen-i386-xen-heads-fix-sections-mixup-update-2.patch
+check-for-ppc32-in-imsttfb.patch
+selectionh-add-tty_struct-forward-declaration.patch
+newport_con-warning-fix.patch
+i386-fix-lazy-mode-vmalloc-synchronization-for-paravirt.patch
+get_nodes-should-ignore-invalid-node.patch
+fix-ensure-we-dont-use-bootconsoles-after-init-has-been-released.patch
+au1100fb-move-au1100fb_fb_blank-beforce.patch

2.6.23 queue

+enable-gpes-before-calling-_wak-on-resume.patch
+acpi-fix-a-warning-of-discarding-qualifiers-from-pointer-target-type.patch
+hibernation-make-sure-that-acpi-is-enabled-in-acpi_hibernation_finish.patch

ACPI things

+agk-dm-dm-crypt-drop-device-ref-in-ctr-error-path.patch
+agk-dm-dm-crypt-missing-kfree-in-ctr-error-path.patch
+agk-dm-dm-raid1-fix-leakage.patch
+agk-dm-dm-delay-fix-ctr-error-paths.patch
+agk-dm-dm-rdac-fix-request-cmd_flags.patch
+agk-dm-dm-use-kzalloc.patch
+agk-dm-kcopyd-use-mutex-instead-of-semaphore.patch
+agk-dm-dm-delay-fix-status.patch
+agk-dm-dm-use-is_power_of_2.patch

DM tree updates

+powerpc-vdso-install-unstripped-copies-on-disk-update.patch

Fix powerpc-vdso-install-unstripped-copies-on-disk.patch

+gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch
+gregkh-driver-dmi-id-use-dynamic-sysfs-attributes.patch
+gregkh-driver-dmi-id-possible-cleanup.patch
+gregkh-driver-convert-from-class_device-to-device-for-drivers-video.patch
+gregkh-driver-convert-from-class_device-to-device-in-drivers-char.patch
+gregkh-driver-no-uevent-without-hotplug.patch
+gregkh-driver-uevent-bus-driver.patch
+gregkh-driver-kobject_uevent_trivial.patch
+gregkh-driver-fix-firmware-class-name-collision.patch
+gregkh-driver-drivers-base-power-make-2-functions-static.patch
+gregkh-driver-sysfs-fix-typos-in-fs-sysfs-filec.patch

driver tree updates

+fix-gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch
+fix-2-gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch
+fix-3-gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch
+fix-4-gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch

Fix it

+git-dma-makefile-fix.patch
+disable-ioat.patch

Make git-dma work better

+fix-mux-setup-for-composite-sound-on-avertv-307.patch

dvb fix

+jdelvare-i2c-i2c-piix4-fix-ati-pci-ids.patch
+jdelvare-i2c-i2c-tps65010-new-style-part-1.patch
+jdelvare-i2c-i2c-tps65010-new-style-part-2.patch

I2C tree updates

+infiniband-work-around-gcc-slub-problem.patch

infiniband-vs-slub weirdness

-adbhid-produce-all-capslock-key-events-fix.patch

Folded into adbhid-produce-all-capslock-key-events.patch

+keyboard-capsshift-lock.patch
+10-dots-braille-keyboards.patch
+console-keyboard-events-and-accessibility.patch
+console-keyboard-events-and-accessibility-fix.patch
+console-keyboard-events-and-accessibility-fix-2.patch

input things

+pass-g-to-assembler-under-config_debug_info-fix.patch

Fix pass-g-to-assembler-under-config_debug_info.patch

-alpm-store-interrupt-value.patch
-alpm-increase-number-of-allowable-device-flags.patch
-alpm-enable-link-power-management-for-ata-drivers.patch
-alpm-enable-aggressive-link-power-management-for-ahci-controllers.patch

These got collaterally damaged

+ide-it8213-piix-slc90e66-de-couple-pio-and-udma-modes.patch
+ide-sis5513-clear-prefetch-and-postwrite-for-atapi-devices.patch
+ide-sis5513-remove-proc-ide-sis.patch
+ide-ide-use-pci-vdevice.patch
+ide-ide-remove-config-blk-dev-idedma-forced.patch
+ide-ide-remove-idex-autodma-kernel-parameter.patch
+ide-ide-remove-hwif-autodma-and-drive-autodma.patch
+ide-ide-add-hdx-nodma-kernel-parameter.patch
+ide-ide-remove-config-idedma-onlydisk.patch
+ide-ide-pci-generic-add-declare-generic-pci-dev-macro.patch

IDE tree updates

+fix-ide-ide-hook-acpi-psx-method-to-ide-power-on-off.patch
+fix-ide-ide-remove-ide-dma-check.patch

Fix it

+mips-add-gpio-support-to-the-bcm947xx-platform.patch
+mips-gpio-led-driver-for-the-wgt634u-machine.patch
+mips-move-platform-independent-cfe-code-into-arch-mips-cfe.patch
+mips-add-cfe-support-to-bcm947xx-code.patch
+mips-irix_getcontext-will-always-fail-efault.patch

MIPS things

+git-mmc-fixup.patch

Fix git-mmc.patch

+gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct-vs-git-mmc.patch

Fix git-mmc it for changes in the driver tree

+drivers-mtd-mtdbdic-is-no-longer-an-own-module.patch

MTD fix

+add-3c59x-maintainer.patch
+eepro100-avoid-potential-null-pointer-deref-in-speedo_init_rx_ring.patch
+avoid-possible-null-pointer-deref-in-3c359-driver.patch
+3c59x-check-return-of-pci_enable_device.patch
+dont-use-gfp_dma-for-zone-allocation.patch
+dm9000-fix-interface-hang-under-load.patch

netdev updates

+git-nfs-vs-git-unionfs.patch

the nfs tree broke the unionfs tree

+move-a-few-definitions-to-au1000_xxs1500c.patch

pcmcia cleanup

+serial-keep-the-dtr-setting-for-serial-console.patch

serial fix

+gregkh-pci-pci-make-pcie_get_readrq-visible-in-pcih.patch
+gregkh-pci-pciehp-remove-config_hotplug_pci_pcie_poll_event_mode.patch
+gregkh-pci-pci-hotplug-pciehp-dont-check-bridge-control-on-remove.patch
+gregkh-pci-pci-hotplug-pciehp-request-control-over-pci-express-capability-as-well-as-native-hotplug.patch
+gregkh-pci-pciehp-remove-dbg_xxx_routine.patch
+gregkh-pci-pciehp-remove-trailing-whitespace-from-pciehp_hpcc.patch
+gregkh-pci-pciehp-remove-trailing-whitespace-from-pciehp_corec.patch
+gregkh-pci-pciehp-remove-trailing-whitespace-from-pciehp_ctrlc.patch
+gregkh-pci-pciehp-remove-trailing-whitespace-form-pciehp_pcic.patch
+gregkh-pci-pciehp-minor-cleanups-for-pciehp_hpcc.patch
+gregkh-pci-pci-is_power_of_2-in-drivers-pci-pcic.patch
+gregkh-pci-pci-hotplug-ibmphp-convert-to-kthread.patch
+gregkh-pci-pci-hotplug-cpqphp-convert-to-kthread.patch
+gregkh-pci-dma_free_coherent-needs-irqs-enabled.patch

PCi tree updates

+sched-fix-broken-smt-mc-optimizations-with-cfs.patch
+sched-skip-updating-rqs-next_balance-under-null-sd.patch
+rt-ptracer-can-monopolize-cpu-was-cpu-hotplug-and-real-time.patch

sched updates

+add-includes-to-scsi_transport_iscsih.patch
+scsi-send-media-state-change-modification-events.patch
+hptiop-use-pci-vendor-symbol.patch
+fix-section-mismatch-in-the-adaptec-dpt-scsi-raid-driver.patch
+advansys-printk-fix.patch

scsi fixes

+gregkh-usb-usb-fix-support-for-dell-wireless-broadband.patch
+gregkh-usb-usb-enable-hcd-support-on-sh-unconditionally.patch
+gregkh-usb-usb-r8a66597-hcd-fix-up-error-path.patch
+gregkh-usb-usb-quirks-multicard-reader-doesn-t-like-autosuspend.patch
+gregkh-usb-usb-support-for-the-evolution-scorpion-robots.patch
+gregkh-usb-usb-belkin_sa-avoid-divide-by-zero-error.patch
+gregkh-usb-usb-remove-debug-definition-from-dummy_hcd.patch
+gregkh-usb-usb-serial-fix-oti6858c-segfault-in-termios-handling.patch
+gregkh-usb-usb-blacklist-samsung-ml-2010-printer.patch
+gregkh-usb-usb-accept-1-byte-device-status-replies-fixing-some-b0rken-devices.patch
+gregkh-usb-usb-typo-in-usb-r8a66597-hcd-config.patch
+gregkh-usb-usb-make-hcds-responsible-for-managing-endpoint-queues.patch
+gregkh-usb-usb-don-t-touch-sysfs-stuff-when-altsetting-is-unchanged.patch
+gregkh-usb-usb-cleanups-for-g_file_storage.patch
+gregkh-usb-usb-sisusb2vga-whitespace-cleanups.patch
+gregkh-usb-usb-sisusb2vga-remove-if-0-ed-code.patch
+gregkh-usb-usb-sisusb2vga-mis-spelled-word.patch
+gregkh-usb-usb-sisusb2vga-lindent-drivers-usb-misc-sisusbvga-sisusbh.patch
+gregkh-usb-usb-sisusb2vga-lindent-drivers-usb-misc-sisusbvga-sisusb_initc.patch
+gregkh-usb-usb-sisusb2vga-lindent-drivers-usb-misc-sisusbvga-sisusb_inith.patch
+gregkh-usb-usb-sisusb2vga-lindent-drivers-usb-misc-sisusbvga-sisusb_structh.patch
+gregkh-usb-usb-sisusb2vga-convert-printk-to-dev_-macros.patch
+gregkh-usb-usblp-mutex-in-usblp_check_status.patch
+gregkh-usb-usblp-cosmetics.patch
+gregkh-usb-usbmon-update-pipe-removal-to-suit-my-taste.patch
+gregkh-usb-usbmon-drop-dma-mapping-for-setup-packet.patch
+gregkh-usb-usbmon-smooth-the-core-code.patch
+gregkh-usb-usblp-fix-a-double-kfree.patch
+gregkh-usb-usb-kl5kusb105-witch-to-new-speed-api.patch
+gregkh-usb-usb-mct_u232-convert-to-proper-speed-handling-api-fix.patch
+gregkh-usb-usb-ftdi-elanc-kmalloc-memset-conversion-to-kzalloc.patch
+gregkh-usb-usb-remove-redundant-memset-from-amd5536udc.patch

USB tree updates

+fix-gregkh-usb-usb-sisusb2vga-convert-printk-to-dev_-macros.patch
+ohci-fix-oddball-gcc-warning.patch

USB fixes

-disable-b44-and-bcm43xx.patch

Unneeded

+git-wireless-fixup.patch
+git-wireless-vs-gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch
+git-wireless-printk-fixes.patch
+net-add-ath5k-wireless-driver.patch
+net-add-ath5k-wireless-driver-fix.patch
+ath5k-printk-fix.patch
+ath5k-kconfig-fix.patch
+ath5k-needs-pci.patch

wireless stuff

+x86_64-mm-unwinder.patch
+x86_64-mm-tsc-unstable.patch
+x86_64-mm-sched-clock-share.patch
+x86_64-mm-sched-clock64.patch
+x86_64-mm-vdso-text-offset.patch
+x86_64-mm-create-clflush-inline-remove-hardcoded-wbinvd.patch
+x86_64-mm-i386-add-amd64-barcelona-pmu-msr-definitions.patch
+x86_64-mm-do-not-bug_on-when-msr-is-unknown.patch
+x86_64-mm-make-oprofile-call-shutdown-only-once-per-session.patch
+x86_64-mm-0-null-for-arch-x86_64.patch
+x86_64-mm-less-stack-alignment.patch
+x86_64-mm-pci-gart-cleanups.patch
+x86_64-mm-iommu-merge.patch
+x86_64-mm-make-callgraph-use-dump_trace-on-i386-x86_64.patch
+x86_64-mm-introduce-frame_pointer-and-stack_pointer.patch
+x86_64-mm-remove-sync_arb_ids.patch
+x86_64-mm-clear-io_apic-before-enabing-apic-error-vector.patch
+x86_64-mm-convert-mm_context_t-semaphore-to-a-mutex.patch
+x86_64-mm-clean-up-apicid_to_node-declaration.patch
+x86_64-mm-consolidate-show_regs-and-show_registers-for-i386.patch
+x86_64-mm-mtrr-smp-call-function.patch
+x86_64-mm-make-struct-apic_probe-static.patch
+x86_64-mm-hide-cond_syscall-behind-__kernel.patch
+x86_64-mm-es7000-cleanups.patch
+x86_64-mm-no-need-to-make-enable_cpu_hotplug-a-variable.patch
+x86_64-mm-make-some-variables-static.patch
+x86_64-mm-kmalloc-memset-conversion-to-kzalloc.patch
+x86_64-mm-remove-maccumulate-outgoing-args.patch
+x86_64-mm-setup_trampoline-must-be-__cpuinit.patch
+x86_64-mm-block-irq-balancing-for-timer.patch
+x86_64-mm-deactivate-the-test-for-the-dead-config_debug_page_type.patch
+x86_64-mm-install-unstripped-copies-on-disk.patch
+x86_64-mm-x86_64-ia32-vdso-install-unstripped-copies-on-disk.patch
+x86_64-mm-x86_64-vdso-install-unstripped-copies-on-disk.patch
+x86_64-mm-validate-against-acpi-motherboard-resources.patch
+x86_64-mm-remove-unnecessary-code.patch
+x86_64-mm-use-descriptors-functions-instead-of-inline-assembly.patch
+x86_64-mm-clean-up-duplicate-includes-in-arch-i386-xen.patch
+x86_64-mm-implify-smp_call_function_single-call-sequence.patch
+x86_64-mm-simplify-smp_call_function_single-call-sequence.patch
+x86_64-mm-store-core-id-bits-in-cpuinfo_x8.patch
+x86_64-mm-use-core-id-bits-for-apicid_to_node-initialization.patch
+x86_64-mm-remove-never-used-apic_mapped.patch
+x86_64-mm-add-cpu-codenames-for-kconfig_cpu.patch
+x86_64-mm-change-order-in-kconfig_cpu.patch
+x86_64-mm-clean-up-oops-bug-reports.patch
+x86_64-mm-expand-proc-interrupts-to-include-missing-vectors.patch
+x86_64-mm-remove-x86_cpu_to_log_apicid.patch
+x86_64-mm-bp-apic-init.patch
+x86_64-mm-cpa-clflush.patch
+x86_64-mm-cpa-cleanup.patch
+x86_64-mm-cpa-einval.patch
+x86_64-mm-cpa-arch-macro.patch
+x86_64-mm-remove-str-macros.patch
+x86_64-mm-save-registers-in-saved_context-during-suspend-and-hibernation.patch
+x86_64-mm-svm-disabled.patch

x86 tree updates

-nohz-fix-nohz-x86-dyntick-idle-handling.patch

Dropped - it killed the Vaio

+optimize-x86-page-faults-like-all-other-achitectures-and-kill-notifier-cruft.patch
+x86_64-get-mp_bus_to_node-as-early-v3-update.patch
+x86-make-io-apic-not-connected-pin-print-complete.patch
+i386-optimize-memset-of-6-and-8-bytes.patch

x86 updates

+serio-fix-modpost-warning.patch
+nfs-fix-oops-re-sysctls-and-v4-support.patch
+accounting-regression-since-rc1.patch
+sysfs-dont-warn-on-removal-of-a-nonexistent-binary-file.patch
+usb-storage-fix-bugs-in-the-disconnect-pathway.patch
+g_file_storage-fix-bug-in-dma-buffer-handling.patch
+pcmcia-cistpl-use-get_unaligned-in-cis-parsing.patch
+atl1-disable-broken-64-bit-dma.patch
+therm_throtc-fix-section-mismatch.patch

2.6.23 things which go via subsystem maintainers

+generic-virtual-memmap-support-vmemmap-generify-initialisation-via-helpers.patch

Fix generic-virtual-memmap-support-for-sparsemem-pull-out-the-vmemmap-code-into-its-own-file.patch

+x86_64-sparsemem_vmemmap-vmemmap-x86_64-convert-to-new-helper-based-initialisation.patch

Fix x86_64-sparsemem_vmemmap-2m-page-size-support-ensure-end-of-section-memmap-is-initialised.patch

+ia64-sparsemem_vmemmap-16k-page-size-support-convert-to-new-helper-based-initialisation.patch

Fix ia64-sparsemem_vmemmap-16k-page-size-support.patch

+sparc64-sparsemem_vmemmap-support-vmemmap-convert-to-new-config-options.patch

Fix sparc64-sparsemem_vmemmap-support.patch

+ppc64-sparsemem_vmemmap-support-convert-to-new-config-options.patch

Fix ppc64-sparsemem_vmemmap-support.patch some more

+move-mm_struct-and-vm_area_struct-fix.patch

Fix move-mm_struct-and-vm_area_struct.patch

+slub-slob-use-unlikely-for-kfreezero_or_null_ptr-check.patch
+calculation-of-pgoff-in-do_linear_fault-uses-mixed.patch
+slab-allocators-fail-if-ksize-is-called-with-a-null-parameter.patch
+mm-add-end_buffer_read-helper-function.patch
+fs-fix-nobh-error-handling.patch
+fix-the-max-path-calculation-in-radix-treec.patch

MM things

+git-nfs-vs-nfs-convert-to-new-aops.patch

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

+memoryless-nodes-generic-management-of-nodemasks-for-various-purposes-fix.patch

Fix memoryless-nodes-generic-management-of-nodemasks-for-various-purposes.patch

+memoryless-nodes-fixup-uses-of-node_online_map-in-generic-code.patch

Fix memoryless nodes patches in -mm

+flush-icache-before-set_pte-on-ia64-flush-icache-at-set_pte-fix.patch
+flush-icache-before-set_pte-on-ia64-flush-icache-at-set_pte-fix-update.patch

Fix flush-icache-before-set_pte-on-ia64-flush-icache-at-set_pte.patch

+memory-hotplug-hot-add-with-sparsemem-vmemmap.patch

Fix memory hotunplug patches in -mm for the virtual memmap patches in -mm.

+mm-mempolicyc-cleanups-fix.patch

Fix mm-mempolicyc-cleanups.patch

+security-convert-lsm-into-a-static-interface-vs-fix-null-pointer-dereference-in-__vm_enough_memory.patch

Fix security-convert-lsm-into-a-static-interface.patch even more

+file-capabilities-clear-fcaps-on-inode-change-fix.patch

Fix file-capabilities-clear-fcaps-on-inode-change.patch

+security-cleanups.patch

the security code was dirty

+make-kernel-power-maincsuspend_enter-static.patch

cleanup

+serial-turn-serial-console-suspend-a-boot-rather-than-compile-time-option.patch
+serial-turn-serial-console-suspend-a-boot-rather-than-compile-time-option-update.patch
+s2ram-kill-old-debugging-junk.patch

power management updates

+uml-throw-out-config_mode_tt.patch
+uml-remove-sysdep-threadh.patch
+uml-style-fixes-pass-1.patch
+uml-throw-out-choose_mode.patch
+uml-style-fixes-pass-2.patch
+uml-remove-code-made-redundant-by-choose_mode-removal.patch
+uml-style-fixes-pass-3.patch
+uml-remove-__u64-usage-from-physical-memory-subsystem.patch
+uml-get-rid-of-do_longjmp.patch
+uml-fold-mmu_context_skas-into-mm_context.patch
+uml-rename-pt_regs-general-purpose-register-file.patch
+uml-free-ldt-state-on-process-exit.patch
+uml-remove-os_-usage-from-userspace-files.patch
+uml-replace-clone-with-fork.patch
+uml-fix-inlines.patch
+uml-use-64-bits-for-block-size-on-x86_64.patch
+uml-userspace-files-should-call-libc-directly.patch
+uml-clean-up-tlb-flush-path.patch
+uml-remove-unneeded-if-from-hostfs.patch
+uml-fix-hostfs-style.patch

UML updates

-fs-partitions-checkc-add-add_partition-error-handling.patch

This died - dropped

+ufs-fix-sun-state.patch

UFS fix

+wait_task_zombie-dont-fight-with-non-existing-race-with-a-dying-ptracee.patch
+__group_complete_signal-eliminate-unneeded-wakeup-of-group_exit_task.patch

thread management fixes/cleanups

+unicode-diacritics-support-s390-fix.patch

Fix unicode-diacritics-support.patch

+pie-executable-randomization.patch
+pie-executable-randomization-fix.patch
+pie-executable-randomization-fix-2.patch
+cramfs-error-message-about-endianess.patch
+remove-strict-ansi-check-from-__u64-in-asm-typesh.patch
+shrink-struct-task_structoomkilladj.patch
+remove-struct-task_structio_wait.patch
+ext2-4-use-is_power_of_2.patch
+limit-minixfs-printks-on-corrupted-dir-i_size.patch
+kconfig-syntax-cleanups.patch
+kernel-time-timekeepingc-cleanups.patch
+make-fs-libfscsimple_commit_write-static.patch
+allow-disabling-dnotify-without-embedded.patch
+seqfile-merge-duplite-code-to-seq_open_private.patch
+use-erestart_restartblock-if-poll-is-interrupted-by-a-signal.patch
+use-num_possible_cpus-instead-of-nr_cpus-for-timer.patch
+make-rcutorture-rng-use-temporal-entropy.patch
+aio-account-i-o-wait-time-properly.patch
+fix-f_version-type-should-be-u64-instead-of-unsigned-long.patch
+exec-simplify-sighand-switching.patch
+exec-simplify-the-new-sighand-allocation.patch
+exec-consolidate-2-fast-paths.patch
+exec-rt-sub-thread-can-livelock-and-monopolize-cpu-on-exec.patch
+do_sigaction-dont-worry-about-signal_pending.patch
+jbd-remove-printk-from-j_assert-macros.patch
+jbd2-remove-printk-from-j_assert-macros.patch
+autofs4-reinstate-negatitive-timeout-of-mount-fails.patch
+add-stack-checking-for-blackfin.patch
+binfmt_flat-warning-fixes.patch

The infamous misc

+omap2-mcspi-code-cleanup.patch

omap cleanup

+remove-fs-ext2-balloccreserve_blocks.patch

Clean up the ext2 patches in -mm

+rtc-periodic-irq-fix.patch

RTC fix

+uvesafb-the-driver-core-uvesafb-set-the-refresh-rate-to-60hz-if-nocrtc-is-used.patch
+uvesafb-the-driver-core-uvesafb-always-use-mutexes-when-accessing-uvfb_tasks.patch
+uvesafb-the-driver-core-uvesafb-fix-a-typo-in-a-warning.patch
+uvesafb-the-driver-core-uvesafb-use-visual_truecolor-as-the-default-visual.patch
+uvesafb-the-driver-core-uvesafb-use-the-default-refresh-rate-if-the-monitor-limits-are-not-set.patch
+uvesafb-the-driver-core-uvesafb-try-to-set-mode-with-default-timings-if-setting-it-with-our-own-timings-failed.patch
+uvesafb-documentation-uvesafb-add-info-about-pmipal-yrap-and-ypan-being-available-only-on-x86.patch
+pm3fb-mtrr-support-and-noaccel-option-make-pm3fb_init-static-again.patch
+pm2fb-mtrr-support-and-noaccel-option-pm2fb-lowsyncs-section-mismatch-fix.patch
+fbdev-fb_create_modedb-non-static-int-first-=-1.patch
+fbdev-fb_create_modedb-non-static-int-first-=-1-fix.patch
+pm2fb-permedia-2v-hardware-cursor-support.patch
+pm3fb-hardware-cursor-support.patch
+s3c2410fb-code-cleanup.patch
+s3c2410fb-remove-fb_info-pointer-from-s3c2410fb_info.patch
+s3c2410fb-multi-display-support.patch
+s3c2410fb-add-margin-fields-to-s3c2410fb_display.patch
+s3c2410fb-use-new-margin-fields.patch
+s3c2410fb-remove-lcdcon3-register-from-s3c2410fb_display.patch
+s3c2410fb-add-vertical-margins-fields-to-s3c2410fb_display.patch
+s3c2410fb-use-vertical-margins-values.patch
+s3c2410fb-add-pulse-length-fields-to-s3c2410fb_display.patch
+s3c2410fb-remove-lcdcon2-and-lcdcon3-register-fields.patch
+s3c2410fb-fix-missing-registers-offset.patch

fbdev updates

+ext4-remove-obsolete-fragments.patch

ext4 leanup

+pnp-fix-up-after-lindent.patch
+pnpacpi-simplify-irq_flags.patch
+pnpacpi-remove-unnecessary-casts-of-void.patch
+isapnp-removed-unused-isapnp_detected-and-isapnp_debug.patch
+pnp-remove-module-infrastructure.patch
+pnp-remove-null-pointer-checks.patch
+pnp-make-pnpacpi_suspend-handle-errors.patch

pnp updates

+memoryless-nodes-fixup-uses-of-node_online_map-in-generic-code-prefetch.patch

fix swap-prefetch for memoryless nodes

+sysctl-error-on-bad-sysctl-tables-kernel-sysctl_checkc-must-include-linux-stringh.patch

Fix sysctl-error-on-bad-sysctl-tables.patch

+sysctl-remove-broken-cdrom-binary-sysctls-update.patch

Fix sysctl-remove-broken-cdrom-binary-sysctls.patch

+sysctl-parport-remove-binary-paths.patch
+sysctl-simplify-the-pty-sysctl-logic.patch
+sysctl-remove-broken-netfilter-binary-sysctls.patch
+sysctl-clean-up-the-sched-debug-sysctl-usage.patch
+sysctl-update-sysctl_checks-list-of-binary-paths.patch
+sysctl-remove-the-cad_pid-binary-sysctl-path.patch

More sysctl work

+v3-file-capabilities-alter-behavior-of-cap_setpcap.patch

An out-of-place file capabilities update

+char-mxser_new-upgrade-to-110.patch
+char-mxser_new-move-to-pci_vdevice.patch
+char-mxser_new-remove-useless-comments-in-mxser_cards.patch

serial driver work

-update-getdelays-to-become-containerstats-aware.patch

Dropped, I think.

+pid-namespaces-define-is_global_init-and-is_container_init-fix-capabilityc-to-work-with-threaded-init.patch
+pid-namespaces-define-is_global_init-and-is_container_init-versus-x86_64-mm-i386-show-unhandled-signals-v3.patch
+pid-namespaces-rework-forget_original_parent.patch
+pid-namespaces-move-exit_task_namespaces.patch
+pid-namespaces-introduce-ms_kernmount-flag.patch
+pid-namespaces-prepare-proc_flust_task-to-flush-entries-from-multiple-proc-trees.patch
+pid-namespaces-introduce-struct-upid.patch
+pid-namespaces-add-support-for-pid-namespaces-hierarchy.patch
+pid-namespaces-make-alloc_pid-free_pid-and-put_pid-work-with-struct-upid.patch
+pid-namespaces-helpers-to-obtain-pid-numbers.patch
+pid-namespaces-helpers-to-find-the-task-by-its-numerical-ids.patch
+pid-namespaces-helpers-to-find-the-task-by-its-numerical-ids-fix.patch
+pid-namespaces-move-alloc_pid-lower-in-copy_process.patch
+pid-namespaces-make-proc-have-multiple-superblocks-one-for-each-namespace.patch
+pid-namespaces-miscelaneous-preparations-for-pid-namespaces.patch
+pid-namespaces-allow-cloning-of-new-namespace.patch
+pid-namespaces-allow-cloning-of-new-namespace-fix-check-for-return-value-of-create_pid_namespace.patch
+pid-namespaces-make-proc_flush_task-actually-from-entries-from-multiple-namespaces.patch
+pid-namespaces-initialize-the-namespaces-proc_mnt.patch
+pid-namespaces-create-a-slab-cache-for-struct-pid_namespace.patch
+pid-namespaces-allow-signalling-container-init.patch
+pid-namespaces-destroy-pid-namespace-on-inits-death.patch
+pid-namespaces-changes-to-show-virtual-ids-to-user.patch
+pid-namespaces-changes-to-show-virtual-ids-to-user-fix-the-return-value-of-sys_set_tid_address.patch
+pid-namespaces-changes-to-show-virtual-ids-to-user-use-find_task_by_pid_ns-in-places-that-operate-with-virtual.patch
+pid-namespaces-changes-to-show-virtual-ids-to-user-use-find_task_by_pid_ns-in-places-that-operate-with-virtual-fix.patch
+pid-namespaces-changes-to-show-virtual-ids-to-user-use-find_task_by_pid_ns-in-places-that-operate-with-virtual-fix-2.patch
+pid-namespaces-changes-to-show-virtual-ids-to-user-use-find_task_by_pid_ns-in-places-that-operate-with-virtual-fix-3.patch
+pid-namespaces-changes-to-show-virtual-ids-to-user-fix.patch
+pid-namespaces-remove-the-struct-pid-unneeded-fields.patch
+isolate-some-explicit-usage-of-task-tgid.patch

pid namespaces updates

+add-missing-newlines-to-some-uses-of-dev_level-messages.patch

cleanup

+add-scaled-time-to-taskstats-based-process-accounting.patch
+add-missing-newlines-to-some-uses-of-dev_level-messages-fix.patch
+powerpc-add-scaled-time-accounting.patch

process accounting feature work

+fs-select-remove-unused-macros.patch
+cyber2000fb-rename-bit-macro.patch
+i2c-pxa-rename-bit-macro-to-pxa_bit.patch
+s2io-rename-bit-macro.patch
+amba-pl011-rename-bit-macro.patch
+define-first-set-of-bit-macros.patch
+get-rid-of-input-bit-duplicate-defines.patch
+define-global-bit-macro.patch
+flashpoint-use-bit-instead-of-bitw.patch

cleanups

+proc-export-a-processes-resource-limits-via-proc-pid.patch
+fix-tsk-exit_state-usage-resend.patch
+isolate-the-explicit-usage-of-signal-pgrp.patch

More task management updates

+reiser4-fix-readpage_unix_file.patch
+reiser4-cryptcompress-misc-fixups-2.patch
+reiser4-cryptcompress-misc-fixups-make-3-functions-static.patch

reiser4 updates

+profile-likely-unlikely-macros-fix.patch

Fix profile-likely-unlikely-macros.patch



All 1396 patches:

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



2007-08-22 10:11:44

by Michal Piotrowski

[permalink] [raw]
Subject: [BUG] fs/xfs/xfs_bmap_btree.c:2312: error: 'b' undeclared (first use in this function) (Was Re: 2.6.23-rc3-mm1)

Andrew Morton pisze:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>

/home/devel/linux-mm/fs/xfs/xfs_bmap_btree.c: In function 'xfs_bmbt_set_allf':
/home/devel/linux-mm/fs/xfs/xfs_bmap_btree.c:2312: error: 'b' undeclared (first use in this function)
/home/devel/linux-mm/fs/xfs/xfs_bmap_btree.c:2312: error: (Each undeclared identifier is reported only once
/home/devel/linux-mm/fs/xfs/xfs_bmap_btree.c:2312: error: for each function it appears in.)
/home/devel/linux-mm/fs/xfs/xfs_bmap_btree.c: In function 'xfs_bmbt_disk_set_allf':
/home/devel/linux-mm/fs/xfs/xfs_bmap_btree.c:2372: error: 'b' undeclared (first use in this function)
make[3]: *** [fs/xfs/xfs_bmap_btree.o] Error 1
make[2]: *** [fs/xfs] Error 2
make[1]: *** [fs] Error 2
make: *** [_all] Error 2

Regards,
Michal

--
LOG
http://www.stardust.webpages.pl/log/

2007-08-22 10:27:50

by Michal Piotrowski

[permalink] [raw]
Subject: Re: [BUG] fs/xfs/xfs_bmap_btree.c:2312: error: 'b' undeclared (first use in this function) (Was Re: 2.6.23-rc3-mm1)

Michal Piotrowski pisze:
> Andrew Morton pisze:
>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>>
>
> /home/devel/linux-mm/fs/xfs/xfs_bmap_btree.c: In function 'xfs_bmbt_set_allf':
> /home/devel/linux-mm/fs/xfs/xfs_bmap_btree.c:2312: error: 'b' undeclared (first use in this function)
> /home/devel/linux-mm/fs/xfs/xfs_bmap_btree.c:2312: error: (Each undeclared identifier is reported only once
> /home/devel/linux-mm/fs/xfs/xfs_bmap_btree.c:2312: error: for each function it appears in.)
> /home/devel/linux-mm/fs/xfs/xfs_bmap_btree.c: In function 'xfs_bmbt_disk_set_allf':
> /home/devel/linux-mm/fs/xfs/xfs_bmap_btree.c:2372: error: 'b' undeclared (first use in this function)
> make[3]: *** [fs/xfs/xfs_bmap_btree.o] Error 1
> make[2]: *** [fs/xfs] Error 2
> make[1]: *** [fs] Error 2
> make: *** [_all] Error 2
>

Build fix.

Regards,
Michal

--
LOG
http://www.stardust.webpages.pl/log/

Signed-off-by: Michal Piotrowski <[email protected]>

--- linux-mm-clean/fs/xfs/xfs_bmap_btree.c 2007-08-22 12:20:35.000000000 +0200
+++ linux-mm/fs/xfs/xfs_bmap_btree.c 2007-08-22 12:15:52.000000000 +0200
@@ -2309,7 +2309,7 @@ xfs_bmbt_set_allf(
((xfs_bmbt_rec_base_t)blockcount &
(xfs_bmbt_rec_base_t)XFS_MASK64LO(21));
#else /* !XFS_BIG_BLKNOS */
- if (ISNULLSTARTBLOCK(b)) {
+ if (ISNULLSTARTBLOCK(startblock)) {
r->l0 = ((xfs_bmbt_rec_base_t)extent_flag << 63) |
((xfs_bmbt_rec_base_t)startoff << 9) |
(xfs_bmbt_rec_base_t)XFS_MASK64LO(9);
@@ -2369,7 +2369,7 @@ xfs_bmbt_disk_set_allf(
((xfs_bmbt_rec_base_t)blockcount &
(xfs_bmbt_rec_base_t)XFS_MASK64LO(21)));
#else /* !XFS_BIG_BLKNOS */
- if (ISNULLSTARTBLOCK(b)) {
+ if (ISNULLSTARTBLOCK(startblock)) {
r->l0 = cpu_to_be64(
((xfs_bmbt_rec_base_t)extent_flag << 63) |
((xfs_bmbt_rec_base_t)startoff << 9) |

2007-08-22 13:04:29

by Kamalesh Babulal

[permalink] [raw]
Subject: [BUG] 2.6.23-rc3-mm1 - kernel BUG at net/core/skbuff.c:95!

Hi Andrew,

Following Kernel Bug was raised when i tried compiling and booting ppc64
machine
with 2.6.23-rc3-mm1 kernel.

=================================================================

Freeing initrd memory: 908k freed

sysctl table check failed: /kernel .1 Writable sysctl directory

skb_over_panic: text:c0000000002bf840 len:139 put:29 head:c00000000ffe7400 data:c00000000ffe7400 tail:0x8b end:0x80 dev:<NULL>

------------[ cut here ]------------

kernel BUG at net/core/skbuff.c:95!

Oops: Exception in kernel mode, sig: 5 [#1]

SMP NR_CPUS=128 NUMA pSeries

Modules linked in:

NIP: c0000000003fd7c4 LR: c0000000003fd7c0 CTR: 80000000000f97dc

REGS: c0000000027f3850 TRAP: 0700 Not tainted (2.6.23-rc3-mm1-autokern1)

MSR: 8000000000029032 <EE,ME,IR,DR> CR: 24288024 XER: 00000010

TASK = c000000009fc0000[1] 'swapper' THREAD: c0000000027f0000 CPU: 0

GPR00: c0000000003fd7c0 c0000000027f3ad0 c000000000737710 0000000000000082

GPR04: 0000000000000001 0000000000000001 0000000000000000 c00000000062bb3c

GPR08: 0000000000000000 c00000000067b2e0 0000000000002100 c00000000077b110

GPR12: 0000000000004000 c000000000649f00 0000000000000000 0000000000000000

GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000

GPR20: 0000000000000000 c00000000802a0c0 c00000000052ea30 c0000000005392a8

GPR24: c000000009f6b908 c0000000006a4000 c0000000026e2000 0000000000000020

GPR28: c00000000ffe746e 0000000000000004 c0000000006f5340 c000000009f6a900

NIP [c0000000003fd7c4] .skb_over_panic+0x50/0x58

LR [c0000000003fd7c0] .skb_over_panic+0x4c/0x58

Call Trace:

[c0000000027f3ad0] [c0000000003fd7c0] .skb_over_panic+0x4c/0x58 (unreliable)

[c0000000027f3b60] [c0000000002bf848] .kobject_uevent_env+0x4f8/0x528

[c0000000027f3c80] [c00000000032512c] .device_add+0x2bc/0x730

[c0000000027f3d50] [c000000000022330] .vio_register_device_node+0x1a4/0x274

[c0000000027f3e00] [c0000000005d34a8] .vio_bus_init+0xa0/0xec

[c0000000027f3e80] [c0000000005c8c6c] .kernel_init+0x20c/0x4b8

[c0000000027f3f90] [c0000000000267b0] .kernel_thread+0x4c/0x68

Instruction dump:

80a30068 e8e300b8 e90300c0 812300b0 814300b4 2fa00000 409e0008 e81e8008

e87e8010 f8010070 4bc59055 60000000 <0fe00000> 48000000 7c0802a6 fbc1fff0

Kernel panic - not syncing: Attempted to kill init!



Thanks & Regards,
Kamalesh Babulal.

2007-08-22 13:35:05

by Gabriel C

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1


...

CC arch/i386/boot/cpu.o
CC arch/i386/boot/cpucheck.o
WARNING: "div64_64" [net/netfilter/xt_connbytes.ko] has no CRC!
CC arch/i386/boot/edd.o
AS arch/i386/boot/header.o
CC arch/i386/boot/main.o

...

config : http://194.231.229.228/kernel/mm/2.6.23-rc3-mm1/config
build-log: http://194.231.229.228/kernel/mm/2.6.23-rc3-mm1/build-log

Regards,

Gabriel

2007-08-22 14:19:44

by Michal Piotrowski

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On 22/08/07, Andrew Morton <[email protected]> wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>

allyesconfig

RELOCS arch/i386/boot/compressed/vmlinux.relocs
WARNING: Absolute relocations present
Offset Info Type Sym.Value Sym.Name
c06018f3 02ee1f01 R_386_32 c14adad0 _sdata

Regards,
Michal

--
LOG
http://www.stardust.webpages.pl/log/

2007-08-22 15:31:47

by Gabriel C

[permalink] [raw]
Subject: net/ipv4/fib_trie.c - compile error (Re: 2.6.23-rc3-mm1)

Got it with a randconfig ( http://194.231.229.228/kernel/mm/2.6.23-rc3-mm1/r/randconfig-8 )

...

net/ipv4/fib_trie.c: In function 'trie_rebalance':
net/ipv4/fib_trie.c:969: error: lvalue required as unary '&' operand
net/ipv4/fib_trie.c:971: error: lvalue required as unary '&' operand
net/ipv4/fib_trie.c:977: error: lvalue required as unary '&' operand
net/ipv4/fib_trie.c:980: error: lvalue required as unary '&' operand
net/ipv4/fib_trie.c: In function 'fib_insert_node':
net/ipv4/fib_trie.c:1034: error: lvalue required as unary '&' operand
net/ipv4/fib_trie.c:1034: error: lvalue required as unary '&' operand
net/ipv4/fib_trie.c:1034: error: lvalue required as unary '&' operand
net/ipv4/fib_trie.c: In function 'fn_trie_lookup':
net/ipv4/fib_trie.c:1498: error: lvalue required as unary '&' operand
net/ipv4/fib_trie.c:1502: error: lvalue required as unary '&' operand
net/ipv4/fib_trie.c:1502: error: lvalue required as unary '&' operand
net/ipv4/fib_trie.c:1503: error: lvalue required as unary '&' operand
net/ipv4/fib_trie.c: In function 'trie_leaf_remove':
net/ipv4/fib_trie.c:1539: error: lvalue required as unary '&' operand
net/ipv4/fib_trie.c:1539: error: lvalue required as unary '&' operand
net/ipv4/fib_trie.c:1539: error: lvalue required as unary '&' operand
net/ipv4/fib_trie.c:1554: error: lvalue required as unary '&' operand
net/ipv4/fib_trie.c: In function 'nextleaf':
net/ipv4/fib_trie.c:1706: error: lvalue required as unary '&' operand
net/ipv4/fib_trie.c:1743: error: lvalue required as unary '&' operand
net/ipv4/fib_trie.c: In function 'fib_trie_get_next':
net/ipv4/fib_trie.c:2046: error: lvalue required as unary '&' operand
net/ipv4/fib_trie.c: In function 'fib_trie_seq_show':
net/ipv4/fib_trie.c:2320: error: lvalue required as unary '&' operand
make[2]: *** [net/ipv4/fib_trie.o] Error 1
make[1]: *** [net/ipv4] Error 2
make: *** [net] Error 2
make: *** Waiting for unfinished jobs....

...

2007-08-22 15:42:22

by Adrian Bunk

[permalink] [raw]
Subject: Re: net/ipv4/fib_trie.c - compile error (Re: 2.6.23-rc3-mm1)

On Wed, Aug 22, 2007 at 05:30:13PM +0200, Gabriel C wrote:
> Got it with a randconfig ( http://194.231.229.228/kernel/mm/2.6.23-rc3-mm1/r/randconfig-8 )
>
> ...
>
> net/ipv4/fib_trie.c: In function 'trie_rebalance':
> net/ipv4/fib_trie.c:969: error: lvalue required as unary '&' operand
> net/ipv4/fib_trie.c:971: error: lvalue required as unary '&' operand
> net/ipv4/fib_trie.c:977: error: lvalue required as unary '&' operand
> net/ipv4/fib_trie.c:980: error: lvalue required as unary '&' operand
>...

Side effect of the git-net removal, temporarily removing
immunize-rcu_dereference-against-crazy-compiler-writers.patch should
work around it.

cu
Adrian

--

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

2007-08-22 15:50:33

by Andrew Morton

[permalink] [raw]
Subject: Re: [BUG] 2.6.23-rc3-mm1 - kernel BUG at net/core/skbuff.c:95!

On Wed, 22 Aug 2007 18:32:36 +0530 Kamalesh Babulal <[email protected]> wrote:

> Hi Andrew,
>
> Following Kernel Bug was raised when i tried compiling and booting ppc64
> machine
> with 2.6.23-rc3-mm1 kernel.
>
> =================================================================
>
> Freeing initrd memory: 908k freed
>
> sysctl table check failed: /kernel .1 Writable sysctl directory
>
> skb_over_panic: text:c0000000002bf840 len:139 put:29 head:c00000000ffe7400 data:c00000000ffe7400 tail:0x8b end:0x80 dev:<NULL>
>
> ------------[ cut here ]------------
>
> kernel BUG at net/core/skbuff.c:95!
>
> Oops: Exception in kernel mode, sig: 5 [#1]
>
> SMP NR_CPUS=128 NUMA pSeries
>
> Modules linked in:
>
> NIP: c0000000003fd7c4 LR: c0000000003fd7c0 CTR: 80000000000f97dc
>
> REGS: c0000000027f3850 TRAP: 0700 Not tainted (2.6.23-rc3-mm1-autokern1)
>
> MSR: 8000000000029032 <EE,ME,IR,DR> CR: 24288024 XER: 00000010
>
> TASK = c000000009fc0000[1] 'swapper' THREAD: c0000000027f0000 CPU: 0
>
> GPR00: c0000000003fd7c0 c0000000027f3ad0 c000000000737710 0000000000000082
>
> GPR04: 0000000000000001 0000000000000001 0000000000000000 c00000000062bb3c
>
> GPR08: 0000000000000000 c00000000067b2e0 0000000000002100 c00000000077b110
>
> GPR12: 0000000000004000 c000000000649f00 0000000000000000 0000000000000000
>
> GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
>
> GPR20: 0000000000000000 c00000000802a0c0 c00000000052ea30 c0000000005392a8
>
> GPR24: c000000009f6b908 c0000000006a4000 c0000000026e2000 0000000000000020
>
> GPR28: c00000000ffe746e 0000000000000004 c0000000006f5340 c000000009f6a900
>
> NIP [c0000000003fd7c4] .skb_over_panic+0x50/0x58
>
> LR [c0000000003fd7c0] .skb_over_panic+0x4c/0x58
>
> Call Trace:
>
> [c0000000027f3ad0] [c0000000003fd7c0] .skb_over_panic+0x4c/0x58 (unreliable)
>
> [c0000000027f3b60] [c0000000002bf848] .kobject_uevent_env+0x4f8/0x528
>
> [c0000000027f3c80] [c00000000032512c] .device_add+0x2bc/0x730
>
> [c0000000027f3d50] [c000000000022330] .vio_register_device_node+0x1a4/0x274
>
> [c0000000027f3e00] [c0000000005d34a8] .vio_bus_init+0xa0/0xec
>
> [c0000000027f3e80] [c0000000005c8c6c] .kernel_init+0x20c/0x4b8
>
> [c0000000027f3f90] [c0000000000267b0] .kernel_thread+0x4c/0x68
>

gargh, sorry, that's probably due to my screwed up attempt to fix Kay's
screwed up
gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch.

Kay sent an update patch but it didn't arrive in time.

Greg, if you haven't yet merged that, please do so asap?

So what _should_ this:

--- a/arch/powerpc/kernel/vio.c~fix-4-gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct
+++ a/arch/powerpc/kernel/vio.c
@@ -373,7 +373,7 @@ static int vio_hotplug(struct device *de
dn = dev->archdata.of_node;
if (!dn)
return -ENODEV;
- cp = of_get_property(dn, "compatible", &length);
+ cp = of_get_property(dn, "compatible", &env->buflen);
if (!cp)
return -ENODEV;

_

have done?

2007-08-22 16:10:18

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Wed, 22 Aug 2007 15:33:27 +0200 Gabriel C <[email protected]> wrote:

>
> ...
>
> CC arch/i386/boot/cpu.o
> CC arch/i386/boot/cpucheck.o
> WARNING: "div64_64" [net/netfilter/xt_connbytes.ko] has no CRC!
> CC arch/i386/boot/edd.o
> AS arch/i386/boot/header.o
> CC arch/i386/boot/main.o

Yeah, I get that too. I was hoping that someone who had a vague clue
about what's causing it might fix it also.

> ...
>
> config : http://194.231.229.228/kernel/mm/2.6.23-rc3-mm1/config
> build-log: http://194.231.229.228/kernel/mm/2.6.23-rc3-mm1/build-log
>
> Regards,
>
> Gabriel

2007-08-22 16:16:47

by Gabriel C

[permalink] [raw]
Subject: drivers/scsi/advansys.c - ld error ( Re: 2.6.23-rc3-mm1 )

CONFIG_SCSI_ADVANSYS=y && CONFIG_ISA=n results in :

...

drivers/built-in.o: In function `advansys_init':
advansys.c:(.init.text+0x38ea): undefined reference to `isa_register_driver'
advansys.c:(.init.text+0x38ff): undefined reference to `isa_register_driver'
advansys.c:(.init.text+0x3926): undefined reference to `isa_unregister_driver'
advansys.c:(.init.text+0x3930): undefined reference to `isa_unregister_driver'
drivers/built-in.o: In function `advansys_exit':
advansys.c:(.exit.text+0x340): undefined reference to `isa_unregister_driver'
advansys.c:(.exit.text+0x34a): undefined reference to `isa_unregister_driver'
make: *** [.tmp_vmlinux1] Error 1

...


I guess advansys_{init,exit} is missing some #ifdef's ..


config : http://194.231.229.228/kernel/mm/2.6.23-rc3-mm1/r/randconfig-9


Gabriel

2007-08-22 16:18:26

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Wed, 22 Aug 2007 16:19:33 +0200 "Michal Piotrowski" <[email protected]> wrote:

> On 22/08/07, Andrew Morton <[email protected]> wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
> >
>
> allyesconfig
>
> RELOCS arch/i386/boot/compressed/vmlinux.relocs
> WARNING: Absolute relocations present
> Offset Info Type Sym.Value Sym.Name
> c06018f3 02ee1f01 R_386_32 c14adad0 _sdata
>

Yeah, that's Greg's pestiferous
gregkh-driver-warn-when-statically-allocated-kobjects-are-used.patch acting
up.

I previously suggested that something like kallsyms_lookup() could be used
for this, but I was cruelly ignored.

2007-08-22 16:24:12

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: fix b43 compilation

On Wednesday, 22 August 2007 11:06, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>
> - git-ixgbe.patch got dropped - git-net.patch destroyed it
>
> - then git-net got dropped as it doesn't work

Apparently, the b43 driver is expecting another version of mac80211.

This patch fixes the compilation, but I'm not sure what about the
functionality. ;-)

Signed-off-by: Rafael J. Wysocki <[email protected]>
---
drivers/net/wireless/b43/main.c | 6 ++----
drivers/net/wireless/b43/xmit.c | 10 ++++------
2 files changed, 6 insertions(+), 10 deletions(-)

Index: linux-2.6.23-rc3-mm1/drivers/net/wireless/b43/main.c
===================================================================
--- linux-2.6.23-rc3-mm1.orig/drivers/net/wireless/b43/main.c
+++ linux-2.6.23-rc3-mm1/drivers/net/wireless/b43/main.c
@@ -1189,8 +1189,7 @@ static void b43_write_probe_resp_plcp(st

plcp.data = 0;
b43_generate_plcp_hdr(&plcp, size + FCS_LEN, rate);
- dur = ieee80211_generic_frame_duration(dev->wl->hw,
- dev->wl->if_id, size,
+ dur = ieee80211_generic_frame_duration(dev->wl->hw, size,
B43_RATE_TO_BASE100KBPS(rate));
/* Write PLCP in two parts and timing for packet transfer */
tmp = le32_to_cpu(plcp.data);
@@ -1246,8 +1245,7 @@ static u8 *b43_generate_probe_resp(struc
/* Set the frame control. */
hdr->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
IEEE80211_STYPE_PROBE_RESP);
- dur = ieee80211_generic_frame_duration(dev->wl->hw,
- dev->wl->if_id, *dest_size,
+ dur = ieee80211_generic_frame_duration(dev->wl->hw, *dest_size,
B43_RATE_TO_BASE100KBPS(rate));
hdr->duration_id = dur;

Index: linux-2.6.23-rc3-mm1/drivers/net/wireless/b43/xmit.c
===================================================================
--- linux-2.6.23-rc3-mm1.orig/drivers/net/wireless/b43/xmit.c
+++ linux-2.6.23-rc3-mm1/drivers/net/wireless/b43/xmit.c
@@ -220,7 +220,6 @@ static void generate_txhdr_fw4(struct b4
} else {
int fbrate_base100kbps = B43_RATE_TO_BASE100KBPS(rate_fb);
txhdr->dur_fb = ieee80211_generic_frame_duration(dev->wl->hw,
- dev->wl->if_id,
fragment_len,
fbrate_base100kbps);
}
@@ -311,16 +310,15 @@ static void generate_txhdr_fw4(struct b4
rts_rate_fb_ofdm = b43_is_ofdm_rate(rts_rate_fb);

if (txctl->flags & IEEE80211_TXCTL_USE_CTS_PROTECT) {
- ieee80211_ctstoself_get(dev->wl->hw, dev->wl->if_id,
- fragment_data, fragment_len,
- txctl,
+ ieee80211_ctstoself_get(dev->wl->hw, fragment_data,
+ fragment_len, txctl,
(struct ieee80211_cts *)(txhdr->
rts_frame));
mac_ctl |= B43_TX4_MAC_SENDCTS;
len = sizeof(struct ieee80211_cts);
} else {
- ieee80211_rts_get(dev->wl->hw, dev->wl->if_id,
- fragment_data, fragment_len, txctl,
+ ieee80211_rts_get(dev->wl->hw, fragment_data,
+ fragment_len, txctl,
(struct ieee80211_rts *)(txhdr->
rts_frame));
mac_ctl |= B43_TX4_MAC_SENDRTS;

2007-08-22 16:28:23

by Matthew Wilcox

[permalink] [raw]
Subject: Re: drivers/scsi/advansys.c - ld error ( Re: 2.6.23-rc3-mm1 )

On Wed, Aug 22, 2007 at 06:15:14PM +0200, Gabriel C wrote:
> advansys.c:(.init.text+0x38ea): undefined reference to `isa_register_driver'
> I guess advansys_{init,exit} is missing some #ifdef's ..

That's one conclusion. I prefer to think that the ISA support should
behave the same as the PCI and EISA support:

----

When CONFIG_ISA is disabled, the isa_driver support will not be compiled
in. Define stubs so that we don't get link-time errors.

Signed-off-by: Matthew Wilcox <[email protected]>

diff --git a/include/linux/isa.h b/include/linux/isa.h
index 1b85533..b0270e3 100644
--- a/include/linux/isa.h
+++ b/include/linux/isa.h
@@ -22,7 +22,18 @@ struct isa_driver {

#define to_isa_driver(x) container_of((x), struct isa_driver, driver)

+#ifdef CONFIG_ISA
int isa_register_driver(struct isa_driver *, unsigned int);
void isa_unregister_driver(struct isa_driver *);
+#else
+static inline int isa_register_driver(struct isa_driver *d, unsigned int i)
+{
+ return 0;
+}
+
+static inline void isa_unregister_driver(struct isa_driver *d)
+{
+}
+#endif

#endif /* __LINUX_ISA_H */

--
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."

2007-08-22 16:33:38

by Gabriel C

[permalink] [raw]
Subject: Re: net/ipv4/fib_trie.c - compile error (Re: 2.6.23-rc3-mm1)

Adrian Bunk wrote:
> On Wed, Aug 22, 2007 at 05:30:13PM +0200, Gabriel C wrote:
>> Got it with a randconfig ( http://194.231.229.228/kernel/mm/2.6.23-rc3-mm1/r/randconfig-8 )
>>
>> ...
>>
>> net/ipv4/fib_trie.c: In function 'trie_rebalance':
>> net/ipv4/fib_trie.c:969: error: lvalue required as unary '&' operand
>> net/ipv4/fib_trie.c:971: error: lvalue required as unary '&' operand
>> net/ipv4/fib_trie.c:977: error: lvalue required as unary '&' operand
>> net/ipv4/fib_trie.c:980: error: lvalue required as unary '&' operand
>> ...
>
> Side effect of the git-net removal, temporarily removing
> immunize-rcu_dereference-against-crazy-compiler-writers.patch should
> work around it.

Yes it does , thx Adrian

>
> cu
> Adrian
>

Gabriel

2007-08-22 16:58:47

by Gabriel C

[permalink] [raw]
Subject: Re: drivers/scsi/advansys.c - ld error ( Re: 2.6.23-rc3-mm1 )

Matthew Wilcox wrote:
> On Wed, Aug 22, 2007 at 06:15:14PM +0200, Gabriel C wrote:
>> advansys.c:(.init.text+0x38ea): undefined reference to `isa_register_driver'
>> I guess advansys_{init,exit} is missing some #ifdef's ..
>
> That's one conclusion. I prefer to think that the ISA support should
> behave the same as the PCI and EISA support:

Yes right , your patch fixes the problem.

>
> ----
>
> When CONFIG_ISA is disabled, the isa_driver support will not be compiled
> in. Define stubs so that we don't get link-time errors.
>
> Signed-off-by: Matthew Wilcox <[email protected]>
>
> diff --git a/include/linux/isa.h b/include/linux/isa.h
> index 1b85533..b0270e3 100644
> --- a/include/linux/isa.h
> +++ b/include/linux/isa.h
> @@ -22,7 +22,18 @@ struct isa_driver {
>
> #define to_isa_driver(x) container_of((x), struct isa_driver, driver)
>
> +#ifdef CONFIG_ISA
> int isa_register_driver(struct isa_driver *, unsigned int);
> void isa_unregister_driver(struct isa_driver *);
> +#else
> +static inline int isa_register_driver(struct isa_driver *d, unsigned int i)
> +{
> + return 0;
> +}
> +
> +static inline void isa_unregister_driver(struct isa_driver *d)
> +{
> +}
> +#endif
>
> #endif /* __LINUX_ISA_H */
>

2007-08-22 17:03:23

by Paul E. McKenney

[permalink] [raw]
Subject: Re: net/ipv4/fib_trie.c - compile error (Re: 2.6.23-rc3-mm1)

On Wed, Aug 22, 2007 at 05:41:11PM +0200, Adrian Bunk wrote:
> On Wed, Aug 22, 2007 at 05:30:13PM +0200, Gabriel C wrote:
> > Got it with a randconfig ( http://194.231.229.228/kernel/mm/2.6.23-rc3-mm1/r/randconfig-8 )
> >
> > ...
> >
> > net/ipv4/fib_trie.c: In function 'trie_rebalance':
> > net/ipv4/fib_trie.c:969: error: lvalue required as unary '&' operand
> > net/ipv4/fib_trie.c:971: error: lvalue required as unary '&' operand
> > net/ipv4/fib_trie.c:977: error: lvalue required as unary '&' operand
> > net/ipv4/fib_trie.c:980: error: lvalue required as unary '&' operand
> >...
>
> Side effect of the git-net removal, temporarily removing
> immunize-rcu_dereference-against-crazy-compiler-writers.patch should
> work around it.

Alternatively, the following one-line patch to net/ipv4/fib_trie.c could
be used.

Signed-off-by: Paul E. McKenney <[email protected]>
---

fib_trie.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff -urpNa -X dontdiff linux-2.6.23-rc3-mm1/net/ipv4/fib_trie.c linux-2.6.23-rc3-mm1.compile/net/ipv4/fib_trie.c
--- linux-2.6.23-rc3-mm1/net/ipv4/fib_trie.c 2007-08-22 09:20:33.000000000 -0700
+++ linux-2.6.23-rc3-mm1.compile/net/ipv4/fib_trie.c 2007-08-22 09:47:33.000000000 -0700
@@ -94,7 +94,7 @@ typedef unsigned int t_key;
#define T_LEAF 1
#define NODE_TYPE_MASK 0x1UL
#define NODE_PARENT(node) \
- ((struct tnode *)rcu_dereference(((node)->parent & ~NODE_TYPE_MASK)))
+ ((struct tnode *)(rcu_dereference((node)->parent) & ~NODE_TYPE_MASK))

#define NODE_TYPE(node) ((node)->parent & NODE_TYPE_MASK)

2007-08-22 17:03:36

by Gabriel C

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

Andrew Morton wrote:
> On Wed, 22 Aug 2007 15:33:27 +0200 Gabriel C <[email protected]> wrote:
>
>> ...
>>
>> CC arch/i386/boot/cpu.o
>> CC arch/i386/boot/cpucheck.o
>> WARNING: "div64_64" [net/netfilter/xt_connbytes.ko] has no CRC!
>> CC arch/i386/boot/edd.o
>> AS arch/i386/boot/header.o
>> CC arch/i386/boot/main.o
>
> Yeah, I get that too. I was hoping that someone who had a vague clue
> about what's causing it might fix it also.

Hmm.. I don't know ( added netdev to Cc ) I got one more :

...

WARNING: "div64_64" [net/ipv4/tcp_cubic.ko] has no CRC!

...

Btw when modprobing these the kernel gets tainted

...

[ 5498.536055] nf_conntrack version 0.5.0 (10240 buckets, 40960 max)
[ 5498.554844] xt_connbytes: no version for "div64_64" found: kernel tainted.

...


>
>> ...
>>
>> config : http://194.231.229.228/kernel/mm/2.6.23-rc3-mm1/config
>> build-log: http://194.231.229.228/kernel/mm/2.6.23-rc3-mm1/build-log
>>

2007-08-22 17:11:55

by Gabriel C

[permalink] [raw]
Subject: drivers/net/ppp_generic - __modpost error ( Re: 2.6.23-rc3-mm1 )

Got it with a randconfig ( http://194.231.229.228/kernel/mm/2.6.23-rc3-mm1/r/randconfig-9 )
( patch from http://lkml.org/lkml/2007/8/22/273 is needed too or CONFIG_SCSI_ADVANSYS need be N)


...

ERROR: "slhc_init" [drivers/net/ppp_generic.ko] undefined!
ERROR: "slhc_remember" [drivers/net/ppp_generic.ko] undefined!
ERROR: "slhc_uncompress" [drivers/net/ppp_generic.ko] undefined!
ERROR: "slhc_free" [drivers/net/ppp_generic.ko] undefined!
ERROR: "slhc_compress" [drivers/net/ppp_generic.ko] undefined!
ERROR: "slhc_toss" [drivers/net/ppp_generic.ko] undefined!
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2

...


Regards,

Gabriel

2007-08-22 17:17:58

by Mel Gorman

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>
> - git-ixgbe.patch got dropped - git-net.patch destroyed it
>
> - then git-net got dropped as it doesn't work
>
> - the -mm import-to-git engine still isn't working
>

>From elm3b6 on test.kernel.org, we get the following build error

08/22/07-07:01:07 building kernel - make bzImage
CHK include/linux/version.h
UPD include/linux/version.h
CHK include/linux/utsrelease.h
UPD include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-x86_64
CC arch/x86_64/kernel/asm-offsets.s
arch/x86_64/kernel/asm-offsets.c:1: error: -mpreferred-stack-boundary=3
is not between 4 and 12
make[1]: *** [arch/x86_64/kernel/asm-offsets.s] Error 1
make: *** [prepare0] Error 2
08/22/07-07:01:08 Build the kernel. Failed rc = 2
08/22/07-07:01:08 build: Building kernel... Failed rc = 1
Failed and terminated the run
08/22/07-07:01:08 command complete: (1) rc=126 (TEST ABORT)
Fatal error, aborting autorun

config file at: http://test.kernel.org/abat/107411/build/dotconfig
gcc version is 3.4.4

This does not occur when using a cross-compiler gcc 3.4.0

--
Mel Gorman

2007-08-22 17:20:18

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: WARNING: during resume from suspend on x86_64

On Wednesday, 22 August 2007 11:06, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/

I get this during resume from suspend to RAM and during hibernation:

WARNING: at /home/rafael/src/mm/linux-2.6.23-rc3-mm1/arch/x86_64/kernel/smp.c:380 smp_call_function_single()

Call Trace:
[<ffffffff8021a97d>] smp_call_function_single+0x52/0xff
[<ffffffff8022e703>] task_rq_lock+0x3d/0x6f
[<ffffffff80230fc0>] set_cpus_allowed+0xbf/0xcc
[<ffffffff802141ab>] sc_freq_event+0x5f/0x63
[<ffffffff80431c38>] notifier_call_chain+0x33/0x65
[<ffffffff8024c11f>] __srcu_notifier_call_chain+0x4b/0x69
[<ffffffff8024c14c>] srcu_notifier_call_chain+0xf/0x11
[<ffffffff803bcfa4>] cpufreq_resume+0x131/0x157
[<ffffffff8038151c>] __sysdev_resume+0x34/0x73
[<ffffffff80381b76>] sysdev_resume+0x1f/0x61
[<ffffffff803865e8>] device_power_up+0x9/0x10
[<ffffffff80256620>] suspend_devices_and_enter+0xbf/0xf7
[<ffffffff802567bb>] enter_state+0x163/0x1e5
[<ffffffff802568e1>] state_store+0xa4/0xc2
[<ffffffff802d7bc5>] subsys_attr_store+0x31/0x33
[<ffffffff802d7e8d>] sysfs_write_file+0xe0/0x11c
[<ffffffff80293b77>] vfs_write+0xc7/0x150
[<ffffffff802940f8>] sys_write+0x47/0x70
[<ffffffff8020bdce>] system_call+0x7e/0x83

Apparently, smp_call_function_single() is unhappy, because it's called with
interrupts disabled by sc_freq_event() executed (as a notifier) by
cpufreq_resume(). However, cpufreq_resume() is always run with one CPU on
line, so all this stuff should be handled differently. Oh, dear.

2007-08-22 17:24:52

by Torsten Kaiser

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On 8/22/07, Andrew Morton <[email protected]> wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
[snip]
> -ata-add-the-sw-ncq-support-to-sata_nv-for-mcp51-mcp55-mcp61.patch
> -ata-add-the-sw-ncq-support-to-sata_nv-for-mcp51-mcp55-mcp61-fix.patch
[snip]
> Merged into mainline or a subsystem tree

That patch is no longer in 2.6.23-rc3-mm1, my bootlog says:
[ 0.000000] Unknown boot option `sata_nv.swncq=1': ignoring

I could not find this patch in any git trees I looked and its removal
mail from mm-commit said:
"This patch was dropped because Changes in Jeff's tree destroyed it."


I only found out about the swncq=1 command line option yesterday and
so tested it only one day.
But I did not have any trouble with it, even as my drive was made by Maxtor.

The chipset:
00:05.0 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
00:05.1 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
00:05.2 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)

The drive:
Device Model: MAXTOR STM3320820AS
Serial Number: 5QF2E698
Firmware Version: 3.AAE

As it worked for me, I hope that patch will be picked up by someone. :)

Torsten

2007-08-22 17:27:19

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: locking boot-time self-test failure

Hello,

Got that on my laptop:

------------------------
| Locking API testsuite:
----------------------------------------------------------------------------
| spin |wlock |rlock |mutex | wsem | rsem |
--------------------------------------------------------------------------
A-A deadlock: ok | ok | ok | ok | ok | ok |
A-B-B-A deadlock: ok | ok | ok | ok | ok | ok |
A-B-B-C-C-A deadlock: ok | ok | ok | ok | ok | ok |
A-B-C-A-B-C deadlock: ok | ok | ok | ok | ok | ok |
A-B-B-C-C-D-D-A deadlock: ok | ok | ok | ok | ok | ok |
A-B-C-D-B-D-D-A deadlock: ok | ok | ok | ok | ok | ok |
A-B-C-D-B-C-D-A deadlock: ok | ok | ok | ok | ok | ok |
double unlock: ok | ok | ok | ok | ok | ok |
initialize held: ok | ok | ok | ok | ok | ok |
bad unlock order: ok | ok | ok | ok | ok | ok |
--------------------------------------------------------------------------
recursive read-lock: | ok | | ok |
recursive read-lock #2: | ok | | ok |
mixed read-write-lock: | ok | | ok |
mixed write-read-lock: | ok | | ok |
--------------------------------------------------------------------------
hard-irqs-on + irq-safe-A/12: ok | ok | ok |
soft-irqs-on + irq-safe-A/12: ok | ok | ok |
hard-irqs-on + irq-safe-A/21: ok | ok | ok |
soft-irqs-on + irq-safe-A/21: ok | ok | ok |
sirq-safe-A => hirqs-on/12: ok | ok |irq event stamp: 452
hardirqs last enabled at (452): [<c026ff85>] irqsafe2A_rlock_12+0x8d/0xcc
hardirqs last disabled at (451): [<c0115ce4>] cpu_clock+0xe/0x49
softirqs last enabled at (448): [<c026ff70>] irqsafe2A_rlock_12+0x78/0xcc
softirqs last disabled at (444): [<c026ff04>] irqsafe2A_rlock_12+0xc/0xcc
FAILED| [<c0104b60>] dump_trace+0x1c7/0x1dc
[<c0104b8f>] show_trace_log_lvl+0x1a/0x30
[<c010558d>] show_trace+0x12/0x14
[<c01056c1>] dump_stack+0x15/0x17
[<c026dc34>] dotest+0x6e/0x416
[<c02785cf>] locking_selftest+0x912/0x1a7f
[<c0672a52>] start_kernel+0x1b7/0x2c5
=======================

sirq-safe-A => hirqs-on/21:irq event stamp: 456
hardirqs last enabled at (456): [<c026fcb6>] irqsafe2A_spin_21+0x1c/0xc9
hardirqs last disabled at (455): [<c0115ce4>] cpu_clock+0xe/0x49
softirqs last enabled at (448): [<c026ff70>] irqsafe2A_rlock_12+0x78/0xcc
softirqs last disabled at (444): [<c026ff04>] irqsafe2A_rlock_12+0xc/0xcc
ok |irq event stamp: 460
hardirqs last enabled at (460): [<c026fe4b>] irqsafe2A_wlock_21+0x1c/0xc9
hardirqs last disabled at (459): [<c0115ce4>] cpu_clock+0xe/0x49
softirqs last enabled at (448): [<c026ff70>] irqsafe2A_rlock_12+0x78/0xcc
softirqs last disabled at (444): [<c026ff04>] irqsafe2A_rlock_12+0xc/0xcc
ok |irq event stamp: 464
hardirqs last enabled at (464): [<c026ffe0>] irqsafe2A_rlock_21+0x1c/0xc9
hardirqs last disabled at (463): [<c0115ce4>] cpu_clock+0xe/0x49
softirqs last enabled at (448): [<c026ff70>] irqsafe2A_rlock_12+0x78/0xcc
softirqs last disabled at (444): [<c026ff04>] irqsafe2A_rlock_12+0xc/0xcc
FAILED| [<c0104b60>] dump_trace+0x1c7/0x1dc
[<c0104b8f>] show_trace_log_lvl+0x1a/0x30
[<c010558d>] show_trace+0x12/0x14
[<c01056c1>] dump_stack+0x15/0x17
[<c026dc34>] dotest+0x6e/0x416
[<c0278625>] locking_selftest+0x968/0x1a7f
[<c0672a52>] start_kernel+0x1b7/0x2c5
=======================

hard-safe-A + irqs-on/12: ok | ok |irq event stamp: 480
hardirqs last enabled at (480): [<c0274470>] irqsafe2B_hard_rlock_12+0x86/0xc5
hardirqs last disabled at (479): [<c0115ce4>] cpu_clock+0xe/0x49
softirqs last enabled at (448): [<c026ff70>] irqsafe2A_rlock_12+0x78/0xcc
softirqs last disabled at (444): [<c026ff04>] irqsafe2A_rlock_12+0xc/0xcc
FAILED| [<c0104b60>] dump_trace+0x1c7/0x1dc
[<c0104b8f>] show_trace_log_lvl+0x1a/0x30
[<c010558d>] show_trace+0x12/0x14
[<c01056c1>] dump_stack+0x15/0x17
[<c026dc34>] dotest+0x6e/0x416
[<c027867b>] locking_selftest+0x9be/0x1a7f
[<c0672a52>] start_kernel+0x1b7/0x2c5
=======================

soft-safe-A + irqs-on/12: ok | ok |irq event stamp: 514
hardirqs last enabled at (514): [<c011f72e>] local_bh_enable+0xf6/0x212
hardirqs last disabled at (513): [<c0115ce4>] cpu_clock+0xe/0x49
softirqs last enabled at (512): [<c02702aa>] irqsafe2B_soft_rlock_12+0x8c/0xca
softirqs last disabled at (510): [<c027029b>] irqsafe2B_soft_rlock_12+0x7d/0xca
FAILED| [<c0104b60>] dump_trace+0x1c7/0x1dc
[<c0104b8f>] show_trace_log_lvl+0x1a/0x30
[<c010558d>] show_trace+0x12/0x14
[<c01056c1>] dump_stack+0x15/0x17
[<c026dc34>] dotest+0x6e/0x416
[<c02786d1>] locking_selftest+0xa14/0x1a7f
[<c0672a52>] start_kernel+0x1b7/0x2c5
=======================

hard-safe-A + irqs-on/21:irq event stamp: 518
hardirqs last enabled at (518): [<c0274344>] irqsafe2B_hard_spin_21+0x1c/0xc2
hardirqs last disabled at (517): [<c0115ce4>] cpu_clock+0xe/0x49
softirqs last enabled at (512): [<c02702aa>] irqsafe2B_soft_rlock_12+0x8c/0xca
softirqs last disabled at (510): [<c027029b>] irqsafe2B_soft_rlock_12+0x7d/0xca
ok |irq event stamp: 522
hardirqs last enabled at (522): [<c0274652>] irqsafe2B_hard_wlock_21+0x1c/0xc2
hardirqs last disabled at (521): [<c0115ce4>] cpu_clock+0xe/0x49
softirqs last enabled at (512): [<c02702aa>] irqsafe2B_soft_rlock_12+0x8c/0xca
softirqs last disabled at (510): [<c027029b>] irqsafe2B_soft_rlock_12+0x7d/0xca
ok |irq event stamp: 526
hardirqs last enabled at (526): [<c02744cb>] irqsafe2B_hard_rlock_21+0x1c/0xc2
hardirqs last disabled at (525): [<c0115ce4>] cpu_clock+0xe/0x49
softirqs last enabled at (512): [<c02702aa>] irqsafe2B_soft_rlock_12+0x8c/0xca
softirqs last disabled at (510): [<c027029b>] irqsafe2B_soft_rlock_12+0x7d/0xca
FAILED| [<c0104b60>] dump_trace+0x1c7/0x1dc
[<c0104b8f>] show_trace_log_lvl+0x1a/0x30
[<c010558d>] show_trace+0x12/0x14
[<c01056c1>] dump_stack+0x15/0x17
[<c026dc34>] dotest+0x6e/0x416
[<c0278727>] locking_selftest+0xa6a/0x1a7f
[<c0672a52>] start_kernel+0x1b7/0x2c5
=======================

soft-safe-A + irqs-on/21:irq event stamp: 532
hardirqs last enabled at (532): [<c011f72e>] local_bh_enable+0xf6/0x212
hardirqs last disabled at (531): [<c0115ce4>] cpu_clock+0xe/0x49
softirqs last enabled at (530): [<c0270172>] irqsafe2B_soft_spin_21+0x1b/0xc7
softirqs last disabled at (528): [<c0270163>] irqsafe2B_soft_spin_21+0xc/0xc7
ok |irq event stamp: 538
hardirqs last enabled at (538): [<c011f72e>] local_bh_enable+0xf6/0x212
hardirqs last disabled at (537): [<c0115ce4>] cpu_clock+0xe/0x49
softirqs last enabled at (536): [<c0270494>] irqsafe2B_soft_wlock_21+0x1b/0xc7
softirqs last disabled at (534): [<c0270485>] irqsafe2B_soft_wlock_21+0xc/0xc7
ok |irq event stamp: 544
hardirqs last enabled at (544): [<c011f72e>] local_bh_enable+0xf6/0x212
hardirqs last disabled at (543): [<c0115ce4>] cpu_clock+0xe/0x49
softirqs last enabled at (542): [<c0270303>] irqsafe2B_soft_rlock_21+0x1b/0xc7
softirqs last disabled at (540): [<c02702f4>] irqsafe2B_soft_rlock_21+0xc/0xc7
FAILED| [<c0104b60>] dump_trace+0x1c7/0x1dc
[<c0104b8f>] show_trace_log_lvl+0x1a/0x30
[<c010558d>] show_trace+0x12/0x14
[<c01056c1>] dump_stack+0x15/0x17
[<c026dc34>] dotest+0x6e/0x416
[<c027877d>] locking_selftest+0xac0/0x1a7f
[<c0672a52>] start_kernel+0x1b7/0x2c5
=======================

hard-safe-A + unsafe-B #1/123: ok | ok | ok |
soft-safe-A + unsafe-B #1/123: ok | ok | ok |
hard-safe-A + unsafe-B #1/132: ok | ok | ok |
soft-safe-A + unsafe-B #1/132: ok | ok | ok |
hard-safe-A + unsafe-B #1/213: ok | ok | ok |
soft-safe-A + unsafe-B #1/213: ok | ok | ok |
hard-safe-A + unsafe-B #1/231: ok | ok | ok |
soft-safe-A + unsafe-B #1/231: ok | ok | ok |
hard-safe-A + unsafe-B #1/312: ok | ok | ok |
soft-safe-A + unsafe-B #1/312: ok | ok | ok |
hard-safe-A + unsafe-B #1/321: ok | ok | ok |
soft-safe-A + unsafe-B #1/321: ok | ok | ok |
hard-safe-A + unsafe-B #2/123: ok | ok | ok |
soft-safe-A + unsafe-B #2/123: ok | ok | ok |
hard-safe-A + unsafe-B #2/132: ok | ok | ok |
soft-safe-A + unsafe-B #2/132: ok | ok | ok |
hard-safe-A + unsafe-B #2/213: ok | ok | ok |
soft-safe-A + unsafe-B #2/213: ok | ok | ok |
hard-safe-A + unsafe-B #2/231: ok | ok | ok |
soft-safe-A + unsafe-B #2/231: ok | ok | ok |
hard-safe-A + unsafe-B #2/312: ok | ok | ok |
soft-safe-A + unsafe-B #2/312: ok | ok | ok |
hard-safe-A + unsafe-B #2/321: ok | ok | ok |
soft-safe-A + unsafe-B #2/321: ok | ok | ok |
hard-irq lock-inversion/123: ok | ok | ok |
soft-irq lock-inversion/123: ok | ok | ok |
hard-irq lock-inversion/132: ok | ok | ok |
soft-irq lock-inversion/132: ok | ok | ok |
hard-irq lock-inversion/213: ok | ok | ok |
soft-irq lock-inversion/213: ok | ok | ok |
hard-irq lock-inversion/231: ok | ok | ok |
soft-irq lock-inversion/231: ok | ok | ok |
hard-irq lock-inversion/312: ok | ok | ok |
soft-irq lock-inversion/312: ok | ok | ok |
hard-irq lock-inversion/321: ok | ok | ok |
soft-irq lock-inversion/321: ok | ok | ok |
hard-irq read-recursion/123: ok |
soft-irq read-recursion/123: ok |
hard-irq read-recursion/132: ok |
soft-irq read-recursion/132: ok |
hard-irq read-recursion/213: ok |
soft-irq read-recursion/213: ok |
hard-irq read-recursion/231: ok |
soft-irq read-recursion/231: ok |
hard-irq read-recursion/312: ok |
soft-irq read-recursion/312: ok |
hard-irq read-recursion/321: ok |
soft-irq read-recursion/321: ok |
-----------------------------------------------------------------
BUG: 6 unexpected failures (out of 218) - debugging disabled! |
-----------------------------------------------------------------



Regards,

Mariusz


Linux orion 2.6.23-rc3-mm1 #1 PREEMPT Wed Aug 22 18:07:16 CEST 2007 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz GenuineIntel GNU/Linux

Gnu C 4.1.2
Gnu make 3.81
binutils 2.17
util-linux 2.12r
mount 2.12r
module-init-tools 3.2.2
e2fsprogs 1.39
pcmciautils 014
pcmcia-cs 3.2.9
PPP 2.4.4
Linux C Library 2.5
Dynamic linker (ldd) 2.5
Procps 3.2.7
Net-tools 1.60
Kbd 1.12
oprofile 0.9.1
Sh-utils 6.9
udev 114
wireless-tools 29
Modules Loaded orinoco_cs orinoco hermes pcmcia 8139too yenta_socket rsrc_nonstatic pcmcia_core 8250_pci 8250 serial_core

processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 CPU 2.40GHz
stepping : 9
cpu MHz : 2392.397
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pebs bts sync_rdtsc cid xtpr
bogomips : 4788.23
clflush size : 64


Attachments:
(No filename) (11.50 kB)
.config (43.83 kB)
Download all attachments

2007-08-22 17:54:34

by Kay Sievers

[permalink] [raw]
Subject: Re: [BUG] 2.6.23-rc3-mm1 - kernel BUG at net/core/skbuff.c:95!

On Wed, 2007-08-22 at 08:50 -0700, Andrew Morton wrote:
> On Wed, 22 Aug 2007 18:32:36 +0530 Kamalesh Babulal <[email protected]> wrote:
>
> > Hi Andrew,
> >
> > Following Kernel Bug was raised when i tried compiling and booting ppc64
> > machine
> > with 2.6.23-rc3-mm1 kernel.
> >
> > =================================================================
> >
> > Freeing initrd memory: 908k freed
> >
> > sysctl table check failed: /kernel .1 Writable sysctl directory
> >
> > skb_over_panic: text:c0000000002bf840 len:139 put:29 head:c00000000ffe7400 data:c00000000ffe7400 tail:0x8b end:0x80 dev:<NULL>
> >
> > ------------[ cut here ]------------
> >
> > kernel BUG at net/core/skbuff.c:95!
> >
> > Oops: Exception in kernel mode, sig: 5 [#1]
> >
> > SMP NR_CPUS=128 NUMA pSeries
> >
> > Modules linked in:
> >
> > NIP: c0000000003fd7c4 LR: c0000000003fd7c0 CTR: 80000000000f97dc
> >
> > REGS: c0000000027f3850 TRAP: 0700 Not tainted (2.6.23-rc3-mm1-autokern1)
> >
> > MSR: 8000000000029032 <EE,ME,IR,DR> CR: 24288024 XER: 00000010
> >
> > TASK = c000000009fc0000[1] 'swapper' THREAD: c0000000027f0000 CPU: 0
> >
> > GPR00: c0000000003fd7c0 c0000000027f3ad0 c000000000737710 0000000000000082
> >
> > GPR04: 0000000000000001 0000000000000001 0000000000000000 c00000000062bb3c
> >
> > GPR08: 0000000000000000 c00000000067b2e0 0000000000002100 c00000000077b110
> >
> > GPR12: 0000000000004000 c000000000649f00 0000000000000000 0000000000000000
> >
> > GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
> >
> > GPR20: 0000000000000000 c00000000802a0c0 c00000000052ea30 c0000000005392a8
> >
> > GPR24: c000000009f6b908 c0000000006a4000 c0000000026e2000 0000000000000020
> >
> > GPR28: c00000000ffe746e 0000000000000004 c0000000006f5340 c000000009f6a900
> >
> > NIP [c0000000003fd7c4] .skb_over_panic+0x50/0x58
> >
> > LR [c0000000003fd7c0] .skb_over_panic+0x4c/0x58
> >
> > Call Trace:
> >
> > [c0000000027f3ad0] [c0000000003fd7c0] .skb_over_panic+0x4c/0x58 (unreliable)
> >
> > [c0000000027f3b60] [c0000000002bf848] .kobject_uevent_env+0x4f8/0x528
> >
> > [c0000000027f3c80] [c00000000032512c] .device_add+0x2bc/0x730
> >
> > [c0000000027f3d50] [c000000000022330] .vio_register_device_node+0x1a4/0x274
> >
> > [c0000000027f3e00] [c0000000005d34a8] .vio_bus_init+0xa0/0xec
> >
> > [c0000000027f3e80] [c0000000005c8c6c] .kernel_init+0x20c/0x4b8
> >
> > [c0000000027f3f90] [c0000000000267b0] .kernel_thread+0x4c/0x68
> >
>
> gargh, sorry, that's probably due to my screwed up attempt to fix Kay's
> screwed up
> gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch.
>
> Kay sent an update patch but it didn't arrive in time.
>
> Greg, if you haven't yet merged that, please do so asap?
>
> So what _should_ this:
>
> --- a/arch/powerpc/kernel/vio.c~fix-4-gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct
> +++ a/arch/powerpc/kernel/vio.c
> @@ -373,7 +373,7 @@ static int vio_hotplug(struct device *de
> dn = dev->archdata.of_node;
> if (!dn)
> return -ENODEV;
> - cp = of_get_property(dn, "compatible", &length);
> + cp = of_get_property(dn, "compatible", &env->buflen);
> if (!cp)
> return -ENODEV;
>
> _
>
> have done?

Does replacing "&length" with "NULL" work? That's what's in the updated
patch.

Thanks,
Kay

2007-08-22 18:05:12

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Wed, 22 Aug 2007 02:06:48 -0700 Andrew Morton wrote:

>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/

allyesconfig on x86_64 says:

kernel/unwind.c:1016:31: error: undefined identifier '__builtin_labs'
kernel/unwind.c:1232:25: error: undefined identifier '__builtin_labs'

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

2007-08-22 18:11:32

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Wed, 22 Aug 2007 18:17:38 +0100
Mel Gorman <[email protected]> wrote:

> Andrew Morton wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
> >
> > - git-ixgbe.patch got dropped - git-net.patch destroyed it
> >
> > - then git-net got dropped as it doesn't work
> >
> > - the -mm import-to-git engine still isn't working
> >
>
> >From elm3b6 on test.kernel.org, we get the following build error
>
> 08/22/07-07:01:07 building kernel - make bzImage
> CHK include/linux/version.h
> UPD include/linux/version.h
> CHK include/linux/utsrelease.h
> UPD include/linux/utsrelease.h
> SYMLINK include/asm -> include/asm-x86_64
> CC arch/x86_64/kernel/asm-offsets.s
> arch/x86_64/kernel/asm-offsets.c:1: error: -mpreferred-stack-boundary=3
> is not between 4 and 12
> make[1]: *** [arch/x86_64/kernel/asm-offsets.s] Error 1
> make: *** [prepare0] Error 2
> 08/22/07-07:01:08 Build the kernel. Failed rc = 2
> 08/22/07-07:01:08 build: Building kernel... Failed rc = 1
> Failed and terminated the run
> 08/22/07-07:01:08 command complete: (1) rc=126 (TEST ABORT)
> Fatal error, aborting autorun
>
> config file at: http://test.kernel.org/abat/107411/build/dotconfig
> gcc version is 3.4.4
>
> This does not occur when using a cross-compiler gcc 3.4.0
>

x86_64-mm-less-stack-alignment.patch has

cflags-y += $(call cc-option,-mpreferred-stack-boundary=3)

So we _should_ have detected that gcc didn't like =3, so it
should not have been used.

I am suspecting a kbuild glitch: asm-offsets.c tends to be handled
in special ways (ie: it's usually the thing which blows up first)
so perhaps it is somehow avoiding the above does-gcc-support-this test.

Suitable cc's added ;)

2007-08-22 18:14:53

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Wed, 22 Aug 2007 19:24:39 +0200
"Torsten Kaiser" <[email protected]> wrote:

> On 8/22/07, Andrew Morton <[email protected]> wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
> [snip]
> > -ata-add-the-sw-ncq-support-to-sata_nv-for-mcp51-mcp55-mcp61.patch
> > -ata-add-the-sw-ncq-support-to-sata_nv-for-mcp51-mcp55-mcp61-fix.patch
> [snip]
> > Merged into mainline or a subsystem tree
>
> That patch is no longer in 2.6.23-rc3-mm1, my bootlog says:
> [ 0.000000] Unknown boot option `sata_nv.swncq=1': ignoring
>
> I could not find this patch in any git trees I looked and its removal
> mail from mm-commit said:
> "This patch was dropped because Changes in Jeff's tree destroyed it."
>
>
> I only found out about the swncq=1 command line option yesterday and
> so tested it only one day.
> But I did not have any trouble with it, even as my drive was made by Maxtor.
>
> The chipset:
> 00:05.0 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
> 00:05.1 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
> 00:05.2 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
>
> The drive:
> Device Model: MAXTOR STM3320820AS
> Serial Number: 5QF2E698
> Firmware Version: 3.AAE
>
> As it worked for me, I hope that patch will be picked up by someone. :)
>

This is a fairly regular occurrence in ata land: patches from maintainers
don't get merged, so I merge them for testing, then some fairly pointless
cleanup-style patch goes on a great tree-wide rampage thus destabilising or
simply destroying the more important, mysteriously-not-merged patch.

Nobody knows why this happens.

Peer and Kuan: can you please redo that patch against the current ata
development tree?

Thanks.

2007-08-22 18:32:53

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Wed, 22 Aug 2007 11:03:48 -0700
Randy Dunlap <[email protected]> wrote:

> On Wed, 22 Aug 2007 02:06:48 -0700 Andrew Morton wrote:
>
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>
> allyesconfig on x86_64 says:
>
> kernel/unwind.c:1016:31: error: undefined identifier '__builtin_labs'
> kernel/unwind.c:1232:25: error: undefined identifier '__builtin_labs'
>

One wonders why x86_64-mm-unwinder.patch has an open-coded call to
__builtin_labs(), when include/linux/kernel.h:abs() should do a fine job.

And what's this stuff, anyway?

+typedef unsigned long uleb128_t;
+typedef signed long sleb128_t;
+#define sleb128abs __builtin_labs

unsigned and signed little-endian 128-bit types? Nope, they're 32-bit or
64-bit. All very mysterious.

2007-08-22 18:45:21

by Andi Kleen

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Wed, Aug 22, 2007 at 11:32:11AM -0700, Andrew Morton wrote:
> > On Wed, 22 Aug 2007 02:06:48 -0700 Andrew Morton wrote:
> >
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
> >
> > allyesconfig on x86_64 says:
> >
> > kernel/unwind.c:1016:31: error: undefined identifier '__builtin_labs'
> > kernel/unwind.c:1232:25: error: undefined identifier '__builtin_labs'
> >
>

Why does that compiler not know __builtin_abs?

> One wonders why x86_64-mm-unwinder.patch has an open-coded call to
> __builtin_labs(), when include/linux/kernel.h:abs() should do a fine job.

I'll fix.

>
> And what's this stuff, anyway?
>
> +typedef unsigned long uleb128_t;
> +typedef signed long sleb128_t;
> +#define sleb128abs __builtin_labs
>
> unsigned and signed little-endian 128-bit types? Nope, they're 32-bit or
> 64-bit. All very mysterious.

dwarf2 uses a magic compressing encoding for numbers that uses less bytes
for small numbers and more bytes for larger numbers. These are the base
types for this.

It's similar to fs/reiser4/dscale.h in your tree.

-Andi

2007-08-22 19:04:46

by Balbir Singh

[permalink] [raw]
Subject: Re: [BUG] 2.6.23-rc3-mm1 - kernel BUG at net/core/skbuff.c:95!

Kay Sievers wrote:
>> gargh, sorry, that's probably due to my screwed up attempt to fix Kay's
>> screwed up
>> gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch.
>>
>> Kay sent an update patch but it didn't arrive in time.
>>
>> Greg, if you haven't yet merged that, please do so asap?
>>
>> So what _should_ this:
>>
>> --- a/arch/powerpc/kernel/vio.c~fix-4-gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct
>> +++ a/arch/powerpc/kernel/vio.c
>> @@ -373,7 +373,7 @@ static int vio_hotplug(struct device *de
>> dn = dev->archdata.of_node;
>> if (!dn)
>> return -ENODEV;
>> - cp = of_get_property(dn, "compatible", &length);
>> + cp = of_get_property(dn, "compatible", &env->buflen);
>> if (!cp)
>> return -ENODEV;
>>
>> _
>>
>> have done?
>
> Does replacing "&length" with "NULL" work? That's what's in the updated
> patch.
>

Hi, Kay,

replacing &length with NULL does not work for me. I get a message saying that
init terminated with signal 7.

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

2007-08-22 19:05:14

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: kgdb build failure on powerpc

Hello,

Got that on imac g3.

CC kernel/kgdb.o
kernel/kgdb.c: In function 'kgdb_handle_exception':
kernel/kgdb.c:940: error: invalid lvalue in unary '&'
kernel/kgdb.c:940: warning: type defaults to 'int' in declaration of '_o_'
kernel/kgdb.c:940: error: invalid lvalue in unary '&'
kernel/kgdb.c:940: warning: type defaults to 'int' in declaration of '_n_'
kernel/kgdb.c:940: error: invalid lvalue in unary '&'
kernel/kgdb.c:940: error: invalid lvalue in unary '&'
kernel/kgdb.c:940: error: invalid lvalue in unary '&'
kernel/kgdb.c:940: warning: type defaults to 'int' in declaration of 'type name'
make[1]: *** [kernel/kgdb.o] Blad 1
make: *** [kernel] Blad 2

Regards,

Mariusz



Attachments:
(No filename) (692.00 B)
.config (73.94 kB)
Download all attachments

2007-08-22 19:16:44

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: net/wireless/rt2x00mac.c build failure

Hello,

Got that on athlon x86_32:

CC [M] drivers/net/wireless/rt2x00mac.o
drivers/net/wireless/rt2x00mac.c: In function `rt2x00mac_tx_rts_cts':
drivers/net/wireless/rt2x00mac.c:61: warning: passing arg 2 of `ieee80211_ctstoself_get' makes pointer from integer without a cast
drivers/net/wireless/rt2x00mac.c:61: warning: passing arg 3 of `ieee80211_ctstoself_get' makes integer from pointer without a cast
drivers/net/wireless/rt2x00mac.c:61: warning: passing arg 4 of `ieee80211_ctstoself_get' makes pointer from integer without a cast
drivers/net/wireless/rt2x00mac.c:61: warning: passing arg 5 of `ieee80211_ctstoself_get' from incompatible pointer type
drivers/net/wireless/rt2x00mac.c:61: error: too many arguments to function `ieee80211_ctstoself_get'
drivers/net/wireless/rt2x00mac.c:65: warning: passing arg 2 of `ieee80211_rts_get' makes pointer from integer without a cast
drivers/net/wireless/rt2x00mac.c:65: warning: passing arg 3 of `ieee80211_rts_get' makes integer from pointer without a cast
drivers/net/wireless/rt2x00mac.c:65: warning: passing arg 4 of `ieee80211_rts_get' makes pointer from integer without a cast
drivers/net/wireless/rt2x00mac.c:65: warning: passing arg 5 of `ieee80211_rts_get' from incompatible pointer type
drivers/net/wireless/rt2x00mac.c:65: error: too many arguments to function `ieee80211_rts_get'
make[3]: *** [drivers/net/wireless/rt2x00mac.o] Error 1
make[2]: *** [drivers/net/wireless] Error 2
make[1]: *** [drivers/net] Error 2
make: *** [drivers] Error 2

Regards,

Mariusz



Linux localhost 2.6.23-rc3-mm1 #2 PREEMPT Wed Aug 22 19:45:30 CEST 2007 i686 AMD Athlon(tm) XP 1700+ AuthenticAMD GNU/Linux

Gnu C 3.4.6
Gnu make 3.81
binutils 2.17
util-linux 2.12r
mount 2.12r
module-init-tools 3.2.2
e2fsprogs 1.39
nfs-utils 1.0.6
Linux C Library 2.5
Dynamic linker (ldd) 2.5
Procps 3.2.7
Net-tools 1.60
Kbd 1.12
Sh-utils 6.9
udev 104
Modules Loaded


Attachments:
(No filename) (2.05 kB)
.config (83.88 kB)
Download all attachments

2007-08-22 19:18:44

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Wed, 22 Aug 2007 21:38:58 +0200 Andi Kleen wrote:

> On Wed, Aug 22, 2007 at 11:32:11AM -0700, Andrew Morton wrote:
> > > On Wed, 22 Aug 2007 02:06:48 -0700 Andrew Morton wrote:
> > >
> > > >
> > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
> > >
> > > allyesconfig on x86_64 says:
> > >
> > > kernel/unwind.c:1016:31: error: undefined identifier '__builtin_labs'
> > > kernel/unwind.c:1232:25: error: undefined identifier '__builtin_labs'
> > >
> >
>
> Why does that compiler not know __builtin_abs?

I dunno:

> gcc --version
gcc (GCC) 4.1.0 (SUSE Linux)


> > One wonders why x86_64-mm-unwinder.patch has an open-coded call to
> > __builtin_labs(), when include/linux/kernel.h:abs() should do a fine job.
>
> I'll fix.
>
> >
> > And what's this stuff, anyway?
> >
> > +typedef unsigned long uleb128_t;
> > +typedef signed long sleb128_t;
> > +#define sleb128abs __builtin_labs
> >
> > unsigned and signed little-endian 128-bit types? Nope, they're 32-bit or
> > 64-bit. All very mysterious.
>
> dwarf2 uses a magic compressing encoding for numbers that uses less bytes
> for small numbers and more bytes for larger numbers. These are the base
> types for this.
>
> It's similar to fs/reiser4/dscale.h in your tree.
>
> -Andi

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

2007-08-22 19:23:54

by Ivo Van Doorn

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: net/wireless/rt2x00mac.c build failure

Hi,

> CC [M] drivers/net/wireless/rt2x00mac.o
> drivers/net/wireless/rt2x00mac.c: In function `rt2x00mac_tx_rts_cts':
> drivers/net/wireless/rt2x00mac.c:61: warning: passing arg 2 of `ieee80211_ctstoself_get' makes pointer from integer without a cast
> drivers/net/wireless/rt2x00mac.c:61: warning: passing arg 3 of `ieee80211_ctstoself_get' makes integer from pointer without a cast
> drivers/net/wireless/rt2x00mac.c:61: warning: passing arg 4 of `ieee80211_ctstoself_get' makes pointer from integer without a cast
> drivers/net/wireless/rt2x00mac.c:61: warning: passing arg 5 of `ieee80211_ctstoself_get' from incompatible pointer type
> drivers/net/wireless/rt2x00mac.c:61: error: too many arguments to function `ieee80211_ctstoself_get'
> drivers/net/wireless/rt2x00mac.c:65: warning: passing arg 2 of `ieee80211_rts_get' makes pointer from integer without a cast
> drivers/net/wireless/rt2x00mac.c:65: warning: passing arg 3 of `ieee80211_rts_get' makes integer from pointer without a cast
> drivers/net/wireless/rt2x00mac.c:65: warning: passing arg 4 of `ieee80211_rts_get' makes pointer from integer without a cast
> drivers/net/wireless/rt2x00mac.c:65: warning: passing arg 5 of `ieee80211_rts_get' from incompatible pointer type
> drivers/net/wireless/rt2x00mac.c:65: error: too many arguments to function `ieee80211_rts_get'
> make[3]: *** [drivers/net/wireless/rt2x00mac.o] Error 1
> make[2]: *** [drivers/net/wireless] Error 2
> make[1]: *** [drivers/net] Error 2
> make: *** [drivers] Error 2

This has been fixed for quite some time already.
John, I can't check this myself now, but which rt2x00
patches have gone into the -mm tree? Since I believe
the patch that changed ieee80211_ctstoself_get was
followed by a patch to fix rt2x00 within the same series...

Ivo

2007-08-22 19:48:19

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: kgdb build failure on powerpc

On Wed, 22 Aug 2007 21:04:28 +0200
Mariusz Kozlowski <[email protected]> wrote:

> Hello,
>
> Got that on imac g3.
>
> CC kernel/kgdb.o
> kernel/kgdb.c: In function 'kgdb_handle_exception':
> kernel/kgdb.c:940: error: invalid lvalue in unary '&'
> kernel/kgdb.c:940: warning: type defaults to 'int' in declaration of '_o_'
> kernel/kgdb.c:940: error: invalid lvalue in unary '&'
> kernel/kgdb.c:940: warning: type defaults to 'int' in declaration of '_n_'
> kernel/kgdb.c:940: error: invalid lvalue in unary '&'
> kernel/kgdb.c:940: error: invalid lvalue in unary '&'
> kernel/kgdb.c:940: error: invalid lvalue in unary '&'
> kernel/kgdb.c:940: warning: type defaults to 'int' in declaration of 'type name'
> make[1]: *** [kernel/kgdb.o] Blad 1
> make: *** [kernel] Blad 2
>

I'm not surprised.

while (cmpxchg(&atomic_read(&debugger_active), 0, (procid + 1)) != 0) {

a) cmpxchg isn't available on all architectures

b) we can't just go and take the address of atomic_read()'s return value!

c) that's pretty ugly-looking stuff anyway.

2007-08-22 19:54:19

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: net/wireless/rt2x00mac.c build failure

> > CC [M] drivers/net/wireless/rt2x00mac.o
> > drivers/net/wireless/rt2x00mac.c: In function `rt2x00mac_tx_rts_cts':
> > drivers/net/wireless/rt2x00mac.c:61: warning: passing arg 2 of `ieee80211_ctstoself_get' makes pointer from integer without a cast
> > drivers/net/wireless/rt2x00mac.c:61: warning: passing arg 3 of `ieee80211_ctstoself_get' makes integer from pointer without a cast
> > drivers/net/wireless/rt2x00mac.c:61: warning: passing arg 4 of `ieee80211_ctstoself_get' makes pointer from integer without a cast
> > drivers/net/wireless/rt2x00mac.c:61: warning: passing arg 5 of `ieee80211_ctstoself_get' from incompatible pointer type
> > drivers/net/wireless/rt2x00mac.c:61: error: too many arguments to function `ieee80211_ctstoself_get'
> > drivers/net/wireless/rt2x00mac.c:65: warning: passing arg 2 of `ieee80211_rts_get' makes pointer from integer without a cast
> > drivers/net/wireless/rt2x00mac.c:65: warning: passing arg 3 of `ieee80211_rts_get' makes integer from pointer without a cast
> > drivers/net/wireless/rt2x00mac.c:65: warning: passing arg 4 of `ieee80211_rts_get' makes pointer from integer without a cast
> > drivers/net/wireless/rt2x00mac.c:65: warning: passing arg 5 of `ieee80211_rts_get' from incompatible pointer type
> > drivers/net/wireless/rt2x00mac.c:65: error: too many arguments to function `ieee80211_rts_get'
> > make[3]: *** [drivers/net/wireless/rt2x00mac.o] Error 1
> > make[2]: *** [drivers/net/wireless] Error 2
> > make[1]: *** [drivers/net] Error 2
> > make: *** [drivers] Error 2
>
> This has been fixed for quite some time already.
> John, I can't check this myself now, but which rt2x00
> patches have gone into the -mm tree? Since I believe
> the patch that changed ieee80211_ctstoself_get was
> followed by a patch to fix rt2x00 within the same series...

Ok. Thanks. What about this one?

CC [M] drivers/net/wireless/zd1211rw-mac80211/zd_mac.o
drivers/net/wireless/zd1211rw-mac80211/zd_mac.c: In function `zd_op_erp_ie_changed':
drivers/net/wireless/zd1211rw-mac80211/zd_mac.c:822: error: `IEEE80211_ERP_CHANGE_PREAMBLE' undeclared (first use in this function)
drivers/net/wireless/zd1211rw-mac80211/zd_mac.c:822: error: (Each undeclared identifier is reported only once
drivers/net/wireless/zd1211rw-mac80211/zd_mac.c:822: error: for each function it appears in.)
drivers/net/wireless/zd1211rw-mac80211/zd_mac.c: At top level:
drivers/net/wireless/zd1211rw-mac80211/zd_mac.c:844: error: unknown field `erp_ie_changed' specified in initializer
drivers/net/wireless/zd1211rw-mac80211/zd_mac.c:844: warning: initialization from incompatible pointer type
make[4]: *** [drivers/net/wireless/zd1211rw-mac80211/zd_mac.o] Error 1
make[3]: *** [drivers/net/wireless/zd1211rw-mac80211] Error 2
make[2]: *** [drivers/net/wireless] Error 2
make[1]: *** [drivers/net] Error 2
make: *** [drivers] Error 2

Regards,

Mariusz

2007-08-22 19:59:36

by Andi Kleen

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Wed, Aug 22, 2007 at 12:17:31PM -0700, Randy Dunlap wrote:
> > Why does that compiler not know __builtin_abs?
>
> I dunno:
>
> > gcc --version
> gcc (GCC) 4.1.0 (SUSE Linux)

Hmm I use the same compiler from SUSE10.2 and it works for me (with both
mm and only my tree applied)

Ok mm fails with some errors in the wireless drivers but with
wireless disabled it compiles.

When you compile a simple test program like

main() { printf("%lu\n", __builtin_labs(-1)); }

does it work?


> > > One wonders why x86_64-mm-unwinder.patch has an open-coded call to
> > > __builtin_labs(), when include/linux/kernel.h:abs() should do a fine job.

Andrew, I actually checked that and the abs() there is just abs()
not a labs(). So it wouldn't work on 64bit platform.

We could opencode it of course, but __builtin_labs should be really
there.

-Andi

2007-08-22 20:05:11

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

Andi Kleen wrote:
> On Wed, Aug 22, 2007 at 12:17:31PM -0700, Randy Dunlap wrote:
>>> Why does that compiler not know __builtin_abs?
>> I dunno:
>>
>>> gcc --version
>> gcc (GCC) 4.1.0 (SUSE Linux)
>
> Hmm I use the same compiler from SUSE10.2 and it works for me (with both
> mm and only my tree applied)
>
> Ok mm fails with some errors in the wireless drivers but with
> wireless disabled it compiles.
>
> When you compile a simple test program like
>
> main() { printf("%lu\n", __builtin_labs(-1)); }
>
> does it work?

Yes, that works.

>>>> One wonders why x86_64-mm-unwinder.patch has an open-coded call to
>>>> __builtin_labs(), when include/linux/kernel.h:abs() should do a fine job.
>
> Andrew, I actually checked that and the abs() there is just abs()
> not a labs(). So it wouldn't work on 64bit platform.
>
> We could opencode it of course, but __builtin_labs should be really
> there.
>
> -Andi


--
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

2007-08-22 20:05:34

by Ivo Van Doorn

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: net/wireless/rt2x00mac.c build failure

Hi,

> CC [M] drivers/net/wireless/zd1211rw-mac80211/zd_mac.o
> drivers/net/wireless/zd1211rw-mac80211/zd_mac.c: In function `zd_op_erp_ie_changed':
> drivers/net/wireless/zd1211rw-mac80211/zd_mac.c:822: error: `IEEE80211_ERP_CHANGE_PREAMBLE' undeclared (first use in this function)
> drivers/net/wireless/zd1211rw-mac80211/zd_mac.c:822: error: (Each undeclared identifier is reported only once
> drivers/net/wireless/zd1211rw-mac80211/zd_mac.c:822: error: for each function it appears in.)
> drivers/net/wireless/zd1211rw-mac80211/zd_mac.c: At top level:
> drivers/net/wireless/zd1211rw-mac80211/zd_mac.c:844: error: unknown field `erp_ie_changed' specified in initializer
> drivers/net/wireless/zd1211rw-mac80211/zd_mac.c:844: warning: initialization from incompatible pointer type
> make[4]: *** [drivers/net/wireless/zd1211rw-mac80211/zd_mac.o] Error 1
> make[3]: *** [drivers/net/wireless/zd1211rw-mac80211] Error 2
> make[2]: *** [drivers/net/wireless] Error 2
> make[1]: *** [drivers/net] Error 2
> make: *** [drivers] Error 2

I'm not a zd1211rw developer, but a quick look into the patch series it seems
that the mac80211 version in -mm1 does not contain the patch
[PATCH 4/4] mac80211: implement ERP info change notifications
But it does contain the zd1211rw patch:
[PATCH] zd1211rw-mac80211: use correct preambles for RTS/CTS frames
Which depended on the above mentioned mac80211 patch.

Just had a second thought about those rt2x00 compilation errors you reported,
the error is not caused by rt2x00 lagging behind mac80211 api changes but
that rt2x00 patches to follow the api changes are going upstream but
the mac80211 api changes it depends on are not going anywhere.

It seems that mac80211 has not been updated in the -mm tree while the
drivers have been updated. This is causing the compilation errors for both
rt2x00 as zd1211rw.
I'll bet that if you try any other mac80211 driver similar issues will arise.

Ivo

2007-08-22 20:12:26

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: net/wireless/rt2x00mac.c build failure

On Wednesday, 22 August 2007 22:12, Ivo van Doorn wrote:
> Hi,
>
> > CC [M] drivers/net/wireless/zd1211rw-mac80211/zd_mac.o
> > drivers/net/wireless/zd1211rw-mac80211/zd_mac.c: In function `zd_op_erp_ie_changed':
> > drivers/net/wireless/zd1211rw-mac80211/zd_mac.c:822: error: `IEEE80211_ERP_CHANGE_PREAMBLE' undeclared (first use in this function)
> > drivers/net/wireless/zd1211rw-mac80211/zd_mac.c:822: error: (Each undeclared identifier is reported only once
> > drivers/net/wireless/zd1211rw-mac80211/zd_mac.c:822: error: for each function it appears in.)
> > drivers/net/wireless/zd1211rw-mac80211/zd_mac.c: At top level:
> > drivers/net/wireless/zd1211rw-mac80211/zd_mac.c:844: error: unknown field `erp_ie_changed' specified in initializer
> > drivers/net/wireless/zd1211rw-mac80211/zd_mac.c:844: warning: initialization from incompatible pointer type
> > make[4]: *** [drivers/net/wireless/zd1211rw-mac80211/zd_mac.o] Error 1
> > make[3]: *** [drivers/net/wireless/zd1211rw-mac80211] Error 2
> > make[2]: *** [drivers/net/wireless] Error 2
> > make[1]: *** [drivers/net] Error 2
> > make: *** [drivers] Error 2
>
> I'm not a zd1211rw developer, but a quick look into the patch series it seems
> that the mac80211 version in -mm1 does not contain the patch
> [PATCH 4/4] mac80211: implement ERP info change notifications
> But it does contain the zd1211rw patch:
> [PATCH] zd1211rw-mac80211: use correct preambles for RTS/CTS frames
> Which depended on the above mentioned mac80211 patch.
>
> Just had a second thought about those rt2x00 compilation errors you reported,
> the error is not caused by rt2x00 lagging behind mac80211 api changes but
> that rt2x00 patches to follow the api changes are going upstream but
> the mac80211 api changes it depends on are not going anywhere.
>
> It seems that mac80211 has not been updated in the -mm tree while the
> drivers have been updated. This is causing the compilation errors for both
> rt2x00 as zd1211rw.
> I'll bet that if you try any other mac80211 driver similar issues will arise.

Yup. This also happens to the b43 driver, for example.

Greetings,
Rafael


--
"Premature optimization is the root of all evil." - Donald Knuth

2007-08-22 20:14:51

by John W. Linville

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: net/wireless/rt2x00mac.c build failure

On Wed, Aug 22, 2007 at 09:31:24PM +0200, Ivo van Doorn wrote:

> > CC [M] drivers/net/wireless/rt2x00mac.o
> > drivers/net/wireless/rt2x00mac.c: In function `rt2x00mac_tx_rts_cts':
> > drivers/net/wireless/rt2x00mac.c:61: warning: passing arg 2 of `ieee80211_ctstoself_get' makes pointer from integer without a cast
> > drivers/net/wireless/rt2x00mac.c:61: warning: passing arg 3 of `ieee80211_ctstoself_get' makes integer from pointer without a cast
> > drivers/net/wireless/rt2x00mac.c:61: warning: passing arg 4 of `ieee80211_ctstoself_get' makes pointer from integer without a cast
> > drivers/net/wireless/rt2x00mac.c:61: warning: passing arg 5 of `ieee80211_ctstoself_get' from incompatible pointer type
> > drivers/net/wireless/rt2x00mac.c:61: error: too many arguments to function `ieee80211_ctstoself_get'
> > drivers/net/wireless/rt2x00mac.c:65: warning: passing arg 2 of `ieee80211_rts_get' makes pointer from integer without a cast
> > drivers/net/wireless/rt2x00mac.c:65: warning: passing arg 3 of `ieee80211_rts_get' makes integer from pointer without a cast
> > drivers/net/wireless/rt2x00mac.c:65: warning: passing arg 4 of `ieee80211_rts_get' makes pointer from integer without a cast
> > drivers/net/wireless/rt2x00mac.c:65: warning: passing arg 5 of `ieee80211_rts_get' from incompatible pointer type
> > drivers/net/wireless/rt2x00mac.c:65: error: too many arguments to function `ieee80211_rts_get'
> > make[3]: *** [drivers/net/wireless/rt2x00mac.o] Error 1
> > make[2]: *** [drivers/net/wireless] Error 2
> > make[1]: *** [drivers/net] Error 2
> > make: *** [drivers] Error 2
>
> This has been fixed for quite some time already.
> John, I can't check this myself now, but which rt2x00
> patches have gone into the -mm tree? Since I believe
> the patch that changed ieee80211_ctstoself_get was
> followed by a patch to fix rt2x00 within the same series...

Andrew had a lot of problems working-out conflicts between wireless-dev
and net-2.6.24. I have since taken steps to help with this, but I
think his pull was from before the wireless-dev rebase. Hopefully the
next -mm will be better.

John
--
John W. Linville
[email protected]

2007-08-22 20:20:33

by Andi Kleen

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

> Yes, that works.

Does it also work when you copy the options (except -mcmodel=kernel)
you see for

rm kernel/unwind.o
make V=1 kernel/unwind.o

to the test program command line?

If no please check which option makes it fail.

-Andi

2007-08-22 20:23:18

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: inlining failures in sound/pci/hda/hda_codec.c

Hello,

This is from x86_32 with gcc 3.4.6:

CC [M] sound/pci/hda/hda_codec.o
sound/pci/hda/hda_codec.c: In function `snd_hda_codec_free':
sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed in call to 'free_hda_cache': function body not available
sound/pci/hda/hda_codec.c:534: sorry, unimplemented: called from here
sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed in call to 'free_hda_cache': function body not available
sound/pci/hda/hda_codec.c:535: sorry, unimplemented: called from here
make[3]: *** [sound/pci/hda/hda_codec.o] Error 1
make[2]: *** [sound/pci/hda] Error 2
make[1]: *** [sound/pci] Error 2
make: *** [sound] Error 2

Regards,

Mariusz

2007-08-22 20:30:38

by Frederik Deweerdt

[permalink] [raw]
Subject: [-mm patch] enforce noreplace-smp in alternative_instructions()

On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>
Hi Jeremy,

arch/i386/kernel/alternative.c:alternative_instructions() doesn't
check for noreplace-smp before setting capability bits and freeing the
__smp_locks section.

Every call to alternatives_smp_unlock() checks for noreplace-smp
beforehand, so remove the check from there.

Boot tested on i386 with UP+noreplace-smp (lguest) and SMP (real hardware)

Regards,
Frederik

Signed-off-by: Frederik Deweerdt <[email protected]>

diff --git a/arch/i386/kernel/alternative.c b/arch/i386/kernel/alternative.c
index 9f4ac8b..7c5af80 100644
--- a/arch/i386/kernel/alternative.c
+++ b/arch/i386/kernel/alternative.c
@@ -221,9 +221,6 @@ static void alternatives_smp_unlock(u8 **start, u8 **end, u8 *text, u8 *text_end
u8 **ptr;
char insn[1];

- if (noreplace_smp)
- return;
-
add_nops(insn, 1);
for (ptr = start; ptr < end; ptr++) {
if (*ptr < text)
@@ -406,7 +403,7 @@ void __init alternative_instructions(void)
#endif

#ifdef CONFIG_SMP
- if (smp_alt_once) {
+ if (smp_alt_once && !noreplace_smp) {
if (1 == num_possible_cpus()) {
printk(KERN_INFO "SMP alternatives: switching to UP code\n");
set_bit(X86_FEATURE_UP, boot_cpu_data.x86_capability);

2007-08-22 20:39:45

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Wed, 22 Aug 2007 23:14:13 +0200 Andi Kleen wrote:

> > Yes, that works.
>
> Does it also work when you copy the options (except -mcmodel=kernel)
> you see for
>
> rm kernel/unwind.o
> make V=1 kernel/unwind.o
>
> to the test program command line?
>
> If no please check which option makes it fail.

All my bad. It's a sparse warning. I don't know if current
sparse is fixed or not, but I'll download it.

Thanks.
---
~Randy

2007-08-22 20:52:22

by Kay Sievers

[permalink] [raw]
Subject: Re: [BUG] 2.6.23-rc3-mm1 - kernel BUG at net/core/skbuff.c:95!

On Thu, 2007-08-23 at 00:34 +0530, Balbir Singh wrote:
> Kay Sievers wrote:
> >> gargh, sorry, that's probably due to my screwed up attempt to fix Kay's
> >> screwed up
> >> gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch.
> >>
> >> Kay sent an update patch but it didn't arrive in time.
> >>
> >> Greg, if you haven't yet merged that, please do so asap?
> >>
> >> So what _should_ this:
> >>
> >> --- a/arch/powerpc/kernel/vio.c~fix-4-gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct
> >> +++ a/arch/powerpc/kernel/vio.c
> >> @@ -373,7 +373,7 @@ static int vio_hotplug(struct device *de
> >> dn = dev->archdata.of_node;
> >> if (!dn)
> >> return -ENODEV;
> >> - cp = of_get_property(dn, "compatible", &length);
> >> + cp = of_get_property(dn, "compatible", &env->buflen);
> >> if (!cp)
> >> return -ENODEV;
> >>
> >> _
> >>
> >> have done?
> >
> > Does replacing "&length" with "NULL" work? That's what's in the updated
> > patch.

> replacing &length with NULL does not work for me. I get a message saying that
> init terminated with signal 7.

Hi Balbir,
ugh, I can't see what's going wrong here.

Care to just "return 0" for the whole function, and try again? Just to
rule out that this is the cause of the problem.

Thanks,
Kay

2007-08-22 21:07:44

by Takashi Iwai

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: inlining failures in sound/pci/hda/hda_codec.c

At Wed, 22 Aug 2007 22:23:03 +0200,
Mariusz Kozlowski wrote:
>
> Hello,
>
> This is from x86_32 with gcc 3.4.6:
>
> CC [M] sound/pci/hda/hda_codec.o
> sound/pci/hda/hda_codec.c: In function `snd_hda_codec_free':
> sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed in call to 'free_hda_cache': function body not available
> sound/pci/hda/hda_codec.c:534: sorry, unimplemented: called from here
> sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed in call to 'free_hda_cache': function body not available
> sound/pci/hda/hda_codec.c:535: sorry, unimplemented: called from here
> make[3]: *** [sound/pci/hda/hda_codec.o] Error 1
> make[2]: *** [sound/pci/hda] Error 2
> make[1]: *** [sound/pci] Error 2
> make: *** [sound] Error 2

Since it doesn't happen with gcc-4.x, this looks like a gcc-3.x
specific problem. Does the patch below fix?


Taksahi

diff -r db9001b20d29 pci/hda/hda_codec.c
--- a/pci/hda/hda_codec.c Wed Aug 22 14:19:45 2007 +0200
+++ b/pci/hda/hda_codec.c Wed Aug 22 23:06:00 2007 +0200
@@ -514,7 +514,7 @@ static int read_widget_caps(struct hda_c

static void init_hda_cache(struct hda_cache_rec *cache,
unsigned int record_size);
-static inline void free_hda_cache(struct hda_cache_rec *cache);
+static void free_hda_cache(struct hda_cache_rec *cache);

/*
* codec destructor
@@ -707,7 +707,7 @@ static void __devinit init_hda_cache(str
cache->record_size = record_size;
}

-static inline void free_hda_cache(struct hda_cache_rec *cache)
+static void free_hda_cache(struct hda_cache_rec *cache)
{
kfree(cache->buffer);
}

2007-08-22 21:11:15

by Balbir Singh

[permalink] [raw]
Subject: Re: [BUG] 2.6.23-rc3-mm1 - kernel BUG at net/core/skbuff.c:95!

Kay Sievers wrote:
> On Thu, 2007-08-23 at 00:34 +0530, Balbir Singh wrote:
>> Kay Sievers wrote:
>>>> gargh, sorry, that's probably due to my screwed up attempt to fix Kay's
>>>> screwed up
>>>> gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch.
>>>>
>>>> Kay sent an update patch but it didn't arrive in time.
>>>>
>>>> Greg, if you haven't yet merged that, please do so asap?
>>>>
>>>> So what _should_ this:
>>>>
>>>> --- a/arch/powerpc/kernel/vio.c~fix-4-gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct
>>>> +++ a/arch/powerpc/kernel/vio.c
>>>> @@ -373,7 +373,7 @@ static int vio_hotplug(struct device *de
>>>> dn = dev->archdata.of_node;
>>>> if (!dn)
>>>> return -ENODEV;
>>>> - cp = of_get_property(dn, "compatible", &length);
>>>> + cp = of_get_property(dn, "compatible", &env->buflen);
>>>> if (!cp)
>>>> return -ENODEV;
>>>>
>>>> _
>>>>
>>>> have done?
>>> Does replacing "&length" with "NULL" work? That's what's in the updated
>>> patch.
>
>> replacing &length with NULL does not work for me. I get a message saying that
>> init terminated with signal 7.
>
> Hi Balbir,
> ugh, I can't see what's going wrong here.
>

Same here.. I went through the new add_uevent_var() code. The only change
I found was that instead of using env->envp[env->envp_idx] as an argument
to vsnprintf(), the code looks semantically the same. Even with those
changes, the assignment of env->envp[env->envp_idx++] to &env->buf[
env->buflen] makes the semantics look similar.

I verified that the arguments to add_uevent_var() are sane. So at this
point, I am a little lost. I'll debug further and see if the socket
allocation is sufficient.

> Care to just "return 0" for the whole function, and try again? Just to
> rule out that this is the cause of the problem.
>
> Thanks,
> Kay
>


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

2007-08-22 21:19:06

by Mariusz Kozlowski

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: inlining failures in sound/pci/hda/hda_codec.c

> > This is from x86_32 with gcc 3.4.6:
> >
> > CC [M] sound/pci/hda/hda_codec.o
> > sound/pci/hda/hda_codec.c: In function `snd_hda_codec_free':
> > sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed in call to 'free_hda_cache': function body not available
> > sound/pci/hda/hda_codec.c:534: sorry, unimplemented: called from here
> > sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed in call to 'free_hda_cache': function body not available
> > sound/pci/hda/hda_codec.c:535: sorry, unimplemented: called from here
> > make[3]: *** [sound/pci/hda/hda_codec.o] Error 1
> > make[2]: *** [sound/pci/hda] Error 2
> > make[1]: *** [sound/pci] Error 2
> > make: *** [sound] Error 2
>
> Since it doesn't happen with gcc-4.x, this looks like a gcc-3.x
> specific problem. Does the patch below fix?

Yes - it does.

Thanks,

Mariusz

> diff -r db9001b20d29 pci/hda/hda_codec.c
> --- a/pci/hda/hda_codec.c Wed Aug 22 14:19:45 2007 +0200
> +++ b/pci/hda/hda_codec.c Wed Aug 22 23:06:00 2007 +0200
> @@ -514,7 +514,7 @@ static int read_widget_caps(struct hda_c
>
> static void init_hda_cache(struct hda_cache_rec *cache,
> unsigned int record_size);
> -static inline void free_hda_cache(struct hda_cache_rec *cache);
> +static void free_hda_cache(struct hda_cache_rec *cache);
>
> /*
> * codec destructor
> @@ -707,7 +707,7 @@ static void __devinit init_hda_cache(str
> cache->record_size = record_size;
> }
>
> -static inline void free_hda_cache(struct hda_cache_rec *cache)
> +static void free_hda_cache(struct hda_cache_rec *cache)
> {
> kfree(cache->buffer);
> }
> -

2007-08-22 21:31:51

by Frederik Deweerdt

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: locking boot-time self-test failure

On Wed, Aug 22, 2007 at 07:26:39PM +0200, Mariusz Kozlowski wrote:
> Got that on my laptop:
>
[...]
> -----------------------------------------------------------------
> BUG: 6 unexpected failures (out of 218) - debugging disabled! |
> -----------------------------------------------------------------

Hi Mariusz,

FWIW, reverting softlockup-use-cpu_clock-instead-of-sched_clock.patch
fixes the problem here.

Regards,
Frederik

2007-08-22 21:46:23

by Adrian Bunk

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: inlining failures in sound/pci/hda/hda_codec.c

On Wed, Aug 22, 2007 at 11:07:33PM +0200, Takashi Iwai wrote:
> At Wed, 22 Aug 2007 22:23:03 +0200,
> Mariusz Kozlowski wrote:
> >
> > Hello,
> >
> > This is from x86_32 with gcc 3.4.6:
> >
> > CC [M] sound/pci/hda/hda_codec.o
> > sound/pci/hda/hda_codec.c: In function `snd_hda_codec_free':
> > sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed in call to 'free_hda_cache': function body not available
> > sound/pci/hda/hda_codec.c:534: sorry, unimplemented: called from here
> > sound/pci/hda/hda_codec.c:517: sorry, unimplemented: inlining failed in call to 'free_hda_cache': function body not available
> > sound/pci/hda/hda_codec.c:535: sorry, unimplemented: called from here
> > make[3]: *** [sound/pci/hda/hda_codec.o] Error 1
> > make[2]: *** [sound/pci/hda] Error 2
> > make[1]: *** [sound/pci] Error 2
> > make: *** [sound] Error 2
>
> Since it doesn't happen with gcc-4.x, this looks like a gcc-3.x
> specific problem.
>...

It happens because gcc doesn't see the whole file without
unit-at-a-time and we disable unit-at-a-time with gcc 3.4 on i386 due
to stack usage problems (and older GNU gcc versions don't support
unit-at-a-time at all).

cu
Adrian

--

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

2007-08-22 21:58:28

by Michael Büsch

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: fix b43 compilation

On Wednesday 22 August 2007 18:33:58 Rafael J. Wysocki wrote:
> On Wednesday, 22 August 2007 11:06, Andrew Morton wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
> >
> > - git-ixgbe.patch got dropped - git-net.patch destroyed it
> >
> > - then git-net got dropped as it doesn't work
>
> Apparently, the b43 driver is expecting another version of mac80211.
>
> This patch fixes the compilation, but I'm not sure what about the
> functionality. ;-)

There seems to be a screwup somehow.
These mac80211 API functions were recently changed to include
the additional parameter. So it seems you carry an old version of mac80211.

--
Greetings Michael.

2007-08-22 22:45:25

by Jason Wessel

[permalink] [raw]
Subject: Re: [Kgdb-bugreport] 2.6.23-rc3-mm1: kgdb build failure on powerpc

Signed-off-by: Jason Wessel <[email protected]>

---
kernel/kgdb.c | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)

--- a/kernel/kgdb.c
+++ b/kernel/kgdb.c
@@ -121,6 +121,7 @@ struct task_struct *kgdb_usethread, *kgd

int debugger_step;
atomic_t debugger_active;
+static atomic_t kgdb_sync = ATOMIC_INIT(-1);

/* Our I/O buffers. */
static char remcom_in_buffer[BUFMAX];
@@ -638,8 +639,14 @@ static void kgdb_wait(struct pt_regs *re
kgdb_info[processor].task = current;
atomic_set(&procindebug[processor], 1);

+ /* The master processor must be active to enter here, but this is
+ * gaurd in case the master processor had not been selected if
+ * this was an entry via nmi.
+ */
+ while (!atomic_read(&debugger_active));
+
/* Wait till master processor goes completely into the debugger.
- * FIXME: this looks racy */
+ */
while (!atomic_read(&procindebug[atomic_read(&debugger_active) - 1])) {
int i = 10; /* an arbitrary number */

@@ -973,8 +980,13 @@ int kgdb_handle_exception(int ex_vector,
/* Hold debugger_active */
procid = raw_smp_processor_id();

- while (cmpxchg(&atomic_read(&debugger_active), 0, (procid + 1)) != 0) {
+ while (1) {
int i = 25; /* an arbitrary number */
+ if (atomic_read(&kgdb_sync) < 0 &&
+ atomic_inc_and_test(&kgdb_sync)) {
+ atomic_set(&debugger_active, procid + 1);
+ break;
+ }

while (--i)
cpu_relax();
@@ -991,6 +1003,7 @@ int kgdb_handle_exception(int ex_vector,
if (atomic_read(&cpu_doing_single_step) != -1 &&
atomic_read(&cpu_doing_single_step) != procid) {
atomic_set(&debugger_active, 0);
+ atomic_set(&kgdb_sync, -1);
clocksource_touch_watchdog();
kgdb_softlock_skip[procid] = 1;
local_irq_restore(flags);
@@ -1557,6 +1570,7 @@ int kgdb_handle_exception(int ex_vector,
kgdb_restore:
/* Free debugger_active */
atomic_set(&debugger_active, 0);
+ atomic_set(&kgdb_sync, -1);
clocksource_touch_watchdog();
kgdb_softlock_skip[processor] = 1;
local_irq_restore(flags);


Attachments:
kgdb_enter_atomic.patch (1.98 kB)

2007-08-22 23:32:17

by Gabriel C

[permalink] [raw]
Subject: drivers/char/nozomi.c - compile error ( Re: 2.6.23-rc3-mm1 )


config : http://194.231.229.228/kernel/mm/2.6.23-rc3-mm1/r/randconfig-18

...

drivers/char/nozomi.c:2204: error: expected expression before '__attribute__'
make[2]: *** [drivers/char/nozomi.o] Error 1
make[1]: *** [drivers/char] Error 2
make: *** [drivers] Error 2
make: *** Waiting for unfinished jobs....


...

2007-08-22 23:36:21

by Gabriel C

[permalink] [raw]
Subject: fs/xfs/xfs_bmap_btree.c - compile error (Re: 2.6.23-rc3-mm1)


config : http://194.231.229.228/kernel/mm/2.6.23-rc3-mm1/r/randconfig-18

...

fs/xfs/xfs_bmap_btree.c: In function 'xfs_bmbt_set_allf':
fs/xfs/xfs_bmap_btree.c:2312: error: 'b' undeclared (first use in this function)
fs/xfs/xfs_bmap_btree.c:2312: error: (Each undeclared identifier is reported only once
fs/xfs/xfs_bmap_btree.c:2312: error: for each function it appears in.)
fs/xfs/xfs_bmap_btree.c: In function 'xfs_bmbt_disk_set_allf':
fs/xfs/xfs_bmap_btree.c:2372: error: 'b' undeclared (first use in this function)
make[2]: *** [fs/xfs/xfs_bmap_btree.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CC fs/reiser4/safe_link.o
CC fs/reiser4/plugin/plugin.o
make[1]: *** [fs/xfs] Error 2
make[1]: *** Waiting for unfinished jobs....

...

2007-08-22 23:54:23

by Andrew Morton

[permalink] [raw]
Subject: Re: [Kgdb-bugreport] 2.6.23-rc3-mm1: kgdb build failure on powerpc

On Wed, 22 Aug 2007 17:44:12 -0500
Jason Wessel <[email protected]> wrote:

> Perhaps there is a cleaner way to do the same thing and avoid the
> cmpxchg all together. I used the attached patch to eliminate the
> cmpxchg operation.
>
>
> Jason.
>
>
> [kgdb_enter_atomic.patch text/plain (2.0KB)]
> Signed-off-by: Jason Wessel <[email protected]>
>
> ---
> kernel/kgdb.c | 18 ++++++++++++++++--
> 1 file changed, 16 insertions(+), 2 deletions(-)
>
> --- a/kernel/kgdb.c
> +++ b/kernel/kgdb.c
> @@ -121,6 +121,7 @@ struct task_struct *kgdb_usethread, *kgd
>
> int debugger_step;
> atomic_t debugger_active;
> +static atomic_t kgdb_sync = ATOMIC_INIT(-1);
>
> /* Our I/O buffers. */
> static char remcom_in_buffer[BUFMAX];
> @@ -638,8 +639,14 @@ static void kgdb_wait(struct pt_regs *re
> kgdb_info[processor].task = current;
> atomic_set(&procindebug[processor], 1);
>
> + /* The master processor must be active to enter here, but this is
> + * gaurd in case the master processor had not been selected if
> + * this was an entry via nmi.
> + */
> + while (!atomic_read(&debugger_active));

eek. We're in the process of hunting down and eliminating exactly this
construct. There have been cases where the compiler cached the
atomic_read() result in a register, turning the above into an infinite
loop.

Plus we should never add power-burners like that into the kernel anyway.
That loop should have a cpu_relax() in it. Which will also fix the
compiler problem described above.

Thirdly, please always add a newline when coding statements like that:

while (expr())
;


2007-08-23 02:17:01

by Zan Lynx

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - memory layout change? - lost support for MAP_32BIT? - mono crashes

On Wed, 2007-08-22 at 02:06 -0700, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/

After installing this new wonder kernel on my AMD-64 laptop, I
discovered that Beagle wouldn't start. While enjoying how fast my
system felt ( :) ) I also discovered that Evolution wouldn't start
because it was built with mono integration.

Can't live without email, so I poked at it and discovered that if I run
mono applications (including Evolution) with the legacy memory layout,
they work.

Like this: setarch x86_64 -L evolution

This didn't happen on -rc2-mm2, so I think somebody changed something.
Mono claims to mmap with the MAP_32BIT option.

In -rc3-mm1 strace shows mono's mmap like this:
mmap(NULL, 65536, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS|MAP_32BIT, -1, 0) = 0x7fa21f5cb000

It's got MAP_32BIT, but that's not a 32-bit address...
--
Zan Lynx <[email protected]>


Attachments:
signature.asc (189.00 B)
This is a digitally signed message part

2007-08-23 03:15:22

by John W. Linville

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: fix b43 compilation

On Wed, Aug 22, 2007 at 11:56:43PM +0200, Michael Buesch wrote:
> On Wednesday 22 August 2007 18:33:58 Rafael J. Wysocki wrote:
> > On Wednesday, 22 August 2007 11:06, Andrew Morton wrote:
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
> > >
> > > - git-ixgbe.patch got dropped - git-net.patch destroyed it
> > >
> > > - then git-net got dropped as it doesn't work
> >
> > Apparently, the b43 driver is expecting another version of mac80211.
> >
> > This patch fixes the compilation, but I'm not sure what about the
> > functionality. ;-)
>
> There seems to be a screwup somehow.
> These mac80211 API functions were recently changed to include
> the additional parameter. So it seems you carry an old version of mac80211.

I think what happened is because Andrew dropped Dave M.'s net tree.
Since mac80211 has been getting merged through Dave M., crucial bits
are missing which then break the bits from wireless-dev.

Andrew, if you find that you need to drop git-net again then I'll be
happy to provide you with a wireless-dev patch that does not depend on
Dave's tree. The mm-master branch in wireless-dev has dropped those
patches which have gone to Dave M. in the hopes of avoiding conflicts.
Dependencies are another matter... :-)

John
--
John W. Linville
[email protected]

2007-08-23 03:25:46

by Jason Wessel

[permalink] [raw]
Subject: Re: [Kgdb-bugreport] 2.6.23-rc3-mm1: kgdb build failure on powerpc

Andrew Morton wrote:
> On Wed, 22 Aug 2007 17:44:12 -0500
> Jason Wessel <[email protected]> wrote:
>
>
>> + while (!atomic_read(&debugger_active));
>>
>
> eek. We're in the process of hunting down and eliminating exactly this
> construct. There have been cases where the compiler cached the
> atomic_read() result in a register, turning the above into an infinite
> loop.
>
> Plus we should never add power-burners like that into the kernel anyway.
> That loop should have a cpu_relax() in it. Which will also fix the
> compiler problem described above.
>
>
Agreed, and fixed with a cpu_relax.

> Thirdly, please always add a newline when coding statements like that:
>
> while (expr())
> ;
>

The other instances I found of the same problem in the kgdb core are
fixed too.

I merged all the changes into the for_mm branch in the kgdb git tree.

Thanks,
Jason.

2007-08-23 03:47:35

by Randy Dunlap

[permalink] [raw]
Subject: Re: drivers/char/nozomi.c - compile error ( Re: 2.6.23-rc3-mm1 )

On Thu, 23 Aug 2007 01:30:30 +0200 Gabriel C wrote:

>
> config : http://194.231.229.228/kernel/mm/2.6.23-rc3-mm1/r/randconfig-18
>
> ...
>
> drivers/char/nozomi.c:2204: error: expected expression before '__attribute__'

__devexit should be __devexit_p


---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

2007-08-23 03:49:38

by Randy Dunlap

[permalink] [raw]
Subject: Re: fs/xfs/xfs_bmap_btree.c - compile error (Re: 2.6.23-rc3-mm1)

On Thu, 23 Aug 2007 01:34:41 +0200 Gabriel C wrote:

>
> config : http://194.231.229.228/kernel/mm/2.6.23-rc3-mm1/r/randconfig-18
>
> ...
>
> fs/xfs/xfs_bmap_btree.c: In function 'xfs_bmbt_set_allf':
> fs/xfs/xfs_bmap_btree.c:2312: error: 'b' undeclared (first use in this function)
> fs/xfs/xfs_bmap_btree.c:2312: error: (Each undeclared identifier is reported only once
> fs/xfs/xfs_bmap_btree.c:2312: error: for each function it appears in.)
> fs/xfs/xfs_bmap_btree.c: In function 'xfs_bmbt_disk_set_allf':
> fs/xfs/xfs_bmap_btree.c:2372: error: 'b' undeclared (first use in this function)
> make[2]: *** [fs/xfs/xfs_bmap_btree.o] Error 1
> make[2]: *** Waiting for unfinished jobs....
> CC fs/reiser4/safe_link.o
> CC fs/reiser4/plugin/plugin.o
> make[1]: *** [fs/xfs] Error 2
> make[1]: *** Waiting for unfinished jobs....


patch is here:
http://lkml.org/lkml/2007/8/22/153

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

2007-08-23 05:27:24

by Timothy Shimmin

[permalink] [raw]
Subject: Re: [BUG] fs/xfs/xfs_bmap_btree.c:2312: error: 'b' undeclared (first use in this function) (Was Re: 2.6.23-rc3-mm1)

Hi Michal,

Thanks for the patch.
This would be a problem for 32bit machines without large blocksize support
(i.e. in our xfs tests: !XFS_BIG_BLKNOS => (BITS_PER_LONG == 32 && !defined(CONFIG_LBD))
which we obviously didn't do a build test for.

I'll check it into our local tree and push to the master branch for Andrew.

--Tim

Michal Piotrowski wrote:
> Michal Piotrowski pisze:
>> Andrew Morton pisze:
>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>>>
>> /home/devel/linux-mm/fs/xfs/xfs_bmap_btree.c: In function 'xfs_bmbt_set_allf':
>> /home/devel/linux-mm/fs/xfs/xfs_bmap_btree.c:2312: error: 'b' undeclared (first use in this function)
>> /home/devel/linux-mm/fs/xfs/xfs_bmap_btree.c:2312: error: (Each undeclared identifier is reported only once
>> /home/devel/linux-mm/fs/xfs/xfs_bmap_btree.c:2312: error: for each function it appears in.)
>> /home/devel/linux-mm/fs/xfs/xfs_bmap_btree.c: In function 'xfs_bmbt_disk_set_allf':
>> /home/devel/linux-mm/fs/xfs/xfs_bmap_btree.c:2372: error: 'b' undeclared (first use in this function)
>> make[3]: *** [fs/xfs/xfs_bmap_btree.o] Error 1
>> make[2]: *** [fs/xfs] Error 2
>> make[1]: *** [fs] Error 2
>> make: *** [_all] Error 2
>>
>
> Build fix.
>
> Regards,
> Michal
>
> --
> LOG
> http://www.stardust.webpages.pl/log/
>
> Signed-off-by: Michal Piotrowski <[email protected]>
>
> --- linux-mm-clean/fs/xfs/xfs_bmap_btree.c 2007-08-22 12:20:35.000000000 +0200
> +++ linux-mm/fs/xfs/xfs_bmap_btree.c 2007-08-22 12:15:52.000000000 +0200
> @@ -2309,7 +2309,7 @@ xfs_bmbt_set_allf(
> ((xfs_bmbt_rec_base_t)blockcount &
> (xfs_bmbt_rec_base_t)XFS_MASK64LO(21));
> #else /* !XFS_BIG_BLKNOS */
> - if (ISNULLSTARTBLOCK(b)) {
> + if (ISNULLSTARTBLOCK(startblock)) {
> r->l0 = ((xfs_bmbt_rec_base_t)extent_flag << 63) |
> ((xfs_bmbt_rec_base_t)startoff << 9) |
> (xfs_bmbt_rec_base_t)XFS_MASK64LO(9);
> @@ -2369,7 +2369,7 @@ xfs_bmbt_disk_set_allf(
> ((xfs_bmbt_rec_base_t)blockcount &
> (xfs_bmbt_rec_base_t)XFS_MASK64LO(21)));
> #else /* !XFS_BIG_BLKNOS */
> - if (ISNULLSTARTBLOCK(b)) {
> + if (ISNULLSTARTBLOCK(startblock)) {
> r->l0 = cpu_to_be64(
> ((xfs_bmbt_rec_base_t)extent_flag << 63) |
> ((xfs_bmbt_rec_base_t)startoff << 9) |
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

2007-08-23 06:58:42

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - memory layout change? - lost support for MAP_32BIT? - mono crashes

On Wed, 22 Aug 2007 20:08:25 -0600 Zan Lynx <[email protected]> wrote:

> On Wed, 2007-08-22 at 02:06 -0700, Andrew Morton wrote:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>
> After installing this new wonder kernel on my AMD-64 laptop, I
> discovered that Beagle wouldn't start. While enjoying how fast my
> system felt ( :) ) I also discovered that Evolution wouldn't start
> because it was built with mono integration.
>
> Can't live without email, so I poked at it and discovered that if I run
> mono applications (including Evolution) with the legacy memory layout,
> they work.
>
> Like this: setarch x86_64 -L evolution
>
> This didn't happen on -rc2-mm2, so I think somebody changed something.
> Mono claims to mmap with the MAP_32BIT option.
>
> In -rc3-mm1 strace shows mono's mmap like this:
> mmap(NULL, 65536, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS|MAP_32BIT, -1, 0) = 0x7fa21f5cb000
>
> It's got MAP_32BIT, but that's not a 32-bit address...

Thanks, it helps.

I'm thinking unkind thoughts about pie-executable-randomization.patch.

Below is a patch which removes

pie-executable-randomization.patch
pie-executable-randomization-fix.patch
pie-executable-randomization-fix-2.patch

from 2.6.23-rc3-mm1. 'twould be great if you could see if that fixes
things, thanks.


arch/ia64/ia32/binfmt_elf32.c | 2
arch/x86_64/mm/mmap.c | 107 ++++----------------------------
fs/binfmt_elf.c | 107 ++++++--------------------------
3 files changed, 38 insertions(+), 178 deletions(-)

diff -puN fs/binfmt_elf.c~revert-pie-executable-randomization fs/binfmt_elf.c
--- a/fs/binfmt_elf.c~revert-pie-executable-randomization
+++ a/fs/binfmt_elf.c
@@ -45,7 +45,7 @@

static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs);
static int load_elf_library(struct file *);
-static unsigned long elf_map (struct file *, unsigned long, struct elf_phdr *, int, int, unsigned long);
+static unsigned long elf_map (struct file *, unsigned long, struct elf_phdr *, int, int);

/*
* If we don't support core dumping, then supply a NULL so we
@@ -295,70 +295,33 @@ create_elf_tables(struct linux_binprm *b
#ifndef elf_map

static unsigned long elf_map(struct file *filep, unsigned long addr,
- struct elf_phdr *eppnt, int prot, int type,
- unsigned long total_size)
+ struct elf_phdr *eppnt, int prot, int type)
{
unsigned long map_addr;
- unsigned long size = eppnt->p_filesz + ELF_PAGEOFFSET(eppnt->p_vaddr);
- unsigned long off = eppnt->p_offset - ELF_PAGEOFFSET(eppnt->p_vaddr);
- addr = ELF_PAGESTART(addr);
- size = ELF_PAGEALIGN(size);
+ unsigned long pageoffset = ELF_PAGEOFFSET(eppnt->p_vaddr);

+ down_write(&current->mm->mmap_sem);
/* mmap() will return -EINVAL if given a zero size, but a
* segment with zero filesize is perfectly valid */
- if (!size)
- return addr;
-
- down_write(&current->mm->mmap_sem);
- /*
- * total_size is the size of the ELF (interpreter) image.
- * The _first_ mmap needs to know the full size, otherwise
- * randomization might put this image into an overlapping
- * position with the ELF binary image. (since size < total_size)
- * So we first map the 'big' image - and unmap the remainder at
- * the end. (which unmap is needed for ELF images with holes.)
- */
- if (total_size) {
- total_size = ELF_PAGEALIGN(total_size);
- map_addr = do_mmap(filep, addr, total_size, prot, type, off);
- if (!BAD_ADDR(map_addr))
- do_munmap(current->mm, map_addr+size, total_size-size);
- } else
- map_addr = do_mmap(filep, addr, size, prot, type, off);
-
+ if (eppnt->p_filesz + pageoffset)
+ map_addr = do_mmap(filep, ELF_PAGESTART(addr),
+ eppnt->p_filesz + pageoffset, prot, type,
+ eppnt->p_offset - pageoffset);
+ else
+ map_addr = ELF_PAGESTART(addr);
up_write(&current->mm->mmap_sem);
return(map_addr);
}

#endif /* !elf_map */

-static unsigned long total_mapping_size(struct elf_phdr *cmds, int nr)
-{
- int i, first_idx = -1, last_idx = -1;
-
- for (i = 0; i < nr; i++) {
- if (cmds[i].p_type == PT_LOAD) {
- last_idx = i;
- if (first_idx == -1)
- first_idx = i;
- }
- }
- if (first_idx == -1)
- return 0;
-
- return cmds[last_idx].p_vaddr + cmds[last_idx].p_memsz -
- ELF_PAGESTART(cmds[first_idx].p_vaddr);
-}
-
-
/* This is much more generalized than the library routine read function,
so we keep this separate. Technically the library read function
is only provided so that we can read a.out libraries that have
an ELF header */

static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
- struct file *interpreter, unsigned long *interp_map_addr,
- unsigned long no_base)
+ struct file *interpreter, unsigned long *interp_load_addr)
{
struct elf_phdr *elf_phdata;
struct elf_phdr *eppnt;
@@ -366,7 +329,6 @@ static unsigned long load_elf_interp(str
int load_addr_set = 0;
unsigned long last_bss = 0, elf_bss = 0;
unsigned long error = ~0UL;
- unsigned long total_size;
int retval, i, size;

/* First of all, some simple consistency checks */
@@ -405,12 +367,6 @@ static unsigned long load_elf_interp(str
goto out_close;
}

- total_size = total_mapping_size(elf_phdata, interp_elf_ex->e_phnum);
- if (!total_size) {
- error = -EINVAL;
- goto out_close;
- }
-
eppnt = elf_phdata;
for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) {
if (eppnt->p_type == PT_LOAD) {
@@ -428,14 +384,9 @@ static unsigned long load_elf_interp(str
vaddr = eppnt->p_vaddr;
if (interp_elf_ex->e_type == ET_EXEC || load_addr_set)
elf_type |= MAP_FIXED;
- else if (no_base && interp_elf_ex->e_type == ET_DYN)
- load_addr = -vaddr;

map_addr = elf_map(interpreter, load_addr + vaddr,
- eppnt, elf_prot, elf_type, total_size);
- total_size = 0;
- if (!*interp_map_addr)
- *interp_map_addr = map_addr;
+ eppnt, elf_prot, elf_type);
error = map_addr;
if (BAD_ADDR(map_addr))
goto out_close;
@@ -501,7 +452,8 @@ static unsigned long load_elf_interp(str
goto out_close;
}

- error = load_addr;
+ *interp_load_addr = load_addr;
+ error = ((unsigned long)interp_elf_ex->e_entry) + load_addr;

out_close:
kfree(elf_phdata);
@@ -598,8 +550,7 @@ static int load_elf_binary(struct linux_
int elf_exec_fileno;
int retval, i;
unsigned int size;
- unsigned long elf_entry;
- unsigned long interp_load_addr = 0;
+ unsigned long elf_entry, interp_load_addr = 0;
unsigned long start_code, end_code, start_data, end_data;
unsigned long reloc_func_desc = 0;
char passed_fileno[6];
@@ -871,7 +822,9 @@ static int load_elf_binary(struct linux_
current->mm->start_stack = bprm->p;

/* Now we do a little grungy work by mmaping the ELF image into
- the correct location in memory. */
+ the correct location in memory. At this point, we assume that
+ the image should be loaded at fixed address, not at a variable
+ address. */
for(i = 0, elf_ppnt = elf_phdata;
i < loc->elf_ex.e_phnum; i++, elf_ppnt++) {
int elf_prot = 0, elf_flags;
@@ -925,15 +878,11 @@ static int load_elf_binary(struct linux_
* default mmap base, as well as whatever program they
* might try to exec. This is because the brk will
* follow the loader, and is not movable. */
-#ifdef CONFIG_X86
- load_bias = 0;
-#else
load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr);
-#endif
}

error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt,
- elf_prot, elf_flags,0);
+ elf_prot, elf_flags);
if (BAD_ADDR(error)) {
send_sig(SIGKILL, current, 0);
retval = IS_ERR((void *)error) ?
@@ -1009,25 +958,13 @@ static int load_elf_binary(struct linux_
}

if (elf_interpreter) {
- if (interpreter_type == INTERPRETER_AOUT) {
+ if (interpreter_type == INTERPRETER_AOUT)
elf_entry = load_aout_interp(&loc->interp_ex,
interpreter);
- } else {
- unsigned long uninitialized_var(interp_map_addr);
-
+ else
elf_entry = load_elf_interp(&loc->interp_elf_ex,
interpreter,
- &interp_map_addr,
- load_bias);
- if (!IS_ERR((void *)elf_entry)) {
- /*
- * load_elf_interp() returns relocation
- * adjustment
- */
- interp_load_addr = elf_entry;
- elf_entry += loc->interp_elf_ex.e_entry;
- }
- }
+ &interp_load_addr);
if (BAD_ADDR(elf_entry)) {
force_sig(SIGSEGV, current);
retval = IS_ERR((void *)elf_entry) ?
diff -puN arch/x86_64/mm/mmap.c~revert-pie-executable-randomization arch/x86_64/mm/mmap.c
--- a/arch/x86_64/mm/mmap.c~revert-pie-executable-randomization
+++ a/arch/x86_64/mm/mmap.c
@@ -1,106 +1,29 @@
-/*
- * linux/arch/x86-64/mm/mmap.c
- *
- * flexible mmap layout support
- *
- * Based on code by Ingo Molnar and Andi Kleen, copyrighted
- * as follows:
- *
- * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina.
- * All Rights Reserved.
- * Copyright 2005 Andi Kleen, SuSE Labs.
- * Copyright 2007 Jiri Kosina, SuSE Labs.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
+/* Copyright 2005 Andi Kleen, SuSE Labs.
+ * Licensed under GPL, v.2
*/
-
-#include <linux/personality.h>
#include <linux/mm.h>
-#include <linux/random.h>
-#include <linux/limits.h>
#include <linux/sched.h>
+#include <linux/random.h>
#include <asm/ia32.h>

-/*
- * Top of mmap area (just below the process stack).
- *
- * Leave an at least ~128 MB hole.
- */
-#define MIN_GAP (128*1024*1024)
-#define MAX_GAP (TASK_SIZE/6*5)
-
-static inline unsigned long mmap_base(void)
-{
- unsigned long gap = current->signal->rlim[RLIMIT_STACK].rlim_cur;
-
- if (gap < MIN_GAP)
- gap = MIN_GAP;
- else if (gap > MAX_GAP)
- gap = MAX_GAP;
-
- return TASK_SIZE - (gap & PAGE_MASK);
-}
+/* Notebook: move the mmap code from sys_x86_64.c over here. */

-static inline int mmap_is_legacy(void)
+void arch_pick_mmap_layout(struct mm_struct *mm)
{
#ifdef CONFIG_IA32_EMULATION
- if (test_thread_flag(TIF_IA32))
- return 1;
+ if (current_thread_info()->flags & _TIF_IA32)
+ return ia32_pick_mmap_layout(mm);
#endif
-
- if (current->personality & ADDR_COMPAT_LAYOUT)
- return 1;
-
- if (current->signal->rlim[RLIMIT_STACK].rlim_cur == RLIM_INFINITY)
- return 1;
-
- return sysctl_legacy_va_layout;
-}
-
-/*
- * This function, called very early during the creation of a new
- * process VM image, sets up which VM layout function to use:
- */
-void arch_pick_mmap_layout(struct mm_struct *mm)
-{
- int rnd = 0;
+ mm->mmap_base = TASK_UNMAPPED_BASE;
if (current->flags & PF_RANDOMIZE) {
/* Add 28bit randomness which is about 40bits of address space
because mmap base has to be page aligned.
- or ~1/128 of the total user VM
- (total user address space is 47bits) */
- rnd = get_random_int() & 0xfffffff;
- }
-
- /*
- * Fall back to the standard layout if the personality
- * bit is set, or if the expected stack growth is unlimited:
- */
- if (mmap_is_legacy()) {
- mm->mmap_base = TASK_UNMAPPED_BASE;
- mm->get_unmapped_area = arch_get_unmapped_area;
- mm->unmap_area = arch_unmap_area;
- } else {
- mm->mmap_base = mmap_base();
- mm->get_unmapped_area = arch_get_unmapped_area_topdown;
- mm->unmap_area = arch_unmap_area_topdown;
- if (current->flags & PF_RANDOMIZE)
- rnd = -rnd;
- }
- if (current->flags & PF_RANDOMIZE) {
- mm->mmap_base += ((long)rnd) << PAGE_SHIFT;
+ or ~1/128 of the total user VM
+ (total user address space is 47bits) */
+ unsigned rnd = get_random_int() & 0xfffffff;
+ mm->mmap_base += ((unsigned long)rnd) << PAGE_SHIFT;
}
+ mm->get_unmapped_area = arch_get_unmapped_area;
+ mm->unmap_area = arch_unmap_area;
}
+
diff -puN arch/ia64/ia32/binfmt_elf32.c~revert-pie-executable-randomization arch/ia64/ia32/binfmt_elf32.c
--- a/arch/ia64/ia32/binfmt_elf32.c~revert-pie-executable-randomization
+++ a/arch/ia64/ia32/binfmt_elf32.c
@@ -226,7 +226,7 @@ elf32_set_personality (void)
}

static unsigned long
-elf32_map (struct file *filep, unsigned long addr, struct elf_phdr *eppnt, int prot, int type, unsigned long unused)
+elf32_map (struct file *filep, unsigned long addr, struct elf_phdr *eppnt, int prot, int type)
{
unsigned long pgoff = (eppnt->p_vaddr) & ~IA32_PAGE_MASK;

_

2007-08-23 07:09:27

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: fix b43 compilation

On Wed, 22 Aug 2007 22:56:15 -0400 "John W. Linville" <[email protected]> wrote:

> On Wed, Aug 22, 2007 at 11:56:43PM +0200, Michael Buesch wrote:
> > On Wednesday 22 August 2007 18:33:58 Rafael J. Wysocki wrote:
> > > On Wednesday, 22 August 2007 11:06, Andrew Morton wrote:
> > > >
> > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
> > > >
> > > > - git-ixgbe.patch got dropped - git-net.patch destroyed it
> > > >
> > > > - then git-net got dropped as it doesn't work
> > >
> > > Apparently, the b43 driver is expecting another version of mac80211.
> > >
> > > This patch fixes the compilation, but I'm not sure what about the
> > > functionality. ;-)
> >
> > There seems to be a screwup somehow.
> > These mac80211 API functions were recently changed to include
> > the additional parameter. So it seems you carry an old version of mac80211.
>
> I think what happened is because Andrew dropped Dave M.'s net tree.
> Since mac80211 has been getting merged through Dave M., crucial bits
> are missing which then break the bits from wireless-dev.

argh, I didn't know that. I wonder why all my compile testing passed.

> Andrew, if you find that you need to drop git-net again then I'll be
> happy to provide you with a wireless-dev patch that does not depend on
> Dave's tree. The mm-master branch in wireless-dev has dropped those
> patches which have gone to Dave M. in the hopes of avoiding conflicts.
> Dependencies are another matter... :-)

Hopefully git-net is less wrecked than it was yesterday. If things still
play up I'll have a go at bodging it up a bit, perhaps by disabling
netconsole. (Although now I think about it, the netconsole bug was mainly
an ill-advised BUG_ON, fixable by using WARN_ON instead).



2007-08-23 09:28:45

by Jiri Kosina

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - memory layout change? - lost support for MAP_32BIT? - mono crashes

On Wed, 22 Aug 2007, Zan Lynx wrote:

> After installing this new wonder kernel on my AMD-64 laptop, I
> discovered that Beagle wouldn't start. While enjoying how fast my
> system felt ( :) ) I also discovered that Evolution wouldn't start
> because it was built with mono integration.
[...]
> Mono claims to mmap with the MAP_32BIT option.
> In -rc3-mm1 strace shows mono's mmap like this:
> mmap(NULL, 65536, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS|MAP_32BIT, -1, 0) = 0x7fa21f5cb000

Hi Zan,

thanks for an excellent bugreport. Rather than throwing the whole
pie-randomization and flexmmap support away, could you please test the
patch below and let me know whether it fixes all your issues? Thanks.


From: Jiri Kosina <[email protected]>

Handle MAP_32BIT flags properly in x86_64 flexmmap

We need to handle MAP_32BIT flags of mmap() properly for 64bit
applications with filexible mmap layout.

This patch introduces x86_64-specific version of
arch_get_unmapped_area_topdown() which differs from the generic one in
handling of the MAP_32BIT flag -- when this flag is passed to mmap(), we
stick back to the legacy layout for this particular mmap, which gives
proper 32bit range.

Signed-off-by: Jiri Kosina <[email protected]>

diff --git a/arch/x86_64/kernel/sys_x86_64.c b/arch/x86_64/kernel/sys_x86_64.c
index 4770b7a..0e44d08 100644
--- a/arch/x86_64/kernel/sys_x86_64.c
+++ b/arch/x86_64/kernel/sys_x86_64.c
@@ -16,6 +16,7 @@
#include <linux/file.h>
#include <linux/utsname.h>
#include <linux/personality.h>
+#include <linux/random.h>

#include <asm/uaccess.h>
#include <asm/ia32.h>
@@ -69,6 +70,7 @@ static void find_start_end(unsigned long flags, unsigned long *begin,
unsigned long *end)
{
if (!test_thread_flag(TIF_IA32) && (flags & MAP_32BIT)) {
+ unsigned long new_begin;
/* This is usually used needed to map code in small
model, so it needs to be in the first 31bit. Limit
it to that. This means we need to move the
@@ -78,6 +80,11 @@ static void find_start_end(unsigned long flags, unsigned long *begin,
of playground for now. -AK */
*begin = 0x40000000;
*end = 0x80000000;
+ if (current->flags & PF_RANDOMIZE) {
+ new_begin = randomize_range(*begin, *begin + 0x02000000, 0);
+ if (new_begin)
+ *begin = new_begin;
+ }
} else {
*begin = TASK_UNMAPPED_BASE;
*end = TASK_SIZE;
@@ -147,6 +154,97 @@ full_search:
}
}

+
+unsigned long
+arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+ const unsigned long len, const unsigned long pgoff,
+ const unsigned long flags)
+{
+ struct vm_area_struct *vma;
+ struct mm_struct *mm = current->mm;
+ unsigned long addr = addr0;
+
+ /* requested length too big for entire address space */
+ if (len > TASK_SIZE)
+ return -ENOMEM;
+
+ if (flags & MAP_FIXED)
+ return addr;
+
+ /* for MAP_32BIT mappings we force the legact mmap base */
+ if (!test_thread_flag(TIF_IA32) && (flags & MAP_32BIT))
+ goto bottomup;
+
+ /* requesting a specific address */
+ if (addr) {
+ addr = PAGE_ALIGN(addr);
+ vma = find_vma(mm, addr);
+ if (TASK_SIZE - len >= addr &&
+ (!vma || addr + len <= vma->vm_start))
+ return addr;
+ }
+
+ /* check if free_area_cache is useful for us */
+ if (len <= mm->cached_hole_size) {
+ mm->cached_hole_size = 0;
+ mm->free_area_cache = mm->mmap_base;
+ }
+
+ /* either no address requested or can't fit in requested address hole */
+ addr = mm->free_area_cache;
+
+ /* make sure it can fit in the remaining address space */
+ if (addr > len) {
+ vma = find_vma(mm, addr-len);
+ if (!vma || addr <= vma->vm_start)
+ /* remember the address as a hint for next time */
+ return (mm->free_area_cache = addr-len);
+ }
+
+ if (mm->mmap_base < len)
+ goto bottomup;
+
+ addr = mm->mmap_base-len;
+
+ do {
+ /*
+ * Lookup failure means no vma is above this address,
+ * else if new region fits below vma->vm_start,
+ * return with success:
+ */
+ vma = find_vma(mm, addr);
+ if (!vma || addr+len <= vma->vm_start)
+ /* remember the address as a hint for next time */
+ return (mm->free_area_cache = addr);
+
+ /* remember the largest hole we saw so far */
+ if (addr + mm->cached_hole_size < vma->vm_start)
+ mm->cached_hole_size = vma->vm_start - addr;
+
+ /* try just below the current vma->vm_start */
+ addr = vma->vm_start-len;
+ } while (len < vma->vm_start);
+
+bottomup:
+ /*
+ * A failed mmap() very likely causes application failure,
+ * so fall back to the bottom-up function here. This scenario
+ * can happen with large stack limits and large mmap()
+ * allocations.
+ */
+ mm->cached_hole_size = ~0UL;
+ mm->free_area_cache = TASK_UNMAPPED_BASE;
+ addr = arch_get_unmapped_area(filp, addr0, len, pgoff, flags);
+ /*
+ * Restore the topdown base:
+ */
+ mm->free_area_cache = mm->mmap_base;
+ mm->cached_hole_size = ~0UL;
+
+ return addr;
+}
+
+
asmlinkage long sys_uname(struct new_utsname __user * name)
{
int err;
diff --git a/include/asm-x86_64/pgtable.h b/include/asm-x86_64/pgtable.h
index c9d8764..8863d04 100644
--- a/include/asm-x86_64/pgtable.h
+++ b/include/asm-x86_64/pgtable.h
@@ -409,6 +409,7 @@ pte_t *lookup_address(unsigned long addr);
remap_pfn_range(vma, vaddr, pfn, size, prot)

#define HAVE_ARCH_UNMAPPED_AREA
+#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN

#define pgtable_cache_init() do { } while (0)

Subject: x86_64-dynticks-disable-hpet_id_legsup-hpets.patch hangs the system

Hi Andrew,

2.6.23-rc3-mm1 renders my machine unresponsive during bootup.
I've been observing this problem in 2.6.22-rc2-mm2 as well.
The boot log, the cpuinfo and .config have been appened at the
end

After embedding a few debug printk's in start_kernel, I noticed that
the last function to be executed was calibrate_delay()

Further, from the mm-bisect, the following patch turned out to be the
culprit:

x86_64-dynticks-disable-hpet_id_legsup-hpets.patch
From: Andrew Morton <[email protected]>

Cc: Thomas Gleixner <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: john stultz <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
---

arch/i386/kernel/hpet.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)

diff -puN arch/i386/kernel/hpet.c~x86_64-dynticks-disable-hpet_id_legsup-hpets arch/i386/kernel/hpet.c
--- a/arch/i386/kernel/hpet.c~x86_64-dynticks-disable-hpet_id_legsup-hpets
+++ a/arch/i386/kernel/hpet.c
@@ -336,7 +336,7 @@ int __init hpet_enable(void)

clocksource_register(&clocksource_hpet);

- if (id & HPET_ID_LEGSUP) {
+ if (0 && (id & HPET_ID_LEGSUP)) {
hpet_enable_int();
hpet_reserve_platform_timers(id);
/*

Any particular reason for this patch [There is no changelog :-)]?
Without this patch the mm-kernel seems to behave just fine for me.

Thanks and Regards
gautham.

------------------------------------------------------------------------------
Linux version 2.6.23-rc3-mm1 ([email protected]) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #18 SMP Thu Aug 23 15:54:03 IST 2007
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000100 - 000000000009a400 (usable)
BIOS-e820: 000000000009a400 - 00000000000a0000 (reserved)
BIOS-e820: 0000000000100000 - 00000000bffcba40 (usable)
BIOS-e820: 00000000bffcba40 - 00000000bffcee00 (ACPI data)
BIOS-e820: 00000000bffcee00 - 00000000c0000000 (reserved)
BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 0000000180000000 (usable)
Warning only 4GB will be used.
Use a HIGHMEM64G enabled kernel.
3200MB HIGHMEM available.
896MB LOWMEM available.
found SMP MP-table at 0009a540
Zone PFN ranges:
DMA 0 -> 4096
Normal 4096 -> 229376
HighMem 229376 -> 1048576
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
0: 0 -> 1048576
DMI 2.4 present.
Using APIC driver default
ACPI: RSDP 000FDFD0, 0024 (r2 IBM )
ACPI: XSDT BFFCED00, 004C (r1 IBM SERDEFNT 1000 IBM 45444F43)
ACPI: FACP BFFCEC40, 0084 (r2 IBM SERDEFNT 1000 IBM 45444F43)
ACPI: DSDT BFFCBA40, 297F (r2 IBM SERDEFNT 1000 INTL 20041203)
ACPI: FACS BFFCE980, 0040
ACPI: APIC BFFCEB80, 0084 (r1 IBM SERDEFNT 1000 IBM 45444F43)
ACPI: SRAT BFFCEA40, 00E8 (r1 IBM SERDEFNT 1000 IBM 45444F43)
ACPI: HPET BFFCEA00, 0038 (r1 IBM SERDEFNT 1000 IBM 45444F43)
ACPI: MCFG BFFCE9C0, 003C (r1 IBM SERDEFNT 1000 IBM 45444F43)
ACPI: PM-Timer IO Port: 0x588
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 6:15 APIC version 20
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
Processor #1 6:15 APIC version 20
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x06] enabled)
Processor #6 6:15 APIC version 20
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x07] enabled)
Processor #7 6:15 APIC version 20
ACPI: LAPIC_NMI (acpi_id[0x00] dfl dfl lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x03] dfl dfl lint[0x1])
ACPI: IOAPIC (id[0x0e] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 14, version 32, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
Enabling APIC mode: Flat. Using 1 I/O APICs
ACPI: HPET id: 0x8086a201 base: 0xfed00000
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at c2000000 (gap: c0000000:20000000)
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 1035264
Kernel command line: root=/dev/VolGroup00/LogVol00 rhgb console=ttyS0,9600n8 tty0 crashkernel=128M@16M
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 16384 bytes)
Detected 2992.750 MHz processor.
Console: colour VGA+ 80x25
console [ttyS0] enabled
Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
... MAX_LOCKDEP_SUBCLASSES: 8
... MAX_LOCK_DEPTH: 30
... MAX_LOCKDEP_KEYS: 2048
... CLASSHASH_SIZE: 1024
... MAX_LOCKDEP_ENTRIES: 8192
... MAX_LOCKDEP_CHAINS: 16384
... CHAINHASH_SIZE: 8192
memory used by lock dependency info: 992 kB
per task-struct memory footprint: 1200 bytes
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 2947800k/4194304k available (4099k kernel code, 196476k reserved, 1927k data, 280k init, 2228012k highmem)
virtual kernel memory layout:
fixmap : 0xffe14000 - 0xfffff000 (1964 kB)
pkmap : 0xff800000 - 0xffc00000 (4096 kB)
vmalloc : 0xf8800000 - 0xff7fe000 ( 111 MB)
lowmem : 0xc0000000 - 0xf8000000 ( 896 MB)
.init : 0xc06eb000 - 0xc0731000 ( 280 kB)
.data : 0xc0500f60 - 0xc06e2ecc (1927 kB)
.text : 0xc0100000 - 0xc0500f60 (4099 kB)
Checking if this processor honours the WP bit even in supervisor mode... Ok.

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

cat /proc/cpuinfo
------------------------------------------------------------------------------
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Xeon(R) CPU 5160 @ 3.00GHz
stepping : 6
cpu MHz : 2992.546
cache size : 4096 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr dca lahf_lm
bogomips : 5991.66
clflush size : 64

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Xeon(R) CPU 5160 @ 3.00GHz
stepping : 6
cpu MHz : 2992.546
cache size : 4096 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr dca lahf_lm
bogomips : 5985.00
clflush size : 64

processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Xeon(R) CPU 5160 @ 3.00GHz
stepping : 6
cpu MHz : 2992.546
cache size : 4096 KB
physical id : 3
siblings : 2
core id : 0
cpu cores : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr dca lahf_lm
bogomips : 5985.04
clflush size : 64

processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Xeon(R) CPU 5160 @ 3.00GHz
stepping : 6
cpu MHz : 2992.546
cache size : 4096 KB
physical id : 3
siblings : 2
core id : 1
cpu cores : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr dca lahf_lm
bogomips : 5985.07
clflush size : 64

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


config-2.6.23-rc3-mm1
------------------------------------------------------------------------------
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.23-rc3-mm1
# Thu Aug 23 16:06:47 2007
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_QUICKLIST=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_DMI=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_SWAP_PREFETCH=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_USER_NS is not set
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=18
# CONFIG_CONTAINERS is not set
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_PROC_KPAGEMAP=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_KMOD is not set
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_LBD=y
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set
# CONFIG_BLK_DEV_BSG is not set

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

#
# Processor type and features
#
# CONFIG_TICK_ONESHOT is not set
# CONFIG_NO_HZ is not set
# CONFIG_HIGH_RES_TIMERS is not set
CONFIG_SMP=y
# CONFIG_X86_PC is not set
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
CONFIG_X86_GENERICARCH=y
# CONFIG_X86_ES7000 is not set
# CONFIG_PARAVIRT is not set
CONFIG_X86_CYCLONE_TIMER=y
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
# CONFIG_MPENTIUM4 is not set
CONFIG_MCORE2=y
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
CONFIG_X86_GENERIC=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=7
CONFIG_X86_XADD=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
CONFIG_X86_MINIMUM_CPU_FAMILY=4
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_NR_CPUS=32
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_BKL=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_NONFATAL=y
CONFIG_X86_MCE_P4THERMAL=y
CONFIG_VM86=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_X86_REBOOTFIXUPS is not set
CONFIG_MICROCODE=y
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y

#
# Firmware Drivers
#
# CONFIG_EDD is not set
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
CONFIG_DMIID=y
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_HIGHMEM=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_RESOURCES_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_NR_QUICK=1
CONFIG_VIRT_TO_BUS=y
# CONFIG_HIGHPTE is not set
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_EFI is not set
# CONFIG_IRQBALANCE is not set
CONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
CONFIG_PHYSICAL_START=0x100000
CONFIG_RELOCATABLE=y
CONFIG_PHYSICAL_ALIGN=0x100000
CONFIG_HOTPLUG_CPU=y
# CONFIG_COMPAT_VDSO is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y

#
# Power management options (ACPI, APM)
#
CONFIG_PM=y
CONFIG_PM_LEGACY=y
# CONFIG_PM_DEBUG is not set
CONFIG_PM_SLEEP_SMP=y
CONFIG_PM_SLEEP=y
CONFIG_SUSPEND_SMP_POSSIBLE=y
CONFIG_SUSPEND=y
CONFIG_HIBERNATION_SMP_POSSIBLE=y
# CONFIG_HIBERNATION is not set
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_PROCFS=y
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_FAN=y
CONFIG_ACPI_DOCK=m
CONFIG_ACPI_BAY=m
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_THERMAL=y
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_TOSHIBA is not set
CONFIG_ACPI_BLACKLIST_YEAR=2001
CONFIG_ACPI_DEBUG=y
# CONFIG_ACPI_DEBUG_FUNC_TRACE is not set
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=y
# CONFIG_ACPI_SBS is not set
# CONFIG_APM is not set

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

#
# CPUFreq processor drivers
#
CONFIG_X86_ACPI_CPUFREQ=y
# CONFIG_X86_POWERNOW_K6 is not set
# CONFIG_X86_POWERNOW_K7 is not set
CONFIG_X86_POWERNOW_K8=y
CONFIG_X86_POWERNOW_K8_ACPI=y
# 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

#
# CPU idle PM support
#
# CONFIG_CPU_IDLE is not set

#
# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
#
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_PCIEPORTBUS=y
CONFIG_PCIEAER=y
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
# CONFIG_HT_IRQ is not set
CONFIG_ISA_DMA_API=y
# CONFIG_ISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
CONFIG_K8_NB=y
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set

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

#
# Networking
#
CONFIG_NET=y

#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
# CONFIG_IP_PNP_BOOTP is not set
# CONFIG_IP_PNP_RARP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
CONFIG_INET_TUNNEL=y
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
# CONFIG_INET_XFRM_MODE_BEET 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 is not set
# CONFIG_NETFILTER is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set

#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set

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

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

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set
# CONFIG_PARPORT is not set
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set

#
# Protocols
#
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_MISC_DEVICES=y
# CONFIG_IBM_ASM is not set
# CONFIG_PHANTOM is not set
CONFIG_EEPROM_93CX6=y
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_THINKPAD_ACPI is not set
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y

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

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

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

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

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

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

#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_FC_ATTRS=y
# CONFIG_SCSI_ISCSI_ATTRS is not set
CONFIG_SCSI_SAS_ATTRS=y
CONFIG_SCSI_SAS_LIBSAS=y
# CONFIG_SCSI_SAS_ATA is not set
CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
# CONFIG_SCSI_SRP_ATTRS is not set
CONFIG_SCSI_LOWLEVEL=y
# CONFIG_ISCSI_TCP is not set
CONFIG_BLK_DEV_3W_XXXX_RAID=y
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set
CONFIG_SCSI_AACRAID=y
CONFIG_SCSI_AIC7XXX=y
CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
CONFIG_AIC7XXX_RESET_DELAY_MS=5000
CONFIG_AIC7XXX_DEBUG_ENABLE=y
CONFIG_AIC7XXX_DEBUG_MASK=0
CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
CONFIG_SCSI_AIC7XXX_OLD=y
CONFIG_SCSI_AIC79XX=y
CONFIG_AIC79XX_CMDS_PER_DEVICE=32
CONFIG_AIC79XX_RESET_DELAY_MS=4000
# CONFIG_AIC79XX_DEBUG_ENABLE is not set
CONFIG_AIC79XX_DEBUG_MASK=0
# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
CONFIG_SCSI_AIC94XX=y
CONFIG_AIC94XX_DEBUG=y
CONFIG_SCSI_DPT_I2O=y
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
CONFIG_SCSI_IPS=y
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_STEX is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
CONFIG_SCSI_IPR=y
CONFIG_SCSI_IPR_TRACE=y
CONFIG_SCSI_IPR_DUMP=y
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_NSP32 is not set
CONFIG_SCSI_DEBUG=y
CONFIG_SCSI_SRP=y
CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_ATA_ACPI=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_SVW=y
CONFIG_ATA_PIIX=y
# CONFIG_SATA_MV is not set
CONFIG_SATA_NV=y
# CONFIG_PDC_ADMA is not set
# CONFIG_SATA_QSTOR is not set
# CONFIG_SATA_PROMISE is not set
# CONFIG_SATA_SX4 is not set
CONFIG_SATA_SIL=y
# CONFIG_SATA_SIL24 is not set
# CONFIG_SATA_SIS is not set
# CONFIG_SATA_ULI is not set
CONFIG_SATA_VIA=y
# CONFIG_SATA_VITESSE is not set
# CONFIG_SATA_INIC162X is not set
# CONFIG_PATA_ALI is not set
# CONFIG_PATA_AMD is not set
# CONFIG_PATA_ARTOP is not set
# CONFIG_PATA_ATIIXP is not set
# CONFIG_PATA_CMD640_PCI is not set
# CONFIG_PATA_CMD64X is not set
# CONFIG_PATA_CS5520 is not set
# CONFIG_PATA_CS5530 is not set
# CONFIG_PATA_CS5535 is not set
# CONFIG_PATA_CYPRESS is not set
# CONFIG_PATA_EFAR is not set
# CONFIG_ATA_GENERIC is not set
# CONFIG_PATA_HPT366 is not set
# CONFIG_PATA_HPT37X is not set
# CONFIG_PATA_HPT3X2N is not set
# CONFIG_PATA_HPT3X3 is not set
# CONFIG_PATA_IT821X is not set
# CONFIG_PATA_IT8213 is not set
# CONFIG_PATA_JMICRON is not set
# CONFIG_PATA_TRIFLEX is not set
# CONFIG_PATA_MARVELL is not set
# CONFIG_PATA_MPIIX is not set
# CONFIG_PATA_OLDPIIX is not set
# CONFIG_PATA_NETCELL is not set
# CONFIG_PATA_NS87410 is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_OPTIDMA is not set
# CONFIG_PATA_PDC_OLD is not set
# CONFIG_PATA_RADISYS is not set
# CONFIG_PATA_RZ1000 is not set
# CONFIG_PATA_SC1200 is not set
# CONFIG_PATA_SERVERWORKS is not set
# CONFIG_PATA_PDC2027X is not set
# CONFIG_PATA_SIL680 is not set
# CONFIG_PATA_SIS is not set
# CONFIG_PATA_VIA is not set
# CONFIG_PATA_WINBOND is not set
CONFIG_MD=y
# CONFIG_BLK_DEV_MD is not set
CONFIG_BLK_DEV_DM=y
# CONFIG_DM_DEBUG is not set
# CONFIG_DM_CRYPT is not set
# CONFIG_DM_SNAPSHOT is not set
# CONFIG_DM_MIRROR is not set
# CONFIG_DM_ZERO is not set
# CONFIG_DM_MULTIPATH is not set
# CONFIG_DM_DELAY is not set
CONFIG_FUSION=y
CONFIG_FUSION_SPI=y
# CONFIG_FUSION_FC is not set
# CONFIG_FUSION_SAS is not set
CONFIG_FUSION_MAX_SGE=128
# CONFIG_FUSION_CTL is not set
# CONFIG_FUSION_LOGGING is not set

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

#
# Subsystem Options
#
# CONFIG_IEEE1394_VERBOSEDEBUG is not set

#
# Controllers
#

#
# Texas Instruments PCILynx requires I2C
#
CONFIG_IEEE1394_OHCI1394=y

#
# Protocols
#
# CONFIG_IEEE1394_VIDEO1394 is not set
# CONFIG_IEEE1394_SBP2 is not set
# CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set
# CONFIG_IEEE1394_ETH1394 is not set
# CONFIG_IEEE1394_DV1394 is not set
CONFIG_IEEE1394_RAWIO=y
# CONFIG_I2O is not set
# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
# CONFIG_NETDEVICES_MULTIQUEUE is not set
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_NET_SB1000 is not set
# CONFIG_ARCNET is not set
# CONFIG_PHYLIB is not set
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set
CONFIG_NET_TULIP=y
# CONFIG_DE2104X is not set
CONFIG_TULIP=y
# CONFIG_TULIP_MWI is not set
# CONFIG_TULIP_MMIO is not set
# CONFIG_TULIP_NAPI is not set
# CONFIG_DE4X5 is not set
# CONFIG_WINBOND_840 is not set
# CONFIG_DM9102 is not set
# CONFIG_ULI526X is not set
# CONFIG_HP100 is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set
CONFIG_FORCEDETH=y
# CONFIG_FORCEDETH_NAPI is not set
# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
CONFIG_E100=y
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
CONFIG_8139CP=y
CONFIG_8139TOO=y
# CONFIG_8139TOO_PIO is not set
# CONFIG_8139TOO_TUNE_TWISTER is not set
# CONFIG_8139TOO_8129 is not set
# CONFIG_8139_OLD_RX_RESET is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_SC92031 is not set
CONFIG_NETDEV_1000=y
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
CONFIG_E1000=y
# CONFIG_E1000_NAPI is not set
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
# CONFIG_E1000E is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
CONFIG_R8169=y
# CONFIG_R8169_NAPI is not set
# CONFIG_SIS190 is not set
# CONFIG_SKGE is not set
CONFIG_SKY2=y
# CONFIG_VIA_VELOCITY is not set
CONFIG_TIGON3=y
CONFIG_BNX2=y
# CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set
CONFIG_NETDEV_10000=y
# CONFIG_CHELSIO_T1 is not set
# CONFIG_CHELSIO_T3 is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
# CONFIG_MYRI10GE is not set
# CONFIG_NETXEN_NIC is not set
# CONFIG_MLX4_CORE is not set
# CONFIG_TR is not set

#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 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_MII is not set
# CONFIG_USB_USBNET is not set
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
CONFIG_NETCONSOLE=y
CONFIG_NETPOLL=y
# CONFIG_NETPOLL_TRAP is not set
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
# CONFIG_PHONE is not set

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

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

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

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

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

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

#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
CONFIG_IPMI_HANDLER=m
CONFIG_IPMI_PANIC_EVENT=y
CONFIG_IPMI_PANIC_STRING=y
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_IPMI_WATCHDOG=m
CONFIG_IPMI_POWEROFF=m
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_INTEL=y
CONFIG_HW_RANDOM_AMD=y
CONFIG_HW_RANDOM_GEODE=y
CONFIG_HW_RANDOM_VIA=y
# CONFIG_NVRAM is not set
CONFIG_RTC=y
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set
CONFIG_AGP=y
# CONFIG_AGP_ALI is not set
# CONFIG_AGP_ATI is not set
# CONFIG_AGP_AMD is not set
CONFIG_AGP_AMD64=y
CONFIG_AGP_INTEL=y
# CONFIG_AGP_NVIDIA is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_SWORKS is not set
# CONFIG_AGP_VIA is not set
# CONFIG_AGP_EFFICEON is not set
# CONFIG_DRM is not set
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_NSC_GPIO is not set
# CONFIG_CS5535_GPIO is not set
CONFIG_RAW_DRIVER=y
CONFIG_MAX_RAW_DEVS=256
CONFIG_HPET=y
# CONFIG_HPET_RTC_IRQ is not set
CONFIG_HPET_MMAP=y
CONFIG_HANGCHECK_TIMER=y
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
CONFIG_DEVPORT=y
# CONFIG_I2C is not set

#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
# CONFIG_HWMON is not set
# CONFIG_WATCHDOG is not set

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

#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set

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

#
# Graphics support
#
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set

#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set
# CONFIG_VGASTATE is not set
CONFIG_VIDEO_OUTPUT_CONTROL=m
# CONFIG_FB is not set

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

#
# Sound
#
CONFIG_SOUND=y

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

#
# Open Sound System
#
CONFIG_SOUND_PRIME=y
# CONFIG_SOUND_TRIDENT is not set
# CONFIG_SOUND_MSNDCLAS is not set
# CONFIG_SOUND_MSNDPIN is not set
# CONFIG_SOUND_OSS is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
# CONFIG_HIDRAW is not set

#
# USB Input Devices
#
CONFIG_USB_HID=y
# CONFIG_USB_HIDINPUT_POWERBOOK is not set
# CONFIG_HID_FF is not set
# CONFIG_USB_HIDDEV is not set
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set

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

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

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

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

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

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

#
# USB port drivers
#

#
# USB Serial Converter support
#
# CONFIG_USB_SERIAL is not set

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

#
# USB DSL modem support
#

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

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

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

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

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

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_VMCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
CONFIG_RAMFS=y
# CONFIG_CONFIGFS_FS is not set

#
# Layered filesystems
#
# CONFIG_UNION_FS is not set

#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set

#
# Network File Systems
#
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_DIRECTIO is not set
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V3_ACL is not set
# CONFIG_NFSD_V4 is not set
CONFIG_NFSD_TCP=y
CONFIG_ROOT_NFS=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
# CONFIG_SUNRPC_BIND34 is not set
# CONFIG_RPCSEC_GSS_KRB5 is not set
# CONFIG_RPCSEC_GSS_SPKM3 is not set
# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set

#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y

#
# Native Language Support
#
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

#
# Distributed Lock Manager
#
# CONFIG_DLM is not set
CONFIG_INSTRUMENTATION=y
CONFIG_PROFILING=y
CONFIG_OPROFILE=y
CONFIG_KPROBES=y

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_MAGIC_SYSRQ=y
CONFIG_UNUSED_SYMBOLS=y
# CONFIG_PAGE_OWNER is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_SCHED_DEBUG is not set
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_LOCK_ALLOC=y
CONFIG_PROVE_LOCKING=y
CONFIG_LOCKDEP=y
# CONFIG_LOCK_STAT is not set
CONFIG_DEBUG_LOCKDEP=y
CONFIG_TRACE_IRQFLAGS=y
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
CONFIG_STACKTRACE=y
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_HIGHMEM is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_LIST is not set
CONFIG_FRAME_POINTER=y
# CONFIG_UNWIND_INFO is not set
# CONFIG_PROFILE_LIKELY is not set
# CONFIG_FORCED_INLINING is not set
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_DEBUG_SYNCHRO_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_LKDTM is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_WANT_EXTRA_DEBUG_INFORMATION is not set
# CONFIG_KGDB is not set
CONFIG_EARLY_PRINTK=y
CONFIG_DEBUG_STACKOVERFLOW=y
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_RODATA is not set
# CONFIG_4KSTACKS is not set
CONFIG_X86_FIND_SMP_CONFIG=y
CONFIG_X86_MPPARSE=y
CONFIG_DOUBLEFAULT=y

#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
# CONFIG_CRYPTO is not set

#
# Library routines
#
CONFIG_BITREVERSE=y
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_X86_SMP=y
CONFIG_X86_HT=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_X86_TRAMPOLINE=y
CONFIG_KTIME_SCALAR=y
------------------------------------------------------------------------------

Thanks and Regards
gautham.

--
Gautham R Shenoy
Linux Technology Center
IBM India.
"Freedom comes with a price tag of responsibility, which is still a bargain,
because Freedom is priceless!"

2007-08-23 11:39:48

by mel

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On (22/08/07 11:10), Andrew Morton didst pronounce:
> On Wed, 22 Aug 2007 18:17:38 +0100
> Mel Gorman <[email protected]> wrote:
>
> > Andrew Morton wrote:
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
> > >
> > > - git-ixgbe.patch got dropped - git-net.patch destroyed it
> > >
> > > - then git-net got dropped as it doesn't work
> > >
> > > - the -mm import-to-git engine still isn't working
> > >
> >
> > >From elm3b6 on test.kernel.org, we get the following build error
> >
> > 08/22/07-07:01:07 building kernel - make bzImage
> > CHK include/linux/version.h
> > UPD include/linux/version.h
> > CHK include/linux/utsrelease.h
> > UPD include/linux/utsrelease.h
> > SYMLINK include/asm -> include/asm-x86_64
> > CC arch/x86_64/kernel/asm-offsets.s
> > arch/x86_64/kernel/asm-offsets.c:1: error: -mpreferred-stack-boundary=3
> > is not between 4 and 12
> > make[1]: *** [arch/x86_64/kernel/asm-offsets.s] Error 1
> > make: *** [prepare0] Error 2
> > 08/22/07-07:01:08 Build the kernel. Failed rc = 2
> > 08/22/07-07:01:08 build: Building kernel... Failed rc = 1
> > Failed and terminated the run
> > 08/22/07-07:01:08 command complete: (1) rc=126 (TEST ABORT)
> > Fatal error, aborting autorun
> >
> > config file at: http://test.kernel.org/abat/107411/build/dotconfig
> > gcc version is 3.4.4
> >
> > This does not occur when using a cross-compiler gcc 3.4.0
> >
>
> x86_64-mm-less-stack-alignment.patch has
>
> cflags-y += $(call cc-option,-mpreferred-stack-boundary=3)
>
> So we _should_ have detected that gcc didn't like =3, so it
> should not have been used.
>
> I am suspecting a kbuild glitch: asm-offsets.c tends to be handled
> in special ways (ie: it's usually the thing which blows up first)
> so perhaps it is somehow avoiding the above does-gcc-support-this test.
>
> Suitable cc's added ;)

Reverting the patch does allow the kernel to build and boot on that
machine.

--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab

2007-08-23 12:04:08

by Andy Whitcroft

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Wed, Aug 22, 2007 at 11:10:29AM -0700, Andrew Morton wrote:
[...]
> > CC arch/x86_64/kernel/asm-offsets.s
> > arch/x86_64/kernel/asm-offsets.c:1: error: -mpreferred-stack-boundary=3
> > is not between 4 and 12
> > make[1]: *** [arch/x86_64/kernel/asm-offsets.s] Error 1
[...]
> x86_64-mm-less-stack-alignment.patch has
>
> cflags-y += $(call cc-option,-mpreferred-stack-boundary=3)
>
> So we _should_ have detected that gcc didn't like =3, so it
> should not have been used.
>
> I am suspecting a kbuild glitch: asm-offsets.c tends to be handled
> in special ways (ie: it's usually the thing which blows up first)
> so perhaps it is somehow avoiding the above does-gcc-support-this test.
>
> Suitable cc's added ;)

It seems that this is a problem caused by the way we check for
compiler options in x86_64. Each compiler flag is checked for
individually and if available added to cflags-y, later that is
added to CFLAGS. However, this means that each flag is checked
in total isolation. On x86_64 (on this compiler at least) the
-mpreferred-stack-boundary and -m{32,64} flags are actually mutually
dependant, the alignment constraints vary based on the word size.
This leads to the compile failure:

# gcc -mpreferred-stack-boundary=3 -S -xc /dev/null -o FOO
# echo $?
0
# gcc -m64 -mpreferred-stack-boundary=3 -S -xc /dev/null -o FOO
/dev/null:1: error: -mpreferred-stack-boundary=3 is not between 4 and 12
# echo $?
1

In the main Makefile we always add each flag directly to CFLAGS
which means we check them all in combination, perhaps this is
prudent here also? Either way I suspect that changing the -m64
check to add itself directly to CFLAGS will fix this us.

-apw

2007-08-23 12:07:51

by Andi Kleen

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Wed, Aug 22, 2007 at 11:10:29AM -0700, Andrew Morton wrote:
> x86_64-mm-less-stack-alignment.patch has
>
> cflags-y += $(call cc-option,-mpreferred-stack-boundary=3)
>
> So we _should_ have detected that gcc didn't like =3, so it
> should not have been used.

The flag actually needs a recent gcc 4.3 snapshot (it's
a new feature the gcc developers added especially for the
kernel :), so if this didn't work it would fail on the vast
majority of systems.

Somehow it doesn't? At least here it compiles fine.

I notice the final comma is missing, Mel does it work
when you change the line to

cflags-y += $(call cc-option,-mpreferred-stack-boundary=3,)

If not please run
gcc -O2 -mpreferred-stack-boundary=2 -S -xc /dev/null -o x.o
echo $?

What does the echo output?

-Andi

2007-08-23 12:22:24

by Andi Kleen

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Thu, Aug 23, 2007 at 01:03:18PM +0100, Andy Whitcroft wrote:
> It seems that this is a problem caused by the way we check for
> compiler options in x86_64. Each compiler flag is checked for
> individually and if available added to cflags-y, later that is
> added to CFLAGS. However, this means that each flag is checked
> in total isolation. On x86_64 (on this compiler at least) the
> -mpreferred-stack-boundary and -m{32,64} flags are actually mutually
> dependant, the alignment constraints vary based on the word size.
> This leads to the compile failure:
>
> # gcc -mpreferred-stack-boundary=3 -S -xc /dev/null -o FOO
> # echo $?
> 0
> # gcc -m64 -mpreferred-stack-boundary=3 -S -xc /dev/null -o FOO
> /dev/null:1: error: -mpreferred-stack-boundary=3 is not between 4 and 12
> # echo $?
> 1
>
> In the main Makefile we always add each flag directly to CFLAGS
> which means we check them all in combination, perhaps this is
> prudent here also? Either way I suspect that changing the -m64
> check to add itself directly to CFLAGS will fix this us.

Ok that makes sense. Most people don't see it because they don't
need -m64.

I fixed it up with
ftp://ftp.firstfloor.org/pub/ak/x86_64/quilt/patches/cflags-probe
and then
ftp://ftp.firstfloor.org/pub/ak/x86_64/quilt/patches/less-stack-alignment
(replacement for the mm patch)

Can you test?

-Andi

2007-08-23 12:27:20

by Sam Ravnborg

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Thu, Aug 23, 2007 at 01:03:18PM +0100, Andy Whitcroft wrote:
> On Wed, Aug 22, 2007 at 11:10:29AM -0700, Andrew Morton wrote:
> [...]
> > > CC arch/x86_64/kernel/asm-offsets.s
> > > arch/x86_64/kernel/asm-offsets.c:1: error: -mpreferred-stack-boundary=3
> > > is not between 4 and 12
> > > make[1]: *** [arch/x86_64/kernel/asm-offsets.s] Error 1
> [...]
> > x86_64-mm-less-stack-alignment.patch has
> >
> > cflags-y += $(call cc-option,-mpreferred-stack-boundary=3)
> >
> > So we _should_ have detected that gcc didn't like =3, so it
> > should not have been used.
> >
> > I am suspecting a kbuild glitch: asm-offsets.c tends to be handled
> > in special ways (ie: it's usually the thing which blows up first)
> > so perhaps it is somehow avoiding the above does-gcc-support-this test.
> >
> > Suitable cc's added ;)
>
> It seems that this is a problem caused by the way we check for
> compiler options in x86_64. Each compiler flag is checked for
> individually and if available added to cflags-y, later that is
> added to CFLAGS. However, this means that each flag is checked
> in total isolation. On x86_64 (on this compiler at least) the
> -mpreferred-stack-boundary and -m{32,64} flags are actually mutually
> dependant, the alignment constraints vary based on the word size.
> This leads to the compile failure:
>
> # gcc -mpreferred-stack-boundary=3 -S -xc /dev/null -o FOO
> # echo $?
> 0
> # gcc -m64 -mpreferred-stack-boundary=3 -S -xc /dev/null -o FOO
> /dev/null:1: error: -mpreferred-stack-boundary=3 is not between 4 and 12
> # echo $?
> 1

Thats makes sense - good catch.

>
> In the main Makefile we always add each flag directly to CFLAGS
> which means we check them all in combination, perhaps this is
> prudent here also? Either way I suspect that changing the -m64
> check to add itself directly to CFLAGS will fix this us.

Something like this then:
[PATCH] x86_64: fix preferred-stack-boundary check

gcc has different interpretation of the -preferred-stack-boundary flag
dependent on the option -m64 is present or not as seen in the following:
# gcc -mpreferred-stack-boundary=3 -S -xc /dev/null -o FOO
# echo $?
0
# gcc -m64 -mpreferred-stack-boundary=3 -S -xc /dev/null -o FOO
/dev/null:1: error: -mpreferred-stack-boundary=3 is not between 4 and 12
# echo $?
1

Adding the -m64 to CFLAGS let cc-option do the right thing.

Thanks to Andy Whitcroft <[email protected]> for spotting the root cause.

Cc: Andy Whitcroft <[email protected]>
Signed-off-by: Sam Ravnborg <[email protected]>
---
diff --git a/arch/x86_64/Makefile b/arch/x86_64/Makefile
index 128561d..5402c0a 100644
--- a/arch/x86_64/Makefile
+++ b/arch/x86_64/Makefile
@@ -25,6 +25,8 @@ LDFLAGS := -m elf_x86_64
OBJCOPYFLAGS := -O binary -R .note -R .comment -S
LDFLAGS_vmlinux :=
CHECKFLAGS += -D__x86_64__ -m64
+AFLAGS += -m64
+CFLAGS += -m64

cflags-y :=
cflags-kernel-y :=
@@ -36,7 +38,6 @@ cflags-$(CONFIG_MCORE2) += \
$(call cc-option,-march=core2,$(call cc-option,-mtune=generic))
cflags-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=generic)

-cflags-y += -m64
cflags-y += -mno-red-zone
cflags-y += -mcmodel=kernel
cflags-y += -pipe
@@ -69,7 +70,6 @@ cflags-$(CONFIG_CC_STACKPROTECTOR_ALL) += $(shell $(CONFIG_SHELL) $(srctree)/scr

CFLAGS += $(cflags-y)
CFLAGS_KERNEL += $(cflags-kernel-y)
-AFLAGS += -m64

head-y := arch/x86_64/kernel/head.o arch/x86_64/kernel/head64.o arch/x86_64/kernel/init_task.o

2007-08-23 12:35:16

by Andy Whitcroft

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

Andi Kleen wrote:
> On Thu, Aug 23, 2007 at 01:03:18PM +0100, Andy Whitcroft wrote:
>> It seems that this is a problem caused by the way we check for
>> compiler options in x86_64. Each compiler flag is checked for
>> individually and if available added to cflags-y, later that is
>> added to CFLAGS. However, this means that each flag is checked
>> in total isolation. On x86_64 (on this compiler at least) the
>> -mpreferred-stack-boundary and -m{32,64} flags are actually mutually
>> dependant, the alignment constraints vary based on the word size.
>> This leads to the compile failure:
>>
>> # gcc -mpreferred-stack-boundary=3 -S -xc /dev/null -o FOO
>> # echo $?
>> 0
>> # gcc -m64 -mpreferred-stack-boundary=3 -S -xc /dev/null -o FOO
>> /dev/null:1: error: -mpreferred-stack-boundary=3 is not between 4 and 12
>> # echo $?
>> 1
>>
>> In the main Makefile we always add each flag directly to CFLAGS
>> which means we check them all in combination, perhaps this is
>> prudent here also? Either way I suspect that changing the -m64
>> check to add itself directly to CFLAGS will fix this us.
>
> Ok that makes sense. Most people don't see it because they don't
> need -m64.
>
> I fixed it up with
> ftp://ftp.firstfloor.org/pub/ak/x86_64/quilt/patches/cflags-probe
> and then
> ftp://ftp.firstfloor.org/pub/ak/x86_64/quilt/patches/less-stack-alignment
> (replacement for the mm patch)
>
> Can you test?

Sure, will do that now and let you know.

-apw

2007-08-23 13:34:04

by Valdis Klētnieks

[permalink] [raw]
Subject: 2.6.23-rc3-mm1 - irda goes belly up

On Wed, 22 Aug 2007 02:06:48 PDT, Andrew Morton said:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/

OK, so I don't actually *use* the irDA on my laptop for much, but I figure if
I have the hardware, I should at least make sure the driver comes up.

23-rc3-mm1 causes massive spewage, apparently at least partially as a fall-out
of the sysctl rework. Not sure if those caused the 'unknown symbol' issues or
not. The 'cannot allocate memory' is somewhat odd too, I can't believe it was
*really* out of memory while still in /etc/rc5.d when I have 2G of ram...

kernel: [ 247.804000] NET: Registered protocol family 23
kernel: [ 247.804000] sysctl table check failed: /net/irda .3.412 Unknown sysctl binary path
kernel: [ 247.804000] sysctl table check failed: /net/irda/discovery .3.412.1 Unknown sysctl binary path
kernel: [ 247.804000] sysctl table check failed: /net/irda/devname .3.412.2 Unknown sysctl binary path
kernel: [ 247.804000] sysctl table check failed: /net/irda/debug .3.412.3 Unknown sysctl binary path
kernel: [ 247.804000] sysctl table check failed: /net/irda/fast_poll_increase .3.412.4 Unknown sysctl binary path
kernel: [ 247.804000] sysctl table check failed: /net/irda/discovery_slots .3.412.5 Unknown sysctl binary path
kernel: [ 247.804000] sysctl table check failed: /net/irda/discovery_timeout .3.412.6 Unknown sysctl binary path
kernel: [ 247.804000] sysctl table check failed: /net/irda/slot_timeout .3.412.7 Unknown sysctl binary path
kernel: [ 247.804000] sysctl table check failed: /net/irda/max_baud_rate .3.412.8 Unknown sysctl binary path
kernel: [ 247.804000] sysctl table check failed: /net/irda/min_tx_turn_time .3.412.9 Unknown sysctl binary path
kernel: [ 247.804000] sysctl table check failed: /net/irda/max_tx_data_size .3.412.10 Unknown sysctl binary path
kernel: [ 247.804000] sysctl table check failed: /net/irda/max_tx_window .3.412.11 Unknown sysctl binary path
kernel: [ 247.804000] sysctl table check failed: /net/irda/max_noreply_time .3.412.12 Unknown sysctl binary path
kernel: [ 247.804000] sysctl table check failed: /net/irda/warn_noreply_time .3.412.13 Unknown sysctl binary path
kernel: [ 247.804000] sysctl table check failed: /net/irda/lap_keepalive_time .3.412.14 Unknown sysctl binary path
kernel: [ 247.816000] NET: Unregistered protocol family 23
kernel: [ 247.826000] ircomm: Unknown symbol hashbin_insert
kernel: [ 247.826000] ircomm: Unknown symbol irttp_flow_request
kernel: [ 247.826000] ircomm: Unknown symbol hashbin_lock_find
kernel: [ 247.826000] ircomm: Unknown symbol irttp_open_tsap
kernel: [ 247.826000] ircomm: Unknown symbol irlmp_connect_request
kernel: [ 247.826000] ircomm: Unknown symbol irda_notify_init
kernel: [ 247.826000] ircomm: Unknown symbol hashbin_get_first
kernel: [ 247.826000] ircomm: Unknown symbol irttp_connect_response
kernel: [ 247.827000] ircomm: Unknown symbol irda_debug
kernel: [ 247.827000] ircomm: Unknown symbol hashbin_get_next
kernel: [ 247.827000] ircomm: Unknown symbol hashbin_remove
kernel: [ 247.827000] ircomm: Unknown symbol hashbin_delete
kernel: [ 247.827000] ircomm: Unknown symbol hashbin_new
kernel: [ 247.827000] ircomm: Unknown symbol irttp_disconnect_request
kernel: [ 247.827000] ircomm: Unknown symbol irlmp_disconnect_request
kernel: [ 247.827000] ircomm: Unknown symbol irlmp_connect_response
kernel: [ 247.827000] ircomm: Unknown symbol irttp_data_request
kernel: [ 247.827000] ircomm: Unknown symbol irttp_connect_request
kernel: [ 247.827000] ircomm: Unknown symbol irlmp_close_lsap
kernel: [ 247.827000] ircomm: Unknown symbol irttp_close_tsap
kernel: [ 247.827000] ircomm: Unknown symbol proc_irda
kernel: [ 247.827000] ircomm: Unknown symbol irlmp_open_lsap
kernel: [ 247.827000] ircomm: Unknown symbol irlmp_data_request
kernel: [ 247.829000] ircomm_tty: Unknown symbol irda_param_insert
kernel: [ 247.829000] ircomm_tty: Unknown symbol hashbin_insert
kernel: [ 247.829000] ircomm_tty: Unknown symbol irlmp_service_to_hint
kernel: [ 247.829000] ircomm_tty: Unknown symbol ircomm_data_request
kernel: [ 247.829000] ircomm_tty: Unknown symbol ircomm_flow_request
kernel: [ 247.829000] ircomm_tty: Unknown symbol irias_new_object
kernel: [ 247.829000] ircomm_tty: Unknown symbol irlmp_unregister_service
kernel: [ 247.829000] ircomm_tty: Unknown symbol hashbin_lock_find
kernel: [ 247.829000] ircomm_tty: Unknown symbol ircomm_open
kernel: [ 247.829000] ircomm_tty: Unknown symbol ircomm_close
kernel: [ 247.829000] ircomm_tty: Unknown symbol iriap_open
kernel: [ 247.829000] ircomm_tty: Unknown symbol ircomm_control_request
kernel: [ 247.829000] ircomm_tty: Unknown symbol irias_add_octseq_attrib
kernel: [ 247.829000] ircomm_tty: Unknown symbol irda_notify_init
kernel: [ 247.829000] ircomm_tty: Unknown symbol irlmp_discovery_request
kernel: [ 247.829000] ircomm_tty: Unknown symbol iriap_close
kernel: [ 247.829000] ircomm_tty: Unknown symbol hashbin_get_first
kernel: [ 247.829000] ircomm_tty: Unknown symbol irias_add_integer_attrib
kernel: [ 247.829000] ircomm_tty: Unknown symbol ircomm_connect_request
kernel: [ 247.829000] ircomm_tty: Unknown symbol irda_debug
kernel: [ 247.830000] ircomm_tty: Unknown symbol irlmp_register_service
kernel: [ 247.830000] ircomm_tty: Unknown symbol irda_param_extract_all
kernel: [ 247.830000] ircomm_tty: Unknown symbol hashbin_get_next
kernel: [ 247.830000] ircomm_tty: Unknown symbol ircomm_disconnect_request
kernel: [ 247.830000] ircomm_tty: Unknown symbol hashbin_delete
kernel: [ 247.830000] ircomm_tty: Unknown symbol hashbin_new
kernel: [ 247.830000] ircomm_tty: Unknown symbol irlmp_register_client
kernel: [ 247.830000] ircomm_tty: Unknown symbol iriap_getvaluebyclass_request
kernel: [ 247.830000] ircomm_tty: Unknown symbol irias_insert_object
kernel: [ 247.830000] ircomm_tty: Unknown symbol ircomm_connect_response
kernel: [ 247.830000] ircomm_tty: Unknown symbol irias_delete_object
kernel: [ 247.830000] ircomm_tty: Unknown symbol irlmp_unregister_client
kernel: [ 247.830000] ircomm_tty: Unknown symbol irda_param_pack
kernel: [ 247.830000] ircomm_tty: Unknown symbol irias_delete_value
kernel: [ 247.850000] NET: Registered protocol family 23
kernel: [ 247.850000] sysctl table check failed: /net/irda .3.412 Unknown sysctl binary path
kernel: [ 247.850000] sysctl table check failed: /net/irda/discovery .3.412.1 Unknown sysctl binary path
kernel: [ 247.850000] sysctl table check failed: /net/irda/devname .3.412.2 Unknown sysctl binary path
kernel: [ 247.850000] sysctl table check failed: /net/irda/debug .3.412.3 Unknown sysctl binary path
kernel: [ 247.850000] sysctl table check failed: /net/irda/fast_poll_increase .3.412.4 Unknown sysctl binary path
kernel: [ 247.850000] sysctl table check failed: /net/irda/discovery_slots .3.412.5 Unknown sysctl binary path
kernel: [ 247.850000] sysctl table check failed: /net/irda/discovery_timeout .3.412.6 Unknown sysctl binary path
kernel: [ 247.851000] sysctl table check failed: /net/irda/slot_timeout .3.412.7 Unknown sysctl binary path
kernel: [ 247.851000] sysctl table check failed: /net/irda/max_baud_rate .3.412.8 Unknown sysctl binary path
kernel: [ 247.851000] sysctl table check failed: /net/irda/min_tx_turn_time .3.412.9 Unknown sysctl binary path
kernel: [ 247.851000] sysctl table check failed: /net/irda/max_tx_data_size .3.412.10 Unknown sysctl binary path
kernel: [ 247.851000] sysctl table check failed: /net/irda/max_tx_window .3.412.11 Unknown sysctl binary path
kernel: [ 247.851000] sysctl table check failed: /net/irda/max_noreply_time .3.412.12 Unknown sysctl binary path
kernel: [ 247.851000] sysctl table check failed: /net/irda/warn_noreply_time .3.412.13 Unknown sysctl binary path
kernel: [ 247.851000] sysctl table check failed: /net/irda/lap_keepalive_time .3.412.14 Unknown sysctl binary path
kernel: [ 247.862000] NET: Unregistered protocol family 23
kernel: [ 247.867000] sir_dev: Unknown symbol alloc_irdadev
kernel: [ 247.867000] sir_dev: Unknown symbol irlap_open
kernel: [ 247.868000] sir_dev: Unknown symbol irda_qos_bits_to_value
kernel: [ 247.868000] sir_dev: Unknown symbol irda_debug
kernel: [ 247.868000] sir_dev: Unknown symbol async_unwrap_char
kernel: [ 247.868000] sir_dev: Unknown symbol irlap_close
kernel: [ 247.868000] sir_dev: Unknown symbol irda_device_set_media_busy
kernel: [ 247.868000] sir_dev: Unknown symbol async_wrap_skb
kernel: [ 247.868000] sir_dev: Unknown symbol irda_init_max_qos_capabilies
kernel: [ 247.870000] irtty_sir: Unknown symbol sirdev_set_dongle
kernel: [ 247.871000] irtty_sir: Unknown symbol irda_debug
kernel: [ 247.871000] irtty_sir: Unknown symbol sirdev_write_complete
kernel: [ 247.871000] irtty_sir: Unknown symbol sirdev_put_instance
kernel: [ 247.871000] irtty_sir: Unknown symbol sirdev_receive
kernel: [ 247.871000] irtty_sir: Unknown symbol sirdev_get_instance
kernel: [ 247.882000] PPP generic driver version 2.4.2
kernel: [ 247.900000] NET: Registered protocol family 23
kernel: [ 247.900000] sysctl table check failed: /net/irda .3.412 Unknown sysctl binary path
kernel: [ 247.900000] sysctl table check failed: /net/irda/discovery .3.412.1 Unknown sysctl binary path
kernel: [ 247.900000] sysctl table check failed: /net/irda/devname .3.412.2 Unknown sysctl binary path
kernel: [ 247.900000] sysctl table check failed: /net/irda/debug .3.412.3 Unknown sysctl binary path
kernel: [ 247.900000] sysctl table check failed: /net/irda/fast_poll_increase .3.412.4 Unknown sysctl binary path
kernel: [ 247.900000] sysctl table check failed: /net/irda/discovery_slots .3.412.5 Unknown sysctl binary path
kernel: [ 247.900000] sysctl table check failed: /net/irda/discovery_timeout .3.412.6 Unknown sysctl binary path
kernel: [ 247.900000] sysctl table check failed: /net/irda/slot_timeout .3.412.7 Unknown sysctl binary path
kernel: [ 247.900000] sysctl table check failed: /net/irda/max_baud_rate .3.412.8 Unknown sysctl binary path
kernel: [ 247.900000] sysctl table check failed: /net/irda/min_tx_turn_time .3.412.9 Unknown sysctl binary path
kernel: [ 247.900000] sysctl table check failed: /net/irda/max_tx_data_size .3.412.10 Unknown sysctl binary path
kernel: [ 247.900000] sysctl table check failed: /net/irda/max_tx_window .3.412.11 Unknown sysctl binary path
kernel: [ 247.900000] sysctl table check failed: /net/irda/max_noreply_time .3.412.12 Unknown sysctl binary path
kernel: [ 247.900000] sysctl table check failed: /net/irda/warn_noreply_time .3.412.13 Unknown sysctl binary path
kernel: [ 247.900000] sysctl table check failed: /net/irda/lap_keepalive_time .3.412.14 Unknown sysctl binary path
kernel: [ 247.911000] NET: Unregistered protocol family 23
kernel: [ 247.917000] irnet: Unknown symbol hashbin_insert
kernel: [ 247.917000] irnet: Unknown symbol irlmp_service_to_hint
kernel: [ 247.917000] irnet: Unknown symbol hashbin_remove_this
kernel: [ 247.917000] irnet: Unknown symbol irias_new_object
kernel: [ 247.917000] irnet: Unknown symbol irlmp_unregister_service
kernel: [ 247.918000] irnet: Unknown symbol irlmp_update_client
kernel: [ 247.918000] irnet: Unknown symbol irttp_open_tsap
kernel: [ 247.918000] irnet: Unknown symbol iriap_open
kernel: [ 247.918000] irnet: Unknown symbol irda_notify_init
kernel: [ 247.918000] irnet: Unknown symbol iriap_close
kernel: [ 247.918000] irnet: Unknown symbol hashbin_get_first
kernel: [ 247.919000] irnet: Unknown symbol irias_add_integer_attrib
kernel: [ 247.919000] irnet: Unknown symbol irttp_dup
kernel: [ 247.919000] irnet: Unknown symbol irttp_connect_response
kernel: [ 247.919000] irnet: Unknown symbol irlmp_register_service
kernel: [ 247.919000] irnet: Unknown symbol hashbin_get_next
kernel: [ 247.919000] irnet: Unknown symbol hashbin_delete
kernel: [ 247.920000] irnet: Unknown symbol hashbin_new
kernel: [ 247.920000] irnet: Unknown symbol irttp_disconnect_request
kernel: [ 247.920000] irnet: Unknown symbol hashbin_find
kernel: [ 247.920000] irnet: Unknown symbol irlmp_register_client
kernel: [ 247.920000] irnet: Unknown symbol iriap_getvaluebyclass_request
kernel: [ 247.920000] irnet: Unknown symbol irias_insert_object
kernel: [ 247.921000] irnet: Unknown symbol irias_delete_object
kernel: [ 247.921000] irnet: Unknown symbol irttp_data_request
kernel: [ 247.921000] irnet: Unknown symbol irttp_connect_request
kernel: [ 247.921000] irnet: Unknown symbol irttp_close_tsap
kernel: [ 247.921000] irnet: Unknown symbol proc_irda
kernel: [ 247.921000] irnet: Unknown symbol irlmp_unregister_client
kernel: [ 247.922000] irnet: Unknown symbol irias_delete_value
kernel: [ 247.922000] irnet: Unknown symbol irlmp_get_discoveries
irattach: tcgetattr: Input/output error
irattach: Stopping device /dev/ttyS2
kernel: [ 247.972000] NET: Registered protocol family 23
kernel: [ 247.972000] sysctl table check failed: /net/irda .3.412 Unknown sysctl binary path
kernel: [ 247.972000] sysctl table check failed: /net/irda/discovery .3.412.1 Unknown sysctl binary path
kernel: [ 247.973000] sysctl table check failed: /net/irda/devname .3.412.2 Unknown sysctl binary path
kernel: [ 247.973000] sysctl table check failed: /net/irda/debug .3.412.3 Unknown sysctl binary path
kernel: [ 247.973000] sysctl table check failed: /net/irda/fast_poll_increase .3.412.4 Unknown sysctl binary path
kernel: [ 247.973000] sysctl table check failed: /net/irda/discovery_slots .3.412.5 Unknown sysctl binary path
kernel: [ 247.973000] sysctl table check failed: /net/irda/discovery_timeout .3.412.6 Unknown sysctl binary path
kernel: [ 247.973000] sysctl table check failed: /net/irda/slot_timeout .3.412.7 Unknown sysctl binary path
kernel: [ 247.973000] sysctl table check failed: /net/irda/max_baud_rate .3.412.8 Unknown sysctl binary path
kernel: [ 247.974000] sysctl table check failed: /net/irda/min_tx_turn_time .3.412.9 Unknown sysctl binary path
kernel: [ 247.974000] sysctl table check failed: /net/irda/max_tx_data_size .3.412.10 Unknown sysctl binary path
kernel: [ 247.974000] sysctl table check failed: /net/irda/max_tx_window .3.412.11 Unknown sysctl binary path
kernel: [ 247.974000] sysctl table check failed: /net/irda/max_noreply_time .3.412.12 Unknown sysctl binary path
kernel: [ 247.974000] sysctl table check failed: /net/irda/warn_noreply_time .3.412.13 Unknown sysctl binary path
kernel: [ 247.974000] sysctl table check failed: /net/irda/lap_keepalive_time .3.412.14 Unknown sysctl binary path
kernel: [ 247.984000] NET: Unregistered protocol family 23
modprobe: FATAL: Error inserting irda (/lib/modules/2.6.23-rc3-mm1/kernel/net/irda/irda.ko): Cannot allocate memory
irattach: socket(AF_IRDA): Address family not supported by protocol
irattach: exiting ...


Attachments:
(No filename) (226.00 B)

2007-08-23 14:23:20

by Sam Ravnborg

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Thu, Aug 23, 2007 at 02:28:25PM +0200, Sam Ravnborg wrote:
>
> Something like this then:
> [PATCH] x86_64: fix preferred-stack-boundary check

OK - Andi decided to do this in a bit more invasive way but it looks OK.
So disregard my patch.

Sam

2007-08-23 16:26:08

by mel

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On (23/08/07 14:07), Andi Kleen didst pronounce:
> On Wed, Aug 22, 2007 at 11:10:29AM -0700, Andrew Morton wrote:
> > x86_64-mm-less-stack-alignment.patch has
> >
> > cflags-y += $(call cc-option,-mpreferred-stack-boundary=3)
> >
> > So we _should_ have detected that gcc didn't like =3, so it
> > should not have been used.
>
> The flag actually needs a recent gcc 4.3 snapshot (it's
> a new feature the gcc developers added especially for the
> kernel :), so if this didn't work it would fail on the vast
> majority of systems.
>
> Somehow it doesn't? At least here it compiles fine.
>
> I notice the final comma is missing, Mel does it work
> when you change the line to
>
> cflags-y += $(call cc-option,-mpreferred-stack-boundary=3,)
>

No but that is hardly a suprise as it's looking like -m64 is the way
forward.

> If not please run
> gcc -O2 -mpreferred-stack-boundary=2 -S -xc /dev/null -o x.o
> echo $?
>
> What does the echo output?
>

Repeating really but;

elm3b6:~# gcc -O2 -mpreferred-stack-boundary=2 -S -xc /dev/null -o x.o ; echo $?
0
elm3b6:~# gcc -m64 -O2 -mpreferred-stack-boundary=2 -S -xc /dev/null -o x.o ; echo $?
/dev/null:1: error: -mpreferred-stack-boundary=2 is not between 4 and 12
1


--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab

2007-08-23 17:32:52

by Zan Lynx

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - memory layout change? - lost support for MAP_32BIT? - mono crashes

On Thu, 2007-08-23 at 11:28 +0200, Jiri Kosina wrote:
> On Wed, 22 Aug 2007, Zan Lynx wrote:
>
> > After installing this new wonder kernel on my AMD-64 laptop, I
> > discovered that Beagle wouldn't start. While enjoying how fast my
> > system felt ( :) ) I also discovered that Evolution wouldn't start
> > because it was built with mono integration.
> [...]
> > Mono claims to mmap with the MAP_32BIT option.
> > In -rc3-mm1 strace shows mono's mmap like this:
> > mmap(NULL, 65536, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS|MAP_32BIT, -1, 0) = 0x7fa21f5cb000
>
> Hi Zan,
>
> thanks for an excellent bugreport. Rather than throwing the whole
> pie-randomization and flexmmap support away, could you please test the
> patch below and let me know whether it fixes all your issues? Thanks.
>
>
> From: Jiri Kosina <[email protected]>
>
> Handle MAP_32BIT flags properly in x86_64 flexmmap
>
> We need to handle MAP_32BIT flags of mmap() properly for 64bit
> applications with filexible mmap layout.
>
> This patch introduces x86_64-specific version of
> arch_get_unmapped_area_topdown() which differs from the generic one in
> handling of the MAP_32BIT flag -- when this flag is passed to mmap(), we
> stick back to the legacy layout for this particular mmap, which gives
> proper 32bit range.
>
> Signed-off-by: Jiri Kosina <[email protected]>
[snip patch]

This does fix the mono problem. Thank you.
--
Zan Lynx <[email protected]>


Attachments:
signature.asc (189.00 B)
This is a digitally signed message part

2007-08-23 17:38:15

by Alexey Dobriyan

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - irda goes belly up

On Thu, Aug 23, 2007 at 09:33:46AM -0400, [email protected] wrote:
> On Wed, 22 Aug 2007 02:06:48 PDT, Andrew Morton said:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>
> OK, so I don't actually *use* the irDA on my laptop for much, but I figure if
> I have the hardware, I should at least make sure the driver comes up.
>
> 23-rc3-mm1 causes massive spewage, apparently at least partially as a fall-out
> of the sysctl rework. Not sure if those caused the 'unknown symbol' issues or
> not. The 'cannot allocate memory' is somewhat odd too, I can't believe it was
> *really* out of memory while still in /etc/rc5.d when I have 2G of ram...

Eric is a bit sadistic with sysctls. If sysctl_check_table() fails
irda_sysctl_register() will think there is no memory.

As for unknown symbols, hell knows. Same as with multiple syscts errors.
What have you modprobed exactly and what is $(grep IRDA .config) ?

> kernel: [ 247.804000] NET: Registered protocol family 23
> kernel: [ 247.804000] sysctl table check failed: /net/irda .3.412 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/discovery .3.412.1 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/devname .3.412.2 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/debug .3.412.3 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/fast_poll_increase .3.412.4 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/discovery_slots .3.412.5 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/discovery_timeout .3.412.6 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/slot_timeout .3.412.7 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/max_baud_rate .3.412.8 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/min_tx_turn_time .3.412.9 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/max_tx_data_size .3.412.10 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/max_tx_window .3.412.11 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/max_noreply_time .3.412.12 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/warn_noreply_time .3.412.13 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/lap_keepalive_time .3.412.14 Unknown sysctl binary path
> kernel: [ 247.816000] NET: Unregistered protocol family 23
> kernel: [ 247.826000] ircomm: Unknown symbol hashbin_insert
...

2007-08-23 18:45:34

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - irda goes belly up

On Thu, 23 Aug 2007 21:37:55 +0400, Alexey Dobriyan said:
> On Thu, Aug 23, 2007 at 09:33:46AM -0400, [email protected] wrote:
> > On Wed, 22 Aug 2007 02:06:48 PDT, Andrew Morton said:
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
> >
> > OK, so I don't actually *use* the irDA on my laptop for much, but I figure if
> > I have the hardware, I should at least make sure the driver comes up.
> >
> > 23-rc3-mm1 causes massive spewage, apparently at least partially as a fall-out
> > of the sysctl rework. Not sure if those caused the 'unknown symbol' issues or
> > not. The 'cannot allocate memory' is somewhat odd too, I can't believe it was
> > *really* out of memory while still in /etc/rc5.d when I have 2G of ram...
>
> Eric is a bit sadistic with sysctls. If sysctl_check_table() fails
> irda_sysctl_register() will think there is no memory.

Ahh.. overloading a failure code. OK, I can deal with that...

> As for unknown symbols, hell knows. Same as with multiple syscts errors.
> What have you modprobed exactly and what is $(grep IRDA .config) ?

>From the .config ("turn them all on and see what sticks" here)

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


On my doesn't-complain -rc2-mm1 kernel:

% lsmod | grep -i ir
irnet 21409 0
ppp_generic 22177 1 irnet
irtty_sir 8321 0
sir_dev 14473 1 irtty_sir
ircomm_tty 35345 0
ircomm 20425 1 ircomm_tty
irda 188973 5 irnet,irtty_sir,sir_dev,ircomm_tty,ircomm
crc_ccitt 2817 1 irda

My guess is that irda fails to insmod because of the sysctl errors, so when
the other ir* modules try to load, they come up empty on symbols that irda
provides.


Attachments:
(No filename) (226.00 B)

2007-08-23 18:59:31

by Balbir Singh

[permalink] [raw]
Subject: Re: [BUG] 2.6.23-rc3-mm1 - kernel BUG at net/core/skbuff.c:95!

Kay Sievers wrote:
> On Thu, 2007-08-23 at 00:34 +0530, Balbir Singh wrote:
>> Kay Sievers wrote:
>>>> gargh, sorry, that's probably due to my screwed up attempt to fix Kay's
>>>> screwed up
>>>> gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch.
>>>>
>>>> Kay sent an update patch but it didn't arrive in time.
>>>>
>>>> Greg, if you haven't yet merged that, please do so asap?
>>>>
>>>> So what _should_ this:
>>>>
>>>> --- a/arch/powerpc/kernel/vio.c~fix-4-gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct
>>>> +++ a/arch/powerpc/kernel/vio.c
>>>> @@ -373,7 +373,7 @@ static int vio_hotplug(struct device *de
>>>> dn = dev->archdata.of_node;
>>>> if (!dn)
>>>> return -ENODEV;
>>>> - cp = of_get_property(dn, "compatible", &length);
>>>> + cp = of_get_property(dn, "compatible", &env->buflen);
>>>> if (!cp)
>>>> return -ENODEV;
>>>>
>>>> _
>>>>
>>>> have done?
>>> Does replacing "&length" with "NULL" work? That's what's in the updated
>>> patch.
>
>> replacing &length with NULL does not work for me. I get a message saying that
>> init terminated with signal 7.
>
> Hi Balbir,
> ugh, I can't see what's going wrong here.
>
> Care to just "return 0" for the whole function, and try again? Just to
> rule out that this is the cause of the problem.
>

Hi, Kay,

I just confirmed, your NULL fix looks correct. The init got signal 7
problem occurs even if uevent_add_var() is commented out. I suspect that
we are seeing a machine exception, I'll debug that part now.

> Thanks,
> Kay
>


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

2007-08-23 20:49:06

by Andrew Morton

[permalink] [raw]
Subject: Re: x86_64-dynticks-disable-hpet_id_legsup-hpets.patch hangs the system

On Thu, 23 Aug 2007 16:54:23 +0530
Gautham R Shenoy <[email protected]> wrote:

> 2.6.23-rc3-mm1 renders my machine unresponsive during bootup.
> I've been observing this problem in 2.6.22-rc2-mm2 as well.
> The boot log, the cpuinfo and .config have been appened at the
> end
>
> After embedding a few debug printk's in start_kernel, I noticed that
> the last function to be executed was calibrate_delay()
>
> Further, from the mm-bisect, the following patch turned out to be the
> culprit:
>
> x86_64-dynticks-disable-hpet_id_legsup-hpets.patch
> From: Andrew Morton <[email protected]>
>
> Cc: Thomas Gleixner <[email protected]>
> Cc: Ingo Molnar <[email protected]>
> Cc: john stultz <[email protected]>
> Signed-off-by: Andrew Morton <[email protected]>
> ---
>
> arch/i386/kernel/hpet.c | 2 +-
> 1 files changed, 1 insertion(+), 1 deletion(-)
>
> diff -puN arch/i386/kernel/hpet.c~x86_64-dynticks-disable-hpet_id_legsup-hpets arch/i386/kernel/hpet.c
> --- a/arch/i386/kernel/hpet.c~x86_64-dynticks-disable-hpet_id_legsup-hpets
> +++ a/arch/i386/kernel/hpet.c
> @@ -336,7 +336,7 @@ int __init hpet_enable(void)
>
> clocksource_register(&clocksource_hpet);
>
> - if (id & HPET_ID_LEGSUP) {
> + if (0 && (id & HPET_ID_LEGSUP)) {
> hpet_enable_int();
> hpet_reserve_platform_timers(id);
> /*
>
> Any particular reason for this patch [There is no changelog :-)]?
> Without this patch the mm-kernel seems to behave just fine for me.

Oh damn. That patch is required to prevent a boot-time div-by-zero
on my old nocona machine.

I have a new set of x86_64-dynticks patches from Thomas to look at
so I guess it's reset-and-start-again time on that front.

2007-08-23 20:56:25

by Thomas Gleixner

[permalink] [raw]
Subject: Re: x86_64-dynticks-disable-hpet_id_legsup-hpets.patch hangs the system

On Thu, 2007-08-23 at 13:47 -0700, Andrew Morton wrote:
> > Any particular reason for this patch [There is no changelog :-)]?
> > Without this patch the mm-kernel seems to behave just fine for me.
>
> Oh damn. That patch is required to prevent a boot-time div-by-zero
> on my old nocona machine.

That patch was necessary due to a bug in the hpet code, which is
resolved for quite a while (hopefully). It was not a divide by zero, it
was some attempt to map stuff before the mm was initialized, IIRC.

> I have a new set of x86_64-dynticks patches from Thomas to look at
> so I guess it's reset-and-start-again time on that front.

Yep. I dropped that patch in the series.

tglx


2007-08-23 21:17:18

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - irda goes belly up

On Thu, 23 Aug 2007 09:33:46 -0400
[email protected] wrote:

> On Wed, 22 Aug 2007 02:06:48 PDT, Andrew Morton said:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>
> OK, so I don't actually *use* the irDA on my laptop for much, but I figure if
> I have the hardware, I should at least make sure the driver comes up.
>
> 23-rc3-mm1 causes massive spewage, apparently at least partially as a fall-out
> of the sysctl rework. Not sure if those caused the 'unknown symbol' issues or
> not. The 'cannot allocate memory' is somewhat odd too, I can't believe it was
> *really* out of memory while still in /etc/rc5.d when I have 2G of ram...
>
> kernel: [ 247.804000] NET: Registered protocol family 23
> kernel: [ 247.804000] sysctl table check failed: /net/irda .3.412 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/discovery .3.412.1 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/devname .3.412.2 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/debug .3.412.3 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/fast_poll_increase .3.412.4 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/discovery_slots .3.412.5 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/discovery_timeout .3.412.6 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/slot_timeout .3.412.7 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/max_baud_rate .3.412.8 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/min_tx_turn_time .3.412.9 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/max_tx_data_size .3.412.10 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/max_tx_window .3.412.11 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/max_noreply_time .3.412.12 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/warn_noreply_time .3.412.13 Unknown sysctl binary path
> kernel: [ 247.804000] sysctl table check failed: /net/irda/lap_keepalive_time .3.412.14 Unknown sysctl binary path
> kernel: [ 247.816000] NET: Unregistered protocol family 23
> kernel: [ 247.826000] ircomm: Unknown symbol hashbin_insert
> kernel: [ 247.826000] ircomm: Unknown symbol irttp_flow_request
> kernel: [ 247.826000] ircomm: Unknown symbol hashbin_lock_find
> kernel: [ 247.826000] ircomm: Unknown symbol irttp_open_tsap
> kernel: [ 247.826000] ircomm: Unknown symbol irlmp_connect_request
> kernel: [ 247.826000] ircomm: Unknown symbol irda_notify_init
> kernel: [ 247.826000] ircomm: Unknown symbol hashbin_get_first
> kernel: [ 247.826000] ircomm: Unknown symbol irttp_connect_response
> kernel: [ 247.827000] ircomm: Unknown symbol irda_debug
> kernel: [ 247.827000] ircomm: Unknown symbol hashbin_get_next
> kernel: [ 247.827000] ircomm: Unknown symbol hashbin_remove
> kernel: [ 247.827000] ircomm: Unknown symbol hashbin_delete
> kernel: [ 247.827000] ircomm: Unknown symbol hashbin_new
> kernel: [ 247.827000] ircomm: Unknown symbol irttp_disconnect_request
> kernel: [ 247.827000] ircomm: Unknown symbol irlmp_disconnect_request
> kernel: [ 247.827000] ircomm: Unknown symbol irlmp_connect_response
> kernel: [ 247.827000] ircomm: Unknown symbol irttp_data_request
> kernel: [ 247.827000] ircomm: Unknown symbol irttp_connect_request
> kernel: [ 247.827000] ircomm: Unknown symbol irlmp_close_lsap
> kernel: [ 247.827000] ircomm: Unknown symbol irttp_close_tsap
> kernel: [ 247.827000] ircomm: Unknown symbol proc_irda
> kernel: [ 247.827000] ircomm: Unknown symbol irlmp_open_lsap
> kernel: [ 247.827000] ircomm: Unknown symbol irlmp_data_request
> kernel: [ 247.829000] ircomm_tty: Unknown symbol irda_param_insert
> kernel: [ 247.829000] ircomm_tty: Unknown symbol hashbin_insert
> kernel: [ 247.829000] ircomm_tty: Unknown symbol irlmp_service_to_hint
> kernel: [ 247.829000] ircomm_tty: Unknown symbol ircomm_data_request
> kernel: [ 247.829000] ircomm_tty: Unknown symbol ircomm_flow_request
> kernel: [ 247.829000] ircomm_tty: Unknown symbol irias_new_object
> kernel: [ 247.829000] ircomm_tty: Unknown symbol irlmp_unregister_service
> kernel: [ 247.829000] ircomm_tty: Unknown symbol hashbin_lock_find
> kernel: [ 247.829000] ircomm_tty: Unknown symbol ircomm_open
> kernel: [ 247.829000] ircomm_tty: Unknown symbol ircomm_close
> kernel: [ 247.829000] ircomm_tty: Unknown symbol iriap_open
> kernel: [ 247.829000] ircomm_tty: Unknown symbol ircomm_control_request
> kernel: [ 247.829000] ircomm_tty: Unknown symbol irias_add_octseq_attrib
> kernel: [ 247.829000] ircomm_tty: Unknown symbol irda_notify_init
> kernel: [ 247.829000] ircomm_tty: Unknown symbol irlmp_discovery_request
> kernel: [ 247.829000] ircomm_tty: Unknown symbol iriap_close
> kernel: [ 247.829000] ircomm_tty: Unknown symbol hashbin_get_first
> kernel: [ 247.829000] ircomm_tty: Unknown symbol irias_add_integer_attrib
> kernel: [ 247.829000] ircomm_tty: Unknown symbol ircomm_connect_request
> kernel: [ 247.829000] ircomm_tty: Unknown symbol irda_debug
> kernel: [ 247.830000] ircomm_tty: Unknown symbol irlmp_register_service
> kernel: [ 247.830000] ircomm_tty: Unknown symbol irda_param_extract_all
> kernel: [ 247.830000] ircomm_tty: Unknown symbol hashbin_get_next
> kernel: [ 247.830000] ircomm_tty: Unknown symbol ircomm_disconnect_request
> kernel: [ 247.830000] ircomm_tty: Unknown symbol hashbin_delete
> kernel: [ 247.830000] ircomm_tty: Unknown symbol hashbin_new
> kernel: [ 247.830000] ircomm_tty: Unknown symbol irlmp_register_client
> kernel: [ 247.830000] ircomm_tty: Unknown symbol iriap_getvaluebyclass_request
> kernel: [ 247.830000] ircomm_tty: Unknown symbol irias_insert_object
> kernel: [ 247.830000] ircomm_tty: Unknown symbol ircomm_connect_response
> kernel: [ 247.830000] ircomm_tty: Unknown symbol irias_delete_object
> kernel: [ 247.830000] ircomm_tty: Unknown symbol irlmp_unregister_client
> kernel: [ 247.830000] ircomm_tty: Unknown symbol irda_param_pack
> kernel: [ 247.830000] ircomm_tty: Unknown symbol irias_delete_value
> kernel: [ 247.850000] NET: Registered protocol family 23
> kernel: [ 247.850000] sysctl table check failed: /net/irda .3.412 Unknown sysctl binary path
> kernel: [ 247.850000] sysctl table check failed: /net/irda/discovery .3.412.1 Unknown sysctl binary path
> kernel: [ 247.850000] sysctl table check failed: /net/irda/devname .3.412.2 Unknown sysctl binary path
> kernel: [ 247.850000] sysctl table check failed: /net/irda/debug .3.412.3 Unknown sysctl binary path
> kernel: [ 247.850000] sysctl table check failed: /net/irda/fast_poll_increase .3.412.4 Unknown sysctl binary path
> kernel: [ 247.850000] sysctl table check failed: /net/irda/discovery_slots .3.412.5 Unknown sysctl binary path
> kernel: [ 247.850000] sysctl table check failed: /net/irda/discovery_timeout .3.412.6 Unknown sysctl binary path
> kernel: [ 247.851000] sysctl table check failed: /net/irda/slot_timeout .3.412.7 Unknown sysctl binary path
> kernel: [ 247.851000] sysctl table check failed: /net/irda/max_baud_rate .3.412.8 Unknown sysctl binary path
> kernel: [ 247.851000] sysctl table check failed: /net/irda/min_tx_turn_time .3.412.9 Unknown sysctl binary path
> kernel: [ 247.851000] sysctl table check failed: /net/irda/max_tx_data_size .3.412.10 Unknown sysctl binary path
> kernel: [ 247.851000] sysctl table check failed: /net/irda/max_tx_window .3.412.11 Unknown sysctl binary path
> kernel: [ 247.851000] sysctl table check failed: /net/irda/max_noreply_time .3.412.12 Unknown sysctl binary path
> kernel: [ 247.851000] sysctl table check failed: /net/irda/warn_noreply_time .3.412.13 Unknown sysctl binary path
> kernel: [ 247.851000] sysctl table check failed: /net/irda/lap_keepalive_time .3.412.14 Unknown sysctl binary path
> kernel: [ 247.862000] NET: Unregistered protocol family 23
> kernel: [ 247.867000] sir_dev: Unknown symbol alloc_irdadev
> kernel: [ 247.867000] sir_dev: Unknown symbol irlap_open
> kernel: [ 247.868000] sir_dev: Unknown symbol irda_qos_bits_to_value
> kernel: [ 247.868000] sir_dev: Unknown symbol irda_debug
> kernel: [ 247.868000] sir_dev: Unknown symbol async_unwrap_char
> kernel: [ 247.868000] sir_dev: Unknown symbol irlap_close
> kernel: [ 247.868000] sir_dev: Unknown symbol irda_device_set_media_busy
> kernel: [ 247.868000] sir_dev: Unknown symbol async_wrap_skb
> kernel: [ 247.868000] sir_dev: Unknown symbol irda_init_max_qos_capabilies
> kernel: [ 247.870000] irtty_sir: Unknown symbol sirdev_set_dongle
> kernel: [ 247.871000] irtty_sir: Unknown symbol irda_debug
> kernel: [ 247.871000] irtty_sir: Unknown symbol sirdev_write_complete
> kernel: [ 247.871000] irtty_sir: Unknown symbol sirdev_put_instance
> kernel: [ 247.871000] irtty_sir: Unknown symbol sirdev_receive
> kernel: [ 247.871000] irtty_sir: Unknown symbol sirdev_get_instance
> kernel: [ 247.882000] PPP generic driver version 2.4.2
> kernel: [ 247.900000] NET: Registered protocol family 23
> kernel: [ 247.900000] sysctl table check failed: /net/irda .3.412 Unknown sysctl binary path
> kernel: [ 247.900000] sysctl table check failed: /net/irda/discovery .3.412.1 Unknown sysctl binary path
> kernel: [ 247.900000] sysctl table check failed: /net/irda/devname .3.412.2 Unknown sysctl binary path
> kernel: [ 247.900000] sysctl table check failed: /net/irda/debug .3.412.3 Unknown sysctl binary path
> kernel: [ 247.900000] sysctl table check failed: /net/irda/fast_poll_increase .3.412.4 Unknown sysctl binary path
> kernel: [ 247.900000] sysctl table check failed: /net/irda/discovery_slots .3.412.5 Unknown sysctl binary path
> kernel: [ 247.900000] sysctl table check failed: /net/irda/discovery_timeout .3.412.6 Unknown sysctl binary path
> kernel: [ 247.900000] sysctl table check failed: /net/irda/slot_timeout .3.412.7 Unknown sysctl binary path
> kernel: [ 247.900000] sysctl table check failed: /net/irda/max_baud_rate .3.412.8 Unknown sysctl binary path
> kernel: [ 247.900000] sysctl table check failed: /net/irda/min_tx_turn_time .3.412.9 Unknown sysctl binary path
> kernel: [ 247.900000] sysctl table check failed: /net/irda/max_tx_data_size .3.412.10 Unknown sysctl binary path
> kernel: [ 247.900000] sysctl table check failed: /net/irda/max_tx_window .3.412.11 Unknown sysctl binary path
> kernel: [ 247.900000] sysctl table check failed: /net/irda/max_noreply_time .3.412.12 Unknown sysctl binary path
> kernel: [ 247.900000] sysctl table check failed: /net/irda/warn_noreply_time .3.412.13 Unknown sysctl binary path
> kernel: [ 247.900000] sysctl table check failed: /net/irda/lap_keepalive_time .3.412.14 Unknown sysctl binary path
> kernel: [ 247.911000] NET: Unregistered protocol family 23
> kernel: [ 247.917000] irnet: Unknown symbol hashbin_insert
> kernel: [ 247.917000] irnet: Unknown symbol irlmp_service_to_hint
> kernel: [ 247.917000] irnet: Unknown symbol hashbin_remove_this
> kernel: [ 247.917000] irnet: Unknown symbol irias_new_object
> kernel: [ 247.917000] irnet: Unknown symbol irlmp_unregister_service
> kernel: [ 247.918000] irnet: Unknown symbol irlmp_update_client
> kernel: [ 247.918000] irnet: Unknown symbol irttp_open_tsap
> kernel: [ 247.918000] irnet: Unknown symbol iriap_open
> kernel: [ 247.918000] irnet: Unknown symbol irda_notify_init
> kernel: [ 247.918000] irnet: Unknown symbol iriap_close
> kernel: [ 247.918000] irnet: Unknown symbol hashbin_get_first
> kernel: [ 247.919000] irnet: Unknown symbol irias_add_integer_attrib
> kernel: [ 247.919000] irnet: Unknown symbol irttp_dup
> kernel: [ 247.919000] irnet: Unknown symbol irttp_connect_response
> kernel: [ 247.919000] irnet: Unknown symbol irlmp_register_service
> kernel: [ 247.919000] irnet: Unknown symbol hashbin_get_next
> kernel: [ 247.919000] irnet: Unknown symbol hashbin_delete
> kernel: [ 247.920000] irnet: Unknown symbol hashbin_new
> kernel: [ 247.920000] irnet: Unknown symbol irttp_disconnect_request
> kernel: [ 247.920000] irnet: Unknown symbol hashbin_find
> kernel: [ 247.920000] irnet: Unknown symbol irlmp_register_client
> kernel: [ 247.920000] irnet: Unknown symbol iriap_getvaluebyclass_request
> kernel: [ 247.920000] irnet: Unknown symbol irias_insert_object
> kernel: [ 247.921000] irnet: Unknown symbol irias_delete_object
> kernel: [ 247.921000] irnet: Unknown symbol irttp_data_request
> kernel: [ 247.921000] irnet: Unknown symbol irttp_connect_request
> kernel: [ 247.921000] irnet: Unknown symbol irttp_close_tsap
> kernel: [ 247.921000] irnet: Unknown symbol proc_irda
> kernel: [ 247.921000] irnet: Unknown symbol irlmp_unregister_client
> kernel: [ 247.922000] irnet: Unknown symbol irias_delete_value
> kernel: [ 247.922000] irnet: Unknown symbol irlmp_get_discoveries
> irattach: tcgetattr: Input/output error
> irattach: Stopping device /dev/ttyS2
> kernel: [ 247.972000] NET: Registered protocol family 23
> kernel: [ 247.972000] sysctl table check failed: /net/irda .3.412 Unknown sysctl binary path
> kernel: [ 247.972000] sysctl table check failed: /net/irda/discovery .3.412.1 Unknown sysctl binary path
> kernel: [ 247.973000] sysctl table check failed: /net/irda/devname .3.412.2 Unknown sysctl binary path
> kernel: [ 247.973000] sysctl table check failed: /net/irda/debug .3.412.3 Unknown sysctl binary path
> kernel: [ 247.973000] sysctl table check failed: /net/irda/fast_poll_increase .3.412.4 Unknown sysctl binary path
> kernel: [ 247.973000] sysctl table check failed: /net/irda/discovery_slots .3.412.5 Unknown sysctl binary path
> kernel: [ 247.973000] sysctl table check failed: /net/irda/discovery_timeout .3.412.6 Unknown sysctl binary path
> kernel: [ 247.973000] sysctl table check failed: /net/irda/slot_timeout .3.412.7 Unknown sysctl binary path
> kernel: [ 247.973000] sysctl table check failed: /net/irda/max_baud_rate .3.412.8 Unknown sysctl binary path
> kernel: [ 247.974000] sysctl table check failed: /net/irda/min_tx_turn_time .3.412.9 Unknown sysctl binary path
> kernel: [ 247.974000] sysctl table check failed: /net/irda/max_tx_data_size .3.412.10 Unknown sysctl binary path
> kernel: [ 247.974000] sysctl table check failed: /net/irda/max_tx_window .3.412.11 Unknown sysctl binary path
> kernel: [ 247.974000] sysctl table check failed: /net/irda/max_noreply_time .3.412.12 Unknown sysctl binary path
> kernel: [ 247.974000] sysctl table check failed: /net/irda/warn_noreply_time .3.412.13 Unknown sysctl binary path
> kernel: [ 247.974000] sysctl table check failed: /net/irda/lap_keepalive_time .3.412.14 Unknown sysctl binary path
> kernel: [ 247.984000] NET: Unregistered protocol family 23
> modprobe: FATAL: Error inserting irda (/lib/modules/2.6.23-rc3-mm1/kernel/net/irda/irda.ko): Cannot allocate memory
> irattach: socket(AF_IRDA): Address family not supported by protocol
> irattach: exiting ...
>
>

Cute. Eric, can you please suggest what we should do here?

Yes, the ENOMEM is bogus. But irda_sysctl_register() saw a NULL return
from register_sysctl_table() and simply has no clue why it failed, and is
forced to assume ENOMEM. That's a design shortcoming in
register_sysctl_table(), whcih should have returned an ERR_PTR. Doesn't
matter much.


2007-08-23 21:50:53

by Andrew Morton

[permalink] [raw]
Subject: Re: [-mm patch] enforce noreplace-smp in alternative_instructions()

On Wed, 22 Aug 2007 22:25:51 +0200
Frederik Deweerdt <[email protected]> wrote:

> On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
> >
> Hi Jeremy,
>
> arch/i386/kernel/alternative.c:alternative_instructions() doesn't
> check for noreplace-smp before setting capability bits and freeing the
> __smp_locks section.

umm, so? What happens then? What bug is being fixed here, and what are
its consequences?

> Every call to alternatives_smp_unlock() checks for noreplace-smp
> beforehand, so remove the check from there.
>
> Boot tested on i386 with UP+noreplace-smp (lguest) and SMP (real hardware)
>
> Regards,
> Frederik
>
> Signed-off-by: Frederik Deweerdt <[email protected]>
>
> diff --git a/arch/i386/kernel/alternative.c b/arch/i386/kernel/alternative.c
> index 9f4ac8b..7c5af80 100644
> --- a/arch/i386/kernel/alternative.c
> +++ b/arch/i386/kernel/alternative.c
> @@ -221,9 +221,6 @@ static void alternatives_smp_unlock(u8 **start, u8 **end, u8 *text, u8 *text_end
> u8 **ptr;
> char insn[1];
>
> - if (noreplace_smp)
> - return;
> -
> add_nops(insn, 1);
> for (ptr = start; ptr < end; ptr++) {
> if (*ptr < text)
> @@ -406,7 +403,7 @@ void __init alternative_instructions(void)
> #endif
>
> #ifdef CONFIG_SMP
> - if (smp_alt_once) {
> + if (smp_alt_once && !noreplace_smp) {
> if (1 == num_possible_cpus()) {
> printk(KERN_INFO "SMP alternatives: switching to UP code\n");
> set_bit(X86_FEATURE_UP, boot_cpu_data.x86_capability);

You refer to rc3-mm1 and this is described as a "-mm patch" but it seems to
also be applicable to mainline?

2007-08-23 23:16:28

by Jeremy Fitzhardinge

[permalink] [raw]
Subject: Re: [-mm patch] enforce noreplace-smp in alternative_instructions()

Frederik Deweerdt wrote:
> On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
>
>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>>
>>
> Hi Jeremy,
>
> arch/i386/kernel/alternative.c:alternative_instructions() doesn't
> check for noreplace-smp before setting capability bits and freeing the
> __smp_locks section.
>
> Every call to alternatives_smp_unlock() checks for noreplace-smp
> beforehand, so remove the check from there.
>
> Boot tested on i386 with UP+noreplace-smp (lguest) and SMP (real hardware)
>

Does this fix a real problem? Or is there just some redundancy?
Wouldn't it be better to put the noreplace_smp test in one place?

J

2007-08-23 23:53:22

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - memory layout change? - lost support for MAP_32BIT? - mono crashes

On Thu, 23 Aug 2007 11:28:25 +0200 (CEST)
Jiri Kosina <[email protected]> wrote:

> Handle MAP_32BIT flags properly in x86_64 flexmmap
>
> We need to handle MAP_32BIT flags of mmap() properly for 64bit
> applications with filexible mmap layout.
>
> This patch introduces x86_64-specific version of
> arch_get_unmapped_area_topdown() which differs from the generic one in
> handling of the MAP_32BIT flag -- when this flag is passed to mmap(), we
> stick back to the legacy layout for this particular mmap, which gives
> proper 32bit range.
>

arch/x86_64/kernel/sys_x86_64.c | 98 ++++++++++++++++++++++++++++++++++++++++
include/asm-x86_64/pgtable.h | 1

well that's another hunk of code for us to maintain and to slow all our
computers down.

It is quite unobvious to me that the whole pie-randomization thing is
worth merging. Why shouldn't we just drop the lot?


<looks at the changelog>

This patch is using mmap()'s randomization functionality in such a way
that it maps the main executable of (specially compiled/linked
-pie/-fpie) ET_DYN binaries onto a random address (in cases in which
mmap() is allowed to perform a randomization).

The code has been extraced from Ingo's exec-shield patch
http://people.redhat.com/mingo/exec-shield/

that certainly doesn't tell anyone why we should merge this code into Linux.

2007-08-24 00:10:44

by Jiri Kosina

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - memory layout change? - lost support for MAP_32BIT? - mono crashes

(some more CCs added)

On Thu, 23 Aug 2007, Andrew Morton wrote:

> It is quite unobvious to me that the whole pie-randomization thing is
> worth merging. Why shouldn't we just drop the lot?

Hi Andrew,

well, whenever it comes to address space layout randomization, there
usually follows a huge debate whether it is needed or not, some people
think it's useful and powerful security protection against 0day attacks,
other people think that it's just fighting the bugs in userspace software
in a wrong way.

Opinions differ, that's why there is a way to turn the VA space
randomization completely off trivially.

We already have randomized stack, randomized mmap base, randomized vdso
page in mainline kernel, but code and heap still stay on deterministic
addresses. I think providing the possibility for users to have really full
address space randomization (if they want to) is much better than
providing the current slightly crippled state, when some parts of address
space are randomized and some are not. Or do you think we should rather
rip all the randomization off?

And it's almost certain to me that users want this functionality - look
major distros. They seem to have out-of-tree patches to provide this
functionality to their users, IMHO.

Thanks,

--
Jiri Kosina

2007-08-24 03:14:47

by Eric W. Biederman

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - irda goes belly up

Andrew Morton <[email protected]> writes:
>
> Cute. Eric, can you please suggest what we should do here?

Grumble.

Ok. This is a two sided bug.
The NET_IRDA define as not put in sysctl.h where it belongs so I
missed it, when making the list of all existing binary sysctls.

So really I need to put update the sysctl_check tables to have
the NET_IRDA numbers, because at least at first skim everything
looks ok on the binary side.

Patches to follow shortly.

Eric

2007-08-24 03:49:43

by Eric W. Biederman

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - irda goes belly up

Andrew Morton <[email protected]> writes:
>
> Yes, the ENOMEM is bogus. But irda_sysctl_register() saw a NULL return
> from register_sysctl_table() and simply has no clue why it failed, and is
> forced to assume ENOMEM. That's a design shortcoming in
> register_sysctl_table(), whcih should have returned an ERR_PTR. Doesn't
> matter much.

I should say something about the return value issue.

Currently the only time this matters is when someone messes up in
development, and if it isn't an out of memory error we get messages in
dmesg so it shouldn't be to hard to sort out.

I agree it is a bit of a short coming that we can only return NULL
and it might be worth changing that at some point. Perhaps when
I introduce register_sysctl_path would be a good time. Going
through all of the callers just to give a better return value when
they can't do anything about it anyway seems to be a lot of work
for a very minor improvement.

Eric

2007-08-24 03:56:55

by Eric W. Biederman

[permalink] [raw]
Subject: [PATCH 1/2] sysctl: Properly register the irda binary sysctl numbers.


Grumble. These numbers should have been in sysctl.h from the
beginning if we ever expected anyone to use them. Oh well put
them there now so we can find them and make maintenance easier.

Signed-off-by: Eric W. Biederman <[email protected]>
---
include/linux/sysctl.h | 20 ++++++++++++++++++++
net/irda/irsysctl.c | 34 ++++++++++++++--------------------
2 files changed, 34 insertions(+), 20 deletions(-)

diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
index 88f0941..77c9ae2 100644
--- a/include/linux/sysctl.h
+++ b/include/linux/sysctl.h
@@ -238,6 +238,7 @@ enum
NET_LLC=18,
NET_NETFILTER=19,
NET_DCCP=20,
+ NET_IRDA=412,
};

/* /proc/sys/kernel/random */
@@ -795,6 +796,25 @@ enum {
NET_BRIDGE_NF_FILTER_PPPOE_TAGGED = 5,
};

+/* proc/sys/net/irda */
+enum {
+ NET_IRDA_DISCOVERY=1,
+ NET_IRDA_DEVNAME=2,
+ NET_IRDA_DEBUG=3,
+ NET_IRDA_FAST_POLL=4,
+ NET_IRDA_DISCOVERY_SLOTS=5,
+ NET_IRDA_DISCOVERY_TIMEOUT=6,
+ NET_IRDA_SLOT_TIMEOUT=7,
+ NET_IRDA_MAX_BAUD_RATE=8,
+ NET_IRDA_MIN_TX_TURN_TIME=9,
+ NET_IRDA_MAX_TX_DATA_SIZE=10,
+ NET_IRDA_MAX_TX_WINDOW=11,
+ NET_IRDA_MAX_NOREPLY_TIME=12,
+ NET_IRDA_WARN_NOREPLY_TIME=13,
+ NET_IRDA_LAP_KEEPALIVE_TIME=14,
+};
+
+
/* CTL_FS names: */
enum
{
diff --git a/net/irda/irsysctl.c b/net/irda/irsysctl.c
index 957e04f..525343a 100644
--- a/net/irda/irsysctl.c
+++ b/net/irda/irsysctl.c
@@ -31,12 +31,6 @@
#include <net/irda/irda.h> /* irda_debug */
#include <net/irda/irias_object.h>

-#define NET_IRDA 412 /* Random number */
-enum { DISCOVERY=1, DEVNAME, DEBUG, FAST_POLL, DISCOVERY_SLOTS,
- DISCOVERY_TIMEOUT, SLOT_TIMEOUT, MAX_BAUD_RATE, MIN_TX_TURN_TIME,
- MAX_TX_DATA_SIZE, MAX_TX_WINDOW, MAX_NOREPLY_TIME, WARN_NOREPLY_TIME,
- LAP_KEEPALIVE_TIME };
-
extern int sysctl_discovery;
extern int sysctl_discovery_slots;
extern int sysctl_discovery_timeout;
@@ -94,7 +88,7 @@ static int do_devname(ctl_table *table, int write, struct file *filp,
/* One file */
static ctl_table irda_table[] = {
{
- .ctl_name = DISCOVERY,
+ .ctl_name = NET_IRDA_DISCOVERY,
.procname = "discovery",
.data = &sysctl_discovery,
.maxlen = sizeof(int),
@@ -102,7 +96,7 @@ static ctl_table irda_table[] = {
.proc_handler = &proc_dointvec
},
{
- .ctl_name = DEVNAME,
+ .ctl_name = NET_IRDA_DEVNAME,
.procname = "devname",
.data = sysctl_devname,
.maxlen = 65,
@@ -112,7 +106,7 @@ static ctl_table irda_table[] = {
},
#ifdef CONFIG_IRDA_DEBUG
{
- .ctl_name = DEBUG,
+ .ctl_name = NET_IRDA_DEBUG,
.procname = "debug",
.data = &irda_debug,
.maxlen = sizeof(int),
@@ -122,7 +116,7 @@ static ctl_table irda_table[] = {
#endif
#ifdef CONFIG_IRDA_FAST_RR
{
- .ctl_name = FAST_POLL,
+ .ctl_name = NET_IRDA_FAST_POLL,
.procname = "fast_poll_increase",
.data = &sysctl_fast_poll_increase,
.maxlen = sizeof(int),
@@ -131,7 +125,7 @@ static ctl_table irda_table[] = {
},
#endif
{
- .ctl_name = DISCOVERY_SLOTS,
+ .ctl_name = NET_IRDA_DISCOVERY_SLOTS,
.procname = "discovery_slots",
.data = &sysctl_discovery_slots,
.maxlen = sizeof(int),
@@ -142,7 +136,7 @@ static ctl_table irda_table[] = {
.extra2 = &max_discovery_slots
},
{
- .ctl_name = DISCOVERY_TIMEOUT,
+ .ctl_name = NET_IRDA_DISCOVERY_TIMEOUT,
.procname = "discovery_timeout",
.data = &sysctl_discovery_timeout,
.maxlen = sizeof(int),
@@ -150,7 +144,7 @@ static ctl_table irda_table[] = {
.proc_handler = &proc_dointvec
},
{
- .ctl_name = SLOT_TIMEOUT,
+ .ctl_name = NET_IRDA_SLOT_TIMEOUT,
.procname = "slot_timeout",
.data = &sysctl_slot_timeout,
.maxlen = sizeof(int),
@@ -161,7 +155,7 @@ static ctl_table irda_table[] = {
.extra2 = &max_slot_timeout
},
{
- .ctl_name = MAX_BAUD_RATE,
+ .ctl_name = NET_IRDA_MAX_BAUD_RATE,
.procname = "max_baud_rate",
.data = &sysctl_max_baud_rate,
.maxlen = sizeof(int),
@@ -172,7 +166,7 @@ static ctl_table irda_table[] = {
.extra2 = &max_max_baud_rate
},
{
- .ctl_name = MIN_TX_TURN_TIME,
+ .ctl_name = NET_IRDA_MIN_TX_TURN_TIME,
.procname = "min_tx_turn_time",
.data = &sysctl_min_tx_turn_time,
.maxlen = sizeof(int),
@@ -183,7 +177,7 @@ static ctl_table irda_table[] = {
.extra2 = &max_min_tx_turn_time
},
{
- .ctl_name = MAX_TX_DATA_SIZE,
+ .ctl_name = NET_IRDA_MAX_TX_DATA_SIZE,
.procname = "max_tx_data_size",
.data = &sysctl_max_tx_data_size,
.maxlen = sizeof(int),
@@ -194,7 +188,7 @@ static ctl_table irda_table[] = {
.extra2 = &max_max_tx_data_size
},
{
- .ctl_name = MAX_TX_WINDOW,
+ .ctl_name = NET_IRDA_MAX_TX_WINDOW,
.procname = "max_tx_window",
.data = &sysctl_max_tx_window,
.maxlen = sizeof(int),
@@ -205,7 +199,7 @@ static ctl_table irda_table[] = {
.extra2 = &max_max_tx_window
},
{
- .ctl_name = MAX_NOREPLY_TIME,
+ .ctl_name = NET_IRDA_MAX_NOREPLY_TIME,
.procname = "max_noreply_time",
.data = &sysctl_max_noreply_time,
.maxlen = sizeof(int),
@@ -216,7 +210,7 @@ static ctl_table irda_table[] = {
.extra2 = &max_max_noreply_time
},
{
- .ctl_name = WARN_NOREPLY_TIME,
+ .ctl_name = NET_IRDA_WARN_NOREPLY_TIME,
.procname = "warn_noreply_time",
.data = &sysctl_warn_noreply_time,
.maxlen = sizeof(int),
@@ -227,7 +221,7 @@ static ctl_table irda_table[] = {
.extra2 = &max_warn_noreply_time
},
{
- .ctl_name = LAP_KEEPALIVE_TIME,
+ .ctl_name = NET_IRDA_LAP_KEEPALIVE_TIME,
.procname = "lap_keepalive_time",
.data = &sysctl_lap_keepalive_time,
.maxlen = sizeof(int),
--
1.5.1.1.181.g2de0

2007-08-24 03:58:17

by Eric W. Biederman

[permalink] [raw]
Subject: [PATCH 2/2] sysctl: For irda update sysctl_checks list of binary paths.


It turns out that the net/irda code didn't register any of
it's binary paths in the global sysctl.h header file so
I missed them completely when making an authoritative list
of binary sysctl paths in the kernel. So add them to
the list of valid binary sysctl paths.

Signed-off-by: Eric W. Biederman <[email protected]>
---
kernel/sysctl_check.c | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/kernel/sysctl_check.c b/kernel/sysctl_check.c
index d5e0337..aa5b6f6 100644
--- a/kernel/sysctl_check.c
+++ b/kernel/sysctl_check.c
@@ -702,6 +702,24 @@ static struct trans_ctl_table trans_net_dccp_table[] = {
{}
};

+static struct trans_ctl_table trans_net_irda_table[] = {
+ { NET_IRDA_DISCOVERY, "discovery" },
+ { NET_IRDA_DEVNAME, "devname" },
+ { NET_IRDA_DEBUG, "debug" },
+ { NET_IRDA_FAST_POLL, "fast_poll_increase" },
+ { NET_IRDA_DISCOVERY_SLOTS, "discovery_slots" },
+ { NET_IRDA_DISCOVERY_TIMEOUT, "discovery_timeout" },
+ { NET_IRDA_SLOT_TIMEOUT, "slot_timeout" },
+ { NET_IRDA_MAX_BAUD_RATE, "max_baud_rate" },
+ { NET_IRDA_MIN_TX_TURN_TIME, "min_tx_turn_time" },
+ { NET_IRDA_MAX_TX_DATA_SIZE, "max_tx_data_size" },
+ { NET_IRDA_MAX_TX_WINDOW, "max_tx_window" },
+ { NET_IRDA_MAX_NOREPLY_TIME, "max_noreply_time" },
+ { NET_IRDA_WARN_NOREPLY_TIME, "warn_noreply_time" },
+ { NET_IRDA_LAP_KEEPALIVE_TIME, "lap_keepalive_time" },
+ {}
+};
+
static struct trans_ctl_table trans_net_table[] = {
{ NET_CORE, "core", trans_net_core_table },
/* NET_ETHER not used */
@@ -723,6 +741,7 @@ static struct trans_ctl_table trans_net_table[] = {
{ NET_LLC, "llc", trans_net_llc_table },
{ NET_NETFILTER, "netfilter", trans_net_netfilter_table },
{ NET_DCCP, "dccp", trans_net_dccp_table },
+ { NET_IRDA, "irda", trans_net_irda_table },
{ 2089, "nf_conntrack_max" },
{}
};
--
1.5.1.1.181.g2de0

2007-08-24 06:09:14

by Frederik Deweerdt

[permalink] [raw]
Subject: Re: [-mm patch] enforce noreplace-smp in alternative_instructions()

On Thu, Aug 23, 2007 at 02:50:38PM -0700, Andrew Morton wrote:
> On Wed, 22 Aug 2007 22:25:51 +0200
> Frederik Deweerdt <[email protected]> wrote:
>
> > On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
> > >
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
> > >
> > Hi Jeremy,
> >
> > arch/i386/kernel/alternative.c:alternative_instructions() doesn't
> > check for noreplace-smp before setting capability bits and freeing the
> > __smp_locks section.
>
> umm, so? What happens then? What bug is being fixed here, and what are
> its consequences?
That means that even when you specify noreplace_smp, some replacing
takes place anyway. One of the consequences, besides noreplace_smp not
working as expected, is that lguest crashes when you feed it an SMP kernel
(I suspect that you can not replace alternatives for smp _and_ paravirt).
>
> > Every call to alternatives_smp_unlock() checks for noreplace-smp
> > beforehand, so remove the check from there.
> >
> > Boot tested on i386 with UP+noreplace-smp (lguest) and SMP (real hardware)
> >
> > Regards,
> > Frederik
> >
> > Signed-off-by: Frederik Deweerdt <[email protected]>
> >
> > diff --git a/arch/i386/kernel/alternative.c b/arch/i386/kernel/alternative.c
> > index 9f4ac8b..7c5af80 100644
> > --- a/arch/i386/kernel/alternative.c
> > +++ b/arch/i386/kernel/alternative.c
> > @@ -221,9 +221,6 @@ static void alternatives_smp_unlock(u8 **start, u8 **end, u8 *text, u8 *text_end
> > u8 **ptr;
> > char insn[1];
> >
> > - if (noreplace_smp)
> > - return;
> > -
> > add_nops(insn, 1);
> > for (ptr = start; ptr < end; ptr++) {
> > if (*ptr < text)
> > @@ -406,7 +403,7 @@ void __init alternative_instructions(void)
> > #endif
> >
> > #ifdef CONFIG_SMP
> > - if (smp_alt_once) {
> > + if (smp_alt_once && !noreplace_smp) {
> > if (1 == num_possible_cpus()) {
> > printk(KERN_INFO "SMP alternatives: switching to UP code\n");
> > set_bit(X86_FEATURE_UP, boot_cpu_data.x86_capability);
>
> You refer to rc3-mm1 and this is described as a "-mm patch" but it seems to
> also be applicable to mainline?
>
Hmm yes, my bad.

Regards,
Frederik

2007-08-24 06:11:25

by Frederik Deweerdt

[permalink] [raw]
Subject: Re: [-mm patch] enforce noreplace-smp in alternative_instructions()

On Thu, Aug 23, 2007 at 04:16:17PM -0700, Jeremy Fitzhardinge wrote:
> Frederik Deweerdt wrote:
> > On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
> >
> >> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
> >>
> >>
> > Hi Jeremy,
> >
> > arch/i386/kernel/alternative.c:alternative_instructions() doesn't
> > check for noreplace-smp before setting capability bits and freeing the
> > __smp_locks section.
> >
> > Every call to alternatives_smp_unlock() checks for noreplace-smp
> > beforehand, so remove the check from there.
> >
> > Boot tested on i386 with UP+noreplace-smp (lguest) and SMP (real hardware)
> >
>
> Does this fix a real problem? Or is there just some redundancy?
It does, see the mail to Andrew.
> Wouldn't it be better to put the noreplace_smp test in one place?
I agree, but I don't think it is doable (alt_smp_once comes to mind). I'll
double check however.

Thanks,
Frederik

2007-08-24 06:46:59

by Jeremy Fitzhardinge

[permalink] [raw]
Subject: Re: [-mm patch] enforce noreplace-smp in alternative_instructions()

Frederik Deweerdt wrote:
> That means that even when you specify noreplace_smp, some replacing
> takes place anyway. One of the consequences, besides noreplace_smp not
> working as expected, is that lguest crashes when you feed it an SMP kernel
> (I suspect that you can not replace alternatives for smp _and_ paravirt).
>

No, that should be fine. Why does lguest crash?

> I agree, but I don't think it is doable (alt_smp_once comes to mind). I'll
> double check however.

Hm. Is alt_smp_once useful?

J

2007-08-24 08:27:21

by Frederik Deweerdt

[permalink] [raw]
Subject: Re: [-mm patch] enforce noreplace-smp in alternative_instructions()

[Added Gerd Hoffman and Rusty Russel to cc]
On Thu, Aug 23, 2007 at 11:46:52PM -0700, Jeremy Fitzhardinge wrote:
> Frederik Deweerdt wrote:
> > That means that even when you specify noreplace_smp, some replacing
> > takes place anyway. One of the consequences, besides noreplace_smp not
> > working as expected, is that lguest crashes when you feed it an SMP kernel
> > (I suspect that you can not replace alternatives for smp _and_ paravirt).
> >
>
> No, that should be fine. Why does lguest crash?
It dies with:
[ 0.131000] SMP alternatives: switching to UP code
lguest: bad stack page 0xc057a000

I added a dump_stack on the Host, which gives:
[124320.090946] [<c01052f8>] dump_trace+0x65/0x1de
[124320.090956] [<c010548b>] show_trace_log_lvl+0x1a/0x2f
[124320.090970] [<c0105ea4>] show_trace+0x12/0x14
[124320.090975] [<c0105fcd>] dump_stack+0x16/0x18
[124320.090980] [<f888032c>] pin_page+0x5f/0xa3 [lg]
[124320.090993] [<f8880654>] pin_stack_pages+0x3a/0x4a [lg]
[124320.091004] [<f888007e>] guest_pagetable_clear_all+0x12/0x15 [lg]
[124320.091013] [<f887f81a>] do_hcall+0xb1/0x1cb [lg]
[124320.091021] [<f887fbbe>] do_hypercalls+0x28a/0x2a0 [lg]
[124320.091029] [<f887f2a2>] run_guest+0x24/0x492 [lg]
[124320.091037] [<f8881b48>] read+0x83/0x8f [lg]
[124320.091048] [<c0175a77>] vfs_read+0x8e/0x117
[124320.091054] [<c0175e99>] sys_read+0x3d/0x61
[124320.091059] [<c0104166>] sysenter_past_esp+0x6b/0xb5
[124320.091065] [<ffffe410>] 0xffffe410
[124320.091069] =======================

Now, the "SMP alternatives: switching to UP code" message made me wonder
if it had anything to do with the alternatives, so I tried disabling
the switch by passing noreplace_smp...
... But the message was displayes anyway (and the smp_locks section
freed), because the check my patch adds is not made.
With the patch, I can boot lguest with an SMP kernel if I pass
noreplace_smp.
>
> > I agree, but I don't think it is doable (alt_smp_once comes to mind). I'll
> > double check however.
>
> Hm. Is alt_smp_once useful?

I can't figure what the use case is, debugging set aside,
but there are places (eg xen, __cpu_die) in the kernel calling
alternatives_smp_switch(1) at runtime. Passing smp-alt-once will prevent
the switch.

Regards,
Frederik

2007-08-24 16:24:00

by Arjan van de Ven

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - memory layout change? - lost support for MAP_32BIT? - mono crashes

On Fri, 24 Aug 2007 02:09:59 +0200 (CEST)
Jiri Kosina <[email protected]> wrote:

> (some more CCs added)
>
> On Thu, 23 Aug 2007, Andrew Morton wrote:
>
> > It is quite unobvious to me that the whole pie-randomization thing
> > is worth merging. Why shouldn't we just drop the lot?
>
> Hi Andrew,
>
> well, whenever it comes to address space layout randomization, there
> usually follows a huge debate whether it is needed or not, some
> people think it's useful and powerful security protection against
> 0day attacks, other people think that it's just fighting the bugs in
> userspace software in a wrong way.

randomizing PIE's is as a whole worth getting right and in mainline.
That means that ONLY the PIE text should be randomized, not that mmap
should break ;)

Randomizing address space is very widely recognized as being part of a
whole set of things (and there's a lot of discussion about what that
whole set should be, each vendor will say their solution should be part
of that and that all others suck) that you need to do to make it a LOT
harder to get a general purpose exploit working. (It's not fool proof;
it's more comparable than a 4 tumble number lock than it is to a iris
scan; yet even a tumble number lock makes it harder to break into your
gym locker)

2007-08-24 23:27:25

by Tilman Schmidt

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

Am 22.08.2007 11:06 schrieb Andrew Morton:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/

After applying Matthew Wilcox' patch to include/linux/isa.h this compiles
and boots on my Intel/openSUSE 10.2 test machine but throws out the
following messages I don't remember ever seeing with other kernels:

- on console early during boot, also in SuSE's /var/log/boot.msg:

your system time is not correct:
Wed Jul 13 13:15:31 UTC 1910
setting system time to:
Tue Jul 24 00:00:00 UTC 2007

- later, dto. on console and in /var/log/boot.msg:

FATAL: Error inserting processor (/lib/modules/2.6.23-rc3-mm1-testing/kernel/drivers/acpi/processor.ko): Input/output error
WARNING: Error inserting processor (/lib/modules/2.6.23-rc3-mm1-testing/kernel/drivers/acpi/processor.ko): Input/output error
FATAL: Error inserting thermal (/lib/modules/2.6.23-rc3-mm1-testing/kernel/drivers/acpi/thermal.ko): Unknown symbol in module, or unknown parameter (see dmesg)

- apparently corresponding to that, in dmesg:

<4>[ 7.691865] thermal: Unknown symbol acpi_processor_set_thermal_limit

- from fsck during boot:

/dev/system/root: Superblock last mount time is in the future. FIXED.
/dev/system/root: Superblock last write time is in the future. FIXED.

- in /var/log/warn:

Aug 25 00:44:00 xenon powersaved[5356]: WARNING (CpufreqManagement:51) No capability cpufreq_control
Aug 25 00:44:00 xenon powersaved[5356]: WARNING (CpufreqManagement:51) No capability cpufreq_control

And the SUSE startup sequence displays "failed" for the acpid daemon.
So it seems there is some strangeness wrt to system time and power
management. I don't have the time to bisect this right now, but
wanted to let you know anyway.

Apart from that, the kernel seems to work fine.

HTH

--
Tilman Schmidt E-Mail: [email protected]
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Unge?ffnet mindestens haltbar bis: (siehe R?ckseite)


Attachments:
signature.asc (253.00 B)
OpenPGP digital signature

2007-08-25 00:08:32

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Sat, 25 Aug 2007 01:27:25 +0200
Tilman Schmidt <[email protected]> wrote:

> Am 22.08.2007 11:06 schrieb Andrew Morton:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>
> After applying Matthew Wilcox' patch to include/linux/isa.h

which patch is that?

> this compiles
> and boots on my Intel/openSUSE 10.2 test machine but throws out the
> following messages I don't remember ever seeing with other kernels:
>
> - on console early during boot, also in SuSE's /var/log/boot.msg:
>
> your system time is not correct:
> Wed Jul 13 13:15:31 UTC 1910
> setting system time to:
> Tue Jul 24 00:00:00 UTC 2007

What architecture?

if x86_64 then perhaps something went wrong with the old x86_64 dynticks
leftovers which were in rc3-mm1. I've just merged a shiny fresh new series
so perhaps things there got fixed. Please retest next -mm.

Suitable cc's added.

> - later, dto. on console and in /var/log/boot.msg:
>
> FATAL: Error inserting processor (/lib/modules/2.6.23-rc3-mm1-testing/kernel/drivers/acpi/processor.ko): Input/output error
> WARNING: Error inserting processor (/lib/modules/2.6.23-rc3-mm1-testing/kernel/drivers/acpi/processor.ko): Input/output error
> FATAL: Error inserting thermal (/lib/modules/2.6.23-rc3-mm1-testing/kernel/drivers/acpi/thermal.ko): Unknown symbol in module, or unknown parameter (see dmesg)
>
> - apparently corresponding to that, in dmesg:
>
> <4>[ 7.691865] thermal: Unknown symbol acpi_processor_set_thermal_limit

acpi cc's added

> - from fsck during boot:
>
> /dev/system/root: Superblock last mount time is in the future. FIXED.
> /dev/system/root: Superblock last write time is in the future. FIXED.

Presumably related to the time problem.

> - in /var/log/warn:
>
> Aug 25 00:44:00 xenon powersaved[5356]: WARNING (CpufreqManagement:51) No capability cpufreq_control
> Aug 25 00:44:00 xenon powersaved[5356]: WARNING (CpufreqManagement:51) No capability cpufreq_control

Dunno, there're some significant-looking cpufreq changes in there, such as
cpufreq-allow-ondemand-and-conservative-cpufreq-governors-to-be-used-as-default.patch.
Maybe we went and chose a different governor for you?

Perhaps it would be helpful if you could do a

diff -u dmesg-2.6.23-rc3 dmesg-2.6.26-rc3-mm1

?


> And the SUSE startup sequence displays "failed" for the acpid daemon.
> So it seems there is some strangeness wrt to system time and power
> management. I don't have the time to bisect this right now, but
> wanted to let you know anyway.
>
> Apart from that, the kernel seems to work fine.

OK, thanks.

2007-08-25 00:13:51

by Pallipadi, Venkatesh

[permalink] [raw]
Subject: RE: 2.6.23-rc3-mm1


>> - in /var/log/warn:
>>
>> Aug 25 00:44:00 xenon powersaved[5356]: WARNING
>(CpufreqManagement:51) No capability cpufreq_control
>> Aug 25 00:44:00 xenon powersaved[5356]: WARNING
>(CpufreqManagement:51) No capability cpufreq_control
>
>Dunno, there're some significant-looking cpufreq changes in
>there, such as
>cpufreq-allow-ondemand-and-conservative-cpufreq-governors-to-be
>-used-as-default.patch.
>Maybe we went and chose a different governor for you?
>

This is probably not related to cpufreq changes itself. Looks like it is
coming due to

>> FATAL: Error inserting processor
>(/lib/modules/2.6.23-rc3-mm1-testing/kernel/drivers/acpi/proces
>sor.ko): Input/output error
>> WARNING: Error inserting processor
>(/lib/modules/2.6.23-rc3-mm1-testing/kernel/drivers/acpi/proces
>sor.ko): Input/output error

Not sure why this is failing though. Don't recall any significant
changes in processor.ko recently apart from CPUIDLE stuff.

Thanks,
Venki

2007-08-25 00:17:14

by Dave Jones

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Fri, Aug 24, 2007 at 05:07:02PM -0700, Andrew Morton wrote:

> > FATAL: Error inserting processor (/lib/modules/2.6.23-rc3-mm1-testing/kernel/drivers/acpi/processor.ko): Input/output error
> > WARNING: Error inserting processor (/lib/modules/2.6.23-rc3-mm1-testing/kernel/drivers/acpi/processor.ko): Input/output error
> >
> > Aug 25 00:44:00 xenon powersaved[5356]: WARNING (CpufreqManagement:51) No capability cpufreq_control
> > Aug 25 00:44:00 xenon powersaved[5356]: WARNING (CpufreqManagement:51) No capability cpufreq_control
>
> Dunno, there're some significant-looking cpufreq changes in there, such as
> cpufreq-allow-ondemand-and-conservative-cpufreq-governors-to-be-used-as-default.patch.
> Maybe we went and chose a different governor for you?

More likely, he was using a cpufreq driver that required acpi
functionality, and because processor.ko went boom, the house of cards
came tumbling down.

I long for the olde days when acpi changes didn't end up with
finger pointing at cpufreq.

Dave

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

2007-08-25 00:22:17

by john stultz

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Fri, 2007-08-24 at 17:07 -0700, Andrew Morton wrote:
> On Sat, 25 Aug 2007 01:27:25 +0200
> Tilman Schmidt <[email protected]> wrote:
>
> > Am 22.08.2007 11:06 schrieb Andrew Morton:
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
> >
> > After applying Matthew Wilcox' patch to include/linux/isa.h
>
> which patch is that?
>
> > this compiles
> > and boots on my Intel/openSUSE 10.2 test machine but throws out the
> > following messages I don't remember ever seeing with other kernels:
> >
> > - on console early during boot, also in SuSE's /var/log/boot.msg:
> >
> > your system time is not correct:
> > Wed Jul 13 13:15:31 UTC 1910
> > setting system time to:
> > Tue Jul 24 00:00:00 UTC 2007

Hrmm. I'm not super familiar w/ SuSE's init scripts, but I'm guessing
that's the ntpdate call. And "Tuesday Jul 24th"? Sounds about a month
off, is this just stale info?


> What architecture?
>
> if x86_64 then perhaps something went wrong with the old x86_64 dynticks
> leftovers which were in rc3-mm1. I've just merged a shiny fresh new series
> so perhaps things there got fixed. Please retest next -mm.
>
[snip]
> > - from fsck during boot:
> >
> > /dev/system/root: Superblock last mount time is in the future. FIXED.
> > /dev/system/root: Superblock last write time is in the future. FIXED.
>
> Presumably related to the time problem.


Does this show up before or after the above date stuff?
Does the issue go away using an older kernel (I want to eliminate easy
stuff like CMOS batteries giving up)?

Also you're not using Linus' CMOS corrupting suspend/resume debugging
trick, right (I'm forgetting the CONFIG name).

thanks
-john


2007-08-25 00:38:42

by Pallipadi, Venkatesh

[permalink] [raw]
Subject: RE: 2.6.23-rc3-mm1



>-----Original Message-----
>From: [email protected]
>[mailto:[email protected]] On Behalf Of
>Pallipadi, Venkatesh
>Sent: Friday, August 24, 2007 5:14 PM
>To: Andrew Morton; Tilman Schmidt
>Cc: [email protected]; Thomas Gleixner; john
>stultz; Andi Kleen; Len Brown; [email protected];
>Dave Jones; Thomas Renninger
>Subject: RE: 2.6.23-rc3-mm1
>
>
>>> - in /var/log/warn:
>>>
>>> Aug 25 00:44:00 xenon powersaved[5356]: WARNING
>>(CpufreqManagement:51) No capability cpufreq_control
>>> Aug 25 00:44:00 xenon powersaved[5356]: WARNING
>>(CpufreqManagement:51) No capability cpufreq_control
>>
>>Dunno, there're some significant-looking cpufreq changes in
>>there, such as
>>cpufreq-allow-ondemand-and-conservative-cpufreq-governors-to-be
>>-used-as-default.patch.
>>Maybe we went and chose a different governor for you?
>>
>
>This is probably not related to cpufreq changes itself. Looks
>like it is
>coming due to
>
>>> FATAL: Error inserting processor
>>(/lib/modules/2.6.23-rc3-mm1-testing/kernel/drivers/acpi/proces
>>sor.ko): Input/output error
>>> WARNING: Error inserting processor
>>(/lib/modules/2.6.23-rc3-mm1-testing/kernel/drivers/acpi/proces
>>sor.ko): Input/output error
>
>Not sure why this is failing though. Don't recall any significant
>changes in processor.ko recently apart from CPUIDLE stuff.
>

This is indeed related to CPUIDLE.

Tilman: Can you configure CONFIG_CPU_IDLE in your config (under Power
Management option) and double check that the frequency part works after
that.

Andrew: Adam Belay sent a recent patchset on linux-pm and linux-acpi and
one of the patches of that addresses this issue (CPUIDLE: load ACPI
properly when CPUIDLE is disabled). Those patches should come to mm soon
through acpi-test.

Thanks,
Venki

2007-08-25 00:48:01

by Tilman Schmidt

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

--- /tmp/bootmsg-2.6.23-rc3 2007-08-25 02:25:54.000000000 +0200
+++ /tmp/bootmsg-2.6.23-rc3-mm1 2007-08-25 02:26:08.000000000 +0200
@@ -1,10 +1,10 @@
-Inspecting /boot/System.map-2.6.23-rc3-testing
-Loaded 27522 symbols from /boot/System.map-2.6.23-rc3-testing.
+Inspecting /boot/System.map-2.6.23-rc3-mm1-testing
+Loaded 28663 symbols from /boot/System.map-2.6.23-rc3-mm1-testing.
Symbols match kernel version 2.6.23.
No module symbols loaded - kernel modules not enabled.

klogd 1.4.1, log source = ksyslog started.
-<5>Linux version 2.6.23-rc3-testing (ts@xenon) (gcc version 4.1.2 20061115 (prerelease) (SUSE Linux)) #1 SMP PREEMPT Tue Aug 14 15:27:26 CEST 2007
+<5>Linux version 2.6.23-rc3-mm1-testing (ts@xenon) (gcc version 4.1.2 20061115 (prerelease) (SUSE Linux)) #1 SMP PREEMPT Thu Aug 23 00:02:51 CEST 2007
<6>BIOS-provided physical RAM map:
<4> BIOS-e820: 0000000000000000 - 000000000008f000 (usable)
<4> BIOS-e820: 000000000008f000 - 00000000000a0000 (reserved)
@@ -25,6 +25,7 @@
<5>896MB LOWMEM available.
<6>found SMP MP-table at 000fe200
<7>Entering add_active_range(0, 0, 255744) 0 entries of 256 used
+<7>sizeof(struct page) = 56
<4>Zone PFN ranges:
<4> DMA 0 -> 4096
<4> Normal 4096 -> 229376
@@ -33,6 +34,7 @@
<4>early_node_map[1] active PFN ranges
<4> 0: 0 -> 255744
<7>On node 0 totalpages: 255744
+<7>Node 0 memmap at 0xc1000000 size 14336000 first pfn 0xc1000000
<7> DMA zone: 56 pages used for memmap
<7> DMA zone: 0 pages reserved
<7> DMA zone: 4040 pages, LIFO batch:0
@@ -82,16 +84,16 @@
<4>swsusp: Registered nosave memory region: 000000000008f000 - 00000000000a0000
<4>swsusp: Registered nosave memory region: 00000000000a0000 - 00000000000e0000
<4>swsusp: Registered nosave memory region: 00000000000e0000 - 0000000000100000
-<4>Built 1 zonelists in Zone order. Total pages: 252248
+<4>Built 1 zonelists in Zone order, mobility grouping on. Total pages: 252248
<5>Kernel command line: root=/dev/system/root video=matroxfb:vesa:0x31b resume=/dev/system/swap splash=verbose
<7>mapped APIC to ffffb000 (fee00000)
<7>mapped IOAPIC to ffffa000 (fec00000)
<6>Enabling fast FPU save and restore... done.
<6>Enabling unmasked SIMD FPU exception support... done.
<6>Initializing CPU#0
-<4>CPU 0 irqstacks, hard=c0451000 soft=c0449000
+<4>CPU 0 irqstacks, hard=c04d0000 soft=c04c8000
<4>PID hash table entries: 4096 (order: 12, 16384 bytes)
-<4>Detected 3197.068 MHz processor.
+<4>Detected 3196.982 MHz processor.
<4>Console: colour VGA+ 80x25
<6>console [tty0] enabled
<4>Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
@@ -188,21 +190,21 @@
<4>---------------------------------
<6>Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
<6>Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
-<6>Memory: 993044k/1022976k available (2040k kernel code, 28100k reserved, 1042k data, 252k init, 104484k highmem)
+<6>Memory: 992396k/1022976k available (2110k kernel code, 28776k reserved, 1467k data, 260k init, 104484k highmem)
<4>virtual kernel memory layout:
<4> fixmap : 0xfff4c000 - 0xfffff000 ( 716 kB)
<4> pkmap : 0xff800000 - 0xffc00000 (4096 kB)
<4> vmalloc : 0xf8800000 - 0xff7fe000 ( 111 MB)
<4> lowmem : 0xc0000000 - 0xf8000000 ( 896 MB)
-<4> .init : 0xc0407000 - 0xc0446000 ( 252 kB)
-<4> .data : 0xc02fe179 - 0xc0402ce4 (1042 kB)
-<4> .text : 0xc0100000 - 0xc02fe179 (2040 kB)
+<4> .init : 0xc0483000 - 0xc04c4000 ( 260 kB)
+<4> .data : 0xc030f81f - 0xc047e4c4 (1467 kB)
+<4> .text : 0xc0100000 - 0xc030f81f (2110 kB)
<4>Checking if this processor honours the WP bit even in supervisor mode... Ok.
-<6>SLUB: Genslabs=22, HWalign=64, Order=0-1, MinObjects=4, CPUs=2, Nodes=1
-<6>hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
-<6>hpet0: 3 64-bit timers, 14318180 Hz
-<4>Calibrating delay using timer specific routine.. 6399.65 BogoMIPS (lpj=3199825)
-<6>Security Framework v1.0.0 initialized
+<6>SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=16, CPUs=2, Nodes=1
+<4>Calibrating delay using timer specific routine.. 6399.03 BogoMIPS (lpj=3199517)
+<6>kswapd reclaim order set to 3
+<6>Security Framework initialized
+<6>Capability LSM initialized
<4>Mount-cache hash table entries: 512
<7>CPU: After generic identify, caps: bfebfbff 20100000 00000000 00000000 0000e4bd 00000000 00000001 00000000
<4>monitor/mwait feature present.
@@ -223,9 +225,9 @@
<4>CPU0: Intel(R) Pentium(R) D CPU 3.20GHz stepping 04
<4>lockdep: not fixing up alternatives.
<4>Booting processor 1/1 eip 3000
-<4>CPU 1 irqstacks, hard=c0452000 soft=c044a000
+<4>CPU 1 irqstacks, hard=c04d1000 soft=c04c9000
<6>Initializing CPU#1
-<4>Calibrating delay using timer specific routine.. 6393.68 BogoMIPS (lpj=3196844)
+<4>Calibrating delay using timer specific routine.. 6392.76 BogoMIPS (lpj=3196383)
<7>CPU: After generic identify, caps: bfebfbff 20100000 00000000 00000000 0000e4bd 00000000 00000001 00000000
<4>monitor/mwait feature present.
<6>CPU: Trace cache: 12K uops, L1 D cache: 16K
@@ -238,23 +240,27 @@
<6>CPU1: Intel P4/Xeon Extended MCE MSRs (24) available
<6>CPU1: Thermal monitoring enabled
<4>CPU1: Intel(R) Pentium(R) D CPU 3.20GHz stepping 04
-<6>Total of 2 processors activated (12793.33 BogoMIPS).
+<6>Total of 2 processors activated (12791.80 BogoMIPS).
<4>ENABLING IO-APIC IRQs
<6>..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1
-<6>checking TSC synchronization [CPU#0 -> CPU#1]: passed.
+<6>checking TSC synchronization [CPU#0 -> CPU#1]:
+<4>Measured 32 cycles TSC warp between CPUs, turning off TSC clock.
+<4>Marking TSC unstable due to: check_tsc_sync_source failed.
<6>Brought up 2 CPUs
<6>Booting paravirtualized kernel on bare hardware
<6>NET: Registered protocol family 16
<6>ACPI: bus type pci registered
-<3>PCI: BIOS Bug: MCFG area at f0000000 is not E820-reserved
-<3>PCI: Not using MMCONFIG.
<6>PCI: Using configuration type 1
<4>Setting up standard PCI resources
<7>ACPI: EC: Look up EC in DSDT
<6>ACPI: Interpreter enabled
<6>ACPI: (supports S0 S3)
<6>ACPI: Using IOAPIC for interrupt routing
+<5>PCI: MCFG configuration 0: base 4026531840 segment 0 buses 0 - 127
+<5>PCI: MCFG area at f0000000 reserved in ACPI motherboard resources
+<6>PCI: Using MMCONFIG
<6>ACPI: PCI Root Bridge [PCI0] (0000:00)
+<7>PCI: Probing PCI hardware (bus 00)
<4>PCI quirk: region 0400-047f claimed by ICH6 ACPI/GPIO/TCO
<4>PCI quirk: region 0500-053f claimed by ICH6 GPIO
<6>PCI: Transparent bridge - 0000:00:1e.0
@@ -285,7 +291,9 @@
<6>NetLabel: protocols = UNLABELED CIPSOv4
<6>NetLabel: unlabeled traffic allowed by default
<4>ACPI: RTC can wake from S4
-<6>Time: tsc clocksource has been installed.
+<6>Time: hpet clocksource has been installed.
+<6>Switched to high resolution mode on CPU 0
+<6>Switched to high resolution mode on CPU 1
<6>pnp: 00:01: iomem range 0xf0000000-0xf7ffffff has been reserved
<6>pnp: 00:01: iomem range 0xfed13000-0xfed13fff has been reserved
<6>pnp: 00:01: iomem range 0xfed14000-0xfed17fff has been reserved
@@ -340,15 +348,11 @@
<6>TCP bind hash table entries: 65536 (order: 9, 2359296 bytes)
<6>TCP: Hash tables configured (established 65536 bind 65536)
<6>TCP reno registered
-<6>checking if image is initramfs...<6>Switched to high resolution mode on CPU 1
-<6>Switched to high resolution mode on CPU 0
-<4> it is
-<6>Freeing initrd memory: 7369k freed
+<6>checking if image is initramfs... it is
+<6>Freeing initrd memory: 7423k freed
<6>Machine check exception polling timer started.
-<6>apm: BIOS version 1.2 Flags 0x03 (Driver version 1.16ac)
-<5>apm: disabled - APM is not SMP safe.
<6>audit: initializing netlink socket (disabled)
-<5>audit(1187997798.852:1): initialized
+<5>audit(2418234223.871:1): initialized
<4>highmem bounce pool size: 64 pages
<4>Total HugeTLB memory allocated, 0
<5>VFS: Disk quotas dquot_6.5.1
@@ -363,22 +367,27 @@
<4>assign_interrupt_mode Found MSI capability
<7>Allocate Port Service[0000:00:1c.0:pcie00]
<7>Allocate Port Service[0000:00:1c.0:pcie02]
+<7>Allocate Port Service[0000:00:1c.0:pcie03]
<7>PCI: Setting latency timer of device 0000:00:1c.1 to 64
<4>assign_interrupt_mode Found MSI capability
<7>Allocate Port Service[0000:00:1c.1:pcie00]
<7>Allocate Port Service[0000:00:1c.1:pcie02]
+<7>Allocate Port Service[0000:00:1c.1:pcie03]
<7>PCI: Setting latency timer of device 0000:00:1c.2 to 64
<4>assign_interrupt_mode Found MSI capability
<7>Allocate Port Service[0000:00:1c.2:pcie00]
<7>Allocate Port Service[0000:00:1c.2:pcie02]
+<7>Allocate Port Service[0000:00:1c.2:pcie03]
<7>PCI: Setting latency timer of device 0000:00:1c.3 to 64
<4>assign_interrupt_mode Found MSI capability
<7>Allocate Port Service[0000:00:1c.3:pcie00]
<7>Allocate Port Service[0000:00:1c.3:pcie02]
+<7>Allocate Port Service[0000:00:1c.3:pcie03]
<7>PCI: Setting latency timer of device 0000:00:1c.4 to 64
<4>assign_interrupt_mode Found MSI capability
<7>Allocate Port Service[0000:00:1c.4:pcie00]
<7>Allocate Port Service[0000:00:1c.4:pcie02]
+<7>Allocate Port Service[0000:00:1c.4:pcie03]
<6>ACPI: PCI Interrupt 0000:05:00.0[A] -> GSI 19 (level, low) -> IRQ 19
<6>matroxfb: Matrox G550 detected
<6>PInS memtype = 5
@@ -390,7 +399,7 @@
<4>fb0: MATROX frame buffer device
<6>matroxfb_crtc2: secondary head of fb0 was registered as fb1
<6>Real Time Clock Driver v1.12ac
-<7>hpet_resources: 0xfed00000 is busy
+<4>hpet_acpi_add: no address or irqs in _CRS
<6>Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
<6>serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
<6>00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
@@ -407,18 +416,15 @@
<4>PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
<6>serio: i8042 KBD port at 0x60,0x64 irq 1
<6>mice: PS/2 mouse device common for all mice
-<6>input: AT Translated Set 2 keyboard as /class/input/input0
-<6>input: PC Speaker as /class/input/input1
+<6>input: PC Speaker as /class/input/input0
<6>NET: Registered protocol family 1
<6>Starting balanced_irq
<4>Using IPI No-Shortcut mode
-<6>Freeing unused kernel memory: 252k freed
-<4>Write protecting the kernel read-only data: 814k
+<6>Freeing unused kernel memory: 260k freed
+<4>Write protecting the kernel read-only data: 1215k
+<6>input: AT Translated Set 2 keyboard as /class/input/input1
<5>SCSI subsystem initialized
-<6>ACPI: Processor [CPU0] (supports 8 throttling states)
-<6>ACPI: Processor [CPU1] (supports 8 throttling states)
-<4>ACPI Exception (processor_core-0790): AE_NOT_FOUND, Processor Device is not present [20070126]
-<4>ACPI Exception (processor_core-0790): AE_NOT_FOUND, Processor Device is not present [20070126]
+<4>thermal: Unknown symbol acpi_processor_set_thermal_limit
<7>libata version 2.21 loaded.
<7>ahci 0000:00:1f.2: version 2.3
<6>ACPI: PCI Interrupt 0000:00:1f.2[A] -> GSI 19 (level, low) -> IRQ 19
@@ -431,12 +437,12 @@
<6>scsi3 : ahci
<6>scsi4 : ahci
<6>scsi5 : ahci
-<6>ata1: SATA max UDMA/133 cmd 0xf887c100 ctl 0x00000000 bmdma 0x00000000 irq 218
-<6>ata2: SATA max UDMA/133 cmd 0xf887c180 ctl 0x00000000 bmdma 0x00000000 irq 218
-<6>ata3: SATA max UDMA/133 cmd 0xf887c200 ctl 0x00000000 bmdma 0x00000000 irq 218
-<6>ata4: SATA max UDMA/133 cmd 0xf887c280 ctl 0x00000000 bmdma 0x00000000 irq 218
-<6>ata5: SATA max UDMA/133 cmd 0xf887c300 ctl 0x00000000 bmdma 0x00000000 irq 218
-<6>ata6: SATA max UDMA/133 cmd 0xf887c380 ctl 0x00000000 bmdma 0x00000000 irq 218
+<6>ata1: SATA max UDMA/133 cmd 0xf883c100 ctl 0x00000000 bmdma 0x00000000 irq 218
+<6>ata2: SATA max UDMA/133 cmd 0xf883c180 ctl 0x00000000 bmdma 0x00000000 irq 218
+<6>ata3: SATA max UDMA/133 cmd 0xf883c200 ctl 0x00000000 bmdma 0x00000000 irq 218
+<6>ata4: SATA max UDMA/133 cmd 0xf883c280 ctl 0x00000000 bmdma 0x00000000 irq 218
+<6>ata5: SATA max UDMA/133 cmd 0xf883c300 ctl 0x00000000 bmdma 0x00000000 irq 218
+<6>ata6: SATA max UDMA/133 cmd 0xf883c380 ctl 0x00000000 bmdma 0x00000000 irq 218
<6>ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
<6>ata1.00: ATA-7: ST380811AS, 3.AAE, max UDMA/133
<6>ata1.00: 156301488 sectors, multi 0: LBA48 NCQ (depth 31/32)
@@ -465,12 +471,12 @@
<5>sd 1:0:0:0: [sdb] Write Protect is off
<7>sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
<5>sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
+<5>sd 0:0:0:0: Attached scsi generic sg0 type 0
<5>sd 1:0:0:0: [sdb] 156301488 512-byte hardware sectors (80026 MB)
<5>sd 1:0:0:0: [sdb] Write Protect is off
<7>sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
<5>sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
-<6> sdb:<5>sd 0:0:0:0: Attached scsi generic sg0 type 0
-<4> sdb1
+<6> sdb: sdb1
<5>sd 1:0:0:0: [sdb] Attached SCSI disk
<5>sd 1:0:0:0: Attached scsi generic sg1 type 0
<6>ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 17 (level, low) -> IRQ 16
@@ -517,94 +523,139 @@
<5>st 8:0:12:0: Attached scsi tape st0
<6>st 8:0:12:0: st0: try direct i/o: yes (alignment 512 B)
<6>Linux agpgart interface v0.102
+<6>rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0
+<4>rtc_cmos: probe of 00:03 failed with error -16
+<6>agpgart: suspend/resume problematic: resume with 3D/DRI active may lockup X.Org
+<4>on some chipset/BIOS combos (see DEBUG_AGP_PM in intel-agp.c)
<6>agpgart: Detected an Intel 965Q Chipset.
<6>agpgart: Unknown page table size, assuming 512KB
<6>agpgart: Detected 7676K stolen memory.
<6>agpgart: AGP aperture is 256M @ 0x40000000
-<6>rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0
-<4>rtc_cmos: probe of 00:03 failed with error -16
<6>ACPI: PCI Interrupt 0000:00:1f.3[B] -> GSI 21 (level, low) -> IRQ 22
<6>usbcore: registered new interface driver usbfs
<6>usbcore: registered new interface driver hub
<6>usbcore: registered new device driver usb
<6>ACPI: PCI Interrupt 0000:07:03.0[A] -> GSI 19 (level, low) -> IRQ 19
-<6>ACPI: PCI Interrupt 0000:00:1a.7[C] -> GSI 18 (level, low) -> IRQ 18
-<7>PCI: Setting latency timer of device 0000:00:1a.7 to 64
-<6>ehci_hcd 0000:00:1a.7: EHCI Host Controller
-<6>ehci_hcd 0000:00:1a.7: new USB bus registered, assigned bus number 1
-<5>firewire_ohci: Added fw-ohci device 0000:07:03.0, OHCI version 1.10
-<6>ehci_hcd 0000:00:1a.7: debug port 1
-<7>PCI: cache line size of 128 is not supported by device 0000:00:1a.7
-<6>ehci_hcd 0000:00:1a.7: irq 18, io mem 0x52c25c00
-<6>ehci_hcd 0000:00:1a.7: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
-<6>usb usb1: configuration #1 chosen from 1 choice
-<6>hub 1-0:1.0: USB hub found
-<6>hub 1-0:1.0: 4 ports detected
<6>USB Universal Host Controller Interface driver v3.0
-<6>ACPI: PCI Interrupt 0000:00:1d.7[A] -> GSI 23 (level, low) -> IRQ 23
-<7>PCI: Setting latency timer of device 0000:00:1d.7 to 64
-<6>ehci_hcd 0000:00:1d.7: EHCI Host Controller
-<6>ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 2
-<6>ehci_hcd 0000:00:1d.7: debug port 1
-<7>PCI: cache line size of 128 is not supported by device 0000:00:1d.7
-<6>ehci_hcd 0000:00:1d.7: irq 23, io mem 0x52c25800
-<6>ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
-<6>usb usb2: configuration #1 chosen from 1 choice
-<6>hub 2-0:1.0: USB hub found
-<6>hub 2-0:1.0: 6 ports detected
<6>ACPI: PCI Interrupt 0000:00:1a.0[A] -> GSI 16 (level, low) -> IRQ 17
<7>PCI: Setting latency timer of device 0000:00:1a.0 to 64
<6>uhci_hcd 0000:00:1a.0: UHCI Host Controller
-<6>uhci_hcd 0000:00:1a.0: new USB bus registered, assigned bus number 3
+<6>uhci_hcd 0000:00:1a.0: new USB bus registered, assigned bus number 1
<6>uhci_hcd 0000:00:1a.0: irq 17, io base 0x000030c0
-<6>usb usb3: configuration #1 chosen from 1 choice
-<6>hub 3-0:1.0: USB hub found
-<6>hub 3-0:1.0: 2 ports detected
+<6>usb usb1: configuration #1 chosen from 1 choice
+<6>hub 1-0:1.0: USB hub found
+<6>hub 1-0:1.0: 2 ports detected
+<5>firewire_ohci: Added fw-ohci device 0000:07:03.0, OHCI version 1.10
+<6>usb usb1: new device found, idVendor=0000, idProduct=0000
+<6>usb usb1: new device strings: Mfr=3, Product=2, SerialNumber=1
+<6>usb usb1: Product: UHCI Host Controller
+<6>usb usb1: Manufacturer: Linux 2.6.23-rc3-mm1-testing uhci_hcd
+<6>usb usb1: SerialNumber: 0000:00:1a.0
<6>ACPI: PCI Interrupt 0000:00:1a.1[B] -> GSI 21 (level, low) -> IRQ 22
<7>PCI: Setting latency timer of device 0000:00:1a.1 to 64
<6>uhci_hcd 0000:00:1a.1: UHCI Host Controller
-<6>uhci_hcd 0000:00:1a.1: new USB bus registered, assigned bus number 4
+<6>uhci_hcd 0000:00:1a.1: new USB bus registered, assigned bus number 2
<6>uhci_hcd 0000:00:1a.1: irq 22, io base 0x000030a0
-<6>usb usb4: configuration #1 chosen from 1 choice
-<6>hub 4-0:1.0: USB hub found
-<6>hub 4-0:1.0: 2 ports detected
-<5>firewire_core: created new fw device fw0 (0 config rom retries, S400)
+<6>usb usb2: configuration #1 chosen from 1 choice
+<6>hub 2-0:1.0: USB hub found
+<6>hub 2-0:1.0: 2 ports detected
+<6>usb usb2: new device found, idVendor=0000, idProduct=0000
+<6>usb usb2: new device strings: Mfr=3, Product=2, SerialNumber=1
+<6>usb usb2: Product: UHCI Host Controller
+<6>usb usb2: Manufacturer: Linux 2.6.23-rc3-mm1-testing uhci_hcd
+<6>usb usb2: SerialNumber: 0000:00:1a.1
+<6>ACPI: PCI Interrupt 0000:00:1a.7[C] -> GSI 18 (level, low) -> IRQ 18
+<7>PCI: Setting latency timer of device 0000:00:1a.7 to 64
+<6>ehci_hcd 0000:00:1a.7: EHCI Host Controller
+<6>ehci_hcd 0000:00:1a.7: new USB bus registered, assigned bus number 3
+<6>ehci_hcd 0000:00:1a.7: debug port 1
+<7>PCI: cache line size of 128 is not supported by device 0000:00:1a.7
+<6>ehci_hcd 0000:00:1a.7: irq 18, io mem 0x52c25c00
+<6>ehci_hcd 0000:00:1a.7: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
+<6>usb usb3: configuration #1 chosen from 1 choice
+<6>hub 3-0:1.0: USB hub found
+<6>hub 3-0:1.0: 4 ports detected
+<6>usb usb3: new device found, idVendor=0000, idProduct=0000
+<6>usb usb3: new device strings: Mfr=3, Product=2, SerialNumber=1
+<6>usb usb3: Product: EHCI Host Controller
+<6>usb usb3: Manufacturer: Linux 2.6.23-rc3-mm1-testing ehci_hcd
+<6>usb usb3: SerialNumber: 0000:00:1a.7
<6>ACPI: PCI Interrupt 0000:00:1d.0[A] -> GSI 23 (level, low) -> IRQ 23
<7>PCI: Setting latency timer of device 0000:00:1d.0 to 64
<6>uhci_hcd 0000:00:1d.0: UHCI Host Controller
-<6>uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 5
+<6>uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 4
<6>uhci_hcd 0000:00:1d.0: irq 23, io base 0x00003080
-<6>usb usb5: configuration #1 chosen from 1 choice
-<6>hub 5-0:1.0: USB hub found
-<6>hub 5-0:1.0: 2 ports detected
-<6>ACPI: PCI Interrupt 0000:00:1b.0[A] -> GSI 22 (level, low) -> IRQ 21
-<7>PCI: Setting latency timer of device 0000:00:1b.0 to 64
-<7>ALSA sound/pci/hda/hda_codec.c:2331: autoconfig: line_outs=1 (0xd/0x0/0x0/0x0/0x0)
-<7>ALSA sound/pci/hda/hda_codec.c:2335: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
-<7>ALSA sound/pci/hda/hda_codec.c:2339: hp_outs=1 (0xa/0x0/0x0/0x0/0x0)
-<7>ALSA sound/pci/hda/hda_codec.c:2347: inputs: mic=0xe, fmic=0xb, line=0xf, fline=0x0, cd=0x0, aux=0x0
-<7>ALSA sound/pci/hda/patch_sigmatel.c:1297: dac_nids=3 (0x2/0x5/0x4/0x0/0x0)
+<6>usb usb4: configuration #1 chosen from 1 choice
+<6>hub 4-0:1.0: USB hub found
+<6>hub 4-0:1.0: 2 ports detected
+<5>firewire_core: created new fw device fw0 (0 config rom retries, S400)
+<6>usb usb4: new device found, idVendor=0000, idProduct=0000
+<6>usb usb4: new device strings: Mfr=3, Product=2, SerialNumber=1
+<6>usb usb4: Product: UHCI Host Controller
+<6>usb usb4: Manufacturer: Linux 2.6.23-rc3-mm1-testing uhci_hcd
+<6>usb usb4: SerialNumber: 0000:00:1d.0
<6>ACPI: PCI Interrupt 0000:00:1d.1[B] -> GSI 19 (level, low) -> IRQ 19
<7>PCI: Setting latency timer of device 0000:00:1d.1 to 64
<6>uhci_hcd 0000:00:1d.1: UHCI Host Controller
-<6>uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 6
+<6>uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 5
<6>uhci_hcd 0000:00:1d.1: irq 19, io base 0x00003060
-<6>usb usb6: configuration #1 chosen from 1 choice
-<6>hub 6-0:1.0: USB hub found
-<6>hub 6-0:1.0: 2 ports detected
+<6>usb usb5: configuration #1 chosen from 1 choice
+<6>hub 5-0:1.0: USB hub found
+<6>hub 5-0:1.0: 2 ports detected
+<6>usb usb5: new device found, idVendor=0000, idProduct=0000
+<6>usb usb5: new device strings: Mfr=3, Product=2, SerialNumber=1
+<6>usb usb5: Product: UHCI Host Controller
+<6>usb usb5: Manufacturer: Linux 2.6.23-rc3-mm1-testing uhci_hcd
+<6>usb usb5: SerialNumber: 0000:00:1d.1
<6>ACPI: PCI Interrupt 0000:00:1d.2[C] -> GSI 18 (level, low) -> IRQ 18
<7>PCI: Setting latency timer of device 0000:00:1d.2 to 64
<6>uhci_hcd 0000:00:1d.2: UHCI Host Controller
-<6>uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 7
+<6>uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 6
<6>uhci_hcd 0000:00:1d.2: irq 18, io base 0x00003040
+<6>usb usb6: configuration #1 chosen from 1 choice
+<6>hub 6-0:1.0: USB hub found
+<6>hub 6-0:1.0: 2 ports detected
+<6>usb usb6: new device found, idVendor=0000, idProduct=0000
+<6>usb usb6: new device strings: Mfr=3, Product=2, SerialNumber=1
+<6>usb usb6: Product: UHCI Host Controller
+<6>usb usb6: Manufacturer: Linux 2.6.23-rc3-mm1-testing uhci_hcd
+<6>usb usb6: SerialNumber: 0000:00:1d.2
+<6>ACPI: PCI Interrupt 0000:00:1d.7[A] -> GSI 23 (level, low) -> IRQ 23
+<7>PCI: Setting latency timer of device 0000:00:1d.7 to 64
+<6>ehci_hcd 0000:00:1d.7: EHCI Host Controller
+<6>ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 7
+<6>ehci_hcd 0000:00:1d.7: debug port 1
+<7>PCI: cache line size of 128 is not supported by device 0000:00:1d.7
+<6>ehci_hcd 0000:00:1d.7: irq 23, io mem 0x52c25800
+<6>ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
+<6>usb 5-2: new low speed USB device using uhci_hcd and address 2
<6>usb usb7: configuration #1 chosen from 1 choice
<6>hub 7-0:1.0: USB hub found
-<6>hub 7-0:1.0: 2 ports detected
-<6>usb 6-2: new low speed USB device using uhci_hcd and address 2
-<6>usb 6-2: configuration #1 chosen from 1 choice
+<6>hub 7-0:1.0: 6 ports detected
+<6>usb usb7: new device found, idVendor=0000, idProduct=0000
+<6>usb usb7: new device strings: Mfr=3, Product=2, SerialNumber=1
+<6>usb usb7: Product: EHCI Host Controller
+<6>usb usb7: Manufacturer: Linux 2.6.23-rc3-mm1-testing ehci_hcd
+<6>usb usb7: SerialNumber: 0000:00:1d.7
+<6>ACPI: PCI Interrupt 0000:00:1b.0[A] -> GSI 22 (level, low) -> IRQ 21
+<7>PCI: Setting latency timer of device 0000:00:1b.0 to 64
+<7>ALSA sound/pci/hda/hda_codec.c:2735: autoconfig: line_outs=1 (0xd/0x0/0x0/0x0/0x0)
+<7>ALSA sound/pci/hda/hda_codec.c:2739: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
+<7>ALSA sound/pci/hda/hda_codec.c:2743: hp_outs=1 (0xa/0x0/0x0/0x0/0x0)
+<7>ALSA sound/pci/hda/hda_codec.c:2751: inputs: mic=0xe, fmic=0xb, line=0xf, fline=0x0, cd=0x0, aux=0x0
+<7>ALSA sound/pci/hda/patch_sigmatel.c:1344: dac_nids=3 (0x2/0x5/0x4/0x0/0x0)
<6>Adding 2097144k swap on /dev/system/swap. Priority:-1 extents:1 across:2097144k
-<6>usb 7-1: new full speed USB device using uhci_hcd and address 2
-<6>usb 7-1: configuration #1 chosen from 1 choice
+<6>usb 5-2: new low speed USB device using uhci_hcd and address 3
+<6>usb 5-2: configuration #1 chosen from 1 choice
+<6>usb 5-2: new device found, idVendor=413c, idProduct=3010
+<6>usb 5-2: new device strings: Mfr=0, Product=0, SerialNumber=0
+<6>usb 6-1: new full speed USB device using uhci_hcd and address 2
+<6>usb 6-1: configuration #1 chosen from 1 choice
+<6>usb 6-1: new device found, idVendor=0681, idProduct=0002
+<6>usb 6-1: new device strings: Mfr=1, Product=2, SerialNumber=3
+<6>usb 6-1: Product: Sinus 45 AB isdn
+<6>usb 6-1: Manufacturer: Siemens AG
+<6>usb 6-1: SerialNumber: 002F970BE0
<6>usbcore: registered new interface driver hiddev
<6>input: HID 413c:3010 as /class/input/input2
<6>input: USB HID v1.00 Mouse [HID 413c:3010] on usb-0000:00:1d.1-2
@@ -617,9 +668,10 @@
<7>gigaset: Register driver capabilities to LL
<7>bas_gigaset: gigaset_probe: Check if device matches .. (Vendor: 0x681, Product: 0x2)
<7>bas_gigaset: gigaset_probe: wrong alternate setting 0 - trying to switch
-<6>usb 7-1: gigaset_probe: Device matched (Vendor: 0x681, Product: 0x2)
+<6>usb 6-1: gigaset_probe: Device matched (Vendor: 0x681, Product: 0x2)
<7>bas_gigaset: -------> 0x34 (0)
<7>gigaset: scheduling START
+<7>bas_gigaset: <-------3: 0x11 (0 [0x00 0x00])
<7>gigaset: connection state 0, event -110
<7>gigaset: unblocking all channels
<7>gigaset: blocking all channels
@@ -630,7 +682,6 @@
<7>gigaset: connection state 0, event -27
<6>usbcore: registered new interface driver bas_gigaset
<6>bas_gigaset: Tilman Schmidt <[email protected]>, Hansjoerg Lipp <[email protected]>, Stefan Eilers
-<7>bas_gigaset: <-------3: 0x11 (0 [0x00 0x00])
<6>bas_gigaset: USB Driver for Gigaset 307x
<7>bas_gigaset: <-------3: 0x11 (0 [0x00 0x00])
<7>gigaset: scheduling timeout


Attachments:
bootmsg.diff (24.40 kB)
signature.asc (253.00 B)
OpenPGP digital signature
Download all attachments

2007-08-25 03:31:22

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Sat, 25 Aug 2007 02:47:59 +0200 Tilman Schmidt <[email protected]> wrote:

> Am 25.08.2007 02:07 schrieb Andrew Morton:
> > On Sat, 25 Aug 2007 01:27:25 +0200
> > Tilman Schmidt <[email protected]> wrote:
> >
> >> Am 22.08.2007 11:06 schrieb Andrew Morton:
> >>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>
> >> After applying Matthew Wilcox' patch to include/linux/isa.h
> >
> > which patch is that?
>
> The one allowing drivers/scsi/advansys.c to compile with CONFIG_ISA=n:
>
> Date: Wed, 22 Aug 2007 10:28:02 -0600
> From: Matthew Wilcox <[email protected]>
> Subject: Re: drivers/scsi/advansys.c - ld error ( Re: 2.6.23-rc3-mm1 )
> Message-ID: <[email protected]>
>
> When CONFIG_ISA is disabled, the isa_driver support will not be compiled
> in. Define stubs so that we don't get link-time errors.

oh, OK, I have that.

> >> this compiles
> >> and boots on my Intel/openSUSE 10.2 test machine but throws out the
> >> following messages I don't remember ever seeing with other kernels:
> >>
> >> - on console early during boot, also in SuSE's /var/log/boot.msg:
> >>
> >> your system time is not correct:
> >> Wed Jul 13 13:15:31 UTC 1910
> >> setting system time to:
> >> Tue Jul 24 00:00:00 UTC 2007
> >
> > What architecture?
>
> i386. The machine is a Pentium D 940 which would be x86_64 capable,
> but I'm still running 32 bit kernels on it.

OK.

> > if x86_64 then perhaps something went wrong with the old x86_64 dynticks
> > leftovers which were in rc3-mm1. I've just merged a shiny fresh new series
> > so perhaps things there got fixed. Please retest next -mm.
>
> Will do that anyway.

It looks like you'll need to :(

> > Perhaps it would be helpful if you could do a
> >
> > diff -u dmesg-2.6.23-rc3 dmesg-2.6.26-rc3-mm1
>
> I hope the attached helps. I created it by taking /var/log/boot.msg
> of the two systems, removing everything after "Kernel logging stopped",
> editing out the printk timestamps and then running diff -u on them,
> so it should be more or less the dmesg diff. I did not edit out any
> of the differences because I'm lazy. (And also because I wasn't so sure
> what would or wouldn't be interesting for you.)
>

--- /tmp/bootmsg-2.6.23-rc3 2007-08-25 02:25:54.000000000 +0200
> +++ /tmp/bootmsg-2.6.23-rc3-mm1 2007-08-25 02:26:08.000000000 +0200
> @@ -1,10 +1,10 @@
>
> ...
>
> <6>..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1
> -<6>checking TSC synchronization [CPU#0 -> CPU#1]: passed.
> +<6>checking TSC synchronization [CPU#0 -> CPU#1]:
> +<4>Measured 32 cycles TSC warp between CPUs, turning off TSC clock.
> +<4>Marking TSC unstable due to: check_tsc_sync_source failed.

looky here.

> <6>Brought up 2 CPUs
> <6>Booting paravirtualized kernel on bare hardware
> <6>NET: Registered protocol family 16
> <6>ACPI: bus type pci registered
> -<3>PCI: BIOS Bug: MCFG area at f0000000 is not E820-reserved
> -<3>PCI: Not using MMCONFIG.

hm, I wonder if that's related.

> <6>PCI: Using configuration type 1
> <4>Setting up standard PCI resources
> <7>ACPI: EC: Look up EC in DSDT
> <6>ACPI: Interpreter enabled
> <6>ACPI: (supports S0 S3)
> <6>ACPI: Using IOAPIC for interrupt routing
> +<5>PCI: MCFG configuration 0: base 4026531840 segment 0 buses 0 - 127
> +<5>PCI: MCFG area at f0000000 reserved in ACPI motherboard resources
> +<6>PCI: Using MMCONFIG

we're using mmconfig

> <6>ACPI: PCI Root Bridge [PCI0] (0000:00)
> +<7>PCI: Probing PCI hardware (bus 00)
> <4>PCI quirk: region 0400-047f claimed by ICH6 ACPI/GPIO/TCO
> <4>PCI quirk: region 0500-053f claimed by ICH6 GPIO
> <6>PCI: Transparent bridge - 0000:00:1e.0
> @@ -285,7 +291,9 @@
> <6>NetLabel: protocols = UNLABELED CIPSOv4
> <6>NetLabel: unlabeled traffic allowed by default
> <4>ACPI: RTC can wake from S4
> -<6>Time: tsc clocksource has been installed.
> +<6>Time: hpet clocksource has been installed.
> +<6>Switched to high resolution mode on CPU 0
> +<6>Switched to high resolution mode on CPU 1

No longer using tsc, using hpet instead. Slower.

> -<7>hpet_resources: 0xfed00000 is busy
> +<4>hpet_acpi_add: no address or irqs in _CRS

oh boy

> +<4>thermal: Unknown symbol acpi_processor_set_thermal_limit

I think there are acpi fixes in Len's latest tree which will fix this.

> <6>Linux agpgart interface v0.102
> +<6>rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0
> +<4>rtc_cmos: probe of 00:03 failed with error -16
> +<6>agpgart: suspend/resume problematic: resume with 3D/DRI active may lockup X.Org
> +<4>on some chipset/BIOS combos (see DEBUG_AGP_PM in intel-agp.c)
> <6>agpgart: Detected an Intel 965Q Chipset.
> <6>agpgart: Unknown page table size, assuming 512KB
> <6>agpgart: Detected 7676K stolen memory.
> <6>agpgart: AGP aperture is 256M @ 0x40000000
> -<6>rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0
> -<4>rtc_cmos: probe of 00:03 failed with error -16

I wonder if that was supposed to happen. It's also happening in 2.6.23-rc3
base.


I don't see anything there which would cause you to lose the clock setting,
but there are obviously a few things going wrong in the time-management
area here. Please explicity retest this stuff as the code evolves and kepp
us informed of the problems.

Thanks.

2007-08-25 04:29:50

by Dave Jones

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Fri, Aug 24, 2007 at 08:30:00PM -0700, Andrew Morton wrote:

> > <6>Linux agpgart interface v0.102
> > +<6>rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0
> > +<4>rtc_cmos: probe of 00:03 failed with error -16
> > +<6>agpgart: suspend/resume problematic: resume with 3D/DRI active may lockup X.Org
> > +<4>on some chipset/BIOS combos (see DEBUG_AGP_PM in intel-agp.c)
> > <6>agpgart: Detected an Intel 965Q Chipset.
> > <6>agpgart: Unknown page table size, assuming 512KB
> > <6>agpgart: Detected 7676K stolen memory.
> > <6>agpgart: AGP aperture is 256M @ 0x40000000
> > -<6>rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0
> > -<4>rtc_cmos: probe of 00:03 failed with error -16
>
> I wonder if that was supposed to happen. It's also happening in 2.6.23-rc3
> base.

EBUSY. I've seen this happen when you have both CONFIG_RTC and
CONFIG_RTC_DRV_CMOS set.

Dave

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

2007-08-25 08:05:14

by Paul Rolland

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

Hello,

On Sat, 25 Aug 2007 00:28:09 -0400
Dave Jones <[email protected]> wrote:

> On Fri, Aug 24, 2007 at 08:30:00PM -0700, Andrew Morton wrote:
>
> > > <6>Linux agpgart interface v0.102
> > > +<6>rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0
> > > +<4>rtc_cmos: probe of 00:03 failed with error -16
> > > +<6>agpgart: suspend/resume problematic: resume with 3D/DRI active
> > > may lockup X.Org +<4>on some chipset/BIOS combos (see DEBUG_AGP_PM
> > > in intel-agp.c) <6>agpgart: Detected an Intel 965Q Chipset.
> > > <6>agpgart: Unknown page table size, assuming 512KB
> > > <6>agpgart: Detected 7676K stolen memory.
> > > <6>agpgart: AGP aperture is 256M @ 0x40000000
> > > -<6>rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0
> > > -<4>rtc_cmos: probe of 00:03 failed with error -16
> >
> > I wonder if that was supposed to happen. It's also happening in
> > 2.6.23-rc3 base.
>
> EBUSY. I've seen this happen when you have both CONFIG_RTC and
> CONFIG_RTC_DRV_CMOS set.

This one is becoming quite worth an entry in a FAQ, it pops up one every
month ;)
There was a discussion about preventing both being set at the same time
when configuring, but I don't remember how it ends...

Paul


2007-08-25 08:29:51

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: [PATCH 1/2] sysctl: Properly register the irda binary sysctl numbers.

On Thu, 23 Aug 2007 21:53:53 MDT, Eric W. Biederman said:
>
> Grumble. These numbers should have been in sysctl.h from the
> beginning if we ever expected anyone to use them. Oh well put
> them there now so we can find them and make maintenance easier.
>
> Signed-off-by: Eric W. Biederman <[email protected]>

Applied both patches, and now all I get from irda at boot time now is this:

[ 292.062000] irda_init()
[ 292.063000] NET: Registered protocol family 23
[ 292.069000] IrCOMM protocol (Dag Brattli)
[ 292.221000] PPP generic driver version 2.4.2

in other words, business as usual. Thanks.

Feel free to stick this on both patches:

Tested-By: Valdis Kletnieks <[email protected]>


Attachments:
(No filename) (226.00 B)

2007-08-25 12:08:24

by Rusty Russell

[permalink] [raw]
Subject: Re: [-mm patch] enforce noreplace-smp in alternative_instructions()

On Fri, 2007-08-24 at 10:22 +0200, Frederik Deweerdt wrote:
> [Added Gerd Hoffman and Rusty Russel to cc]
> On Thu, Aug 23, 2007 at 11:46:52PM -0700, Jeremy Fitzhardinge wrote:
> > Frederik Deweerdt wrote:
> > > That means that even when you specify noreplace_smp, some replacing
> > > takes place anyway. One of the consequences, besides noreplace_smp not
> > > working as expected, is that lguest crashes when you feed it an SMP kernel
> > > (I suspect that you can not replace alternatives for smp _and_ paravirt).
> > >
> >
> > No, that should be fine. Why does lguest crash?
> It dies with:
> [ 0.131000] SMP alternatives: switching to UP code
> lguest: bad stack page 0xc057a000

How odd! This means that the guest set the kernel to a stack which it
hadn't mapped writable (or perhaps not mapped at all). I always run SMP
kernels, and that seems a very strange side effect of a patching
problem...

Nonetheless, I did have a previous problem with a bug in the patching
code which didn't show up native and did show up under lguest.

Can you send your config? Do you need noreplace-smp even on 2.6.23-rc3,
or only 2.6.23-rc3-mm1?

Thanks,
Rusty.


2007-08-25 12:28:00

by Frederik Deweerdt

[permalink] [raw]
Subject: Re: [-mm patch] enforce noreplace-smp in alternative_instructions()

On Sat, Aug 25, 2007 at 10:07:29PM +1000, Rusty Russell wrote:
> On Fri, 2007-08-24 at 10:22 +0200, Frederik Deweerdt wrote:
> > [Added Gerd Hoffman and Rusty Russel to cc]
> > On Thu, Aug 23, 2007 at 11:46:52PM -0700, Jeremy Fitzhardinge wrote:
> > > Frederik Deweerdt wrote:
> > > > That means that even when you specify noreplace_smp, some replacing
> > > > takes place anyway. One of the consequences, besides noreplace_smp not
> > > > working as expected, is that lguest crashes when you feed it an SMP kernel
> > > > (I suspect that you can not replace alternatives for smp _and_ paravirt).
> > > >
> > >
> > > No, that should be fine. Why does lguest crash?
> > It dies with:
> > [ 0.131000] SMP alternatives: switching to UP code
> > lguest: bad stack page 0xc057a000
Hello Rusty,
>
> How odd! This means that the guest set the kernel to a stack which it
> hadn't mapped writable (or perhaps not mapped at all). I always run SMP

I had time to investigate this a little further, it appears that in fact
0xc057a000 is the beginning of the __smp_locks section.

The crash responsible function call is in alternative_instructions():
free_init_pages("SMP alternatives",
(unsigned long)__smp_locks,
(unsigned long)__smp_locks_end);

Ie, if I comment this out, I can boot lguest without passing
noreplace_smp.

BTW, to make things clear: the patch I sent does _not_ fix the
lguest/alternatives problem. It just makes noreplace_smp functional
again and hence allows working around the lguest/alternatives bug.

> kernels, and that seems a very strange side effect of a patching
> problem...
>
> Nonetheless, I did have a previous problem with a bug in the patching
> code which didn't show up native and did show up under lguest.
>
> Can you send your config?
Here it is:
http://fdeweerdt.free.fr/lguest_smp/dot_config

> Do you need noreplace-smp even on 2.6.23-rc3,
> or only 2.6.23-rc3-mm1?
I'll try ASAP.

Thanks,
Frederik

2007-08-25 13:00:24

by Eric W. Biederman

[permalink] [raw]
Subject: Re: [PATCH 1/2] sysctl: Properly register the irda binary sysctl numbers.

[email protected] writes:

> On Thu, 23 Aug 2007 21:53:53 MDT, Eric W. Biederman said:
>>
>> Grumble. These numbers should have been in sysctl.h from the
>> beginning if we ever expected anyone to use them. Oh well put
>> them there now so we can find them and make maintenance easier.
>>
>> Signed-off-by: Eric W. Biederman <[email protected]>
>
> Applied both patches, and now all I get from irda at boot time now is this:
>
> [ 292.062000] irda_init()
> [ 292.063000] NET: Registered protocol family 23
> [ 292.069000] IrCOMM protocol (Dag Brattli)
> [ 292.221000] PPP generic driver version 2.4.2
>
> in other words, business as usual. Thanks.
>
> Feel free to stick this on both patches:
>
> Tested-By: Valdis Kletnieks <[email protected]>

Thanks.

It's good to have confirmation that my sysctl_check routine
didn't find something else wrong.

Eric

2007-08-25 14:08:12

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: [PATCH 1/2] sysctl: Properly register the irda binary sysctl numbers.

On Sat, 25 Aug 2007 06:57:17 MDT, Eric W. Biederman said:

> It's good to have confirmation that my sysctl_check routine
> didn't find something else wrong.

If I understand the code, anything it whinges about is either an outright bug
or it's a round of ammo already chambered. ;)

As far as "something else wrong", I'm still seeing these in -rc3-mm1, but
they've been reported before against -rc2-mm2, I think:

[ 0.628000] sysctl table check failed: /kernel/ostype .1.1 Missing strategy
[ 0.628000] sysctl table check failed: /kernel/osrelease .1.2 Missing strategy
[ 0.628000] sysctl table check failed: /kernel/version .1.4 Missing strategy
[ 0.628000] sysctl table check failed: /kernel/hostname .1.7 Missing strategy
[ 0.628000] sysctl table check failed: /kernel/domainname .1.8 Missing strategy
[ 0.628000] sysctl table check failed: /kernel/shmmax .1.34 Missing strategy
[ 0.628000] sysctl table check failed: /kernel/shmall .1.41 Missing strategy
[ 0.628000] sysctl table check failed: /kernel/shmmni .1.45 Missing strategy
[ 0.628000] sysctl table check failed: /kernel/msgmax .1.35 Missing strategy
[ 0.628000] sysctl table check failed: /kernel/msgmni .1.42 Missing strategy
[ 0.628000] sysctl table check failed: /kernel/msgmnb .1.36 Missing strategy
[ 0.628000] sysctl table check failed: /kernel/sem .1.43 Missing strategy

And this isn't on an allyesconfig or allmodconfig. There may well be sysctl
code I didn't hit - my /lib/modules/2.6.23-rc3-mm1 is only about 10M, and
the Fedora kernels are weighing in at about 75M of /lib/modules a pop.


Attachments:
(No filename) (226.00 B)

2007-08-25 18:02:54

by Eric W. Biederman

[permalink] [raw]
Subject: Re: [PATCH 1/2] sysctl: Properly register the irda binary sysctl numbers.

[email protected] writes:

> On Sat, 25 Aug 2007 06:57:17 MDT, Eric W. Biederman said:
>
>> It's good to have confirmation that my sysctl_check routine
>> didn't find something else wrong.
>
> If I understand the code, anything it whinges about is either an outright bug
> or it's a round of ammo already chambered. ;)

Pretty much. The heuristics aren't prefect but they are pretty good.

> As far as "something else wrong", I'm still seeing these in -rc3-mm1, but
> they've been reported before against -rc2-mm2, I think:

Interesting. No I haven't seen this one. This appears to be one of
those silly little corner cases I failed to account for in my checks.
It looks like you don't have CONFIG_SYSCTL_SYSCALL defined, and it
appears utsname_syscall and ipcdata_syscall both become NULL pointers
if they aren't needed. So the complaint is a false positive.

> [ 0.628000] sysctl table check failed: /kernel/ostype .1.1 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/osrelease .1.2 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/version .1.4 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/hostname .1.7 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/domainname .1.8 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/shmmax .1.34 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/shmall .1.41 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/shmmni .1.45 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/msgmax .1.35 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/msgmni .1.42 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/msgmnb .1.36 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/sem .1.43 Missing strategy
>
> And this isn't on an allyesconfig or allmodconfig. There may well be sysctl
> code I didn't hit - my /lib/modules/2.6.23-rc3-mm1 is only about 10M, and
> the Fedora kernels are weighing in at about 75M of /lib/modules a
> pop.

Yes. Thank you. I figure as long as we are reasonably close people
we should catch most if not all things before this is merged into
Linus's tree.

Patch in a moment.

Eric

2007-08-25 18:03:43

by Eric W. Biederman

[permalink] [raw]
Subject: [PATCH] sysctl: Update sysctl_check to handle compiled out code.


Currently sysctl_check_table will complain if a strategy routine
is missing when we have sys_sysctl compiled out, or a proc_handler
is missing when we have procfs compiled out. At least some
of the custom handlers actually expand to NULL when this is the
case so the warning is actually a problem.

[email protected] writes:
> As far as "something else wrong", I'm still seeing these in -rc3-mm1
>
> [ 0.628000] sysctl table check failed: /kernel/ostype .1.1 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/osrelease .1.2 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/version .1.4 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/hostname .1.7 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/domainname .1.8 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/shmmax .1.34 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/shmall .1.41 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/shmmni .1.45 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/msgmax .1.35 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/msgmni .1.42 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/msgmnb .1.36 Missing strategy
> [ 0.628000] sysctl table check failed: /kernel/sem .1.43 Missing strategy


So don't worry about missing strategy routines, or missing proc_handler
routines when they will never be called.

Signed-off-by: Eric W. Biederman <[email protected]>
---
kernel/sysctl_check.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/kernel/sysctl_check.c b/kernel/sysctl_check.c
index aa5b6f6..10dd744 100644
--- a/kernel/sysctl_check.c
+++ b/kernel/sysctl_check.c
@@ -1552,14 +1552,18 @@ int sysctl_check_table(struct ctl_table *table)
set_fail(&fail, table, "No max");
}
}
+#ifdef CONFIG_SYSCTL_SYSCALL
if (table->ctl_name && !table->strategy)
set_fail(&fail, table, "Missing strategy");
+#endif
#if 0
if (!table->ctl_name && table->strategy)
set_fail(&fail, table, "Strategy without ctl_name");
#endif
+#ifdef CONFIG_PROC_FS
if (table->procname && !table->proc_handler)
set_fail(&fail, table, "No proc_handler");
+#endif
#if 0
if (!table->procname && table->proc_handler)
set_fail(&fail, table, "proc_handler without procname");
--
1.5.3.rc6.17.g1911

2007-08-25 21:18:38

by Frederik Deweerdt

[permalink] [raw]
Subject: Re: [-mm patch] enforce noreplace-smp in alternative_instructions()

On Sat, Aug 25, 2007 at 02:23:24PM +0200, Frederik Deweerdt wrote:
> On Sat, Aug 25, 2007 at 10:07:29PM +1000, Rusty Russell wrote:
> > Do you need noreplace-smp even on 2.6.23-rc3,
> > or only 2.6.23-rc3-mm1?
> I'll try ASAP.
>
Ok, tested: I need noreplace-smp + patch to make it work on mainline too.

Regards,
Frederik

2007-08-25 22:39:43

by Tilman Schmidt

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

Am 25.08.2007 02:21 schrieb john stultz:

>> Tilman Schmidt <[email protected]> wrote:

>>> - on console early during boot, also in SuSE's /var/log/boot.msg:
>>>
>>> your system time is not correct:
>>> Wed Jul 13 13:15:31 UTC 1910
>>> setting system time to:
>>> Tue Jul 24 00:00:00 UTC 2007
>
> Hrmm. I'm not super familiar w/ SuSE's init scripts, but I'm guessing
> that's the ntpdate call.

Nope. The ntpdate call comes much later, and finally sets the system clock
correctly so that there are no lasting effects of all this.

> And "Tuesday Jul 24th"? Sounds about a month
> off, is this just stale info?

I have no idea where that might come from.

>>> /dev/system/root: Superblock last mount time is in the future. FIXED.
>>> /dev/system/root: Superblock last write time is in the future. FIXED.
>
> Does this show up before or after the above date stuff?

After the "your system time is not correct" messages, and before the
regular "Try to get initial date and time via NTP" message accompanying
the ntpdate call.

> Does the issue go away using an older kernel (I want to eliminate easy
> stuff like CMOS batteries giving up)?

It does. Booting 2.6.23-rc3 after that, the system comes up with none
of these messages.

> Also you're not using Linus' CMOS corrupting suspend/resume debugging
> trick, right (I'm forgetting the CONFIG name).

PM_TRACE? No. The entire PM_DEBUG branch is turned off.

--
Tilman Schmidt E-Mail: [email protected]
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Unge?ffnet mindestens haltbar bis: (siehe R?ckseite)


Attachments:
signature.asc (253.00 B)
OpenPGP digital signature

2007-08-25 23:26:32

by Tilman Schmidt

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

Am 25.08.2007 02:38 schrieb Pallipadi, Venkatesh:
>>
>>>> FATAL: Error inserting processor (/lib/modules/2.6.23-rc3-mm1-testing/kernel/drivers/acpi/processor.ko): Input/output error
>>>> WARNING: Error inserting processor (/lib/modules/2.6.23-rc3-mm1-testing/kernel/drivers/acpi/processor.ko): Input/output error
>
> This is indeed related to CPUIDLE.
>
> Tilman: Can you configure CONFIG_CPU_IDLE in your config (under Power
> Management option) and double check that the frequency part works after
> that.

Strangely enough, I do not see that option in "make xconfig".
The "Power Management" subtree ends with "CPU Frequency scaling".
In "make menuconfig" the option is there, though.
After activating it, these two errors are indeed gone, and the
"thermal: Unknown symbol acpi_processor_set_thermal_limit" one
as well.

HTH
T.

--
Tilman Schmidt E-Mail: [email protected]
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Unge?ffnet mindestens haltbar bis: (siehe R?ckseite)


Attachments:
signature.asc (253.00 B)
OpenPGP digital signature

2007-08-25 23:36:55

by Tilman Schmidt

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

Am 25.08.2007 09:55 schrieb Paul Rolland:

> On Sat, 25 Aug 2007 00:28:09 -0400
> Dave Jones <[email protected]> wrote:
>
>> On Fri, Aug 24, 2007 at 08:30:00PM -0700, Andrew Morton wrote:
>>
>> > > -<6>rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0
>> > > -<4>rtc_cmos: probe of 00:03 failed with error -16
>> >
>> > I wonder if that was supposed to happen. It's also happening in
>> > 2.6.23-rc3 base.
>>
>> EBUSY. I've seen this happen when you have both CONFIG_RTC and
>> CONFIG_RTC_DRV_CMOS set.
>
> This one is becoming quite worth an entry in a FAQ, it pops up one every
> month ;)
> There was a discussion about preventing both being set at the same time
> when configuring, but I don't remember how it ends...

I must have missed that discussion. I have:
CONFIG_RTC=y
CONFIG_RTC_DRV_CMOS=m
because both of these options claim in their help texts that you
should select them if you want to access the PC RTC.

--
Tilman Schmidt E-Mail: [email protected]
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Unge?ffnet mindestens haltbar bis: (siehe R?ckseite)


Attachments:
signature.asc (253.00 B)
OpenPGP digital signature

2007-08-26 00:02:22

by Randy Dunlap

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Sun, 26 Aug 2007 01:26:21 +0200 Tilman Schmidt wrote:

> Am 25.08.2007 02:38 schrieb Pallipadi, Venkatesh:
> >>
> >>>> FATAL: Error inserting processor (/lib/modules/2.6.23-rc3-mm1-testing/kernel/drivers/acpi/processor.ko): Input/output error
> >>>> WARNING: Error inserting processor (/lib/modules/2.6.23-rc3-mm1-testing/kernel/drivers/acpi/processor.ko): Input/output error
> >
> > This is indeed related to CPUIDLE.
> >
> > Tilman: Can you configure CONFIG_CPU_IDLE in your config (under Power
> > Management option) and double check that the frequency part works after
> > that.
>
> Strangely enough, I do not see that option in "make xconfig".
> The "Power Management" subtree ends with "CPU Frequency scaling".
> In "make menuconfig" the option is there, though.

That sounds strange. Please share your .config file.

> After activating it, these two errors are indeed gone, and the
> "thermal: Unknown symbol acpi_processor_set_thermal_limit" one
> as well.



---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

2007-08-26 13:05:16

by Jiri Slaby

[permalink] [raw]
Subject: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]

Andrew Morton napsal(a):
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/

Hi,

I've found a regression against 2.6.23-rc2-mm2. X server shutdown freezes
(untainted) kernel hardly. Nothing on netconsole, X output follows:


X Window System Version 1.3.0
Release Date: 19 April 2007
X Protocol Version 11, Revision 0, Release 1.3
Build Operating System: Fedora Core 7 Red Hat, Inc.
Current Operating System: Linux bellona 2.6.23-rc3-mm1 #315 SMP Wed Aug 22
21:43:06 CEST 2007 i686
Build Date: 11 June 2007
Build ID: xorg-x11-server 1.3.0.0-9.fc7
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Module Loader present
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Sun Aug 26 14:22:43 2007
(==) Using config file: "/etc/X11/xorg.conf"
(WW) RADEON: No matching Device section for instance (BusID PCI:1:0:1) found
(**) RADEON(0): RADEONPreInit
(II) Module already built-in
(II) Module already built-in
(II) Module already built-in
(**) RADEON(0): RADEONScreenInit f0000000 0
(**) RADEON(0): Map: 0xf0000000, 0x04000000
(**) RADEON(0): RADEONSave
(**) RADEON(0): RADEONSaveMode(0x8240870)
(**) RADEON(0): Read: 0x0000000c 0x00030065 0x00000000
(**) RADEON(0): Read: rd=12, fd=101, pd=3
(**) RADEON(0): RADEONSaveMode returns 0x8240870
(**) RADEON(0): DRI New memory map param
(**) RADEON(0): RADEONInitMemoryMap() :
(**) RADEON(0): mem_size : 0x04000000
(**) RADEON(0): MC_FB_LOCATION : 0xf3fff000
(**) RADEON(0): MC_AGP_LOCATION : 0xffffffc0
(**) RADEON(0): RADEONModeInit()
1280x1024 108.00 1280 1328 1440 1688 1024 1025 1028 1066 (24,32) +H +V
1280x1024 108.00 1280 1328 1440 1688 1024 1025 1028 1066 (24,32) +H +V
(**) RADEON(0): Pitch = 10485920 bytes (virtualX = 1280, displayWidth = 1280)
(**) RADEON(0): dc=10800, of=21600, fd=96, pd=2
(**) RADEON(0): RADEONInit returns 0x8241220
(**) RADEON(0): RADEONRestoreMode()
(**) RADEON(0): RADEONRestoreMode(0x8241220)
(**) RADEON(0): RADEONRestoreMemMapRegisters() :
(**) RADEON(0): MC_FB_LOCATION : 0xf3fff000
(**) RADEON(0): MC_AGP_LOCATION : 0xffffffc0
(**) RADEON(0): Map Changed ! Applying ...
(**) RADEON(0): Map applied, resetting engine ...
(**) RADEON(0): Updating display base addresses...
(**) RADEON(0): Memory map updated.
(**) RADEON(0): Programming CRTC1, offset: 0x00000000
(**) RADEON(0): Wrote: 0x0000000c 0x00010060 0x00000000 (0x0000a400)
(**) RADEON(0): Wrote: rd=12, fd=96, pd=1
(**) RADEON(0): GRPH_BUFFER_CNTL from 20205c5c to 20125c5c
(**) RADEON(0): RADEONSaveScreen(0)
(**) RADEON(0): Setting up initial surfaces
(**) RADEON(0): Initializing fb layer
(**) RADEON(0): Setting up accel memmap
(**) RADEON(0): Initializing backing store
(**) RADEON(0): DRI Finishing init !
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): GRPH_BUFFER_CNTL from 20205c5c to 20125c5c
(**) RADEON(0): Setting up final surfaces
(**) RADEON(0): Initializing Acceleration
(**) RADEON(0): EngineInit (32/32)
(**) RADEON(0): Pitch for acceleration = 160
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): Initializing DPMS
(**) RADEON(0): Initializing Cursor
(**) RADEON(0): Initializing color map
(**) RADEON(0): Initializing DGA
(**) RADEON(0): Initializing Xv
(**) RADEON(0): RADEONScreenInit finished
(**) RADEON(0): RADEONSaveScreen(2)
(**) RADEON(0): RADEONCloseScreen
(**) RADEON(0): RADEONDRIStop
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): RADEONDisplayPowerManagementSet(0,0x0)
(**) RADEON(0): RADEONRestore
(**) RADEON(0): RADEONRestoreMode()
(**) RADEON(0): RADEONRestoreMode(0x8240870)
(**) RADEON(0): RADEONRestoreMemMapRegisters() :
(**) RADEON(0): MC_FB_LOCATION : 0x1fff0000
(**) RADEON(0): MC_AGP_LOCATION : 0x27ff2000
(**) RADEON(0): Map Changed ! Applying ...
(**) RADEON(0): Map applied, resetting engine ...
(**) RADEON(0): Updating display base addresses...
(**) RADEON(0): Memory map updated.
(**) RADEON(0): Programming CRTC1, offset: 0x00000000
(**) RADEON(0): Wrote: 0x0000000c 0x00030065 0x00000000 (0x0000a400)
(**) RADEON(0): Wrote: rd=12, fd=101, pd=3
(**) RADEON(0): Disposing accel...
(**) RADEON(0): Disposing cusor info
(**) RADEON(0): Disposing DGA
(**) RADEON(0): Unmapping memory
(**) RADEON(0): RADEONDRICloseScreen



the only difference is, that 2.6.23-rc2-mm2 writes further

FreeFontPath: FPE "/usr/share/X11/fonts/misc:unscaled" refcount is 2, should be
1; fixing.

and exits succesfully (note that these messages are taken on remote host, X
runned remotely).

Both vesa and radeon + Option "NoAccel" "true" works obviously fine.

regards,
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University

2007-08-26 23:20:44

by Samuel Ortiz

[permalink] [raw]
Subject: Re: [PATCH 1/2] sysctl: Properly register the irda binary sysctl numbers.

Hi Eric,

On Thu, Aug 23, 2007 at 09:53:53PM -0600, Eric W. Biederman wrote:
>
> Grumble. These numbers should have been in sysctl.h from the
> beginning if we ever expected anyone to use them. Oh well put
> them there now so we can find them and make maintenance easier.
Thanks for that, I should have taken care of it earlier...


> Signed-off-by: Eric W. Biederman <[email protected]>
Signed-off-by: Samuel Ortiz <[email protected]>

> ---
> include/linux/sysctl.h | 20 ++++++++++++++++++++
> net/irda/irsysctl.c | 34 ++++++++++++++--------------------
> 2 files changed, 34 insertions(+), 20 deletions(-)
>
> diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
> index 88f0941..77c9ae2 100644
> --- a/include/linux/sysctl.h
> +++ b/include/linux/sysctl.h
> @@ -238,6 +238,7 @@ enum
> NET_LLC=18,
> NET_NETFILTER=19,
> NET_DCCP=20,
> + NET_IRDA=412,
> };
>
> /* /proc/sys/kernel/random */
> @@ -795,6 +796,25 @@ enum {
> NET_BRIDGE_NF_FILTER_PPPOE_TAGGED = 5,
> };
>
> +/* proc/sys/net/irda */
> +enum {
> + NET_IRDA_DISCOVERY=1,
> + NET_IRDA_DEVNAME=2,
> + NET_IRDA_DEBUG=3,
> + NET_IRDA_FAST_POLL=4,
> + NET_IRDA_DISCOVERY_SLOTS=5,
> + NET_IRDA_DISCOVERY_TIMEOUT=6,
> + NET_IRDA_SLOT_TIMEOUT=7,
> + NET_IRDA_MAX_BAUD_RATE=8,
> + NET_IRDA_MIN_TX_TURN_TIME=9,
> + NET_IRDA_MAX_TX_DATA_SIZE=10,
> + NET_IRDA_MAX_TX_WINDOW=11,
> + NET_IRDA_MAX_NOREPLY_TIME=12,
> + NET_IRDA_WARN_NOREPLY_TIME=13,
> + NET_IRDA_LAP_KEEPALIVE_TIME=14,
> +};
> +
> +
> /* CTL_FS names: */
> enum
> {
> diff --git a/net/irda/irsysctl.c b/net/irda/irsysctl.c
> index 957e04f..525343a 100644
> --- a/net/irda/irsysctl.c
> +++ b/net/irda/irsysctl.c
> @@ -31,12 +31,6 @@
> #include <net/irda/irda.h> /* irda_debug */
> #include <net/irda/irias_object.h>
>
> -#define NET_IRDA 412 /* Random number */
> -enum { DISCOVERY=1, DEVNAME, DEBUG, FAST_POLL, DISCOVERY_SLOTS,
> - DISCOVERY_TIMEOUT, SLOT_TIMEOUT, MAX_BAUD_RATE, MIN_TX_TURN_TIME,
> - MAX_TX_DATA_SIZE, MAX_TX_WINDOW, MAX_NOREPLY_TIME, WARN_NOREPLY_TIME,
> - LAP_KEEPALIVE_TIME };
> -
> extern int sysctl_discovery;
> extern int sysctl_discovery_slots;
> extern int sysctl_discovery_timeout;
> @@ -94,7 +88,7 @@ static int do_devname(ctl_table *table, int write, struct file *filp,
> /* One file */
> static ctl_table irda_table[] = {
> {
> - .ctl_name = DISCOVERY,
> + .ctl_name = NET_IRDA_DISCOVERY,
> .procname = "discovery",
> .data = &sysctl_discovery,
> .maxlen = sizeof(int),
> @@ -102,7 +96,7 @@ static ctl_table irda_table[] = {
> .proc_handler = &proc_dointvec
> },
> {
> - .ctl_name = DEVNAME,
> + .ctl_name = NET_IRDA_DEVNAME,
> .procname = "devname",
> .data = sysctl_devname,
> .maxlen = 65,
> @@ -112,7 +106,7 @@ static ctl_table irda_table[] = {
> },
> #ifdef CONFIG_IRDA_DEBUG
> {
> - .ctl_name = DEBUG,
> + .ctl_name = NET_IRDA_DEBUG,
> .procname = "debug",
> .data = &irda_debug,
> .maxlen = sizeof(int),
> @@ -122,7 +116,7 @@ static ctl_table irda_table[] = {
> #endif
> #ifdef CONFIG_IRDA_FAST_RR
> {
> - .ctl_name = FAST_POLL,
> + .ctl_name = NET_IRDA_FAST_POLL,
> .procname = "fast_poll_increase",
> .data = &sysctl_fast_poll_increase,
> .maxlen = sizeof(int),
> @@ -131,7 +125,7 @@ static ctl_table irda_table[] = {
> },
> #endif
> {
> - .ctl_name = DISCOVERY_SLOTS,
> + .ctl_name = NET_IRDA_DISCOVERY_SLOTS,
> .procname = "discovery_slots",
> .data = &sysctl_discovery_slots,
> .maxlen = sizeof(int),
> @@ -142,7 +136,7 @@ static ctl_table irda_table[] = {
> .extra2 = &max_discovery_slots
> },
> {
> - .ctl_name = DISCOVERY_TIMEOUT,
> + .ctl_name = NET_IRDA_DISCOVERY_TIMEOUT,
> .procname = "discovery_timeout",
> .data = &sysctl_discovery_timeout,
> .maxlen = sizeof(int),
> @@ -150,7 +144,7 @@ static ctl_table irda_table[] = {
> .proc_handler = &proc_dointvec
> },
> {
> - .ctl_name = SLOT_TIMEOUT,
> + .ctl_name = NET_IRDA_SLOT_TIMEOUT,
> .procname = "slot_timeout",
> .data = &sysctl_slot_timeout,
> .maxlen = sizeof(int),
> @@ -161,7 +155,7 @@ static ctl_table irda_table[] = {
> .extra2 = &max_slot_timeout
> },
> {
> - .ctl_name = MAX_BAUD_RATE,
> + .ctl_name = NET_IRDA_MAX_BAUD_RATE,
> .procname = "max_baud_rate",
> .data = &sysctl_max_baud_rate,
> .maxlen = sizeof(int),
> @@ -172,7 +166,7 @@ static ctl_table irda_table[] = {
> .extra2 = &max_max_baud_rate
> },
> {
> - .ctl_name = MIN_TX_TURN_TIME,
> + .ctl_name = NET_IRDA_MIN_TX_TURN_TIME,
> .procname = "min_tx_turn_time",
> .data = &sysctl_min_tx_turn_time,
> .maxlen = sizeof(int),
> @@ -183,7 +177,7 @@ static ctl_table irda_table[] = {
> .extra2 = &max_min_tx_turn_time
> },
> {
> - .ctl_name = MAX_TX_DATA_SIZE,
> + .ctl_name = NET_IRDA_MAX_TX_DATA_SIZE,
> .procname = "max_tx_data_size",
> .data = &sysctl_max_tx_data_size,
> .maxlen = sizeof(int),
> @@ -194,7 +188,7 @@ static ctl_table irda_table[] = {
> .extra2 = &max_max_tx_data_size
> },
> {
> - .ctl_name = MAX_TX_WINDOW,
> + .ctl_name = NET_IRDA_MAX_TX_WINDOW,
> .procname = "max_tx_window",
> .data = &sysctl_max_tx_window,
> .maxlen = sizeof(int),
> @@ -205,7 +199,7 @@ static ctl_table irda_table[] = {
> .extra2 = &max_max_tx_window
> },
> {
> - .ctl_name = MAX_NOREPLY_TIME,
> + .ctl_name = NET_IRDA_MAX_NOREPLY_TIME,
> .procname = "max_noreply_time",
> .data = &sysctl_max_noreply_time,
> .maxlen = sizeof(int),
> @@ -216,7 +210,7 @@ static ctl_table irda_table[] = {
> .extra2 = &max_max_noreply_time
> },
> {
> - .ctl_name = WARN_NOREPLY_TIME,
> + .ctl_name = NET_IRDA_WARN_NOREPLY_TIME,
> .procname = "warn_noreply_time",
> .data = &sysctl_warn_noreply_time,
> .maxlen = sizeof(int),
> @@ -227,7 +221,7 @@ static ctl_table irda_table[] = {
> .extra2 = &max_warn_noreply_time
> },
> {
> - .ctl_name = LAP_KEEPALIVE_TIME,
> + .ctl_name = NET_IRDA_LAP_KEEPALIVE_TIME,
> .procname = "lap_keepalive_time",
> .data = &sysctl_lap_keepalive_time,
> .maxlen = sizeof(int),
> --
> 1.5.1.1.181.g2de0
>

2007-08-27 01:20:41

by Samuel Ortiz

[permalink] [raw]
Subject: Re: [PATCH 2/2] sysctl: For irda update sysctl_checks list of binary paths.

On Thu, Aug 23, 2007 at 09:55:15PM -0600, Eric W. Biederman wrote:
>
> It turns out that the net/irda code didn't register any of
> it's binary paths in the global sysctl.h header file so
> I missed them completely when making an authoritative list
> of binary sysctl paths in the kernel. So add them to
> the list of valid binary sysctl paths.
>
> Signed-off-by: Eric W. Biederman <[email protected]>
Signed-off-by: Samuel Ortiz <[email protected]>

> ---
> kernel/sysctl_check.c | 19 +++++++++++++++++++
> 1 files changed, 19 insertions(+), 0 deletions(-)
>
> diff --git a/kernel/sysctl_check.c b/kernel/sysctl_check.c
> index d5e0337..aa5b6f6 100644
> --- a/kernel/sysctl_check.c
> +++ b/kernel/sysctl_check.c
> @@ -702,6 +702,24 @@ static struct trans_ctl_table trans_net_dccp_table[] = {
> {}
> };
>
> +static struct trans_ctl_table trans_net_irda_table[] = {
> + { NET_IRDA_DISCOVERY, "discovery" },
> + { NET_IRDA_DEVNAME, "devname" },
> + { NET_IRDA_DEBUG, "debug" },
> + { NET_IRDA_FAST_POLL, "fast_poll_increase" },
> + { NET_IRDA_DISCOVERY_SLOTS, "discovery_slots" },
> + { NET_IRDA_DISCOVERY_TIMEOUT, "discovery_timeout" },
> + { NET_IRDA_SLOT_TIMEOUT, "slot_timeout" },
> + { NET_IRDA_MAX_BAUD_RATE, "max_baud_rate" },
> + { NET_IRDA_MIN_TX_TURN_TIME, "min_tx_turn_time" },
> + { NET_IRDA_MAX_TX_DATA_SIZE, "max_tx_data_size" },
> + { NET_IRDA_MAX_TX_WINDOW, "max_tx_window" },
> + { NET_IRDA_MAX_NOREPLY_TIME, "max_noreply_time" },
> + { NET_IRDA_WARN_NOREPLY_TIME, "warn_noreply_time" },
> + { NET_IRDA_LAP_KEEPALIVE_TIME, "lap_keepalive_time" },
> + {}
> +};
> +
> static struct trans_ctl_table trans_net_table[] = {
> { NET_CORE, "core", trans_net_core_table },
> /* NET_ETHER not used */
> @@ -723,6 +741,7 @@ static struct trans_ctl_table trans_net_table[] = {
> { NET_LLC, "llc", trans_net_llc_table },
> { NET_NETFILTER, "netfilter", trans_net_netfilter_table },
> { NET_DCCP, "dccp", trans_net_dccp_table },
> + { NET_IRDA, "irda", trans_net_irda_table },
> { 2089, "nf_conntrack_max" },
> {}
> };
> --
> 1.5.1.1.181.g2de0
>

2007-08-27 06:35:32

by Jarek Poplawski

[permalink] [raw]
Subject: Re: net/ipv4/fib_trie.c - compile error (Re: 2.6.23-rc3-mm1)

On 22-08-2007 19:03, Paul E. McKenney wrote:
> On Wed, Aug 22, 2007 at 05:41:11PM +0200, Adrian Bunk wrote:
>> On Wed, Aug 22, 2007 at 05:30:13PM +0200, Gabriel C wrote:
>>> Got it with a randconfig ( http://194.231.229.228/kernel/mm/2.6.23-rc3-mm1/r/randconfig-8 )
>>>
>>> ...
>>>
>>> net/ipv4/fib_trie.c: In function 'trie_rebalance':
>>> net/ipv4/fib_trie.c:969: error: lvalue required as unary '&' operand
>>> net/ipv4/fib_trie.c:971: error: lvalue required as unary '&' operand
>>> net/ipv4/fib_trie.c:977: error: lvalue required as unary '&' operand
>>> net/ipv4/fib_trie.c:980: error: lvalue required as unary '&' operand
>>> ...
>> Side effect of the git-net removal, temporarily removing
>> immunize-rcu_dereference-against-crazy-compiler-writers.patch should
>> work around it.
>
> Alternatively, the following one-line patch to net/ipv4/fib_trie.c could
> be used.
>
> Signed-off-by: Paul E. McKenney <[email protected]>
> ---
>
> fib_trie.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff -urpNa -X dontdiff linux-2.6.23-rc3-mm1/net/ipv4/fib_trie.c linux-2.6.23-rc3-mm1.compile/net/ipv4/fib_trie.c
> --- linux-2.6.23-rc3-mm1/net/ipv4/fib_trie.c 2007-08-22 09:20:33.000000000 -0700
> +++ linux-2.6.23-rc3-mm1.compile/net/ipv4/fib_trie.c 2007-08-22 09:47:33.000000000 -0700
> @@ -94,7 +94,7 @@ typedef unsigned int t_key;
> #define T_LEAF 1
> #define NODE_TYPE_MASK 0x1UL
> #define NODE_PARENT(node) \
> - ((struct tnode *)rcu_dereference(((node)->parent & ~NODE_TYPE_MASK)))
> + ((struct tnode *)(rcu_dereference((node)->parent) & ~NODE_TYPE_MASK))
...

After first reading of this thread I've had an impression it's about
compiler's behavior, but now it seems to me this patch is not an
alternative, but a 'must be' and only proper way of calling
rcu_dereference (with a variable instead of an expression)? Am I
right?

Regards,
Jarek P.

2007-08-27 13:37:26

by Tilman Schmidt

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

Am 26.08.2007 01:57 schrieb Randy Dunlap:
> On Sun, 26 Aug 2007 01:26:21 +0200 Tilman Schmidt wrote:
>
>> Am 25.08.2007 02:38 schrieb Pallipadi, Venkatesh:
>> >
>> > Tilman: Can you configure CONFIG_CPU_IDLE in your config (under Power
>> > Management option) and double check that the frequency part works after
>> > that.
>>
>> Strangely enough, I do not see that option in "make xconfig".
>> The "Power Management" subtree ends with "CPU Frequency scaling".
>> In "make menuconfig" the option is there, though.
>
> That sounds strange. Please share your .config file.

I'm sorry but I cannot reproduce the phenomenon anymore. After setting
CONFIG_CPU_IDLE with "make menuconfig", when I ran "make xconfig" again
it showed the option too. Moving .config.old back to .config doesn't
make it disappear again. So it seems "make menuconfig" has elliminated
whatever caused this.

If you still want to have a look, both .config and .config.old are
available at http://gollum.phnxsoft.com/~ts/2.6.23-rc3-mm1/ .

--
Tilman Schmidt E-Mail: [email protected]
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Unge?ffnet mindestens haltbar bis: (siehe R?ckseite)


Attachments:
signature.asc (250.00 B)
OpenPGP digital signature

2007-08-27 16:24:31

by Paul E. McKenney

[permalink] [raw]
Subject: Re: net/ipv4/fib_trie.c - compile error (Re: 2.6.23-rc3-mm1)

On Mon, Aug 27, 2007 at 08:36:35AM +0200, Jarek Poplawski wrote:
> On 22-08-2007 19:03, Paul E. McKenney wrote:
> > On Wed, Aug 22, 2007 at 05:41:11PM +0200, Adrian Bunk wrote:
> >> On Wed, Aug 22, 2007 at 05:30:13PM +0200, Gabriel C wrote:
> >>> Got it with a randconfig ( http://194.231.229.228/kernel/mm/2.6.23-rc3-mm1/r/randconfig-8 )
> >>>
> >>> ...
> >>>
> >>> net/ipv4/fib_trie.c: In function 'trie_rebalance':
> >>> net/ipv4/fib_trie.c:969: error: lvalue required as unary '&' operand
> >>> net/ipv4/fib_trie.c:971: error: lvalue required as unary '&' operand
> >>> net/ipv4/fib_trie.c:977: error: lvalue required as unary '&' operand
> >>> net/ipv4/fib_trie.c:980: error: lvalue required as unary '&' operand
> >>> ...
> >> Side effect of the git-net removal, temporarily removing
> >> immunize-rcu_dereference-against-crazy-compiler-writers.patch should
> >> work around it.
> >
> > Alternatively, the following one-line patch to net/ipv4/fib_trie.c could
> > be used.
> >
> > Signed-off-by: Paul E. McKenney <[email protected]>
> > ---
> >
> > fib_trie.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff -urpNa -X dontdiff linux-2.6.23-rc3-mm1/net/ipv4/fib_trie.c linux-2.6.23-rc3-mm1.compile/net/ipv4/fib_trie.c
> > --- linux-2.6.23-rc3-mm1/net/ipv4/fib_trie.c 2007-08-22 09:20:33.000000000 -0700
> > +++ linux-2.6.23-rc3-mm1.compile/net/ipv4/fib_trie.c 2007-08-22 09:47:33.000000000 -0700
> > @@ -94,7 +94,7 @@ typedef unsigned int t_key;
> > #define T_LEAF 1
> > #define NODE_TYPE_MASK 0x1UL
> > #define NODE_PARENT(node) \
> > - ((struct tnode *)rcu_dereference(((node)->parent & ~NODE_TYPE_MASK)))
> > + ((struct tnode *)(rcu_dereference((node)->parent) & ~NODE_TYPE_MASK))
> ...
>
> After first reading of this thread I've had an impression it's about
> compiler's behavior, but now it seems to me this patch is not an
> alternative, but a 'must be' and only proper way of calling
> rcu_dereference (with a variable instead of an expression)? Am I
> right?

Yes, rcu_dereference() does indeed need to be invoked on a lvalue.

Thanx, Paul

2007-08-27 21:27:37

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] make "struct menu_governor" static (again)

On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.23-rc2-mm2:
>...
> git-acpi.patch
>...
> git trees
>...

"struct menu_governor" needlessly again became global.

Signed-off-by: Adrian Bunk <[email protected]>

---
cb33b296204127cf50df54b84b2d79e152fb924b
diff --git a/drivers/cpuidle/governors/menu.c b/drivers/cpuidle/governors/menu.c
index f5a8865..8d3fdc5 100644
--- a/drivers/cpuidle/governors/menu.c
+++ b/drivers/cpuidle/governors/menu.c
@@ -117,7 +117,7 @@ static int menu_enable_device(struct cpuidle_device *dev)
return 0;
}

-struct cpuidle_governor menu_governor = {
+static struct cpuidle_governor menu_governor = {
.name = "menu",
.rating = 20,
.enable = menu_enable_device,

2007-08-27 21:27:55

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] remove parport_device_num()

On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.23-rc2-mm2:
>...
> +sysctl-parport-remove-binary-paths.patch
>...
> More sysctl work
>...

parport_device_num() is no longer used.

Signed-off-by: Adrian Bunk <[email protected]>

---

Documentation/parport-lowlevel.txt | 29 +++--------------------------
drivers/parport/daisy.c | 29 -----------------------------
include/linux/parport.h | 1 -
3 files changed, 3 insertions(+), 56 deletions(-)

0066510df2b5d4972cfd6a4450af8b82c763adfd
diff --git a/Documentation/parport-lowlevel.txt b/Documentation/parport-lowlevel.txt
index 8f23024..265fcdc 100644
--- a/Documentation/parport-lowlevel.txt
+++ b/Documentation/parport-lowlevel.txt
@@ -25,7 +25,6 @@ Global functions:
parport_open
parport_close
parport_device_id
- parport_device_num
parport_device_coords
parport_find_class
parport_find_device
@@ -735,7 +734,7 @@ NULL is returned.

SEE ALSO

-parport_register_device, parport_device_num
+parport_register_device

parport_close - unregister device for particular device number
-------------
@@ -787,29 +786,7 @@ Many devices have ill-formed IEEE 1284 Device IDs.

SEE ALSO

-parport_find_class, parport_find_device, parport_device_num
-
-parport_device_num - convert device coordinates to device number
-------------------
-
-SYNOPSIS
-
-#include <linux/parport.h>
-
-int parport_device_num (int parport, int mux, int daisy);
-
-DESCRIPTION
-
-Convert between device coordinates (port, multiplexor, daisy chain
-address) and device number (zero-based).
-
-RETURN VALUE
-
-Device number, or -1 if no device at given coordinates.
-
-SEE ALSO
-
-parport_device_coords, parport_open, parport_device_id
+parport_find_class, parport_find_device

parport_device_coords - convert device number to device coordinates
------------------
@@ -833,7 +810,7 @@ Zero on success, in which case the coordinates are (*parport, *mux,

SEE ALSO

-parport_device_num, parport_open, parport_device_id
+parport_open, parport_device_id

parport_find_class - find a device by its class
------------------
diff --git a/drivers/parport/daisy.c b/drivers/parport/daisy.c
index ff9f344..5bbff20 100644
--- a/drivers/parport/daisy.c
+++ b/drivers/parport/daisy.c
@@ -275,35 +275,6 @@ void parport_close(struct pardevice *dev)
parport_unregister_device(dev);
}

-/**
- * parport_device_num - convert device coordinates
- * @parport: parallel port number
- * @mux: multiplexor port number (-1 for no multiplexor)
- * @daisy: daisy chain address (-1 for no daisy chain address)
- *
- * This tries to locate a device on the given parallel port,
- * multiplexor port and daisy chain address, and returns its
- * device number or %-ENXIO if no device with those coordinates
- * exists.
- **/
-
-int parport_device_num(int parport, int mux, int daisy)
-{
- int res = -ENXIO;
- struct daisydev *dev;
-
- spin_lock(&topology_lock);
- dev = topology;
- while (dev && dev->port->portnum != parport &&
- dev->port->muxport != mux && dev->daisy != daisy)
- dev = dev->next;
- if (dev)
- res = dev->devnum;
- spin_unlock(&topology_lock);
-
- return res;
-}
-
/* Send a daisy-chain-style CPP command packet. */
static int cpp_daisy(struct parport *port, int cmd)
{
diff --git a/include/linux/parport.h b/include/linux/parport.h
index 9cdd694..ec3f765 100644
--- a/include/linux/parport.h
+++ b/include/linux/parport.h
@@ -510,7 +510,6 @@ extern struct pardevice *parport_open (int devnum, const char *name,
int flags, void *handle);
extern void parport_close (struct pardevice *dev);
extern ssize_t parport_device_id (int devnum, char *buffer, size_t len);
-extern int parport_device_num (int parport, int mux, int daisy);
extern void parport_daisy_deselect_all (struct parport *port);
extern int parport_daisy_select (struct parport *port, int daisy, int mode);


2007-08-27 21:28:36

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] make do_restart_poll() static

On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.23-rc2-mm2:
>...
> +use-erestart_restartblock-if-poll-is-interrupted-by-a-signal.patch
>...
> The infamous misc
>...

do_restart_poll() can become static.

Signed-off-by: Adrian Bunk <[email protected]>

---
59cd2d11f5f0189973bb280c59262eb50984cb88
diff --git a/fs/select.c b/fs/select.c
index 5a3ab01..3e515aa 100644
--- a/fs/select.c
+++ b/fs/select.c
@@ -711,7 +711,7 @@ out_fds:
return err;
}

-long do_restart_poll(struct restart_block *restart_block)
+static long do_restart_poll(struct restart_block *restart_block)
{
struct pollfd __user *ufds = (struct pollfd __user*)restart_block->arg0;
int nfds = restart_block->arg1;

2007-08-27 21:29:12

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] unexport snd_ctl_elem_{read,write}

On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.23-rc2-mm2:
>...
> git-alsa.patch
>...
> git trees
>...

snd_ctl_elem_{read,write} no longer have any modular users.

Signed-off-by: Adrian Bunk <[email protected]>

---

sound/core/control.c | 4 ----
1 file changed, 4 deletions(-)

23e15051dde57c569e4c9aff1339aaf64185ea71
diff --git a/sound/core/control.c b/sound/core/control.c
index 396e98e..6144d8a 100644
--- a/sound/core/control.c
+++ b/sound/core/control.c
@@ -716,8 +716,6 @@ int snd_ctl_elem_read(struct snd_card *card, struct snd_ctl_elem_value *control)
return result;
}

-EXPORT_SYMBOL(snd_ctl_elem_read);
-
static int snd_ctl_elem_read_user(struct snd_card *card,
struct snd_ctl_elem_value __user *_control)
{
@@ -781,8 +779,6 @@ int snd_ctl_elem_write(struct snd_card *card, struct snd_ctl_file *file,
return result;
}

-EXPORT_SYMBOL(snd_ctl_elem_write);
-
static int snd_ctl_elem_write_user(struct snd_ctl_file *file,
struct snd_ctl_elem_value __user *_control)
{

2007-08-27 21:29:40

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] unexport sys_{open,read}

On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.23-rc2-mm2:
>...
> git-alsa.patch
>...
> git trees
>...

sys_{open,read} can finally be unexported.

Signed-off-by: Adrian Bunk <[email protected]>

---

fs/open.c | 1 -
fs/read_write.c | 1 -
2 files changed, 2 deletions(-)

6f6884f9ee675f2e804c6c58ca46337f9765dd0d
diff --git a/fs/open.c b/fs/open.c
index 23f334d..c0814de 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -1057,7 +1057,6 @@ asmlinkage long sys_open(const char __user *filename, int flags, int mode)
prevent_tail_call(ret);
return ret;
}
-EXPORT_SYMBOL_GPL(sys_open);

asmlinkage long sys_openat(int dfd, const char __user *filename, int flags,
int mode)
diff --git a/fs/read_write.c b/fs/read_write.c
index 507ddff..d913d1e 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
@@ -370,7 +370,6 @@ asmlinkage ssize_t sys_read(unsigned int fd, char __user * buf, size_t count)

return ret;
}
-EXPORT_SYMBOL_GPL(sys_read);

asmlinkage ssize_t sys_write(unsigned int fd, const char __user * buf, size_t count)
{

2007-08-27 21:30:18

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] make types.h usable for non-gcc C parsers

On Wed, Aug 22, 2007 at 03:33:27PM +0200, Gabriel C wrote:
>...
> WARNING: "div64_64" [net/netfilter/xt_connbytes.ko] has no CRC!
>...

Patch below.

> Regards,
>
> Gabriel

cu
Adrian


<-- snip -->


This patch makes the 64bit integers on 32bit architectures usable for
all C parsers that know about "long long".

Signed-off-by: Adrian Bunk <[email protected]>

---

include/asm-arm/types.h | 10 +++++++---
include/asm-avr32/types.h | 10 +++++++---
include/asm-blackfin/types.h | 11 +++++++----
include/asm-cris/types.h | 10 +++++++---
include/asm-frv/types.h | 10 +++++++---
include/asm-h8300/types.h | 10 +++++++---
include/asm-i386/types.h | 10 +++++++---
include/asm-m32r/types.h | 11 ++++++++---
include/asm-m68k/types.h | 10 +++++++---
include/asm-mips/types.h | 10 +++++++---
include/asm-parisc/types.h | 10 +++++++---
include/asm-powerpc/types.h | 9 ++++++---
include/asm-s390/types.h | 9 ++++++---
include/asm-sh/types.h | 10 +++++++---
include/asm-sh64/types.h | 10 +++++++---
include/asm-v850/types.h | 10 +++++++---
include/asm-xtensa/types.h | 10 +++++++---
17 files changed, 118 insertions(+), 52 deletions(-)

4b6826d7a2f5b54a6a3b1cfa8cd40b1b27621be0
diff --git a/include/asm-arm/types.h b/include/asm-arm/types.h
index 3141451..1dae25b 100644
--- a/include/asm-arm/types.h
+++ b/include/asm-arm/types.h
@@ -19,11 +19,15 @@ typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;

-#if defined(__GNUC__)
-__extension__ typedef __signed__ long long __s64;
-__extension__ typedef unsigned long long __u64;
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define __extension_long_long __extension__
+#else
+#define __extension_long_long
#endif

+__extension_long_long typedef __signed__ long long __s64;
+__extension_long_long typedef unsigned long long __u64;
+
#endif /* __ASSEMBLY__ */

/*
diff --git a/include/asm-avr32/types.h b/include/asm-avr32/types.h
index 8999a38..2c14f49 100644
--- a/include/asm-avr32/types.h
+++ b/include/asm-avr32/types.h
@@ -25,11 +25,15 @@ typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;

-#if defined(__GNUC__)
-__extension__ typedef __signed__ long long __s64;
-__extension__ typedef unsigned long long __u64;
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define __extension_long_long __extension__
+#else
+#define __extension_long_long
#endif

+__extension_long_long typedef __signed__ long long __s64;
+__extension_long_long typedef unsigned long long __u64;
+
#endif /* __ASSEMBLY__ */

/*
diff --git a/include/asm-blackfin/types.h b/include/asm-blackfin/types.h
index 9785a6d..d0666b9 100644
--- a/include/asm-blackfin/types.h
+++ b/include/asm-blackfin/types.h
@@ -26,12 +26,15 @@ typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;

-/* HK0617 -- Changes to unsigned long temporarily */
-#if defined(__GNUC__)
-__extension__ typedef __signed__ long long __s64;
-__extension__ typedef unsigned long long __u64;
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define __extension_long_long __extension__
+#else
+#define __extension_long_long
#endif

+__extension_long_long typedef __signed__ long long __s64;
+__extension_long_long typedef unsigned long long __u64;
+
#endif /* __ASSEMBLY__ */
/*
* These aren't exported outside the kernel to avoid name space clashes
diff --git a/include/asm-cris/types.h b/include/asm-cris/types.h
index 5a21c42..6c46a90 100644
--- a/include/asm-cris/types.h
+++ b/include/asm-cris/types.h
@@ -19,11 +19,15 @@ typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;

-#if defined(__GNUC__)
-__extension__ typedef __signed__ long long __s64;
-__extension__ typedef unsigned long long __u64;
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define __extension_long_long __extension__
+#else
+#define __extension_long_long
#endif

+__extension_long_long typedef __signed__ long long __s64;
+__extension_long_long typedef unsigned long long __u64;
+
#endif /* __ASSEMBLY__ */

/*
diff --git a/include/asm-frv/types.h b/include/asm-frv/types.h
index 767e5ed..728c234 100644
--- a/include/asm-frv/types.h
+++ b/include/asm-frv/types.h
@@ -30,11 +30,15 @@ typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;

-#if defined(__GNUC__)
-__extension__ typedef __signed__ long long __s64;
-__extension__ typedef unsigned long long __u64;
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define __extension_long_long __extension__
+#else
+#define __extension_long_long
#endif

+__extension_long_long typedef __signed__ long long __s64;
+__extension_long_long typedef unsigned long long __u64;
+
#endif /* __ASSEMBLY__ */

/*
diff --git a/include/asm-h8300/types.h b/include/asm-h8300/types.h
index 56566e2..1fc2dd9 100644
--- a/include/asm-h8300/types.h
+++ b/include/asm-h8300/types.h
@@ -27,11 +27,15 @@ typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;

-#if defined(__GNUC__)
-__extension__ typedef __signed__ long long __s64;
-__extension__ typedef unsigned long long __u64;
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define __extension_long_long __extension__
+#else
+#define __extension_long_long
#endif

+__extension_long_long typedef __signed__ long long __s64;
+__extension_long_long typedef unsigned long long __u64;
+
/*
* These aren't exported outside the kernel to avoid name space clashes
*/
diff --git a/include/asm-i386/types.h b/include/asm-i386/types.h
index faca192..a2c3b35 100644
--- a/include/asm-i386/types.h
+++ b/include/asm-i386/types.h
@@ -19,11 +19,15 @@ typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;

-#if defined(__GNUC__)
-__extension__ typedef __signed__ long long __s64;
-__extension__ typedef unsigned long long __u64;
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define __extension_long_long __extension__
+#else
+#define __extension_long_long
#endif

+__extension_long_long typedef __signed__ long long __s64;
+__extension_long_long typedef unsigned long long __u64;
+
#endif /* __ASSEMBLY__ */

/*
diff --git a/include/asm-m32r/types.h b/include/asm-m32r/types.h
index b64c166..8071e22 100644
--- a/include/asm-m32r/types.h
+++ b/include/asm-m32r/types.h
@@ -19,10 +19,15 @@ typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;

-#if defined(__GNUC__)
-__extension__ typedef __signed__ long long __s64;
-__extension__ typedef unsigned long long __u64;
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define __extension_long_long __extension__
+#else
+#define __extension_long_long
#endif
+
+__extension_long_long typedef __signed__ long long __s64;
+__extension_long_long typedef unsigned long long __u64;
+
#endif /* __ASSEMBLY__ */

/*
diff --git a/include/asm-m68k/types.h b/include/asm-m68k/types.h
index c35c09d..43e0186 100644
--- a/include/asm-m68k/types.h
+++ b/include/asm-m68k/types.h
@@ -27,11 +27,15 @@ typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;

-#if defined(__GNUC__)
-__extension__ typedef __signed__ long long __s64;
-__extension__ typedef unsigned long long __u64;
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define __extension_long_long __extension__
+#else
+#define __extension_long_long
#endif

+__extension_long_long typedef __signed__ long long __s64;
+__extension_long_long typedef unsigned long long __u64;
+
#endif /* __ASSEMBLY__ */

/*
diff --git a/include/asm-mips/types.h b/include/asm-mips/types.h
index 2dd147f..fe1eb32 100644
--- a/include/asm-mips/types.h
+++ b/include/asm-mips/types.h
@@ -34,11 +34,15 @@ typedef unsigned long __u64;

#else

-#if defined(__GNUC__)
-__extension__ typedef __signed__ long long __s64;
-__extension__ typedef unsigned long long __u64;
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define __extension_long_long __extension__
+#else
+#define __extension_long_long
#endif

+__extension_long_long typedef __signed__ long long __s64;
+__extension_long_long typedef unsigned long long __u64;
+
#endif

#endif /* __ASSEMBLY__ */
diff --git a/include/asm-parisc/types.h b/include/asm-parisc/types.h
index 56c8480..5df2b11 100644
--- a/include/asm-parisc/types.h
+++ b/include/asm-parisc/types.h
@@ -19,11 +19,15 @@ typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;

-#if defined(__GNUC__)
-__extension__ typedef __signed__ long long __s64;
-__extension__ typedef unsigned long long __u64;
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define __extension_long_long __extension__
+#else
+#define __extension_long_long
#endif

+__extension_long_long typedef __signed__ long long __s64;
+__extension_long_long typedef unsigned long long __u64;
+
#endif /* __ASSEMBLY__ */

/*
diff --git a/include/asm-powerpc/types.h b/include/asm-powerpc/types.h
index 695e2ce..2ce1998 100644
--- a/include/asm-powerpc/types.h
+++ b/include/asm-powerpc/types.h
@@ -40,10 +40,13 @@ typedef unsigned int __u32;
typedef __signed__ long __s64;
typedef unsigned long __u64;
#else
-#if defined(__GNUC__)
-__extension__ typedef __signed__ long long __s64;
-__extension__ typedef unsigned long long __u64;
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define __extension_long_long __extension__
+#else
+#define __extension_long_long
#endif
+__extension_long_long typedef __signed__ long long __s64;
+__extension_long_long typedef unsigned long long __u64;
#endif /* __powerpc64__ */

typedef struct {
diff --git a/include/asm-s390/types.h b/include/asm-s390/types.h
index 2c5879a..9590d00 100644
--- a/include/asm-s390/types.h
+++ b/include/asm-s390/types.h
@@ -28,10 +28,13 @@ typedef __signed__ int __s32;
typedef unsigned int __u32;

#ifndef __s390x__
-#if defined(__GNUC__)
-__extension__ typedef __signed__ long long __s64;
-__extension__ typedef unsigned long long __u64;
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define __extension_long_long __extension__
+#else
+#define __extension_long_long
#endif
+__extension_long_long typedef __signed__ long long __s64;
+__extension_long_long typedef unsigned long long __u64;
#else /* __s390x__ */
typedef __signed__ long __s64;
typedef unsigned long __u64;
diff --git a/include/asm-sh/types.h b/include/asm-sh/types.h
index 7ba69d9..d747b87 100644
--- a/include/asm-sh/types.h
+++ b/include/asm-sh/types.h
@@ -19,11 +19,15 @@ typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;

-#if defined(__GNUC__)
-__extension__ typedef __signed__ long long __s64;
-__extension__ typedef unsigned long long __u64;
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define __extension_long_long __extension__
+#else
+#define __extension_long_long
#endif

+__extension_long_long__ typedef __signed__ long long __s64;
+__extension_long_long__ typedef unsigned long long __u64;
+
#endif /* __ASSEMBLY__ */

/*
diff --git a/include/asm-sh64/types.h b/include/asm-sh64/types.h
index 2c7ad73..e5e90ff 100644
--- a/include/asm-sh64/types.h
+++ b/include/asm-sh64/types.h
@@ -30,11 +30,15 @@ typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;

-#if defined(__GNUC__)
-__extension__ typedef __signed__ long long __s64;
-__extension__ typedef unsigned long long __u64;
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define __extension_long_long __extension__
+#else
+#define __extension_long_long
#endif

+__extension_long_long typedef __signed__ long long __s64;
+__extension_long_long typedef unsigned long long __u64;
+
#endif /* __ASSEMBLY__ */

/*
diff --git a/include/asm-v850/types.h b/include/asm-v850/types.h
index 284bda8..6fac765 100644
--- a/include/asm-v850/types.h
+++ b/include/asm-v850/types.h
@@ -27,11 +27,15 @@ typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;

-#if defined(__GNUC__)
-__extension__ typedef __signed__ long long __s64;
-__extension__ typedef unsigned long long __u64;
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define __extension_long_long __extension__
+#else
+#define __extension_long_long
#endif

+__extension_long_long typedef __signed__ long long __s64;
+__extension_long_long typedef unsigned long long __u64;
+
#endif /* !__ASSEMBLY__ */

/*
diff --git a/include/asm-xtensa/types.h b/include/asm-xtensa/types.h
index 958f362..184c058 100644
--- a/include/asm-xtensa/types.h
+++ b/include/asm-xtensa/types.h
@@ -29,11 +29,15 @@ typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;

-#if defined(__GNUC__)
-__extension__ typedef __signed__ long long __s64;
-__extension__ typedef unsigned long long __u64;
+#if defined(__GNUC__) && defined(__STRICT_ANSI__)
+#define __extension_long_long __extension__
+#else
+#define __extension_long_long
#endif

+__extension_long_long typedef __signed__ long long __s64;
+__extension_long_long typedef unsigned long long __u64;
+
/*
* These aren't exported outside the kernel to avoid name space clashes
*/

2007-08-27 21:30:51

by Adrian Bunk

[permalink] [raw]
Subject: 2.6.23-rc3-mm1: m32r defconfig compile error

On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.23-rc2-mm2:
>...
> git-m32r.patch
>...
> git trees
>...

<-- snip -->

...
AS arch/m32r/kernel/entry.o
/home/bunk/linux/kernel-2.6/linux-2.6.23-rc3-mm1/arch/m32r/kernel/entry.S: Assembler messages:
/home/bunk/linux/kernel-2.6/linux-2.6.23-rc3-mm1/arch/m32r/kernel/entry.S:358: Error: bad instruction `addi r0,#(((((0)+(64))+(32))+(32)))'
make[2]: *** [arch/m32r/kernel/entry.o] Error 1

<-- snip -->

cu
Adrian

--

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

2007-08-27 21:31:20

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] remove unwind exports

On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.23-rc2-mm2:
>...
> +x86_64-mm-unwinder.patch
>...
> x86 tree updates
>...

This patch removes the unused unwind exports.

Signed-off-by: Adrian Bunk <[email protected]>

---

kernel/unwind.c | 4 ----
1 file changed, 4 deletions(-)

844ccf670a8204df45b89407bb0e5867f03d0f71
diff --git a/kernel/unwind.c b/kernel/unwind.c
index 8c267c7..adb1ebe 100644
--- a/kernel/unwind.c
+++ b/kernel/unwind.c
@@ -1243,7 +1243,6 @@ int unwind(struct unwind_frame_info *frame)
#undef CASES
#undef FRAME_REG
}
-EXPORT_SYMBOL(unwind);

int unwind_init_frame_info(struct unwind_frame_info *info,
struct task_struct *tsk,
@@ -1255,7 +1254,6 @@ int unwind_init_frame_info(struct unwind_frame_info *info,

return 0;
}
-EXPORT_SYMBOL(unwind_init_frame_info);

/*
* Prepare to unwind a blocked task.
@@ -1269,7 +1267,6 @@ int unwind_init_blocked(struct unwind_frame_info *info,

return 0;
}
-EXPORT_SYMBOL(unwind_init_blocked);

/*
* Prepare to unwind the currently running thread.
@@ -1284,5 +1281,4 @@ int unwind_init_running(struct unwind_frame_info *info,

return arch_unwind_init_running(info, callback, arg);
}
-EXPORT_SYMBOL(unwind_init_running);


2007-08-27 21:32:21

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] unexport noautodma

On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.23-rc2-mm2:
>...
> +ide-ide-remove-hwif-autodma-and-drive-autodma.patch
>...
> IDE tree updates
>...

noautodma can now be unexported.

Signed-off-by: Adrian Bunk <[email protected]>

---
957dc7601c050cb14a7afc842db0c2d62aaf3509
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index b3b5f00..5b09066 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -100,8 +100,6 @@ static int ide_scan_direction; /* THIS was formerly 2.2.x pci=reverse */

int noautodma = 0;

-EXPORT_SYMBOL(noautodma);
-
#ifdef CONFIG_BLK_DEV_IDEACPI
int ide_noacpi = 0;
int ide_noacpitfs = 1;

2007-08-27 21:36:39

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] mousedev.c:mixdev_open_devices() bugfix

On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.23-rc2-mm2:
>...
> git-input.patch
>...
> git trees
>...

This patch fixes an obvious bug in mixdev_open_devices().

Signed-off-by: Adrian Bunk <[email protected]>

---
bb574366744163ff84609843ee43e84a39f57d5a
diff --git a/drivers/input/mousedev.c b/drivers/input/mousedev.c
index 2ad8633..4ca0ad3 100644
--- a/drivers/input/mousedev.c
+++ b/drivers/input/mousedev.c
@@ -461,7 +461,7 @@ static void mixdev_open_devices(void)

list_for_each_entry(mousedev, &mousedev_mix_list, mixdev_node) {
if (!mousedev->mixdev_open) {
- if (mousedev_open_device(mousedev));
+ if (mousedev_open_device(mousedev))
continue;

mousedev->mixdev_open = 1;

2007-08-27 21:41:30

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] ivtv-fb.c bugfix

On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.23-rc2-mm2:
>...
> git-dvb.patch
>...
> git trees
>...

This patch fixes an obvious bug in ivtvfb_release_buffers().

Signed-off-by: Adrian Bunk <[email protected]>

---
093bdc9ba94bffbec2ed44743418899771488832
diff --git a/drivers/media/video/ivtv/ivtv-fb.c b/drivers/media/video/ivtv/ivtv-fb.c
index 0080765..8a344d5 100644
--- a/drivers/media/video/ivtv/ivtv-fb.c
+++ b/drivers/media/video/ivtv/ivtv-fb.c
@@ -1068,8 +1068,8 @@ static void ivtvfb_release_buffers (struct ivtv *itv)
struct osd_info *oi = itv->osd_info;

/* Release cmap */
- if (oi->ivtvfb_info.cmap.len);
- fb_dealloc_cmap(&oi->ivtvfb_info.cmap);
+ if (oi->ivtvfb_info.cmap.len)
+ fb_dealloc_cmap(&oi->ivtvfb_info.cmap);

/* Release pseudo palette */
if (oi->ivtvfb_info.pseudo_palette)

2007-08-27 21:41:53

by Adrian Bunk

[permalink] [raw]
Subject: [-mm patch] iwl-base.c bugfixes

On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.23-rc2-mm2:
>...
> git-wireless.patch
>...
> git trees
>...

This patch fixes two obvious bugs.

Signed-off-by: Adrian Bunk <[email protected]>

---

drivers/net/wireless/iwl-base.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

600ffdc11b25ac0aee15271d1b2ce99a367efa31
diff --git a/drivers/net/wireless/iwl-base.c b/drivers/net/wireless/iwl-base.c
index b8293fe..f65c30e 100644
--- a/drivers/net/wireless/iwl-base.c
+++ b/drivers/net/wireless/iwl-base.c
@@ -343,7 +343,7 @@ int iwl_tx_queue_init(struct iwl_priv *priv,
* command is very huge the system will not have two scan at the
* same time */
len = sizeof(struct iwl_cmd) * slots_num;
- if (txq_id == IWL_CMD_QUEUE_NUM);
+ if (txq_id == IWL_CMD_QUEUE_NUM)
len += IWL_MAX_SCAN_SIZE;
txq->cmd = pci_alloc_consistent(dev, len, &txq->dma_addr_cmd);
if (!txq->cmd)
@@ -390,7 +390,7 @@ void iwl_tx_queue_free(struct iwl_priv *priv, struct iwl_tx_queue *txq)
iwl_hw_txq_free_tfd(priv, txq);

len = sizeof(struct iwl_cmd) * q->n_window;
- if (q->id == IWL_CMD_QUEUE_NUM);
+ if (q->id == IWL_CMD_QUEUE_NUM)
len += IWL_MAX_SCAN_SIZE;

pci_free_consistent(dev, len, txq->cmd, txq->dma_addr_cmd);

2007-08-27 21:42:33

by Adrian Bunk

[permalink] [raw]
Subject: 2.6.23-rc3-mm1: i386: -maccumulate-outgoing-args unconditionally

On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
>...
> Changes since 2.6.23-rc2-mm2:
>...
> +x86_64-mm-unwinder.patch
>...
> +x86_64-mm-remove-maccumulate-outgoing-args.patch
>...
> x86 tree updates
>...

-maccumulate-outgoing-args on i386 count:
1 + 1 - 1 = 1

If the stack unwinder needs it please enable it only explicitely when
the unwinder is enabled - we are talking about a 2.5% size increase
with defconfig.

cu
Adrian

--

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

2007-08-27 21:49:48

by Mike Frysinger

[permalink] [raw]
Subject: Re: [-mm patch] make types.h usable for non-gcc C parsers

On 8/27/07, Adrian Bunk <[email protected]> wrote:
> This patch makes the 64bit integers on 32bit architectures usable for
> all C parsers that know about "long long".

ah, yet another attempt at this stuff

you probably need to update linux/types.h as well
-mike

2007-08-27 21:50:53

by Adrian Bunk

[permalink] [raw]
Subject: Re: [-mm patch] make types.h usable for non-gcc C parsers

On Mon, Aug 27, 2007 at 05:34:21PM -0400, Mike Frysinger wrote:
> On 8/27/07, Adrian Bunk <[email protected]> wrote:
> > This patch makes the 64bit integers on 32bit architectures usable for
> > all C parsers that know about "long long".
>
> ah, yet another attempt at this stuff
>
> you probably need to update linux/types.h as well

What problems do you observe with linux/types.h?

> -mike

cu
Adrian

--

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

2007-08-27 21:53:36

by Mike Frysinger

[permalink] [raw]
Subject: Re: [-mm patch] make types.h usable for non-gcc C parsers

On 8/27/07, Adrian Bunk <[email protected]> wrote:
> On Mon, Aug 27, 2007 at 05:34:21PM -0400, Mike Frysinger wrote:
> > On 8/27/07, Adrian Bunk <[email protected]> wrote:
> > > This patch makes the 64bit integers on 32bit architectures usable for
> > > all C parsers that know about "long long".
> >
> > ah, yet another attempt at this stuff
> >
> > you probably need to update linux/types.h as well
>
> What problems do you observe with linux/types.h?

just grep for __GNUC__ ...

#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
typedef __u64 uint64_t;
typedef __u64 u_int64_t;
typedef __s64 int64_t;
#endif

#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
typedef __u64 __bitwise __le64;
typedef __u64 __bitwise __be64;
#endif

you've made available __u64 and __s64, but not the rest ...
-mike

2007-08-27 22:34:29

by Tomas Winkler

[permalink] [raw]
Subject: Re: [-mm patch] iwl-base.c bugfixes

On 8/28/07, Adrian Bunk <[email protected]> wrote:
> On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
> >...
> > Changes since 2.6.23-rc2-mm2:
> >...
> > git-wireless.patch
> >...
> > git trees
> >...
>
> This patch fixes two obvious bugs.
>
> Signed-off-by: Adrian Bunk <[email protected]>
>
> ---
>
> drivers/net/wireless/iwl-base.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> 600ffdc11b25ac0aee15271d1b2ce99a367efa31
> diff --git a/drivers/net/wireless/iwl-base.c b/drivers/net/wireless/iwl-base.c
> index b8293fe..f65c30e 100644
> --- a/drivers/net/wireless/iwl-base.c
> +++ b/drivers/net/wireless/iwl-base.c
> @@ -343,7 +343,7 @@ int iwl_tx_queue_init(struct iwl_priv *priv,
> * command is very huge the system will not have two scan at the
> * same time */
> len = sizeof(struct iwl_cmd) * slots_num;
> - if (txq_id == IWL_CMD_QUEUE_NUM);
> + if (txq_id == IWL_CMD_QUEUE_NUM)
> len += IWL_MAX_SCAN_SIZE;
> txq->cmd = pci_alloc_consistent(dev, len, &txq->dma_addr_cmd);
> if (!txq->cmd)
> @@ -390,7 +390,7 @@ void iwl_tx_queue_free(struct iwl_priv *priv, struct iwl_tx_queue *txq)
> iwl_hw_txq_free_tfd(priv, txq);
>
> len = sizeof(struct iwl_cmd) * q->n_window;
> - if (q->id == IWL_CMD_QUEUE_NUM);
> + if (q->id == IWL_CMD_QUEUE_NUM)
> len += IWL_MAX_SCAN_SIZE;
>
> pci_free_consistent(dev, len, txq->cmd, txq->dma_addr_cmd);
>
>
Shame on me.
Thanks
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>

2007-08-27 22:40:01

by Adam Belay

[permalink] [raw]
Subject: Re: [-mm patch] make "struct menu_governor" static (again)

This is already fixed in the most recent ACPI CPUIDLE tree.

Thanks,
Adam

On Mon, 2007-08-27 at 23:27 +0200, Adrian Bunk wrote:
> On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
> >...
> > Changes since 2.6.23-rc2-mm2:
> >...
> > git-acpi.patch
> >...
> > git trees
> >...
>
> "struct menu_governor" needlessly again became global.
>
> Signed-off-by: Adrian Bunk <[email protected]>
>
> ---
> cb33b296204127cf50df54b84b2d79e152fb924b
> diff --git a/drivers/cpuidle/governors/menu.c b/drivers/cpuidle/governors/menu.c
> index f5a8865..8d3fdc5 100644
> --- a/drivers/cpuidle/governors/menu.c
> +++ b/drivers/cpuidle/governors/menu.c
> @@ -117,7 +117,7 @@ static int menu_enable_device(struct cpuidle_device *dev)
> return 0;
> }
>
> -struct cpuidle_governor menu_governor = {
> +static struct cpuidle_governor menu_governor = {
> .name = "menu",
> .rating = 20,
> .enable = menu_enable_device,
>

2007-08-27 22:53:37

by Arjan van de Ven

[permalink] [raw]
Subject: Re: [-mm patch] unexport sys_{open,read}

On Mon, 27 Aug 2007 23:27:23 +0200
Adrian Bunk <[email protected]> wrote:

> On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
> >...
> > Changes since 2.6.23-rc2-mm2:
> >...
> > git-alsa.patch
> >...
> > git trees
> >...
>
> sys_{open,read} can finally be unexported.
>

isn't sys_close in the same boat?

2007-08-27 23:17:47

by Adrian Bunk

[permalink] [raw]
Subject: Re: [-mm patch] unexport sys_{open,read}

On Mon, Aug 27, 2007 at 03:53:02PM -0700, Arjan van de Ven wrote:
> On Mon, 27 Aug 2007 23:27:23 +0200
> Adrian Bunk <[email protected]> wrote:
>
> > On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
> > >...
> > > Changes since 2.6.23-rc2-mm2:
> > >...
> > > git-alsa.patch
> > >...
> > > git trees
> > >...
> >
> > sys_{open,read} can finally be unexported.
> >
>
> isn't sys_close in the same boat?

Still used in fs/binfmt_misc.c ...

cu
Adrian

--

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

2007-08-28 03:50:23

by Hirokazu Takata

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1: m32r defconfig compile error

From: Adrian Bunk <[email protected]>
Subject: 2.6.23-rc3-mm1: m32r defconfig compile error
Date: Mon, 27 Aug 2007 23:27:48 +0200
> On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
> >...
> > Changes since 2.6.23-rc2-mm2:
> >...
> > git-m32r.patch
> >...
> > git trees
> >...
>
> <-- snip -->
>
> ...
> AS arch/m32r/kernel/entry.o
> /home/bunk/linux/kernel-2.6/linux-2.6.23-rc3-mm1/arch/m32r/kernel/entry.S: Assembler messages:
> /home/bunk/linux/kernel-2.6/linux-2.6.23-rc3-mm1/arch/m32r/kernel/entry.S:358: Error: bad instruction `addi r0,#(((((0)+(64))+(32))+(32)))'
> make[2]: *** [arch/m32r/kernel/entry.o] Error 1
>
> <-- snip -->
>
> cu
> Adrian
>

Hello, Adrian,

Thank you for the report.


M32700UT/OPSPUT Users,

Please apply this patch to build an m32r 2.6.23-rc3-mm1 kernel.

This patch has also included to my m32r kernel development git repository.
git://http://www.linux-m32r.org/git/takata/linux-2.6_dev.git linux-m32r

Thanks,

-- Takata


[PATCH 2.6.23-rc3-mm1] m32r: build fix of entry.S

This patch is required to fix build errors for the modification:
m32r: Simplify ei_handler code
commit f6c7546d53a4288501dcdd96d5297214697e7237

Signed-off-by: Hirokazu Takata <[email protected]>
---
arch/m32r/kernel/entry.S | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/m32r/kernel/entry.S b/arch/m32r/kernel/entry.S
index c46cfaa..42b08bf 100644
--- a/arch/m32r/kernel/entry.S
+++ b/arch/m32r/kernel/entry.S
@@ -355,7 +355,7 @@ ENTRY(ei_handler)
lduh r0, @(low(M32R_INT0ICU_ISTS),r0) ; bit10-6 : ISN
slli r0, #21
srli r0, #27 ; ISN
- addi r0, #(M32R_INT0ICU_IRQ_BASE)
+ add3 r0, r0, #(M32R_INT0ICU_IRQ_BASE)
bra check_end
.fillinsn
4:
@@ -367,7 +367,7 @@ ENTRY(ei_handler)
lduh r0, @(low(M32R_INT2ICU_ISTS),r0) ; bit10-6 : ISN
slli r0, #21
srli r0, #27 ; ISN
- addi r0, #(M32R_INT2ICU_IRQ_BASE)
+ add3 r0, r0, #(M32R_INT2ICU_IRQ_BASE)
; bra check_end
.fillinsn
5:
--
1.5.2.4

--
Hirokazu Takata <[email protected]>
Linux/M32R Project: http://www.linux-m32r.org/

2007-08-28 06:30:38

by Hans Verkuil

[permalink] [raw]
Subject: Re: [v4l-dvb-maintainer] [-mm patch] ivtv-fb.c bugfix

On Monday 27 August 2007 23:29:29 Adrian Bunk wrote:
> On Wed, Aug 22, 2007 at 02:06:48AM -0700, Andrew Morton wrote:
> >...
> > Changes since 2.6.23-rc2-mm2:
> >...
> > git-dvb.patch
> >...
> > git trees
> >...
>
> This patch fixes an obvious bug in ivtvfb_release_buffers().
>
> Signed-off-by: Adrian Bunk <[email protected]>

Ouch. Thanks.

Mauro, I've added this patch to my v4l-dvb tree. Can you pull from it?

Thanks,

Hans

>
> ---
> 093bdc9ba94bffbec2ed44743418899771488832
> diff --git a/drivers/media/video/ivtv/ivtv-fb.c
> b/drivers/media/video/ivtv/ivtv-fb.c index 0080765..8a344d5 100644
> --- a/drivers/media/video/ivtv/ivtv-fb.c
> +++ b/drivers/media/video/ivtv/ivtv-fb.c
> @@ -1068,8 +1068,8 @@ static void ivtvfb_release_buffers (struct ivtv
> *itv) struct osd_info *oi = itv->osd_info;
>
> /* Release cmap */
> - if (oi->ivtvfb_info.cmap.len);
> - fb_dealloc_cmap(&oi->ivtvfb_info.cmap);
> + if (oi->ivtvfb_info.cmap.len)
> + fb_dealloc_cmap(&oi->ivtvfb_info.cmap);
>
> /* Release pseudo palette */
> if (oi->ivtvfb_info.pseudo_palette)
>
>
> _______________________________________________
> v4l-dvb-maintainer mailing list
> [email protected]
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/v4l-dvb-maintainer


2007-08-28 07:37:36

by Andrew Morton

[permalink] [raw]
Subject: Re: [-mm patch] make types.h usable for non-gcc C parsers

On Mon, 27 Aug 2007 23:27:43 +0200 Adrian Bunk <[email protected]> wrote:

> On Wed, Aug 22, 2007 at 03:33:27PM +0200, Gabriel C wrote:
> >...
> > WARNING: "div64_64" [net/netfilter/xt_connbytes.ko] has no CRC!
> >...
>
> Patch below.
>
> > Regards,
> >
> > Gabriel
>
> cu
> Adrian
>
>
> <-- snip -->
>
>
> This patch makes the 64bit integers on 32bit architectures usable for
> all C parsers that know about "long long".
>
> Signed-off-by: Adrian Bunk <[email protected]>
>

Given that this patch (hopefully) fixes a problem in the current net-2.6.24
tree, I'm inclined to slip it into mainline immediately.

But I'd like a better description, please. Which "non-gcc parser" are we
talking about here? Something under ./scripts/. Well, please identify it,
and describe what the problem is, and how the proposed patch will address
it.

Let's cc Sam too, as I guess he's the guy whose code just broke.

Thanks.

(patch retained for cc'ees)

> ---
>
> include/asm-arm/types.h | 10 +++++++---
> include/asm-avr32/types.h | 10 +++++++---
> include/asm-blackfin/types.h | 11 +++++++----
> include/asm-cris/types.h | 10 +++++++---
> include/asm-frv/types.h | 10 +++++++---
> include/asm-h8300/types.h | 10 +++++++---
> include/asm-i386/types.h | 10 +++++++---
> include/asm-m32r/types.h | 11 ++++++++---
> include/asm-m68k/types.h | 10 +++++++---
> include/asm-mips/types.h | 10 +++++++---
> include/asm-parisc/types.h | 10 +++++++---
> include/asm-powerpc/types.h | 9 ++++++---
> include/asm-s390/types.h | 9 ++++++---
> include/asm-sh/types.h | 10 +++++++---
> include/asm-sh64/types.h | 10 +++++++---
> include/asm-v850/types.h | 10 +++++++---
> include/asm-xtensa/types.h | 10 +++++++---
> 17 files changed, 118 insertions(+), 52 deletions(-)
>
> 4b6826d7a2f5b54a6a3b1cfa8cd40b1b27621be0
> diff --git a/include/asm-arm/types.h b/include/asm-arm/types.h
> index 3141451..1dae25b 100644
> --- a/include/asm-arm/types.h
> +++ b/include/asm-arm/types.h
> @@ -19,11 +19,15 @@ typedef unsigned short __u16;
> typedef __signed__ int __s32;
> typedef unsigned int __u32;
>
> -#if defined(__GNUC__)
> -__extension__ typedef __signed__ long long __s64;
> -__extension__ typedef unsigned long long __u64;
> +#if defined(__GNUC__) && defined(__STRICT_ANSI__)
> +#define __extension_long_long __extension__
> +#else
> +#define __extension_long_long
> #endif
>
> +__extension_long_long typedef __signed__ long long __s64;
> +__extension_long_long typedef unsigned long long __u64;
> +
> #endif /* __ASSEMBLY__ */
>
> /*
> diff --git a/include/asm-avr32/types.h b/include/asm-avr32/types.h
> index 8999a38..2c14f49 100644
> --- a/include/asm-avr32/types.h
> +++ b/include/asm-avr32/types.h
> @@ -25,11 +25,15 @@ typedef unsigned short __u16;
> typedef __signed__ int __s32;
> typedef unsigned int __u32;
>
> -#if defined(__GNUC__)
> -__extension__ typedef __signed__ long long __s64;
> -__extension__ typedef unsigned long long __u64;
> +#if defined(__GNUC__) && defined(__STRICT_ANSI__)
> +#define __extension_long_long __extension__
> +#else
> +#define __extension_long_long
> #endif
>
> +__extension_long_long typedef __signed__ long long __s64;
> +__extension_long_long typedef unsigned long long __u64;
> +
> #endif /* __ASSEMBLY__ */
>
> /*
> diff --git a/include/asm-blackfin/types.h b/include/asm-blackfin/types.h
> index 9785a6d..d0666b9 100644
> --- a/include/asm-blackfin/types.h
> +++ b/include/asm-blackfin/types.h
> @@ -26,12 +26,15 @@ typedef unsigned short __u16;
> typedef __signed__ int __s32;
> typedef unsigned int __u32;
>
> -/* HK0617 -- Changes to unsigned long temporarily */
> -#if defined(__GNUC__)
> -__extension__ typedef __signed__ long long __s64;
> -__extension__ typedef unsigned long long __u64;
> +#if defined(__GNUC__) && defined(__STRICT_ANSI__)
> +#define __extension_long_long __extension__
> +#else
> +#define __extension_long_long
> #endif
>
> +__extension_long_long typedef __signed__ long long __s64;
> +__extension_long_long typedef unsigned long long __u64;
> +
> #endif /* __ASSEMBLY__ */
> /*
> * These aren't exported outside the kernel to avoid name space clashes
> diff --git a/include/asm-cris/types.h b/include/asm-cris/types.h
> index 5a21c42..6c46a90 100644
> --- a/include/asm-cris/types.h
> +++ b/include/asm-cris/types.h
> @@ -19,11 +19,15 @@ typedef unsigned short __u16;
> typedef __signed__ int __s32;
> typedef unsigned int __u32;
>
> -#if defined(__GNUC__)
> -__extension__ typedef __signed__ long long __s64;
> -__extension__ typedef unsigned long long __u64;
> +#if defined(__GNUC__) && defined(__STRICT_ANSI__)
> +#define __extension_long_long __extension__
> +#else
> +#define __extension_long_long
> #endif
>
> +__extension_long_long typedef __signed__ long long __s64;
> +__extension_long_long typedef unsigned long long __u64;
> +
> #endif /* __ASSEMBLY__ */
>
> /*
> diff --git a/include/asm-frv/types.h b/include/asm-frv/types.h
> index 767e5ed..728c234 100644
> --- a/include/asm-frv/types.h
> +++ b/include/asm-frv/types.h
> @@ -30,11 +30,15 @@ typedef unsigned short __u16;
> typedef __signed__ int __s32;
> typedef unsigned int __u32;
>
> -#if defined(__GNUC__)
> -__extension__ typedef __signed__ long long __s64;
> -__extension__ typedef unsigned long long __u64;
> +#if defined(__GNUC__) && defined(__STRICT_ANSI__)
> +#define __extension_long_long __extension__
> +#else
> +#define __extension_long_long
> #endif
>
> +__extension_long_long typedef __signed__ long long __s64;
> +__extension_long_long typedef unsigned long long __u64;
> +
> #endif /* __ASSEMBLY__ */
>
> /*
> diff --git a/include/asm-h8300/types.h b/include/asm-h8300/types.h
> index 56566e2..1fc2dd9 100644
> --- a/include/asm-h8300/types.h
> +++ b/include/asm-h8300/types.h
> @@ -27,11 +27,15 @@ typedef unsigned short __u16;
> typedef __signed__ int __s32;
> typedef unsigned int __u32;
>
> -#if defined(__GNUC__)
> -__extension__ typedef __signed__ long long __s64;
> -__extension__ typedef unsigned long long __u64;
> +#if defined(__GNUC__) && defined(__STRICT_ANSI__)
> +#define __extension_long_long __extension__
> +#else
> +#define __extension_long_long
> #endif
>
> +__extension_long_long typedef __signed__ long long __s64;
> +__extension_long_long typedef unsigned long long __u64;
> +
> /*
> * These aren't exported outside the kernel to avoid name space clashes
> */
> diff --git a/include/asm-i386/types.h b/include/asm-i386/types.h
> index faca192..a2c3b35 100644
> --- a/include/asm-i386/types.h
> +++ b/include/asm-i386/types.h
> @@ -19,11 +19,15 @@ typedef unsigned short __u16;
> typedef __signed__ int __s32;
> typedef unsigned int __u32;
>
> -#if defined(__GNUC__)
> -__extension__ typedef __signed__ long long __s64;
> -__extension__ typedef unsigned long long __u64;
> +#if defined(__GNUC__) && defined(__STRICT_ANSI__)
> +#define __extension_long_long __extension__
> +#else
> +#define __extension_long_long
> #endif
>
> +__extension_long_long typedef __signed__ long long __s64;
> +__extension_long_long typedef unsigned long long __u64;
> +
> #endif /* __ASSEMBLY__ */
>
> /*
> diff --git a/include/asm-m32r/types.h b/include/asm-m32r/types.h
> index b64c166..8071e22 100644
> --- a/include/asm-m32r/types.h
> +++ b/include/asm-m32r/types.h
> @@ -19,10 +19,15 @@ typedef unsigned short __u16;
> typedef __signed__ int __s32;
> typedef unsigned int __u32;
>
> -#if defined(__GNUC__)
> -__extension__ typedef __signed__ long long __s64;
> -__extension__ typedef unsigned long long __u64;
> +#if defined(__GNUC__) && defined(__STRICT_ANSI__)
> +#define __extension_long_long __extension__
> +#else
> +#define __extension_long_long
> #endif
> +
> +__extension_long_long typedef __signed__ long long __s64;
> +__extension_long_long typedef unsigned long long __u64;
> +
> #endif /* __ASSEMBLY__ */
>
> /*
> diff --git a/include/asm-m68k/types.h b/include/asm-m68k/types.h
> index c35c09d..43e0186 100644
> --- a/include/asm-m68k/types.h
> +++ b/include/asm-m68k/types.h
> @@ -27,11 +27,15 @@ typedef unsigned short __u16;
> typedef __signed__ int __s32;
> typedef unsigned int __u32;
>
> -#if defined(__GNUC__)
> -__extension__ typedef __signed__ long long __s64;
> -__extension__ typedef unsigned long long __u64;
> +#if defined(__GNUC__) && defined(__STRICT_ANSI__)
> +#define __extension_long_long __extension__
> +#else
> +#define __extension_long_long
> #endif
>
> +__extension_long_long typedef __signed__ long long __s64;
> +__extension_long_long typedef unsigned long long __u64;
> +
> #endif /* __ASSEMBLY__ */
>
> /*
> diff --git a/include/asm-mips/types.h b/include/asm-mips/types.h
> index 2dd147f..fe1eb32 100644
> --- a/include/asm-mips/types.h
> +++ b/include/asm-mips/types.h
> @@ -34,11 +34,15 @@ typedef unsigned long __u64;
>
> #else
>
> -#if defined(__GNUC__)
> -__extension__ typedef __signed__ long long __s64;
> -__extension__ typedef unsigned long long __u64;
> +#if defined(__GNUC__) && defined(__STRICT_ANSI__)
> +#define __extension_long_long __extension__
> +#else
> +#define __extension_long_long
> #endif
>
> +__extension_long_long typedef __signed__ long long __s64;
> +__extension_long_long typedef unsigned long long __u64;
> +
> #endif
>
> #endif /* __ASSEMBLY__ */
> diff --git a/include/asm-parisc/types.h b/include/asm-parisc/types.h
> index 56c8480..5df2b11 100644
> --- a/include/asm-parisc/types.h
> +++ b/include/asm-parisc/types.h
> @@ -19,11 +19,15 @@ typedef unsigned short __u16;
> typedef __signed__ int __s32;
> typedef unsigned int __u32;
>
> -#if defined(__GNUC__)
> -__extension__ typedef __signed__ long long __s64;
> -__extension__ typedef unsigned long long __u64;
> +#if defined(__GNUC__) && defined(__STRICT_ANSI__)
> +#define __extension_long_long __extension__
> +#else
> +#define __extension_long_long
> #endif
>
> +__extension_long_long typedef __signed__ long long __s64;
> +__extension_long_long typedef unsigned long long __u64;
> +
> #endif /* __ASSEMBLY__ */
>
> /*
> diff --git a/include/asm-powerpc/types.h b/include/asm-powerpc/types.h
> index 695e2ce..2ce1998 100644
> --- a/include/asm-powerpc/types.h
> +++ b/include/asm-powerpc/types.h
> @@ -40,10 +40,13 @@ typedef unsigned int __u32;
> typedef __signed__ long __s64;
> typedef unsigned long __u64;
> #else
> -#if defined(__GNUC__)
> -__extension__ typedef __signed__ long long __s64;
> -__extension__ typedef unsigned long long __u64;
> +#if defined(__GNUC__) && defined(__STRICT_ANSI__)
> +#define __extension_long_long __extension__
> +#else
> +#define __extension_long_long
> #endif
> +__extension_long_long typedef __signed__ long long __s64;
> +__extension_long_long typedef unsigned long long __u64;
> #endif /* __powerpc64__ */
>
> typedef struct {
> diff --git a/include/asm-s390/types.h b/include/asm-s390/types.h
> index 2c5879a..9590d00 100644
> --- a/include/asm-s390/types.h
> +++ b/include/asm-s390/types.h
> @@ -28,10 +28,13 @@ typedef __signed__ int __s32;
> typedef unsigned int __u32;
>
> #ifndef __s390x__
> -#if defined(__GNUC__)
> -__extension__ typedef __signed__ long long __s64;
> -__extension__ typedef unsigned long long __u64;
> +#if defined(__GNUC__) && defined(__STRICT_ANSI__)
> +#define __extension_long_long __extension__
> +#else
> +#define __extension_long_long
> #endif
> +__extension_long_long typedef __signed__ long long __s64;
> +__extension_long_long typedef unsigned long long __u64;
> #else /* __s390x__ */
> typedef __signed__ long __s64;
> typedef unsigned long __u64;
> diff --git a/include/asm-sh/types.h b/include/asm-sh/types.h
> index 7ba69d9..d747b87 100644
> --- a/include/asm-sh/types.h
> +++ b/include/asm-sh/types.h
> @@ -19,11 +19,15 @@ typedef unsigned short __u16;
> typedef __signed__ int __s32;
> typedef unsigned int __u32;
>
> -#if defined(__GNUC__)
> -__extension__ typedef __signed__ long long __s64;
> -__extension__ typedef unsigned long long __u64;
> +#if defined(__GNUC__) && defined(__STRICT_ANSI__)
> +#define __extension_long_long __extension__
> +#else
> +#define __extension_long_long
> #endif
>
> +__extension_long_long__ typedef __signed__ long long __s64;
> +__extension_long_long__ typedef unsigned long long __u64;
> +
> #endif /* __ASSEMBLY__ */
>
> /*
> diff --git a/include/asm-sh64/types.h b/include/asm-sh64/types.h
> index 2c7ad73..e5e90ff 100644
> --- a/include/asm-sh64/types.h
> +++ b/include/asm-sh64/types.h
> @@ -30,11 +30,15 @@ typedef unsigned short __u16;
> typedef __signed__ int __s32;
> typedef unsigned int __u32;
>
> -#if defined(__GNUC__)
> -__extension__ typedef __signed__ long long __s64;
> -__extension__ typedef unsigned long long __u64;
> +#if defined(__GNUC__) && defined(__STRICT_ANSI__)
> +#define __extension_long_long __extension__
> +#else
> +#define __extension_long_long
> #endif
>
> +__extension_long_long typedef __signed__ long long __s64;
> +__extension_long_long typedef unsigned long long __u64;
> +
> #endif /* __ASSEMBLY__ */
>
> /*
> diff --git a/include/asm-v850/types.h b/include/asm-v850/types.h
> index 284bda8..6fac765 100644
> --- a/include/asm-v850/types.h
> +++ b/include/asm-v850/types.h
> @@ -27,11 +27,15 @@ typedef unsigned short __u16;
> typedef __signed__ int __s32;
> typedef unsigned int __u32;
>
> -#if defined(__GNUC__)
> -__extension__ typedef __signed__ long long __s64;
> -__extension__ typedef unsigned long long __u64;
> +#if defined(__GNUC__) && defined(__STRICT_ANSI__)
> +#define __extension_long_long __extension__
> +#else
> +#define __extension_long_long
> #endif
>
> +__extension_long_long typedef __signed__ long long __s64;
> +__extension_long_long typedef unsigned long long __u64;
> +
> #endif /* !__ASSEMBLY__ */
>
> /*
> diff --git a/include/asm-xtensa/types.h b/include/asm-xtensa/types.h
> index 958f362..184c058 100644
> --- a/include/asm-xtensa/types.h
> +++ b/include/asm-xtensa/types.h
> @@ -29,11 +29,15 @@ typedef unsigned short __u16;
> typedef __signed__ int __s32;
> typedef unsigned int __u32;
>
> -#if defined(__GNUC__)
> -__extension__ typedef __signed__ long long __s64;
> -__extension__ typedef unsigned long long __u64;
> +#if defined(__GNUC__) && defined(__STRICT_ANSI__)
> +#define __extension_long_long __extension__
> +#else
> +#define __extension_long_long
> #endif
>
> +__extension_long_long typedef __signed__ long long __s64;
> +__extension_long_long typedef unsigned long long __u64;
> +
> /*
> * These aren't exported outside the kernel to avoid name space clashes
> */

2007-08-28 08:42:13

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [-mm patch] make types.h usable for non-gcc C parsers

On Tue, Aug 28, 2007 at 12:37:04AM -0700, Andrew Morton wrote:
> On Mon, 27 Aug 2007 23:27:43 +0200 Adrian Bunk <[email protected]> wrote:
>
> > On Wed, Aug 22, 2007 at 03:33:27PM +0200, Gabriel C wrote:
> > >...
> > > WARNING: "div64_64" [net/netfilter/xt_connbytes.ko] has no CRC!
> > >...
> >
> > Patch below.
> >
> > > Regards,
> > >
> > > Gabriel
> >
> > cu
> > Adrian
> >
> >
> > <-- snip -->
> >
> >
> > This patch makes the 64bit integers on 32bit architectures usable for
> > all C parsers that know about "long long".
> >
> > Signed-off-by: Adrian Bunk <[email protected]>
> >
>
> Given that this patch (hopefully) fixes a problem in the current net-2.6.24
> tree, I'm inclined to slip it into mainline immediately.
>
> But I'd like a better description, please. Which "non-gcc parser" are we
> talking about here? Something under ./scripts/. Well, please identify it,
> and describe what the problem is, and how the proposed patch will address
> it.
>
> Let's cc Sam too, as I guess he's the guy whose code just broke.

If my analysis is correct then genksyms fails to produce a CRC for div64_64 because
genksyms does not know the __extension__ keyword.
And this patch just paper over the real bug wich is in genksyms - right?

So we should fix the root cause here.

Googeling I did not find a good description of where __extension__ can be
used so I fail to see where in the parse.y file I shal add the keyword.
I think __extension__ may be used both as a part of an expression AND
as part of a typedef (as in this case) but I wonder if this is where it is limited
to be used.
I would like to have this sorted out so we do not do a half-backed solution,
and the proposed patch as it just paper over the real bug is no good.

Sam

2007-08-28 11:33:14

by Jiri Slaby

[permalink] [raw]
Subject: oops at sr_block_release [Re: 2.6.23-rc3-mm1]

Andrew Morton napsal(a):
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/

I got this during gxine initialization of ocko.tv live stream without any cd in
cdroms:

BUG: unable to handle kernel NULL pointer dereference at virtual address 0000005c
printing eip: f88fbe7a *pde = 00000000
Oops: 0000 [#1] SMP
Modules linked in: ath5k arc4 ecb blkcipher cryptomgr crypto_algapi
rc80211_simple mac80211 cfg80211 nls_cp437 vfat fat usb_storage tun ipv6 floppy
parport_pc parport ohci1394 ieee1394 usbhid sr_mod ehci_hcd cdrom ff_memless

Pid: 2809, comm: hald-addon-stor Not tainted (2.6.23-rc3-mm1 #315)
EIP: 0060:[<f88fbe7a>] EFLAGS: 00010246 CPU: 1
EIP is at sr_block_release+0xb/0x2c [sr_mod]
EAX: 00000000 EBX: 00000000 ECX: f88fbe6f EDX: 00000000
ESI: c21c36c0 EDI: c289a780 EBP: c3729f18 ESP: c3729f10
DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Process hald-addon-stor (pid: 2809, ti=c3729000 task=c1c2be40 task.ti=c3729000)
Stack: 00000000 c21c36c0 c3729f38 c018d7ad c21c36cc c1f9ff80 c21c3730 c21c36c0
c2a6ada0 dcbb3f80 c3729f40 c018d7dc c3729f4c c018e103 00000010 c3729f74
c016bc5f 00000000 00000000 c217fa80 c1f9ff80 c2a6ada0 dcbb3f80 c1cc6900
Call Trace:
[<c0105022>] show_trace_log_lvl+0x1a/0x30
[<c01050dd>] show_stack_log_lvl+0xa5/0xca
[<c01051d2>] show_registers+0xd0/0x1c1
[<c01053cd>] die+0x10a/0x24d
[<c011afbe>] do_page_fault+0x496/0x608
[<c03768e2>] error_code+0x72/0x78
[<c018d7ad>] __blkdev_put+0x125/0x14a
[<c018d7dc>] blkdev_put+0xa/0xc
[<c018e103>] blkdev_close+0x29/0x2c
[<c016bc5f>] __fput+0xa6/0x161
[<c016bea4>] fput+0x22/0x3b
[<c016960b>] filp_close+0x41/0x67
[<c016a78c>] sys_close+0x60/0x9f
[<c01040ce>] syscall_call+0x7/0xb
=======================
Code: 0c 81 c3 4c 01 00 00 89 5c 24 08 89 44 24 04 c7 04 24 88 cd 8f f8 e8 99 84
82 c7 e9 04 fe ff ff 55 89 e5 56 53 8b 80 04 01 00 00 <8b> 40 5c 8b 70 3c 8d 46
18 e8 cf f6 fe ff 89 c3 85 c0 75 07 89
EIP: [<f88fbe7a>] sr_block_release+0xb/0x2c [sr_mod] SS:ESP 0068:c3729f10

regards,
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University

2007-08-28 11:41:57

by Jiri Slaby

[permalink] [raw]
Subject: Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]

Does this went through to your boxes? Any progress, clue, idea?

Jiri Slaby napsal(a):
> Andrew Morton napsal(a):
>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>
> Hi,
>
> I've found a regression against 2.6.23-rc2-mm2. X server shutdown freezes
> (untainted) kernel hardly. Nothing on netconsole, X output follows:
>
>
> X Window System Version 1.3.0
> Release Date: 19 April 2007
> X Protocol Version 11, Revision 0, Release 1.3
> Build Operating System: Fedora Core 7 Red Hat, Inc.
> Current Operating System: Linux bellona 2.6.23-rc3-mm1 #315 SMP Wed Aug 22
> 21:43:06 CEST 2007 i686
> Build Date: 11 June 2007
> Build ID: xorg-x11-server 1.3.0.0-9.fc7
> Before reporting problems, check http://wiki.x.org
> to make sure that you have the latest version.
> Module Loader present
> Markers: (--) probed, (**) from config file, (==) default setting,
> (++) from command line, (!!) notice, (II) informational,
> (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
> (==) Log file: "/var/log/Xorg.0.log", Time: Sun Aug 26 14:22:43 2007
> (==) Using config file: "/etc/X11/xorg.conf"
> (WW) RADEON: No matching Device section for instance (BusID PCI:1:0:1) found
> (**) RADEON(0): RADEONPreInit
> (II) Module already built-in
> (II) Module already built-in
> (II) Module already built-in
> (**) RADEON(0): RADEONScreenInit f0000000 0
> (**) RADEON(0): Map: 0xf0000000, 0x04000000
> (**) RADEON(0): RADEONSave
> (**) RADEON(0): RADEONSaveMode(0x8240870)
> (**) RADEON(0): Read: 0x0000000c 0x00030065 0x00000000
> (**) RADEON(0): Read: rd=12, fd=101, pd=3
> (**) RADEON(0): RADEONSaveMode returns 0x8240870
> (**) RADEON(0): DRI New memory map param
> (**) RADEON(0): RADEONInitMemoryMap() :
> (**) RADEON(0): mem_size : 0x04000000
> (**) RADEON(0): MC_FB_LOCATION : 0xf3fff000
> (**) RADEON(0): MC_AGP_LOCATION : 0xffffffc0
> (**) RADEON(0): RADEONModeInit()
> 1280x1024 108.00 1280 1328 1440 1688 1024 1025 1028 1066 (24,32) +H +V
> 1280x1024 108.00 1280 1328 1440 1688 1024 1025 1028 1066 (24,32) +H +V
> (**) RADEON(0): Pitch = 10485920 bytes (virtualX = 1280, displayWidth = 1280)
> (**) RADEON(0): dc=10800, of=21600, fd=96, pd=2
> (**) RADEON(0): RADEONInit returns 0x8241220
> (**) RADEON(0): RADEONRestoreMode()
> (**) RADEON(0): RADEONRestoreMode(0x8241220)
> (**) RADEON(0): RADEONRestoreMemMapRegisters() :
> (**) RADEON(0): MC_FB_LOCATION : 0xf3fff000
> (**) RADEON(0): MC_AGP_LOCATION : 0xffffffc0
> (**) RADEON(0): Map Changed ! Applying ...
> (**) RADEON(0): Map applied, resetting engine ...
> (**) RADEON(0): Updating display base addresses...
> (**) RADEON(0): Memory map updated.
> (**) RADEON(0): Programming CRTC1, offset: 0x00000000
> (**) RADEON(0): Wrote: 0x0000000c 0x00010060 0x00000000 (0x0000a400)
> (**) RADEON(0): Wrote: rd=12, fd=96, pd=1
> (**) RADEON(0): GRPH_BUFFER_CNTL from 20205c5c to 20125c5c
> (**) RADEON(0): RADEONSaveScreen(0)
> (**) RADEON(0): Setting up initial surfaces
> (**) RADEON(0): Initializing fb layer
> (**) RADEON(0): Setting up accel memmap
> (**) RADEON(0): Initializing backing store
> (**) RADEON(0): DRI Finishing init !
> (**) RADEON(0): EngineRestore (32/32)
> (**) RADEON(0): GRPH_BUFFER_CNTL from 20205c5c to 20125c5c
> (**) RADEON(0): Setting up final surfaces
> (**) RADEON(0): Initializing Acceleration
> (**) RADEON(0): EngineInit (32/32)
> (**) RADEON(0): Pitch for acceleration = 160
> (**) RADEON(0): EngineRestore (32/32)
> (**) RADEON(0): Initializing DPMS
> (**) RADEON(0): Initializing Cursor
> (**) RADEON(0): Initializing color map
> (**) RADEON(0): Initializing DGA
> (**) RADEON(0): Initializing Xv
> (**) RADEON(0): RADEONScreenInit finished
> (**) RADEON(0): RADEONSaveScreen(2)
> (**) RADEON(0): RADEONCloseScreen
> (**) RADEON(0): RADEONDRIStop
> (**) RADEON(0): EngineRestore (32/32)
> (**) RADEON(0): RADEONDisplayPowerManagementSet(0,0x0)
> (**) RADEON(0): RADEONRestore
> (**) RADEON(0): RADEONRestoreMode()
> (**) RADEON(0): RADEONRestoreMode(0x8240870)
> (**) RADEON(0): RADEONRestoreMemMapRegisters() :
> (**) RADEON(0): MC_FB_LOCATION : 0x1fff0000
> (**) RADEON(0): MC_AGP_LOCATION : 0x27ff2000
> (**) RADEON(0): Map Changed ! Applying ...
> (**) RADEON(0): Map applied, resetting engine ...
> (**) RADEON(0): Updating display base addresses...
> (**) RADEON(0): Memory map updated.
> (**) RADEON(0): Programming CRTC1, offset: 0x00000000
> (**) RADEON(0): Wrote: 0x0000000c 0x00030065 0x00000000 (0x0000a400)
> (**) RADEON(0): Wrote: rd=12, fd=101, pd=3
> (**) RADEON(0): Disposing accel...
> (**) RADEON(0): Disposing cusor info
> (**) RADEON(0): Disposing DGA
> (**) RADEON(0): Unmapping memory
> (**) RADEON(0): RADEONDRICloseScreen
>
>
>
> the only difference is, that 2.6.23-rc2-mm2 writes further
>
> FreeFontPath: FPE "/usr/share/X11/fonts/misc:unscaled" refcount is 2, should be
> 1; fixing.
>
> and exits succesfully (note that these messages are taken on remote host, X
> runned remotely).
>
> Both vesa and radeon + Option "NoAccel" "true" works obviously fine.
>
> regards,


--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University

2007-08-28 14:20:03

by Michael Matz

[permalink] [raw]
Subject: Re: [-mm patch] make types.h usable for non-gcc C parsers

Hi,

On Tue, 28 Aug 2007, Sam Ravnborg wrote:

> Googeling I did not find a good description of where __extension__ can
> be used so I fail to see where in the parse.y file I shal add the
> keyword. I think __extension__ may be used both as a part of an
> expression AND as part of a typedef (as in this case) but I wonder if
> this is where it is limited to be used.

The grammatic rules involving __extension__ are these (the lhs stems from
the standard directly):

external-declaration:
__extension__ external-declaration

struct-declaration:
__extension__ struct-declaration

nested-declaration:
__extension__ nested-declaration

unary-operator: one of
__extension__ __real__ __imag__

The first three allow to put __extension__ in front of any external or
local declaration (including decls inside blocks, in C99), ala:

{
x = 1+3;
__extension__ int y = 3;
x += y;
}

the last one defines __extension__ as an unary operator, which can be
applied to all cast-expressions (which in turn are just unary
expressions). E.g.:

x = 1 + __extension__ (2+3);

Note that the decls include the C99 nested-decls in for statements:

for (__extension__ long long i = 0; ...)

Note further that there's a small ambiguity in parsing when just looking
forward one token, namely between decl and expression, like in this
example:

{ __extension__ int i;

vs.

{ __extension__ i + 2;

Here you can't decide if __extension__ introduces an expression or a decl.
Probably doesn't matter for your parser. Hope this helps.


Ciao,
Michael.

2007-08-28 14:42:30

by Randy Dunlap

[permalink] [raw]
Subject: Re: [-mm patch] make types.h usable for non-gcc C parsers

On Tue, 28 Aug 2007 10:43:15 +0200 Sam Ravnborg wrote:

> On Tue, Aug 28, 2007 at 12:37:04AM -0700, Andrew Morton wrote:
> > On Mon, 27 Aug 2007 23:27:43 +0200 Adrian Bunk <[email protected]> wrote:
> >
> > > On Wed, Aug 22, 2007 at 03:33:27PM +0200, Gabriel C wrote:
> > > >...
> > > > WARNING: "div64_64" [net/netfilter/xt_connbytes.ko] has no CRC!
> > > >...
> > >
> > > Patch below.
> > >
> > > > Regards,
> > > >
> > > > Gabriel
> > >
> > > cu
> > > Adrian
> > >
> > >
> > > <-- snip -->
> > >
> > >
> > > This patch makes the 64bit integers on 32bit architectures usable for
> > > all C parsers that know about "long long".
> > >
> > > Signed-off-by: Adrian Bunk <[email protected]>
> > >
> >
> > Given that this patch (hopefully) fixes a problem in the current net-2.6.24
> > tree, I'm inclined to slip it into mainline immediately.
> >
> > But I'd like a better description, please. Which "non-gcc parser" are we
> > talking about here? Something under ./scripts/. Well, please identify it,
> > and describe what the problem is, and how the proposed patch will address
> > it.
> >
> > Let's cc Sam too, as I guess he's the guy whose code just broke.
>
> If my analysis is correct then genksyms fails to produce a CRC for div64_64 because
> genksyms does not know the __extension__ keyword.
> And this patch just paper over the real bug wich is in genksyms - right?
>
> So we should fix the root cause here.
>
> Googeling I did not find a good description of where __extension__ can be
> used so I fail to see where in the parse.y file I shal add the keyword.
> I think __extension__ may be used both as a part of an expression AND
> as part of a typedef (as in this case) but I wonder if this is where it is limited
> to be used.
> I would like to have this sorted out so we do not do a half-backed solution,
> and the proposed patch as it just paper over the real bug is no good.

I found only one gcc manual page on __extension__:

http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Alternate-Keywords.html#Alternate-Keywords

(also found for other gcc versions)

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

2007-08-28 14:43:00

by Adrian Bunk

[permalink] [raw]
Subject: Re: [-mm patch] make types.h usable for non-gcc C parsers

On Tue, Aug 28, 2007 at 12:37:04AM -0700, Andrew Morton wrote:
> On Mon, 27 Aug 2007 23:27:43 +0200 Adrian Bunk <[email protected]> wrote:
>
> > On Wed, Aug 22, 2007 at 03:33:27PM +0200, Gabriel C wrote:
> > >...
> > > WARNING: "div64_64" [net/netfilter/xt_connbytes.ko] has no CRC!
> > >...
> >
> > Patch below.
> >
> > > Regards,
> > >
> > > Gabriel
> >
> > cu
> > Adrian
> >
> >
> > <-- snip -->
> >
> >
> > This patch makes the 64bit integers on 32bit architectures usable for
> > all C parsers that know about "long long".
> >
> > Signed-off-by: Adrian Bunk <[email protected]>
> >
>
> Given that this patch (hopefully) fixes a problem in the current net-2.6.24
> tree, I'm inclined to slip it into mainline immediately.

It fixes a bug exposed by a -mm only patch, not by the net tree
(and 2.6.23-rc3-mm1 doesn't contain the net tree at all).

> But I'd like a better description, please. Which "non-gcc parser" are we
> talking about here? Something under ./scripts/. Well, please identify it,
> and describe what the problem is, and how the proposed patch will address
> it.
>...

It's about parsers like the Sun C compiler and the C parser shipped
with genksyms.

We can fix the C parser shipped with genksyms, but we have nearly the
same problem with userspace C parsers:

These are userspace headers, and we had a bug report that the Sun C
compiler was not able to compile some userspace code.

cu
Adrian

--

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

2007-08-28 14:55:19

by Satyam Sharma

[permalink] [raw]
Subject: Re: oops at sr_block_release [Re: 2.6.23-rc3-mm1]

Hi Jiri,


On Tue, 28 Aug 2007, Jiri Slaby wrote:

> Andrew Morton napsal(a):
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>
> I got this during gxine initialization of ocko.tv live stream without any cd in
> cdroms:

Yup, that's an old habit of hald-addon-storage ... doing open(2),
ioctl(2) and close(2) on the cdrom block device even when it's idle,
every 2 seconds.


> BUG: unable to handle kernel NULL pointer dereference at virtual address 0000005c
> printing eip: f88fbe7a *pde = 00000000
> Oops: 0000 [#1] SMP
> Modules linked in: ath5k arc4 ecb blkcipher cryptomgr crypto_algapi
> rc80211_simple mac80211 cfg80211 nls_cp437 vfat fat usb_storage tun ipv6 floppy
> parport_pc parport ohci1394 ieee1394 usbhid sr_mod ehci_hcd cdrom ff_memless
>
> Pid: 2809, comm: hald-addon-stor Not tainted (2.6.23-rc3-mm1 #315)
> EIP: 0060:[<f88fbe7a>] EFLAGS: 00010246 CPU: 1
> EIP is at sr_block_release+0xb/0x2c [sr_mod]
> EAX: 00000000 EBX: 00000000 ECX: f88fbe6f EDX: 00000000
> ESI: c21c36c0 EDI: c289a780 EBP: c3729f18 ESP: c3729f10
> DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
> Process hald-addon-stor (pid: 2809, ti=c3729000 task=c1c2be40 task.ti=c3729000)
> Stack: 00000000 c21c36c0 c3729f38 c018d7ad c21c36cc c1f9ff80 c21c3730 c21c36c0
> c2a6ada0 dcbb3f80 c3729f40 c018d7dc c3729f4c c018e103 00000010 c3729f74
> c016bc5f 00000000 00000000 c217fa80 c1f9ff80 c2a6ada0 dcbb3f80 c1cc6900
> Call Trace:
> [<c0105022>] show_trace_log_lvl+0x1a/0x30
> [<c01050dd>] show_stack_log_lvl+0xa5/0xca
> [<c01051d2>] show_registers+0xd0/0x1c1
> [<c01053cd>] die+0x10a/0x24d
> [<c011afbe>] do_page_fault+0x496/0x608
> [<c03768e2>] error_code+0x72/0x78
> [<c018d7ad>] __blkdev_put+0x125/0x14a
> [<c018d7dc>] blkdev_put+0xa/0xc
> [<c018e103>] blkdev_close+0x29/0x2c
> [<c016bc5f>] __fput+0xa6/0x161
> [<c016bea4>] fput+0x22/0x3b
> [<c016960b>] filp_close+0x41/0x67
> [<c016a78c>] sys_close+0x60/0x9f
> [<c01040ce>] syscall_call+0x7/0xb
> =======================
> Code: 0c 81 c3 4c 01 00 00 89 5c 24 08 89 44 24 04 c7 04 24 88 cd 8f f8 e8 99 84
> 82 c7 e9 04 fe ff ff 55 89 e5 56 53 8b 80 04 01 00 00 <8b> 40 5c 8b 70 3c 8d 46
> 18 e8 cf f6 fe ff 89 c3 85 c0 75 07 89
> EIP: [<f88fbe7a>] sr_block_release+0xb/0x2c [sr_mod] SS:ESP 0068:c3729f10

blkdev_put(bdev, ...)
__blkdev_put(bdev, ...)
sr_block_release(bdev->bd_inode, ...)
(sees bdev->bd_inode->i_bdev->bd_disk == NULL)

Doesn't seem like an sr_block_release() (or sr_mod) issue to me at all,
looks more like a wierd race in the block_device code ... can you send
or put up some link to your .config?

If this is reproducible (I bet it isn't, though) you could try bisecting.


Satyam

2007-08-28 15:21:27

by Jiri Slaby

[permalink] [raw]
Subject: Re: oops at sr_block_release [Re: 2.6.23-rc3-mm1]

Satyam Sharma napsal(a):
> Hi Jiri,
>
>
> On Tue, 28 Aug 2007, Jiri Slaby wrote:
>
>> Andrew Morton napsal(a):
>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>> I got this during gxine initialization of ocko.tv live stream without any cd in
>> cdroms:
>
> Yup, that's an old habit of hald-addon-storage ... doing open(2),
> ioctl(2) and close(2) on the cdrom block device even when it's idle,
> every 2 seconds.
>
>
>> BUG: unable to handle kernel NULL pointer dereference at virtual address 0000005c
>> printing eip: f88fbe7a *pde = 00000000
>> Oops: 0000 [#1] SMP
>> Modules linked in: ath5k arc4 ecb blkcipher cryptomgr crypto_algapi
>> rc80211_simple mac80211 cfg80211 nls_cp437 vfat fat usb_storage tun ipv6 floppy
>> parport_pc parport ohci1394 ieee1394 usbhid sr_mod ehci_hcd cdrom ff_memless
>>
>> Pid: 2809, comm: hald-addon-stor Not tainted (2.6.23-rc3-mm1 #315)
>> EIP: 0060:[<f88fbe7a>] EFLAGS: 00010246 CPU: 1
>> EIP is at sr_block_release+0xb/0x2c [sr_mod]
>> EAX: 00000000 EBX: 00000000 ECX: f88fbe6f EDX: 00000000
>> ESI: c21c36c0 EDI: c289a780 EBP: c3729f18 ESP: c3729f10
>> DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
>> Process hald-addon-stor (pid: 2809, ti=c3729000 task=c1c2be40 task.ti=c3729000)
>> Stack: 00000000 c21c36c0 c3729f38 c018d7ad c21c36cc c1f9ff80 c21c3730 c21c36c0
>> c2a6ada0 dcbb3f80 c3729f40 c018d7dc c3729f4c c018e103 00000010 c3729f74
>> c016bc5f 00000000 00000000 c217fa80 c1f9ff80 c2a6ada0 dcbb3f80 c1cc6900
>> Call Trace:
>> [<c0105022>] show_trace_log_lvl+0x1a/0x30
>> [<c01050dd>] show_stack_log_lvl+0xa5/0xca
>> [<c01051d2>] show_registers+0xd0/0x1c1
>> [<c01053cd>] die+0x10a/0x24d
>> [<c011afbe>] do_page_fault+0x496/0x608
>> [<c03768e2>] error_code+0x72/0x78
>> [<c018d7ad>] __blkdev_put+0x125/0x14a
>> [<c018d7dc>] blkdev_put+0xa/0xc
>> [<c018e103>] blkdev_close+0x29/0x2c
>> [<c016bc5f>] __fput+0xa6/0x161
>> [<c016bea4>] fput+0x22/0x3b
>> [<c016960b>] filp_close+0x41/0x67
>> [<c016a78c>] sys_close+0x60/0x9f
>> [<c01040ce>] syscall_call+0x7/0xb
>> =======================
>> Code: 0c 81 c3 4c 01 00 00 89 5c 24 08 89 44 24 04 c7 04 24 88 cd 8f f8 e8 99 84
>> 82 c7 e9 04 fe ff ff 55 89 e5 56 53 8b 80 04 01 00 00 <8b> 40 5c 8b 70 3c 8d 46
>> 18 e8 cf f6 fe ff 89 c3 85 c0 75 07 89
>> EIP: [<f88fbe7a>] sr_block_release+0xb/0x2c [sr_mod] SS:ESP 0068:c3729f10
>
> blkdev_put(bdev, ...)
> __blkdev_put(bdev, ...)
> sr_block_release(bdev->bd_inode, ...)
> (sees bdev->bd_inode->i_bdev->bd_disk == NULL)
>
> Doesn't seem like an sr_block_release() (or sr_mod) issue to me at all,
> looks more like a wierd race in the block_device code ... can you send
> or put up some link to your .config?

http://www.fi.muni.cz/~xslaby/sklad/config-2.6.23-rc3-mm1

> If this is reproducible

:) no.

--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University

2007-08-28 17:05:09

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [-mm patch] make types.h usable for non-gcc C parsers

>
> It fixes a bug exposed by a -mm only patch, not by the net tree
> (and 2.6.23-rc3-mm1 doesn't contain the net tree at all).
>
> > But I'd like a better description, please. Which "non-gcc parser" are we
> > talking about here? Something under ./scripts/. Well, please identify it,
> > and describe what the problem is, and how the proposed patch will address
> > it.
> >...
>
> It's about parsers like the Sun C compiler and the C parser shipped
> with genksyms.

So it is about two bugs.
1) kbuild (genksyms) fails to generate CRC for some symbols
2) allow userspace to parse the header

As for 2 we already use sed to remove a lot of stuff in our headers
so why do we use another approach here?

As for 1 I will try to teach genksyms to accept __extension__ but
it seems leess trivial than I expected (most be fooling myself somehow).

Sam

2007-08-28 17:23:29

by Rusty Russell

[permalink] [raw]
Subject: [PATCH] Fix lguest page-pinning logic ("lguest: bad stack page 0xc057a000")

If the stack pointer is 0xc057a000, then the first stack page is at
0xc0579000 (the stack pointer is decremented before use). Not
calculating this correctly caused guests with CONFIG_DEBUG_PAGEALLOC=y
to be killed with a "bad stack page" message: the initial kernel stack
was just preceeding the .smp_locks section which
CONFIG_DEBUG_PAGEALLOC marks read-only when freeing.

Thanks to Frederik Deweerdt for the bug report!

Signed-off-by: Rusty Russell <[email protected]>

diff -r cb71c5b0bbb5 drivers/lguest/interrupts_and_traps.c
--- a/drivers/lguest/interrupts_and_traps.c Sun Aug 26 10:31:53 2007 +1000
+++ b/drivers/lguest/interrupts_and_traps.c Sun Aug 26 10:34:44 2007 +1000
@@ -270,8 +270,11 @@ void pin_stack_pages(struct lguest *lg)
/* Depending on the CONFIG_4KSTACKS option, the Guest can have one or
* two pages of stack space. */
for (i = 0; i < lg->stack_pages; i++)
- /* The stack grows *upwards*, hence the subtraction */
- pin_page(lg, lg->esp1 - i * PAGE_SIZE);
+ /* The stack grows *upwards*, so the address we're given is the
+ * start of the page after the kernel stack. Subtract one to
+ * get back onto the first stack page, and keep subtracting to
+ * get to the rest of the stack pages. */
+ pin_page(lg, lg->esp1 - 1 - i * PAGE_SIZE);
}

/* Direct traps also mean that we need to know whenever the Guest wants to use


2007-08-28 17:42:47

by Mike Frysinger

[permalink] [raw]
Subject: Re: [-mm patch] make types.h usable for non-gcc C parsers

On 8/28/07, Sam Ravnborg <[email protected]> wrote:
> > > But I'd like a better description, please. Which "non-gcc parser" are we
> > > talking about here? Something under ./scripts/. Well, please identify it,
> > > and describe what the problem is, and how the proposed patch will address
> > > it.
> > >...
> >
> > It's about parsers like the Sun C compiler and the C parser shipped
> > with genksyms.
>
> So it is about two bugs.
> 1) kbuild (genksyms) fails to generate CRC for some symbols
> 2) allow userspace to parse the header
>
> As for 2 we already use sed to remove a lot of stuff in our headers
> so why do we use another approach here?

the sed removes things permanently and is designed for scrubbing
things that are kernel-only ... in this case, these typedefs are not
kernel only, but exposed conditionally when the compiler/standard
allows for it
-mike

2007-08-28 17:59:22

by Adrian Bunk

[permalink] [raw]
Subject: Re: [-mm patch] make types.h usable for non-gcc C parsers

On Tue, Aug 28, 2007 at 07:06:04PM +0200, Sam Ravnborg wrote:
> >
> > It fixes a bug exposed by a -mm only patch, not by the net tree
> > (and 2.6.23-rc3-mm1 doesn't contain the net tree at all).
> >
> > > But I'd like a better description, please. Which "non-gcc parser" are we
> > > talking about here? Something under ./scripts/. Well, please identify it,
> > > and describe what the problem is, and how the proposed patch will address
> > > it.
> > >...
> >
> > It's about parsers like the Sun C compiler and the C parser shipped
> > with genksyms.
>
> So it is about two bugs.
> 1) kbuild (genksyms) fails to generate CRC for some symbols
> 2) allow userspace to parse the header
>
> As for 2 we already use sed to remove a lot of stuff in our headers
> so why do we use another approach here?

This time it's the other way round:

We need __extension__ only in userspace.

> As for 1 I will try to teach genksyms to accept __extension__ but
> it seems leess trivial than I expected (most be fooling myself somehow).

We anyway need a way to hide __extension__ from non-gcc userspace C
compilers, and it can be hidden from genksyms the same way.

> Sam

cu
Adrian

--

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

2007-08-28 18:36:31

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [-mm patch] make types.h usable for non-gcc C parsers

On Tue, Aug 28, 2007 at 07:59:04PM +0200, Adrian Bunk wrote:
> On Tue, Aug 28, 2007 at 07:06:04PM +0200, Sam Ravnborg wrote:
> > >
> > > It fixes a bug exposed by a -mm only patch, not by the net tree
> > > (and 2.6.23-rc3-mm1 doesn't contain the net tree at all).
> > >
> > > > But I'd like a better description, please. Which "non-gcc parser" are we
> > > > talking about here? Something under ./scripts/. Well, please identify it,
> > > > and describe what the problem is, and how the proposed patch will address
> > > > it.
> > > >...
> > >
> > > It's about parsers like the Sun C compiler and the C parser shipped
> > > with genksyms.
> >
> > So it is about two bugs.
> > 1) kbuild (genksyms) fails to generate CRC for some symbols
> > 2) allow userspace to parse the header
> >
> > As for 2 we already use sed to remove a lot of stuff in our headers
> > so why do we use another approach here?
>
> This time it's the other way round:
>
> We need __extension__ only in userspace.
>
> > As for 1 I will try to teach genksyms to accept __extension__ but
> > it seems leess trivial than I expected (most be fooling myself somehow).
>
> We anyway need a way to hide __extension__ from non-gcc userspace C
> compilers, and it can be hidden from genksyms the same way.

OK.
I have anyway added support for __extension__ in genksyms.
See below patch.

Note: To try this patch out do the following in a fresh tree (no generated files):
$ rm scripts/genksyms/*_shipped
$ apply patch
$ make GENERATE_PARSER=1 ...

In kbuild.git the _shipped files are updated but that would just be noise here.

Sam

>From 26132bc829651acce2f124f78dfea43120e52c31 Mon Sep 17 00:00:00 2001
From: Sam Ravnborg <[email protected]>
Date: Tue, 28 Aug 2007 20:28:55 +0200
Subject: [PATCH] kbuild: __extension__ support in genksyms (fix unknown CRC warning)

Recently the __extension__ keyword has been introduced in the kernel.
Teach genksyms about this keyword so it can generate correct CRC for
exported symbols that uses a symbol marked __extension__.
For now only the typedef variant:

__extension__ typedef ...

is supported.
Later we may add more variants as needed.

This patch contains the actual source file changes. The
following patch will hold modifications to the generated
files (*_shipped) and only after the second patch the fix
has effect.

Signed-off-by: Sam Ravnborg <[email protected]>
---
scripts/genksyms/keywords.gperf | 1 +
scripts/genksyms/parse.y | 5 ++++-
2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/scripts/genksyms/keywords.gperf b/scripts/genksyms/keywords.gperf
index c75e0c8..5ef3733 100644
--- a/scripts/genksyms/keywords.gperf
+++ b/scripts/genksyms/keywords.gperf
@@ -11,6 +11,7 @@ __attribute, ATTRIBUTE_KEYW
__attribute__, ATTRIBUTE_KEYW
__const, CONST_KEYW
__const__, CONST_KEYW
+__extension__, EXTENSION_KEYW
__inline, INLINE_KEYW
__inline__, INLINE_KEYW
__signed, SIGNED_KEYW
diff --git a/scripts/genksyms/parse.y b/scripts/genksyms/parse.y
index ca04c94..408cdf8 100644
--- a/scripts/genksyms/parse.y
+++ b/scripts/genksyms/parse.y
@@ -61,6 +61,7 @@ remove_list(struct string_list **pb, struct string_list **pe)
%token DOUBLE_KEYW
%token ENUM_KEYW
%token EXTERN_KEYW
+%token EXTENSION_KEYW
%token FLOAT_KEYW
%token INLINE_KEYW
%token INT_KEYW
@@ -110,7 +111,9 @@ declaration:
;

declaration1:
- TYPEDEF_KEYW { is_typedef = 1; } simple_declaration
+ EXTENSION_KEYW TYPEDEF_KEYW { is_typedef = 1; } simple_declaration
+ { $$ = $4; }
+ | TYPEDEF_KEYW { is_typedef = 1; } simple_declaration
{ $$ = $3; }
| simple_declaration
| function_definition
--
1.5.1.rc3.2928.g8e573-dirty

2007-08-28 18:41:24

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: [PATCH 1/2] sysctl: Properly register the irda binary sysctl numbers.

On Sat, 25 Aug 2007 11:59:53 MDT, Eric W. Biederman said:

> It looks like you don't have CONFIG_SYSCTL_SYSCALL defined, and it
> appears utsname_syscall and ipcdata_syscall both become NULL pointers
> if they aren't needed. So the complaint is a false positive.

Yep. Nothing I actually use needs SYSCTL_SYSCALL, so I turned it off to
see what breaks...


Attachments:
(No filename) (226.00 B)

2007-08-28 18:44:46

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: [PATCH] sysctl: Update sysctl_check to handle compiled out code.

On Sat, 25 Aug 2007 12:03:19 MDT, Eric W. Biederman said:

> So don't worry about missing strategy routines, or missing proc_handler
> routines when they will never be called.
>
> Signed-off-by: Eric W. Biederman <[email protected]>

I'm not seeing the false-positive msgs after applying this patch...

Tested-By: Valdis Kletnieks <[email protected]>


Attachments:
(No filename) (226.00 B)

2007-08-28 21:09:21

by Eric W. Biederman

[permalink] [raw]
Subject: Re: [PATCH 1/2] sysctl: Properly register the irda binary sysctl numbers.

[email protected] writes:

> On Sat, 25 Aug 2007 11:59:53 MDT, Eric W. Biederman said:
>
>> It looks like you don't have CONFIG_SYSCTL_SYSCALL defined, and it
>> appears utsname_syscall and ipcdata_syscall both become NULL pointers
>> if they aren't needed. So the complaint is a false positive.
>
> Yep. Nothing I actually use needs SYSCTL_SYSCALL, so I turned it off to
> see what breaks...

Other then glibc (which uses it to see if we are on a SMP system, and
has a fallback to /proc/sys) I only found 5 other applications
binaries when I was looking hard.

Eric

2007-08-29 02:58:31

by Andrew Morton

[permalink] [raw]
Subject: Re: oops at sr_block_release [Re: 2.6.23-rc3-mm1]

On Tue, 28 Aug 2007 13:32:57 +0200 Jiri Slaby <[email protected]> wrote:

> Andrew Morton napsal(a):
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>
> I got this during gxine initialization of ocko.tv live stream without any cd in
> cdroms:
>
> BUG: unable to handle kernel NULL pointer dereference at virtual address 0000005c
> printing eip: f88fbe7a *pde = 00000000
> Oops: 0000 [#1] SMP
> Modules linked in: ath5k arc4 ecb blkcipher cryptomgr crypto_algapi
> rc80211_simple mac80211 cfg80211 nls_cp437 vfat fat usb_storage tun ipv6 floppy
> parport_pc parport ohci1394 ieee1394 usbhid sr_mod ehci_hcd cdrom ff_memless
>
> Pid: 2809, comm: hald-addon-stor Not tainted (2.6.23-rc3-mm1 #315)
> EIP: 0060:[<f88fbe7a>] EFLAGS: 00010246 CPU: 1
> EIP is at sr_block_release+0xb/0x2c [sr_mod]
> EAX: 00000000 EBX: 00000000 ECX: f88fbe6f EDX: 00000000
> ESI: c21c36c0 EDI: c289a780 EBP: c3729f18 ESP: c3729f10
> DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
> Process hald-addon-stor (pid: 2809, ti=c3729000 task=c1c2be40 task.ti=c3729000)
> Stack: 00000000 c21c36c0 c3729f38 c018d7ad c21c36cc c1f9ff80 c21c3730 c21c36c0
> c2a6ada0 dcbb3f80 c3729f40 c018d7dc c3729f4c c018e103 00000010 c3729f74
> c016bc5f 00000000 00000000 c217fa80 c1f9ff80 c2a6ada0 dcbb3f80 c1cc6900
> Call Trace:
> [<c0105022>] show_trace_log_lvl+0x1a/0x30
> [<c01050dd>] show_stack_log_lvl+0xa5/0xca
> [<c01051d2>] show_registers+0xd0/0x1c1
> [<c01053cd>] die+0x10a/0x24d
> [<c011afbe>] do_page_fault+0x496/0x608
> [<c03768e2>] error_code+0x72/0x78
> [<c018d7ad>] __blkdev_put+0x125/0x14a
> [<c018d7dc>] blkdev_put+0xa/0xc
> [<c018e103>] blkdev_close+0x29/0x2c
> [<c016bc5f>] __fput+0xa6/0x161
> [<c016bea4>] fput+0x22/0x3b
> [<c016960b>] filp_close+0x41/0x67
> [<c016a78c>] sys_close+0x60/0x9f
> [<c01040ce>] syscall_call+0x7/0xb
> =======================
> Code: 0c 81 c3 4c 01 00 00 89 5c 24 08 89 44 24 04 c7 04 24 88 cd 8f f8 e8 99 84
> 82 c7 e9 04 fe ff ff 55 89 e5 56 53 8b 80 04 01 00 00 <8b> 40 5c 8b 70 3c 8d 46
> 18 e8 cf f6 fe ff 89 c3 85 c0 75 07 89
> EIP: [<f88fbe7a>] sr_block_release+0xb/0x2c [sr_mod] SS:ESP 0068:c3729f10
>

Possibly due to remove-bdput-from-do_open-in-fs-block_devc.patch.

That patch is "wrong" and I think the problem which it attempts to address
actually lies in the cdrom code. viro was taking a look at it but appears
to have recoiled in horror. I'll drop
remove-bdput-from-do_open-in-fs-block_devc.patch so let's just watch out
for any reoccurrence, thanks.

2007-08-29 14:04:48

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1

On Wed, 22 Aug 2007 02:06:48 PDT, Andrew Morton said:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/

Sorry for not catching this one sooner, but AFAICT, Fedora didn't ship a glibc
that trips over this (2.6.90-12) until Saturday and I installed it yesterday.
-22-rc6-mm1 demonstrated the same issue as well.

The issue: vdso and gettimeofday seem to be having a quarrel.

At boot, the system clock is just fine. Right when it hits the 5-minute
uptime mark (and suspiciously close to the jiffie rollover), the date suddenly
shoots forward 4096 seconds.

Dumb test script:

#!/bin/bash
log="uptime.`uname -r`"
touch /root/$log
tail -f /root/$log &
while /bin/true;
do
uptime >> /root/$log
date >> /root/$log
sleep 1
done

Exerpt from runtime:

19:57:55 up 1 min, 0 users, load average: 0.09, 0.05, 0.01
Tue Aug 28 19:57:55 EDT 2007
19:57:56 up 1 min, 0 users, load average: 0.09, 0.05, 0.01
Tue Aug 28 19:57:56 EDT 2007
19:57:57 up 2 min, 0 users, load average: 0.08, 0.05, 0.01
Tue Aug 28 19:57:57 EDT 2007
19:57:58 up 2 min, 0 users, load average: 0.08, 0.05, 0.01
...
20:00:55 up 4 min, 0 users, load average: 0.01, 0.03, 0.00
Tue Aug 28 20:00:55 EDT 2007
20:00:56 up 4 min, 0 users, load average: 0.01, 0.03, 0.00
Tue Aug 28 20:00:56 EDT 2007
20:00:57 up 5 min, 0 users, load average: 0.01, 0.03, 0.00
Tue Aug 28 21:09:15 EDT 2007
20:00:58 up 5 min, 0 users, load average: 0.01, 0.03, 0.00
Tue Aug 28 21:09:16 EDT 2007
20:00:59 up 5 min, 0 users, load average: 0.01, 0.03, 0.00
Tue Aug 28 21:09:17 EDT 2007

uptime keeps reporting the right time, date goes flying ahead. Once we
get into this state, I can issue a 'date' command to set the *right* time,
and then it will immediately reset back. Doing a 'touch foo; ls -l foo'
shows the correct time.

Booting with vdso=0 makes the time/date run normally.

Ideas?


Attachments:
(No filename) (226.00 B)

2007-08-29 17:37:52

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - vdso and gettimeofday issues with glibc

On Wed, 29 Aug 2007 10:04:33 EDT, [email protected] said:

(Fixing the Subject: and updating the info)

> On Wed, 22 Aug 2007 02:06:48 PDT, Andrew Morton said:
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/

> The issue: vdso and gettimeofday seem to be having a quarrel.

This is also open as a Fedora bug:
https://bugzilla.redhat.com/show_bug.cgi?id=262481


Attachments:
(No filename) (226.00 B)

2007-08-29 23:16:18

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - vdso and gettimeofday issues with glibc

On Wed, 29 Aug 2007 13:37:38 -0400 [email protected] wrote:

> On Wed, 29 Aug 2007 10:04:33 EDT, [email protected] said:
>
> (Fixing the Subject: and updating the info)
>
> > On Wed, 22 Aug 2007 02:06:48 PDT, Andrew Morton said:
> > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>
> > The issue: vdso and gettimeofday seem to be having a quarrel.
>
> This is also open as a Fedora bug:
> https://bugzilla.redhat.com/show_bug.cgi?id=262481
>

So it's an interaction between the x86_64 vdso patches in Andi's tree and
newer glibc, and we don't know which one is getting it wrong yet?

If I ever get another -mm out the door (have been without electricity for
several days) I'll drop the vdso changes until this is sorted out.

2007-08-30 00:00:31

by Pete/Piet Delaney

[permalink] [raw]
Subject: Re: [Kgdb-bugreport] 2.6.23-rc3-mm1: kgdb build failure on powerpc

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jason Wessel wrote:
> Andrew Morton wrote:
>> On Wed, 22 Aug 2007 17:44:12 -0500
>> Jason Wessel <[email protected]> wrote:
>>
>>
>>> + while (!atomic_read(&debugger_active));
>>>
>>
>> eek. We're in the process of hunting down and eliminating exactly this
>> construct. There have been cases where the compiler cached the
>> atomic_read() result in a register, turning the above into an infinite
>> loop.
>>
>> Plus we should never add power-burners like that into the kernel
>> anyway. That loop should have a cpu_relax() in it. Which will also
>> fix the
>> compiler problem described above.
>>
>>
> Agreed, and fixed with a cpu_relax.
>
>> Thirdly, please always add a newline when coding statements like that:
>>
>> while (expr())
>> ;
>>
>
> The other instances I found of the same problem in the kgdb core are
> fixed too.
>
> I merged all the changes into the for_mm branch in the kgdb git tree.

Where is the kgdb git tree?

- -piet

>
> Thanks,
> Jason.
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFG1gS/JICwm/rv3hoRAhfRAJ42F3QlzGwG4aQbs9hHVMI4kJ9SWQCfXrku
UGo97ByKsB9yhyIu5c+2Jh0=
=welB
-----END PGP SIGNATURE-----

2007-08-30 00:05:39

by Pete/Piet Delaney

[permalink] [raw]
Subject: Re: [Kgdb-bugreport] 2.6.23-rc3-mm1: kgdb build failure on powerpc

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Pete/Piet Delaney wrote:
> Jason Wessel wrote:
>> Andrew Morton wrote:
>>> On Wed, 22 Aug 2007 17:44:12 -0500
>>> Jason Wessel <[email protected]> wrote:
>>>
>>>
>>>> + while (!atomic_read(&debugger_active));
>>>>
>>> eek. We're in the process of hunting down and eliminating exactly this
>>> construct. There have been cases where the compiler cached the
>>> atomic_read() result in a register, turning the above into an infinite
>>> loop.
>>>
>>> Plus we should never add power-burners like that into the kernel
>>> anyway. That loop should have a cpu_relax() in it. Which will also
>>> fix the
>>> compiler problem described above.
>>>
>>>
>> Agreed, and fixed with a cpu_relax.
>
>>> Thirdly, please always add a newline when coding statements like that:
>>>
>>> while (expr())
>>> ;
>>>
>> The other instances I found of the same problem in the kgdb core are
>> fixed too.
>
>> I merged all the changes into the for_mm branch in the kgdb git tree.
>
> Where is the kgdb git tree?

Trying:

git clone
http://master.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb.git

- -piet

>
> -piet
>
>> Thanks,
>> Jason.
>> -
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at http://www.tux.org/lkml/
>
>
-

2007-08-30 01:19:44

by Pete/Piet Delaney

[permalink] [raw]
Subject: Re: [Kgdb-bugreport] 2.6.23-rc3-mm1: kgdb build failure on powerpc

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Pete/Piet Delaney wrote:
> Jason Wessel wrote:
>> Andrew Morton wrote:
>>> On Wed, 22 Aug 2007 17:44:12 -0500
>>> Jason Wessel <[email protected]> wrote:
>>>
>>>
>>>> + while (!atomic_read(&debugger_active));
>>>>
>>> eek. We're in the process of hunting down and eliminating exactly this
>>> construct. There have been cases where the compiler cached the
>>> atomic_read() result in a register, turning the above into an infinite
>>> loop.
>>>
>>> Plus we should never add power-burners like that into the kernel
>>> anyway. That loop should have a cpu_relax() in it. Which will also
>>> fix the
>>> compiler problem described above.
>>>
>>>
>> Agreed, and fixed with a cpu_relax.
>
>>> Thirdly, please always add a newline when coding statements like that:
>>>
>>> while (expr())
>>> ;
>>>
>> The other instances I found of the same problem in the kgdb core are
>> fixed too.
>
>> I merged all the changes into the for_mm branch in the kgdb git tree.
>
> Where is the kgdb git tree?

Why am I getting this when I do:

git clone
http://master.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb.git

-
----------------------------------------------------------------------------
error: Couldn't get
http://master.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb.git/refs/tags/v2.6.11
for tags/v2.6.11
The requested URL returned error: 404
error: Could not interpret tags/v2.6.11 as something to pull
rm: cannot remove directory
`/nethome/piet/Src/linux/git/jwessel/linux-2.6-kgdb/.git/clone-tmp':
Directory not empty
/nethome/piet/Src/linux/git/jwessel$
-
----------------------------------------------------------------------------

We are getting a problem with VMware where kernel text is the schedler
is getting wacked with four null bytes into the code. Thought I'd use
the current linux-2.6-kgdb.git tree and possible the CONFIG_DEBUG_RODATA
patch to make kernel text readonly:

https://www.x86-64.org/pipermail/patches/2007-March/003666.html

I thought the kernel text was RO and gdb had to disable it to
insert a breakpoint.

- -piet

>
> -piet
>
>> Thanks,
>> Jason.
>> -
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at http://www.tux.org/lkml/
>
>
-

2007-08-30 01:42:31

by Randy Dunlap

[permalink] [raw]
Subject: Re: [Kgdb-bugreport] 2.6.23-rc3-mm1: kgdb build failure on powerpc

On Wed, 29 Aug 2007 18:19:29 -0700 Pete/Piet Delaney wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Pete/Piet Delaney wrote:
> > Jason Wessel wrote:
> >> Andrew Morton wrote:
> >>> On Wed, 22 Aug 2007 17:44:12 -0500
> >>> Jason Wessel <[email protected]> wrote:
> >>>
> >>>
> >>>> + while (!atomic_read(&debugger_active));
> >>>>
> >>> eek. We're in the process of hunting down and eliminating exactly this
> >>> construct. There have been cases where the compiler cached the
> >>> atomic_read() result in a register, turning the above into an infinite
> >>> loop.
> >>>
> >>> Plus we should never add power-burners like that into the kernel
> >>> anyway. That loop should have a cpu_relax() in it. Which will also
> >>> fix the
> >>> compiler problem described above.
> >>>
> >>>
> >> Agreed, and fixed with a cpu_relax.
> >
> >>> Thirdly, please always add a newline when coding statements like that:
> >>>
> >>> while (expr())
> >>> ;
> >>>
> >> The other instances I found of the same problem in the kgdb core are
> >> fixed too.
> >
> >> I merged all the changes into the for_mm branch in the kgdb git tree.
> >
> > Where is the kgdb git tree?
>
> Why am I getting this when I do:
>
> git clone
> http://master.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb.git
>
> -
> ----------------------------------------------------------------------------
> error: Couldn't get
> http://master.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb.git/refs/tags/v2.6.11
> for tags/v2.6.11
> The requested URL returned error: 404
> error: Could not interpret tags/v2.6.11 as something to pull
> rm: cannot remove directory
> `/nethome/piet/Src/linux/git/jwessel/linux-2.6-kgdb/.git/clone-tmp':
> Directory not empty
> /nethome/piet/Src/linux/git/jwessel$
> -
> ----------------------------------------------------------------------------

See the URLs at the top of
http://git.kernel.org/?p=linux/kernel/git/jwessel/linux-2.6-kgdb.git;a=summary
and try one of those (the git one preferably).


> We are getting a problem with VMware where kernel text is the schedler
> is getting wacked with four null bytes into the code. Thought I'd use
> the current linux-2.6-kgdb.git tree and possible the CONFIG_DEBUG_RODATA
> patch to make kernel text readonly:
>
> https://www.x86-64.org/pipermail/patches/2007-March/003666.html
>
> I thought the kernel text was RO and gdb had to disable it to
> insert a breakpoint.
>
> - -piet
>
> >
> > -piet
> >
> >> Thanks,
> >> Jason.
> >> -
> >> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> >> the body of a message to [email protected]
> >> More majordomo info at http://vger.kernel.org/majordomo-info.html
> >> Please read the FAQ at http://www.tux.org/lkml/
> >
> >
> - -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.7 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFG1hshJICwm/rv3hoRAhTGAJ46pq69zYHqRmT+yTmRx+RVh8aBtgCfdyFM
> gl91xCFTy0NJxHalVXpd9Os=
> =c8FZ
> -----END PGP SIGNATURE-----
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>


---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

2007-08-30 02:07:45

by Jason Wessel

[permalink] [raw]
Subject: Re: [Kgdb-bugreport] 2.6.23-rc3-mm1: kgdb build failure on powerpc

Pete/Piet Delaney wrote:
> Why am I getting this when I do:
>
> git clone
> http://master.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb.git
>

I have only ever used:

git clone
git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb.git


Jason.

2007-08-30 02:13:18

by Jason Wessel

[permalink] [raw]
Subject: Re: [Kgdb-bugreport] 2.6.23-rc3-mm1: kgdb build failure on powerpc

Pete/Piet Delaney wrote:
> We are getting a problem with VMware where kernel text is the schedler
> is getting wacked with four null bytes into the code. Thought I'd use
> the current linux-2.6-kgdb.git tree and possible the CONFIG_DEBUG_RODATA
> patch to make kernel text readonly:
>
> https://www.x86-64.org/pipermail/patches/2007-March/003666.html
>
> I thought the kernel text was RO and gdb had to disable it to
> insert a breakpoint.
>
>

If you are going to make all the kernel text RO, then you are going to
have to add some code to the kgdb write memory so as to unprotect a
given page or all the breakpoint writes are going to fail.
Alternatively you can use HW breakpoints. But, I have no idea if your
VM Ware simulated HW emulate HW breakpoint registers or not.

Jason.

2007-08-30 02:46:56

by Ulrich Drepper

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - vdso and gettimeofday issues with glibc

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Andrew Morton wrote:
> So it's an interaction between the x86_64 vdso patches in Andi's tree and
> newer glibc, and we don't know which one is getting it wrong yet?

glibc does nothing but call the code in the vdso. We have a function
pointer variable which either has the old vsyscall value or the address
of the function in the vdso. Everything else is identical. Unless the
interface of the vdso function is different (which it shouldn't) I don't
think you can blame glibc.

- --
➧ Ulrich Drepper ➧ Red Hat, Inc. ➧ 444 Castro St ➧ Mountain View, CA ❖
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)

iD8DBQFG1i+K2ijCOnn/RHQRArogAKC3zBeyOzqJRF+x2zj3fBg9iGLdyQCgx9Z3
dv3Izh65+kxKedza6RH3MHk=
=qEdC
-----END PGP SIGNATURE-----

2007-08-30 14:11:18

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - vdso and gettimeofday issues with glibc

On Wed, 29 Aug 2007 16:15:45 PDT, Andrew Morton said:

> So it's an interaction between the x86_64 vdso patches in Andi's tree and
> newer glibc, and we don't know which one is getting it wrong yet?
>
> If I ever get another -mm out the door (have been without electricity for
> several days) I'll drop the vdso changes until this is sorted out.

Don't bother, I tested this last night against a vanilla 2.6.23-rc3 kernel
and it had the same issue as well. So Andi's vdso patches in his tree and/or
the -mm kernel aren't to blame - it's in mainline as well. And it's been
in for a while - I also hit it with a 2.6.22-rc6-mm1 kernel.


Attachments:
(No filename) (226.00 B)

2007-08-30 16:27:24

by Chuck Ebbert

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - vdso and gettimeofday issues with glibc

On 08/29/2007 07:15 PM, Andrew Morton wrote:
>>> The issue: vdso and gettimeofday seem to be having a quarrel.
>> This is also open as a Fedora bug:
>> https://bugzilla.redhat.com/show_bug.cgi?id=262481
>>
>
> So it's an interaction between the x86_64 vdso patches in Andi's tree and
> newer glibc, and we don't know which one is getting it wrong yet?
>
> If I ever get another -mm out the door (have been without electricity for
> several days) I'll drop the vdso changes until this is sorted out.
> -

Problem is present in stock 2.6.23-rc too. Still don't know whether it is
the new glibc code or the vdso that's causing it, though.

2007-08-30 16:31:16

by Chuck Ebbert

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - vdso and gettimeofday issues with glibc

On 08/29/2007 07:15 PM, Andrew Morton wrote:
>
> So it's an interaction between the x86_64 vdso patches in Andi's tree and
> newer glibc, and we don't know which one is getting it wrong yet?
>

Just found this duplicated code in 2.6.23-rc4, maybe it was supposed
to be something else? The second one was added in the x86_64 vdso patch.

arch/x86_64/kernel/vsyscall.c:

void update_vsyscall(struct timespec *wall_time, struct clocksource *clock)
{
unsigned long flags;

write_seqlock_irqsave(&vsyscall_gtod_data.lock, flags);
/* copy vsyscall data */
vsyscall_gtod_data.clock.vread = clock->vread;
vsyscall_gtod_data.clock.cycle_last = clock->cycle_last;
vsyscall_gtod_data.clock.mask = clock->mask;
vsyscall_gtod_data.clock.mult = clock->mult;
vsyscall_gtod_data.clock.shift = clock->shift;
vsyscall_gtod_data.wall_time_sec = wall_time->tv_sec;
vsyscall_gtod_data.wall_time_nsec = wall_time->tv_nsec; <===
vsyscall_gtod_data.sys_tz = sys_tz;
vsyscall_gtod_data.wall_time_nsec = wall_time->tv_nsec; <===
vsyscall_gtod_data.wall_to_monotonic = wall_to_monotonic;
write_sequnlock_irqrestore(&vsyscall_gtod_data.lock, flags);
}

2007-08-30 16:42:54

by Frederik Deweerdt

[permalink] [raw]
Subject: Re: [PATCH] Fix lguest page-pinning logic ("lguest: bad stack page 0xc057a000")

On Tue, Aug 28, 2007 at 02:09:59AM +1000, Rusty Russell wrote:
> If the stack pointer is 0xc057a000, then the first stack page is at
> 0xc0579000 (the stack pointer is decremented before use). Not
> calculating this correctly caused guests with CONFIG_DEBUG_PAGEALLOC=y
> to be killed with a "bad stack page" message: the initial kernel stack
> was just preceeding the .smp_locks section which
> CONFIG_DEBUG_PAGEALLOC marks read-only when freeing.
>
Hello Rusty,

I just could try the patch, sorry for the delay. Albeit it allows to
progress a little further in the boot process, lguest seems to like that
"section that was just freed" :)

Please note that:
- It could progress to "Freeing SMP alternatives: 13k freed", which is new.
Indeed, your patch made the Host to pin 0xc04d3000, which is the
good page.
- 0xc04d4000 is the __smp_locks section:
$ objdump -h vmlinux
[...]
20 .data.init_task 00001000 c04d3000 004d3000 003d4000 2**2
CONTENTS, ALLOC, LOAD, DATA
21 .smp_locks 000036c8 c04d4000 004d4000 003d5000 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
[...]

[ 0.128503] SMP alternatives: switching to UP code
[ 0.132846] Freeing SMP alternatives: 13k freed
[ 0.135177] BUG: unable to handle kernel paging request at virtual address c04d4000
[ 0.135417] printing eip:
[ 0.135505] c01051df
[ 0.135564] *pde = 00005067
[ 0.135645] *pte = 004d4000
[ 0.135756] Oops: 0000 [#1]
[ 0.135825] PREEMPT SMP DEBUG_PAGEALLOC
[ 0.136039] Modules linked in:
[ 0.136205] CPU: 0
[ 0.136206] EIP: 0061:[<c01051df>] Not tainted VLI
[ 0.136207] EFLAGS: 00010097 (2.6.23-rc3 #5)
[ 0.136665] EIP is at dump_trace+0x5f/0x97
[ 0.136738] eax: c0614954 ebx: c04d3ffc ecx: c0497b00 edx: c04ef641
[ 0.136883] esi: c04d3000 edi: c04d3ffd ebp: c04d3da0 esp: c04d3d90
[ 0.137058] ds: 0069 es: 0069 fs: 00d8 gs: 0000 ss: 0069
[ 0.137235] Process swapper (pid: 0, ti=c04d3000 task=c04953e0 task.ti=c04d3000)
[ 0.137447] Stack: c0109d95 c0614954 c04953e0 00000000 c04d3db4 c010a1f1 c0497b00 c0614954
[ 0.137831] c0614954 c04d3dc4 c0140921 c0144252 c04959c8 c04d3dec c014272f c02eccf5
[ 0.138119] c04959c8 c0614938 c04d3dec 00000001 c04959c8 c0614938 c04953e0 c04d3e4c
[ 0.138497] Call Trace:
[ 0.138603] [<c0105231>] show_trace_log_lvl+0x1a/0x2f
[ 0.138798] [<c01052e1>] show_stack_log_lvl+0x9b/0xa3
[ 0.138942] [<c01054c1>] show_registers+0x1d8/0x30d
[ 0.139120] [<c010571d>] die+0x127/0x20a
[ 0.139272] [<c011c470>] do_page_fault+0x512/0x5e6
[ 0.139470] [<c038ec02>] error_code+0x72/0x78
[ 0.139678] [<c010a1f1>] save_stack_trace+0x23/0x3e
[ 0.139869] [<c0140921>] save_trace+0x3a/0x8e
[ 0.140049] [<c014272f>] mark_lock+0x7b/0x471
[ 0.140223] [<c01436fc>] __lock_acquire+0x51a/0xc99
[ 0.140374] [<c0143f0c>] lock_acquire+0x91/0xb5
[ 0.140546] [<c038e491>] _spin_lock_irq+0x47/0x71
[ 0.140693] [<c01354c9>] alloc_pid+0x1ce/0x22f
[ 0.140867] [<c0125ce5>] do_fork+0x15/0x1bf
[ 0.141011] [<c0102339>] kernel_thread+0x88/0x90
[ 0.141170] [<c038b2b8>] rest_init+0x14/0x63
[ 0.141345] [<c04d895e>] start_kernel+0x317/0x31f
[ 0.141565] [<c04ef641>] lguest_init+0x2af/0x2d5
[ 0.141736] BUG: unable to handle kernel paging request at virtual address c04d4000
[ 0.142195] printing eip:
[ 0.142259] c01051df
[ 0.142335] *pde = 00005067
[ 0.142418] *pte = 004d4000
[ 0.142501] Oops: 0000 [#2]
[ 0.142581] PREEMPT SMP DEBUG_PAGEALLOC
[ 0.142775] Modules linked in:
[ 0.142929] CPU: 0
[ 0.142930] EIP: 0061:[<c01051df>] Not tainted VLI
[ 0.142931] EFLAGS: 00010097 (2.6.23-rc3 #5)
[ 0.143296] EIP is at dump_trace+0x5f/0x97
[ 0.143409] eax: c0430e58 ebx: c04d3ffc ecx: c0497058 edx: 00000000
[ 0.143611] esi: c04d3000 edi: c04d3ffd ebp: c04d3c1c esp: c04d3c0c
[ 0.143800] ds: 007b es: 007b fs: 00d8 gs: 0000 ss: 0069
[ 0.143988] Process swapper (pid: 0, ti=c04d3000 task=c04953e0 task.ti=c04d3000)
[ 0.144213] Stack: 34373331 c0430e58 00000018 00000000 c04d3c30 c0105231 c0497058 c0430e58
[ 0.144634] c04d3df3 c04d3c54 c01052e1 c0430e58 c0430e58 c04d3d58 c04d3d90 00000000
[ 0.145055] 0000002b c04d3d58 c04d3cc0 c01054c1 c0430e58 00000010 c0495614 00000000
[ 0.145439] Call Trace:
[ 0.145511] [<c0105231>] show_trace_log_lvl+0x1a/0x2f
[ 0.145607] [<c01052e1>] show_stack_log_lvl+0x9b/0xa3
[ 0.145723] [<c01054c1>] show_registers+0x1d8/0x30d
[ 0.145849] [<c010571d>] die+0x127/0x20a
[ 0.145980] [<c011c470>] do_page_fault+0x512/0x5e6
[ 0.146125] [<c038ec02>] error_code+0x72/0x78
[ 0.146281] [<c0105231>] show_trace_log_lvl+0x1a/0x2f
[ 0.146423] [<c01052e1>] show_stack_log_lvl+0x9b/0xa3
[ 0.146587] [<c01054c1>] show_registers+0x1d8/0x30d
[ 0.146746] [<c010571d>] die+0x127/0x20a
[ 0.146895] [<c011c470>] do_page_fault+0x512/0x5e6
[ 0.147061] [<c038ec02>] error_code+0x72/0x78
[ 0.147213] [<c010a1f1>] save_stack_trace+0x23/0x3e
[ 0.147361] [<c0140921>] save_trace+0x3a/0x8e
[ 0.147531] [<c014272f>] mark_lock+0x7b/0x471
[ 0.147681] [<c01436fc>] __lock_acquire+0x51a/0xc99
[ 0.147839] [<c0143f0c>] lock_acquire+0x91/0xb5
[ 0.147987] [<c038e491>] _spin_lock_irq+0x47/0x71
[ 0.148136] [<c01354c9>] alloc_pid+0x1ce/0x22f
[ 0.148284] [<c0125ce5>] do_fork+0x15/0x1bf
[ 0.148458] [<c0102339>] kernel_thread+0x88/0x90
[ 0.148619] [<c038b2b8>] rest_init+0x14/0x63
[ 0.148766] [<c04d895e>] start_kernel+0x317/0x31f
[ 0.148923] [<c04ef641>] lguest_init+0x2af/0x2d5
[ 0.149076] BUG: unable to handle kernel paging request at virtual address c04d4000
[ 0.149297] printing eip:
[ 0.149371] c01051df
[ 0.149473] *pde = 00005067
[ 0.149547] *pte = 004d4000
[ 0.149623] Recursive die() failure, output suppressed
[ 0.149807] Kernel panic - not syncing: Attempted to kill the idle task!



Regards,
Frederik

2007-08-30 22:44:17

by Rusty Russell

[permalink] [raw]
Subject: Re: [PATCH] Fix lguest page-pinning logic ("lguest: bad stack page 0xc057a000")

On Thu, 2007-08-30 at 18:38 +0200, Frederik Deweerdt wrote:
> On Tue, Aug 28, 2007 at 02:09:59AM +1000, Rusty Russell wrote:
> > If the stack pointer is 0xc057a000, then the first stack page is at
> > 0xc0579000 (the stack pointer is decremented before use). Not
> > calculating this correctly caused guests with CONFIG_DEBUG_PAGEALLOC=y
> > to be killed with a "bad stack page" message: the initial kernel stack
> > was just preceeding the .smp_locks section which
> > CONFIG_DEBUG_PAGEALLOC marks read-only when freeing.
> >
> Hello Rusty,
>
> I just could try the patch, sorry for the delay. Albeit it allows to
> progress a little further in the boot process, lguest seems to like that
> "section that was just freed" :)

Yes, I got this too, then had to jump on a plane (and away from my test
box).

Turns out this actually isn't my bug (yay!).

See next patch...
Rusty.

2007-08-30 22:44:31

by Rusty Russell

[permalink] [raw]
Subject: [PATCH] Fix out-by-one error in traps.c

We don't care if ebp is on the stack, we care about ebp + 4. Without
this, lguest (with CONFIG_DEBUG_LOCKDEP) can touch a page unmapped by
CONFIG_DEBUG_PAGEALLOC.

Signed-off-by: Rusty Russell <[email protected]>

diff -r b0b1ab8ecf48 arch/i386/kernel/traps.c
--- a/arch/i386/kernel/traps.c Fri Aug 31 03:25:06 2007 +1000
+++ b/arch/i386/kernel/traps.c Fri Aug 31 07:57:35 2007 +1000
@@ -100,7 +100,7 @@ print_context_stack(struct thread_info *tinfo,
unsigned long addr;

#ifdef CONFIG_FRAME_POINTER
- while (valid_stack_ptr(tinfo, (void *)ebp)) {
+ while (valid_stack_ptr(tinfo, (void *)ebp + 4)) {
unsigned long new_ebp;
addr = *(unsigned long *)(ebp + 4);
ops->address(data, addr);


2007-08-31 04:45:46

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH] Fix out-by-one error in traps.c



On Fri, 31 Aug 2007, Rusty Russell wrote:
>
> We don't care if ebp is on the stack, we care about ebp + 4. Without
> this, lguest (with CONFIG_DEBUG_LOCKDEP) can touch a page unmapped by
> CONFIG_DEBUG_PAGEALLOC.

Hmm.. This *really* cannot happen with a normal kernel - it implies that
the stack has crossed into an invalid page.

Why is that allowed with lguest? What kind of code could validly *ever*
come in here and cause problems?

I'm getting the nervous feeling that lguest is really doing things that
shouldn't be done, or is using normal kernel functions in ways that they
should not be used.

In other words, yes, we load off "ebp+4", but I really don't see it being
a valid situation wher ebp itself isn't also a valid stack frame. The
stack is not sized for "off-by-one" errors - we're supposed to always have
plenty of stack space free, and if you care about "off-by-one", you're not
just living on the edge, you're way beyond it!

IOW, please explain why/how lguest ever triggers a case where this would
possibly matter!

Linus

2007-08-31 06:04:35

by Rusty Russell

[permalink] [raw]
Subject: Re: [PATCH] Fix out-by-one error in traps.c

On Thu, 2007-08-30 at 21:44 -0700, Linus Torvalds wrote:
>
> On Fri, 31 Aug 2007, Rusty Russell wrote:
> >
> > We don't care if ebp is on the stack, we care about ebp + 4. Without
> > this, lguest (with CONFIG_DEBUG_LOCKDEP) can touch a page unmapped by
> > CONFIG_DEBUG_PAGEALLOC.
>
> Hmm.. This *really* cannot happen with a normal kernel - it implies that
> the stack has crossed into an invalid page.

AFAICT, a corrupt stack could lead us to touch a page which isn't
mapped. If we assume the stack isn't corrupt, we don't have to do the
valid_stack_ptr() check at all...

> Why is that allowed with lguest? What kind of code could validly *ever*
> come in here and cause problems?

head.S pushes a "$0" on the stack to stop the unwinder, lguest doesn't.

Here's the lguest fix, but I still think the real fix posted previously
is more important.

Cheers,
Rusty.
===
lguest doesn't terminate stack, upsets unwinder

Copy head.S, which puts a 0 on the stack to terminate ebp-chasing
backtrace code.

Signed-off-by: Rusty Russell <[email protected]>

diff -r 926e5cc964fd drivers/lguest/lguest_asm.S
--- a/drivers/lguest/lguest_asm.S Fri Aug 31 08:02:08 2007 +1000
+++ b/drivers/lguest/lguest_asm.S Fri Aug 31 16:01:25 2007 +1000
@@ -19,6 +19,8 @@
movl $(init_thread_union+THREAD_SIZE),%esp
movl %esi, %eax
addl $__PAGE_OFFSET, %eax
+ /* Fake value to stop backtraces with CONFIG_FRAME_POINTER */
+ pushl $0
jmp lguest_init

/*G:055 We create a macro which puts the assembler code between lgstart_ and


2007-08-31 07:52:48

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH] Fix out-by-one error in traps.c



On Fri, 31 Aug 2007, Rusty Russell wrote:

> On Thu, 2007-08-30 at 21:44 -0700, Linus Torvalds wrote:
> >
> > Hmm.. This *really* cannot happen with a normal kernel - it implies that
> > the stack has crossed into an invalid page.
>
> AFAICT, a corrupt stack could lead us to touch a page which isn't
> mapped. If we assume the stack isn't corrupt, we don't have to do the
> valid_stack_ptr() check at all...

Fair enough. That said, you seem to see this even without a corrupt stack.

> > Why is that allowed with lguest? What kind of code could validly *ever*
> > come in here and cause problems?
>
> head.S pushes a "$0" on the stack to stop the unwinder, lguest doesn't.

The unwinder should stop when it sees an invalid frame pointer, and even
without the push 0 I'd have expected it to be invalid.

But I suspect lguest triggers another thing: you actually make the stack
start at the *very*top* of the stack area. Afaik, normal x86 does not. A
normal x86 kernel will start off with a pt_regs[] setup, I think - ie the
kernel stack is always set up so that it has the "return to user mode"
information.

And *that* difference may be what triggers this for lguest, even though it
can never trigger for a "real" kernel.

But your patch does improve the sanity checking of the frame pointer. That
said, I think the following patch improves it more: does this also work
for you? (Totally untested, but it looks like the RightThing(tm) to do)

Linus

---
diff --git a/arch/i386/kernel/traps.c b/arch/i386/kernel/traps.c
index cfffe3d..b9998f3 100644
--- a/arch/i386/kernel/traps.c
+++ b/arch/i386/kernel/traps.c
@@ -100,10 +100,10 @@ asmlinkage void machine_check(void);
int kstack_depth_to_print = 24;
static unsigned int code_bytes = 64;

-static inline int valid_stack_ptr(struct thread_info *tinfo, void *p)
+static inline int valid_stack_ptr(struct thread_info *tinfo, void *p, unsigned size)
{
return p > (void *)tinfo &&
- p < (void *)tinfo + THREAD_SIZE - 3;
+ p <= (void *)tinfo + THREAD_SIZE - size;
}

static inline unsigned long print_context_stack(struct thread_info *tinfo,
@@ -113,7 +113,7 @@ static inline unsigned long print_context_stack(struct thread_info *tinfo,
unsigned long addr;

#ifdef CONFIG_FRAME_POINTER
- while (valid_stack_ptr(tinfo, (void *)ebp)) {
+ while (valid_stack_ptr(tinfo, (void *)ebp, 2*sizeof(unsigned long))) {
unsigned long new_ebp;
addr = *(unsigned long *)(ebp + 4);
ops->address(data, addr);
@@ -129,7 +129,7 @@ static inline unsigned long print_context_stack(struct thread_info *tinfo,
ebp = new_ebp;
}
#else
- while (valid_stack_ptr(tinfo, stack)) {
+ while (valid_stack_ptr(tinfo, stack, sizeof(*stack))) {
addr = *stack++;
if (__kernel_text_address(addr))
ops->address(data, addr);

2007-08-31 17:46:27

by Rusty Russell

[permalink] [raw]
Subject: Re: [PATCH] Fix out-by-one error in traps.c

On Fri, 2007-08-31 at 00:51 -0700, Linus Torvalds wrote:
>
> On Fri, 31 Aug 2007, Rusty Russell wrote:
> > head.S pushes a "$0" on the stack to stop the unwinder, lguest doesn't.
>
> The unwinder should stop when it sees an invalid frame pointer, and even
> without the push 0 I'd have expected it to be invalid.
>
> But I suspect lguest triggers another thing: you actually make the stack
> start at the *very*top* of the stack area. Afaik, normal x86 does not. A
> normal x86 kernel will start off with a pt_regs[] setup, I think - ie the
> kernel stack is always set up so that it has the "return to user mode"
> information.

This is only for the initial booting stack (init_thread_union); see
arch/i386/kernel/head.S:
/* Set up the stack pointer */
lss stack_start,%esp
...
pushl $0 # fake return address for unwinder
...
.data
ENTRY(stack_start)
.long init_thread_union+THREAD_SIZE
.long __BOOT_DS

lguest_asm.S missed the pushl $0 (lguest doesn't boot via head.S. I'd
like to change that for 2.6.24, but it involved perturbing that code so
maybe not).

> But your patch does improve the sanity checking of the frame pointer. That
> said, I think the following patch improves it more: does this also work
> for you? (Totally untested, but it looks like the RightThing(tm) to do)

Yes, looks good. Perhaps one additional magic num removal:

> #ifdef CONFIG_FRAME_POINTER
> - while (valid_stack_ptr(tinfo, (void *)ebp)) {
> + while (valid_stack_ptr(tinfo, (void *)ebp, 2*sizeof(unsigned long))) {
> unsigned long new_ebp;
> addr = *(unsigned long *)(ebp + 4);

*((unsigned long *)ebp + 1)?

Thanks,
Rusty.

2007-08-31 18:27:51

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH] Fix out-by-one error in traps.c



On Sat, 1 Sep 2007, Rusty Russell wrote:
>
> This is only for the initial booting stack (init_thread_union); see
> arch/i386/kernel/head.S:
> /* Set up the stack pointer */
> lss stack_start,%esp
> ...
> pushl $0 # fake return address for unwinder

Ok, we should fix that. We should just make it look like all other stack
frames.

There is other code in the kernel that "knows" that all kernel stacks have
the fields for the user stack return on it, namely the ptrace code etc.
Now, the initial stack is hopefully never *accessed* by that kind of code,
but this kind of special-case code is just wrong.

> > But your patch does improve the sanity checking of the frame pointer. That
> > said, I think the following patch improves it more: does this also work
> > for you? (Totally untested, but it looks like the RightThing(tm) to do)
>
> Yes, looks good. Perhaps one additional magic num removal:

Well, we might as well then just make the code readable instead. IOW, how
about this one, which just declares a structure that describes the stack
frame thing? That just makes everything clearer, since we can then use
"sizeof(that structure)" instead of using the magic "2*sizeof(unsigned
long)".

Linus

---
diff --git a/arch/i386/kernel/traps.c b/arch/i386/kernel/traps.c
index cfffe3d..47b0bef 100644
--- a/arch/i386/kernel/traps.c
+++ b/arch/i386/kernel/traps.c
@@ -100,36 +100,45 @@ asmlinkage void machine_check(void);
int kstack_depth_to_print = 24;
static unsigned int code_bytes = 64;

-static inline int valid_stack_ptr(struct thread_info *tinfo, void *p)
+static inline int valid_stack_ptr(struct thread_info *tinfo, void *p, unsigned size)
{
return p > (void *)tinfo &&
- p < (void *)tinfo + THREAD_SIZE - 3;
+ p <= (void *)tinfo + THREAD_SIZE - size;
}

+/* The form of the top of the frame on the stack */
+struct stack_frame {
+ struct stack_frame *next_frame;
+ unsigned long return_address;
+};
+
static inline unsigned long print_context_stack(struct thread_info *tinfo,
unsigned long *stack, unsigned long ebp,
struct stacktrace_ops *ops, void *data)
{
- unsigned long addr;
-
#ifdef CONFIG_FRAME_POINTER
- while (valid_stack_ptr(tinfo, (void *)ebp)) {
- unsigned long new_ebp;
- addr = *(unsigned long *)(ebp + 4);
+ struct stack_frame *frame = (struct stack_frame *)ebp;
+ while (valid_stack_ptr(tinfo, frame, sizeof(*frame))) {
+ struct stack_frame *next;
+ unsigned long addr;
+
+ addr = frame->return_address;
ops->address(data, addr);
/*
* break out of recursive entries (such as
* end_of_stack_stop_unwind_function). Also,
* we can never allow a frame pointer to
* move downwards!
- */
- new_ebp = *(unsigned long *)ebp;
- if (new_ebp <= ebp)
+ */
+ next = frame->next_frame;
+ if (next <= frame)
break;
- ebp = new_ebp;
+ frame = next;
}
#else
- while (valid_stack_ptr(tinfo, stack)) {
+ while (valid_stack_ptr(tinfo, stack, sizeof(*stack))) {
+ unsigned long addr;
+
addr = *stack++;
if (__kernel_text_address(addr))
ops->address(data, addr);

2007-08-31 21:22:11

by Chuck Ebbert

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - vdso and gettimeofday issues with glibc

On 08/30/2007 10:08 AM, [email protected] wrote:
> On Wed, 29 Aug 2007 16:15:45 PDT, Andrew Morton said:
>
>> So it's an interaction between the x86_64 vdso patches in Andi's tree and
>> newer glibc, and we don't know which one is getting it wrong yet?
>>
>> If I ever get another -mm out the door (have been without electricity for
>> several days) I'll drop the vdso changes until this is sorted out.
>
> Don't bother, I tested this last night against a vanilla 2.6.23-rc3 kernel
> and it had the same issue as well. So Andi's vdso patches in his tree and/or
> the -mm kernel aren't to blame - it's in mainline as well. And it's been
> in for a while - I also hit it with a 2.6.22-rc6-mm1 kernel.
>

We also have:

http://lkml.org/lkml/2007/7/29/376

(Time repeatedly jumps backwards ~4400 seconds.)

2007-09-01 10:15:27

by Andi Kleen

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - vdso and gettimeofday issues with glibc


> write_seqlock_irqsave(&vsyscall_gtod_data.lock, flags);
> /* copy vsyscall data */
> vsyscall_gtod_data.clock.vread = clock->vread;
> vsyscall_gtod_data.clock.cycle_last = clock->cycle_last;
> vsyscall_gtod_data.clock.mask = clock->mask;
> vsyscall_gtod_data.clock.mult = clock->mult;
> vsyscall_gtod_data.clock.shift = clock->shift;
> vsyscall_gtod_data.wall_time_sec = wall_time->tv_sec;
> vsyscall_gtod_data.wall_time_nsec = wall_time->tv_nsec; <===
> vsyscall_gtod_data.sys_tz = sys_tz;
> vsyscall_gtod_data.wall_time_nsec = wall_time->tv_nsec; <===

Must have been a (harmless) merging mistake, but I bet gcc optimizes it out
anyways.

-Andi

2007-09-04 18:19:52

by Rusty Russell

[permalink] [raw]
Subject: Re: [PATCH] Fix out-by-one error in traps.c

On Fri, 2007-08-31 at 11:24 -0700, Linus Torvalds wrote:
>
> On Sat, 1 Sep 2007, Rusty Russell wrote:
> >
> > This is only for the initial booting stack (init_thread_union); see
> > arch/i386/kernel/head.S:
> > /* Set up the stack pointer */
> > lss stack_start,%esp
> > ...
> > pushl $0 # fake return address for unwinder
>
> Ok, we should fix that. We should just make it look like all other stack
> frames.
>
> There is other code in the kernel that "knows" that all kernel stacks have
> the fields for the user stack return on it, namely the ptrace code etc.
> Now, the initial stack is hopefully never *accessed* by that kind of code,
> but this kind of special-case code is just wrong.

Yes, but -ETIMEDOUT. Maybe for 2.6.24...

> IOW, how
> about this one, which just declares a structure that describes the stack
> frame thing? That just makes everything clearer, since we can then use
> "sizeof(that structure)" instead of using the magic "2*sizeof(unsigned
> long)".

Much nicer, thanks.

Rusty.

2007-09-05 20:41:21

by Tilman Schmidt

[permalink] [raw]
Subject: Clock trouble retest results with 2.6.23-rc4-mm1 (was: 2.6.23-rc3-mm1)

Am 25.08.2007 05:30 schrieb Andrew Morton:
> On Sat, 25 Aug 2007 02:47:59 +0200 Tilman Schmidt <[email protected]> wrote:

>>>> - on console early during boot, also in SuSE's /var/log/boot.msg:
>>>>
>>>> your system time is not correct:
>>>> Wed Jul 13 13:15:31 UTC 1910
>>>> setting system time to:
>>>> Tue Jul 24 00:00:00 UTC 2007

With 2.6.23-rc4-mm1 this doesn't happen anymore,
so whatever it was seems to be fixed.

>> --- /tmp/bootmsg-2.6.23-rc3 2007-08-25 02:25:54.000000000 +0200
>> +++ /tmp/bootmsg-2.6.23-rc3-mm1 2007-08-25 02:26:08.000000000 +0200
[...]
>> <6>..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1
>> -<6>checking TSC synchronization [CPU#0 -> CPU#1]: passed.
>> +<6>checking TSC synchronization [CPU#0 -> CPU#1]:
>> +<4>Measured 32 cycles TSC warp between CPUs, turning off TSC clock.
>> +<4>Marking TSC unstable due to: check_tsc_sync_source failed.

This still happens identically with 2.6.23-rc4-mm1.
Mainline kernels like my TSC, -mm kernels don't.

>> -<7>hpet_resources: 0xfed00000 is busy
>> +<4>hpet_acpi_add: no address or irqs in _CRS
>
> oh boy

2.6.23-rc4-mm1 reverts to mainline behaviour here.
(ie. "busy" instead of "no address or irqs")
Dunno if that's good or bad.

>> +<4>thermal: Unknown symbol acpi_processor_set_thermal_limit
>
> I think there are acpi fixes in Len's latest tree which will fix this.

Gone in 2.6.23-rc4-mm1.

HTH
Tilman

--
Tilman Schmidt E-Mail: [email protected]
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Unge?ffnet mindestens haltbar bis: (siehe R?ckseite)


Attachments:
signature.asc (253.00 B)
OpenPGP digital signature

2007-09-07 19:39:42

by Chuck Ebbert

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - vdso and gettimeofday issues with glibc

On 09/01/2007 06:07 AM, Andi Kleen wrote:
>> write_seqlock_irqsave(&vsyscall_gtod_data.lock, flags);
>> /* copy vsyscall data */
>> vsyscall_gtod_data.clock.vread = clock->vread;
>> vsyscall_gtod_data.clock.cycle_last = clock->cycle_last;
>> vsyscall_gtod_data.clock.mask = clock->mask;
>> vsyscall_gtod_data.clock.mult = clock->mult;
>> vsyscall_gtod_data.clock.shift = clock->shift;
>> vsyscall_gtod_data.wall_time_sec = wall_time->tv_sec;
>> vsyscall_gtod_data.wall_time_nsec = wall_time->tv_nsec; <===
>> vsyscall_gtod_data.sys_tz = sys_tz;
>> vsyscall_gtod_data.wall_time_nsec = wall_time->tv_nsec; <===
>
> Must have been a (harmless) merging mistake, but I bet gcc optimizes it out
> anyways.
>

I did find this after some digging:


In the vdso code:

static inline long vgetns(void)
{
cycles_t (*vread)(void);
vread = gtod->clock.vread;
return ((vread() - gtod->clock.cycle_last) * gtod->clock.mult) >>
gtod->clock.shift;
}


Looks like an open-coded version of this in the kernel timekeeping code:

static inline s64 __get_nsec_offset(void)
{
cycle_t cycle_now, cycle_delta;
s64 ns_offset;

/* read clocksource: */
cycle_now = clocksource_read(clock);

/* calculate the delta since the last update_wall_time: */
cycle_delta = (cycle_now - clock->cycle_last) & clock->mask;

/* convert to nanoseconds: */
ns_offset = cyc2ns(clock, cycle_delta);

return ns_offset;
}

But the vdso version isn't doing any masking. And the mask is different for
different clocksources, so it has to track the underlying kernel's clocksource
when it gets changed.

2007-09-08 08:58:09

by Andi Kleen

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - vdso and gettimeofday issues with glibc


> In the vdso code:
>
> static inline long vgetns(void)
> {
> cycles_t (*vread)(void);
> vread = gtod->clock.vread;
> return ((vread() - gtod->clock.cycle_last) * gtod->clock.mult) >>
> gtod->clock.shift;
> }
>
>
> Looks like an open-coded version of this in the kernel timekeeping code:

vdso code needs to be all inlined because the vdso runs in ring 3 and cannot
access other kernel code.

It was opencoded it to have more control over the code (vdso requirements
are a bit peculiar).

> But the vdso version isn't doing any masking. And the mask is different for
> different clocksources, so it has to track the underlying kernel's clocksource
> when it gets changed.

vdso effectively only supports TSC and HPET (the other clock sources are not accessible
from ring 3)

TSC doesn't need a mask, but many HPETs need a 32bit mask; good point.

Does adding the mask to vgetns make the clock problems go away?

-Andi

2007-09-09 00:24:26

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - vdso and gettimeofday issues with glibc

On Thu, 30 Aug 2007 12:27:10 EDT, Chuck Ebbert said:
> On 08/29/2007 07:15 PM, Andrew Morton wrote:
> >>> The issue: vdso and gettimeofday seem to be having a quarrel.
> >> This is also open as a Fedora bug:
> >> https://bugzilla.redhat.com/show_bug.cgi?id=262481
> >>
> >
> > So it's an interaction between the x86_64 vdso patches in Andi's tree and
> > newer glibc, and we don't know which one is getting it wrong yet?
> >
> > If I ever get another -mm out the door (have been without electricity for
> > several days) I'll drop the vdso changes until this is sorted out.
> > -
>
> Problem is present in stock 2.6.23-rc too. Still don't know whether it is
> the new glibc code or the vdso that's causing it, though.

Updating on this issue: Both myself and another person have reported on
the RedHat bugzilla that it's a clocksource issue - if you are using the
hpet clocksource, the time warps, but booting with clocksource=acpi_pm works.

This ring any bells?


Attachments:
(No filename) (226.00 B)

2007-09-09 03:21:18

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - vdso and gettimeofday issues with glibc

On Sat, 08 Sep 2007 10:57:50 +0200, Andi Kleen said:

> vdso effectively only supports TSC and HPET (the other clock sources are not accessible
> from ring 3)

Ahh.. that explains why acpi_pm clocksource doesn't trip over the problem....


Attachments:
(No filename) (226.00 B)

2007-09-09 07:27:20

by Andi Kleen

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - vdso and gettimeofday issues with glibc


> Updating on this issue: Both myself and another person have reported on
> the RedHat bugzilla that it's a clocksource issue - if you are using the
> hpet clocksource, the time warps, but booting with clocksource=acpi_pm works.
>
> This ring any bells?

Does this patch fix it?
-Andi

Add missing mask operation to vdso

vdso vgetns() didn't mask the time source offset calculation, which could
lead to time problems with 32bit HPET. Add the masking.

Thanks to Chuck Ebbert for tracking down.

Signed-off-by: Andi Kleen <[email protected]>

Index: linux/arch/x86_64/vdso/vclock_gettime.c
===================================================================
--- linux.orig/arch/x86_64/vdso/vclock_gettime.c
+++ linux/arch/x86_64/vdso/vclock_gettime.c
@@ -34,10 +34,11 @@ static long vdso_fallback_gettime(long c

static inline long vgetns(void)
{
+ long v;
cycles_t (*vread)(void);
vread = gtod->clock.vread;
- return ((vread() - gtod->clock.cycle_last) * gtod->clock.mult) >>
- gtod->clock.shift;
+ v = (vread() - gtod->clock.cycle_last) & gtod->clock.mask;
+ return (v * gtod->clock.mult) >> gtod->clock.shift;
}

static noinline int do_realtime(struct timespec *ts)

2007-09-09 11:45:18

by Jiri Slaby

[permalink] [raw]
Subject: Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]

On 08/28/2007 01:41 PM, Jiri Slaby wrote:
> Does this went through to your boxes? Any progress, clue, idea?
>
> Jiri Slaby napsal(a):
>> Andrew Morton napsal(a):
>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>> Hi,
>>
>> I've found a regression against 2.6.23-rc2-mm2. X server shutdown freezes
>> (untainted) kernel hardly. Nothing on netconsole, X output follows:
>>
>>
>> X Window System Version 1.3.0
>> Release Date: 19 April 2007
>> X Protocol Version 11, Revision 0, Release 1.3
>> Build Operating System: Fedora Core 7 Red Hat, Inc.
>> Current Operating System: Linux bellona 2.6.23-rc3-mm1 #315 SMP Wed Aug 22
>> 21:43:06 CEST 2007 i686
>> Build Date: 11 June 2007
>> Build ID: xorg-x11-server 1.3.0.0-9.fc7
>> Before reporting problems, check http://wiki.x.org
>> to make sure that you have the latest version.
>> Module Loader present
>> Markers: (--) probed, (**) from config file, (==) default setting,
>> (++) from command line, (!!) notice, (II) informational,
>> (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
>> (==) Log file: "/var/log/Xorg.0.log", Time: Sun Aug 26 14:22:43 2007
>> (==) Using config file: "/etc/X11/xorg.conf"
>> (WW) RADEON: No matching Device section for instance (BusID PCI:1:0:1) found
>> (**) RADEON(0): RADEONPreInit
>> (II) Module already built-in
>> (II) Module already built-in
>> (II) Module already built-in
>> (**) RADEON(0): RADEONScreenInit f0000000 0
>> (**) RADEON(0): Map: 0xf0000000, 0x04000000
>> (**) RADEON(0): RADEONSave
>> (**) RADEON(0): RADEONSaveMode(0x8240870)
>> (**) RADEON(0): Read: 0x0000000c 0x00030065 0x00000000
>> (**) RADEON(0): Read: rd=12, fd=101, pd=3
>> (**) RADEON(0): RADEONSaveMode returns 0x8240870
>> (**) RADEON(0): DRI New memory map param
>> (**) RADEON(0): RADEONInitMemoryMap() :
>> (**) RADEON(0): mem_size : 0x04000000
>> (**) RADEON(0): MC_FB_LOCATION : 0xf3fff000
>> (**) RADEON(0): MC_AGP_LOCATION : 0xffffffc0
>> (**) RADEON(0): RADEONModeInit()
>> 1280x1024 108.00 1280 1328 1440 1688 1024 1025 1028 1066 (24,32) +H +V
>> 1280x1024 108.00 1280 1328 1440 1688 1024 1025 1028 1066 (24,32) +H +V
>> (**) RADEON(0): Pitch = 10485920 bytes (virtualX = 1280, displayWidth = 1280)
>> (**) RADEON(0): dc=10800, of=21600, fd=96, pd=2
>> (**) RADEON(0): RADEONInit returns 0x8241220
>> (**) RADEON(0): RADEONRestoreMode()
>> (**) RADEON(0): RADEONRestoreMode(0x8241220)
>> (**) RADEON(0): RADEONRestoreMemMapRegisters() :
>> (**) RADEON(0): MC_FB_LOCATION : 0xf3fff000
>> (**) RADEON(0): MC_AGP_LOCATION : 0xffffffc0
>> (**) RADEON(0): Map Changed ! Applying ...
>> (**) RADEON(0): Map applied, resetting engine ...
>> (**) RADEON(0): Updating display base addresses...
>> (**) RADEON(0): Memory map updated.
>> (**) RADEON(0): Programming CRTC1, offset: 0x00000000
>> (**) RADEON(0): Wrote: 0x0000000c 0x00010060 0x00000000 (0x0000a400)
>> (**) RADEON(0): Wrote: rd=12, fd=96, pd=1
>> (**) RADEON(0): GRPH_BUFFER_CNTL from 20205c5c to 20125c5c
>> (**) RADEON(0): RADEONSaveScreen(0)
>> (**) RADEON(0): Setting up initial surfaces
>> (**) RADEON(0): Initializing fb layer
>> (**) RADEON(0): Setting up accel memmap
>> (**) RADEON(0): Initializing backing store
>> (**) RADEON(0): DRI Finishing init !
>> (**) RADEON(0): EngineRestore (32/32)
>> (**) RADEON(0): GRPH_BUFFER_CNTL from 20205c5c to 20125c5c
>> (**) RADEON(0): Setting up final surfaces
>> (**) RADEON(0): Initializing Acceleration
>> (**) RADEON(0): EngineInit (32/32)
>> (**) RADEON(0): Pitch for acceleration = 160
>> (**) RADEON(0): EngineRestore (32/32)
>> (**) RADEON(0): Initializing DPMS
>> (**) RADEON(0): Initializing Cursor
>> (**) RADEON(0): Initializing color map
>> (**) RADEON(0): Initializing DGA
>> (**) RADEON(0): Initializing Xv
>> (**) RADEON(0): RADEONScreenInit finished
>> (**) RADEON(0): RADEONSaveScreen(2)
>> (**) RADEON(0): RADEONCloseScreen
>> (**) RADEON(0): RADEONDRIStop
>> (**) RADEON(0): EngineRestore (32/32)
>> (**) RADEON(0): RADEONDisplayPowerManagementSet(0,0x0)
>> (**) RADEON(0): RADEONRestore
>> (**) RADEON(0): RADEONRestoreMode()
>> (**) RADEON(0): RADEONRestoreMode(0x8240870)
>> (**) RADEON(0): RADEONRestoreMemMapRegisters() :
>> (**) RADEON(0): MC_FB_LOCATION : 0x1fff0000
>> (**) RADEON(0): MC_AGP_LOCATION : 0x27ff2000
>> (**) RADEON(0): Map Changed ! Applying ...
>> (**) RADEON(0): Map applied, resetting engine ...
>> (**) RADEON(0): Updating display base addresses...
>> (**) RADEON(0): Memory map updated.
>> (**) RADEON(0): Programming CRTC1, offset: 0x00000000
>> (**) RADEON(0): Wrote: 0x0000000c 0x00030065 0x00000000 (0x0000a400)
>> (**) RADEON(0): Wrote: rd=12, fd=101, pd=3
>> (**) RADEON(0): Disposing accel...
>> (**) RADEON(0): Disposing cusor info
>> (**) RADEON(0): Disposing DGA
>> (**) RADEON(0): Unmapping memory
>> (**) RADEON(0): RADEONDRICloseScreen
>>
>>
>>
>> the only difference is, that 2.6.23-rc2-mm2 writes further
>>
>> FreeFontPath: FPE "/usr/share/X11/fonts/misc:unscaled" refcount is 2, should be
>> 1; fixing.
>>
>> and exits succesfully (note that these messages are taken on remote host, X
>> runned remotely).
>>
>> Both vesa and radeon + Option "NoAccel" "true" works obviously fine.

Also intel on integrated i915 causes this (NoAccell has no effect in this case).
Note that also 2.6.23-rc4-mm1 is affected by this behaviour.
I have a trace for you:
http://www.fi.muni.cz/~xslaby/sklad/panics/x-freeze.png
(this is the only what I'm able to grab so far)

regards,
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University

2007-09-09 12:48:19

by Andrew Morton

[permalink] [raw]
Subject: Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]

On Sun, 09 Sep 2007 13:44:56 +0200 Jiri Slaby <[email protected]> wrote:

> On 08/28/2007 01:41 PM, Jiri Slaby wrote:
> > Does this went through to your boxes? Any progress, clue, idea?
> >
> > Jiri Slaby napsal(a):
> >> Andrew Morton napsal(a):
> >>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
> >> Hi,
> >>
> >> I've found a regression against 2.6.23-rc2-mm2. X server shutdown freezes
> >> (untainted) kernel hardly. Nothing on netconsole, X output follows:
> >>
> >>
> >> X Window System Version 1.3.0
> >> Release Date: 19 April 2007
> >> X Protocol Version 11, Revision 0, Release 1.3
> >> Build Operating System: Fedora Core 7 Red Hat, Inc.
> >> Current Operating System: Linux bellona 2.6.23-rc3-mm1 #315 SMP Wed Aug 22
> >> 21:43:06 CEST 2007 i686
> >> Build Date: 11 June 2007
> >> Build ID: xorg-x11-server 1.3.0.0-9.fc7
> >> Before reporting problems, check http://wiki.x.org
> >> to make sure that you have the latest version.
> >> Module Loader present
> >> Markers: (--) probed, (**) from config file, (==) default setting,
> >> (++) from command line, (!!) notice, (II) informational,
> >> (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
> >> (==) Log file: "/var/log/Xorg.0.log", Time: Sun Aug 26 14:22:43 2007
> >> (==) Using config file: "/etc/X11/xorg.conf"
> >> (WW) RADEON: No matching Device section for instance (BusID PCI:1:0:1) found
> >> (**) RADEON(0): RADEONPreInit
> >> (II) Module already built-in
> >> (II) Module already built-in
> >> (II) Module already built-in
> >> (**) RADEON(0): RADEONScreenInit f0000000 0
> >> (**) RADEON(0): Map: 0xf0000000, 0x04000000
> >> (**) RADEON(0): RADEONSave
> >> (**) RADEON(0): RADEONSaveMode(0x8240870)
> >> (**) RADEON(0): Read: 0x0000000c 0x00030065 0x00000000
> >> (**) RADEON(0): Read: rd=12, fd=101, pd=3
> >> (**) RADEON(0): RADEONSaveMode returns 0x8240870
> >> (**) RADEON(0): DRI New memory map param
> >> (**) RADEON(0): RADEONInitMemoryMap() :
> >> (**) RADEON(0): mem_size : 0x04000000
> >> (**) RADEON(0): MC_FB_LOCATION : 0xf3fff000
> >> (**) RADEON(0): MC_AGP_LOCATION : 0xffffffc0
> >> (**) RADEON(0): RADEONModeInit()
> >> 1280x1024 108.00 1280 1328 1440 1688 1024 1025 1028 1066 (24,32) +H +V
> >> 1280x1024 108.00 1280 1328 1440 1688 1024 1025 1028 1066 (24,32) +H +V
> >> (**) RADEON(0): Pitch = 10485920 bytes (virtualX = 1280, displayWidth = 1280)
> >> (**) RADEON(0): dc=10800, of=21600, fd=96, pd=2
> >> (**) RADEON(0): RADEONInit returns 0x8241220
> >> (**) RADEON(0): RADEONRestoreMode()
> >> (**) RADEON(0): RADEONRestoreMode(0x8241220)
> >> (**) RADEON(0): RADEONRestoreMemMapRegisters() :
> >> (**) RADEON(0): MC_FB_LOCATION : 0xf3fff000
> >> (**) RADEON(0): MC_AGP_LOCATION : 0xffffffc0
> >> (**) RADEON(0): Map Changed ! Applying ...
> >> (**) RADEON(0): Map applied, resetting engine ...
> >> (**) RADEON(0): Updating display base addresses...
> >> (**) RADEON(0): Memory map updated.
> >> (**) RADEON(0): Programming CRTC1, offset: 0x00000000
> >> (**) RADEON(0): Wrote: 0x0000000c 0x00010060 0x00000000 (0x0000a400)
> >> (**) RADEON(0): Wrote: rd=12, fd=96, pd=1
> >> (**) RADEON(0): GRPH_BUFFER_CNTL from 20205c5c to 20125c5c
> >> (**) RADEON(0): RADEONSaveScreen(0)
> >> (**) RADEON(0): Setting up initial surfaces
> >> (**) RADEON(0): Initializing fb layer
> >> (**) RADEON(0): Setting up accel memmap
> >> (**) RADEON(0): Initializing backing store
> >> (**) RADEON(0): DRI Finishing init !
> >> (**) RADEON(0): EngineRestore (32/32)
> >> (**) RADEON(0): GRPH_BUFFER_CNTL from 20205c5c to 20125c5c
> >> (**) RADEON(0): Setting up final surfaces
> >> (**) RADEON(0): Initializing Acceleration
> >> (**) RADEON(0): EngineInit (32/32)
> >> (**) RADEON(0): Pitch for acceleration = 160
> >> (**) RADEON(0): EngineRestore (32/32)
> >> (**) RADEON(0): Initializing DPMS
> >> (**) RADEON(0): Initializing Cursor
> >> (**) RADEON(0): Initializing color map
> >> (**) RADEON(0): Initializing DGA
> >> (**) RADEON(0): Initializing Xv
> >> (**) RADEON(0): RADEONScreenInit finished
> >> (**) RADEON(0): RADEONSaveScreen(2)
> >> (**) RADEON(0): RADEONCloseScreen
> >> (**) RADEON(0): RADEONDRIStop
> >> (**) RADEON(0): EngineRestore (32/32)
> >> (**) RADEON(0): RADEONDisplayPowerManagementSet(0,0x0)
> >> (**) RADEON(0): RADEONRestore
> >> (**) RADEON(0): RADEONRestoreMode()
> >> (**) RADEON(0): RADEONRestoreMode(0x8240870)
> >> (**) RADEON(0): RADEONRestoreMemMapRegisters() :
> >> (**) RADEON(0): MC_FB_LOCATION : 0x1fff0000
> >> (**) RADEON(0): MC_AGP_LOCATION : 0x27ff2000
> >> (**) RADEON(0): Map Changed ! Applying ...
> >> (**) RADEON(0): Map applied, resetting engine ...
> >> (**) RADEON(0): Updating display base addresses...
> >> (**) RADEON(0): Memory map updated.
> >> (**) RADEON(0): Programming CRTC1, offset: 0x00000000
> >> (**) RADEON(0): Wrote: 0x0000000c 0x00030065 0x00000000 (0x0000a400)
> >> (**) RADEON(0): Wrote: rd=12, fd=101, pd=3
> >> (**) RADEON(0): Disposing accel...
> >> (**) RADEON(0): Disposing cusor info
> >> (**) RADEON(0): Disposing DGA
> >> (**) RADEON(0): Unmapping memory
> >> (**) RADEON(0): RADEONDRICloseScreen
> >>
> >>
> >>
> >> the only difference is, that 2.6.23-rc2-mm2 writes further
> >>
> >> FreeFontPath: FPE "/usr/share/X11/fonts/misc:unscaled" refcount is 2, should be
> >> 1; fixing.
> >>
> >> and exits succesfully (note that these messages are taken on remote host, X
> >> runned remotely).
> >>
> >> Both vesa and radeon + Option "NoAccel" "true" works obviously fine.
>
> Also intel on integrated i915 causes this (NoAccell has no effect in this case).
> Note that also 2.6.23-rc4-mm1 is affected by this behaviour.
> I have a trace for you:
> http://www.fi.muni.cz/~xslaby/sklad/panics/x-freeze.png
> (this is the only what I'm able to grab so far)
>

afacit everything on that call trace is good. I guess it's possible that
one of the higher-level loops has gone infinite (eg, the one in
agp_remove_controller()).

Are you able to get netconsole working, and run sysrq-P and sysrq-T
ten or so times, see if it's always stuck in the same place on the
same CPU?

2007-09-09 13:04:23

by Jiri Slaby

[permalink] [raw]
Subject: Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]

Removed [email protected] (dead e-mail)

On 09/09/2007 02:47 PM, Andrew Morton wrote:
> On Sun, 09 Sep 2007 13:44:56 +0200 Jiri Slaby <[email protected]> wrote:
>
>> On 08/28/2007 01:41 PM, Jiri Slaby wrote:
>>> Does this went through to your boxes? Any progress, clue, idea?
>>>
>>> Jiri Slaby napsal(a):
>>>> Andrew Morton napsal(a):
>>>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>>>> Hi,
>>>>
>>>> I've found a regression against 2.6.23-rc2-mm2. X server shutdown freezes
>>>> (untainted) kernel hardly. Nothing on netconsole, X output follows:

--------------------------------^^^

sorry, both netconsole and my usb devices (including my keyboard -- no numlock
led switch) are dead. The trace I've taken appears on the screen after a while.

>>>> X Window System Version 1.3.0
>>>> Release Date: 19 April 2007
>>>> X Protocol Version 11, Revision 0, Release 1.3
>>>> Build Operating System: Fedora Core 7 Red Hat, Inc.
>>>> Current Operating System: Linux bellona 2.6.23-rc3-mm1 #315 SMP Wed Aug 22
[...]
>>>> (**) RADEON(0): RADEONDRICloseScreen
>>>>
>>>>
>>>>
>>>> the only difference is, that 2.6.23-rc2-mm2 writes further
>>>>
>>>> FreeFontPath: FPE "/usr/share/X11/fonts/misc:unscaled" refcount is 2, should be
>>>> 1; fixing.
>>>>
>>>> and exits succesfully (note that these messages are taken on remote host, X
>>>> runned remotely).
>>>>
>>>> Both vesa and radeon + Option "NoAccel" "true" works obviously fine.
>> Also intel on integrated i915 causes this (NoAccell has no effect in this case).
>> Note that also 2.6.23-rc4-mm1 is affected by this behaviour.
>> I have a trace for you:
>> http://www.fi.muni.cz/~xslaby/sklad/panics/x-freeze.png
>> (this is the only what I'm able to grab so far)
>>
>
> afacit everything on that call trace is good. I guess it's possible that
> one of the higher-level loops has gone infinite (eg, the one in
> agp_remove_controller()).

There is no loop in this function. Anyway, going to track this whole issue down.
Hold on.

> Are you able to get netconsole working, and run sysrq-P and sysrq-T
> ten or so times, see if it's always stuck in the same place on the
> same CPU?

thanks so far,
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University

2007-09-09 14:08:58

by Jiri Slaby

[permalink] [raw]
Subject: Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]

On 09/09/2007 02:47 PM, Andrew Morton wrote:
> On Sun, 09 Sep 2007 13:44:56 +0200 Jiri Slaby <[email protected]> wrote:
>
>> On 08/28/2007 01:41 PM, Jiri Slaby wrote:
>>> Does this went through to your boxes? Any progress, clue, idea?
>>>
>>> Jiri Slaby napsal(a):
>>>> Andrew Morton napsal(a):
>>>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc3/2.6.23-rc3-mm1/
>>>> Hi,
>>>>
>>>> I've found a regression against 2.6.23-rc2-mm2. X server shutdown freezes
>>>> (untainted) kernel hardly. Nothing on netconsole, X output follows:
>>>>
>>>>
>>>> X Window System Version 1.3.0
>>>> Release Date: 19 April 2007
>>>> X Protocol Version 11, Revision 0, Release 1.3
>>>> Build Operating System: Fedora Core 7 Red Hat, Inc.
>>>> Current Operating System: Linux bellona 2.6.23-rc3-mm1 #315 SMP Wed Aug 22
>>>> 21:43:06 CEST 2007 i686
>>>> Build Date: 11 June 2007
>>>> Build ID: xorg-x11-server 1.3.0.0-9.fc7
>>>> Before reporting problems, check http://wiki.x.org
>>>> to make sure that you have the latest version.
>>>> Module Loader present
>>>> Markers: (--) probed, (**) from config file, (==) default setting,
>>>> (++) from command line, (!!) notice, (II) informational,
>>>> (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
>>>> (==) Log file: "/var/log/Xorg.0.log", Time: Sun Aug 26 14:22:43 2007
>>>> (==) Using config file: "/etc/X11/xorg.conf"
>>>> (WW) RADEON: No matching Device section for instance (BusID PCI:1:0:1) found
>>>> (**) RADEON(0): RADEONPreInit
>>>> (II) Module already built-in
>>>> (II) Module already built-in
>>>> (II) Module already built-in
>>>> (**) RADEON(0): RADEONScreenInit f0000000 0
>>>> (**) RADEON(0): Map: 0xf0000000, 0x04000000
>>>> (**) RADEON(0): RADEONSave
>>>> (**) RADEON(0): RADEONSaveMode(0x8240870)
>>>> (**) RADEON(0): Read: 0x0000000c 0x00030065 0x00000000
>>>> (**) RADEON(0): Read: rd=12, fd=101, pd=3
>>>> (**) RADEON(0): RADEONSaveMode returns 0x8240870
>>>> (**) RADEON(0): DRI New memory map param
>>>> (**) RADEON(0): RADEONInitMemoryMap() :
>>>> (**) RADEON(0): mem_size : 0x04000000
>>>> (**) RADEON(0): MC_FB_LOCATION : 0xf3fff000
>>>> (**) RADEON(0): MC_AGP_LOCATION : 0xffffffc0
>>>> (**) RADEON(0): RADEONModeInit()
>>>> 1280x1024 108.00 1280 1328 1440 1688 1024 1025 1028 1066 (24,32) +H +V
>>>> 1280x1024 108.00 1280 1328 1440 1688 1024 1025 1028 1066 (24,32) +H +V
>>>> (**) RADEON(0): Pitch = 10485920 bytes (virtualX = 1280, displayWidth = 1280)
>>>> (**) RADEON(0): dc=10800, of=21600, fd=96, pd=2
>>>> (**) RADEON(0): RADEONInit returns 0x8241220
>>>> (**) RADEON(0): RADEONRestoreMode()
>>>> (**) RADEON(0): RADEONRestoreMode(0x8241220)
>>>> (**) RADEON(0): RADEONRestoreMemMapRegisters() :
>>>> (**) RADEON(0): MC_FB_LOCATION : 0xf3fff000
>>>> (**) RADEON(0): MC_AGP_LOCATION : 0xffffffc0
>>>> (**) RADEON(0): Map Changed ! Applying ...
>>>> (**) RADEON(0): Map applied, resetting engine ...
>>>> (**) RADEON(0): Updating display base addresses...
>>>> (**) RADEON(0): Memory map updated.
>>>> (**) RADEON(0): Programming CRTC1, offset: 0x00000000
>>>> (**) RADEON(0): Wrote: 0x0000000c 0x00010060 0x00000000 (0x0000a400)
>>>> (**) RADEON(0): Wrote: rd=12, fd=96, pd=1
>>>> (**) RADEON(0): GRPH_BUFFER_CNTL from 20205c5c to 20125c5c
>>>> (**) RADEON(0): RADEONSaveScreen(0)
>>>> (**) RADEON(0): Setting up initial surfaces
>>>> (**) RADEON(0): Initializing fb layer
>>>> (**) RADEON(0): Setting up accel memmap
>>>> (**) RADEON(0): Initializing backing store
>>>> (**) RADEON(0): DRI Finishing init !
>>>> (**) RADEON(0): EngineRestore (32/32)
>>>> (**) RADEON(0): GRPH_BUFFER_CNTL from 20205c5c to 20125c5c
>>>> (**) RADEON(0): Setting up final surfaces
>>>> (**) RADEON(0): Initializing Acceleration
>>>> (**) RADEON(0): EngineInit (32/32)
>>>> (**) RADEON(0): Pitch for acceleration = 160
>>>> (**) RADEON(0): EngineRestore (32/32)
>>>> (**) RADEON(0): Initializing DPMS
>>>> (**) RADEON(0): Initializing Cursor
>>>> (**) RADEON(0): Initializing color map
>>>> (**) RADEON(0): Initializing DGA
>>>> (**) RADEON(0): Initializing Xv
>>>> (**) RADEON(0): RADEONScreenInit finished
>>>> (**) RADEON(0): RADEONSaveScreen(2)
>>>> (**) RADEON(0): RADEONCloseScreen
>>>> (**) RADEON(0): RADEONDRIStop
>>>> (**) RADEON(0): EngineRestore (32/32)
>>>> (**) RADEON(0): RADEONDisplayPowerManagementSet(0,0x0)
>>>> (**) RADEON(0): RADEONRestore
>>>> (**) RADEON(0): RADEONRestoreMode()
>>>> (**) RADEON(0): RADEONRestoreMode(0x8240870)
>>>> (**) RADEON(0): RADEONRestoreMemMapRegisters() :
>>>> (**) RADEON(0): MC_FB_LOCATION : 0x1fff0000
>>>> (**) RADEON(0): MC_AGP_LOCATION : 0x27ff2000
>>>> (**) RADEON(0): Map Changed ! Applying ...
>>>> (**) RADEON(0): Map applied, resetting engine ...
>>>> (**) RADEON(0): Updating display base addresses...
>>>> (**) RADEON(0): Memory map updated.
>>>> (**) RADEON(0): Programming CRTC1, offset: 0x00000000
>>>> (**) RADEON(0): Wrote: 0x0000000c 0x00030065 0x00000000 (0x0000a400)
>>>> (**) RADEON(0): Wrote: rd=12, fd=101, pd=3
>>>> (**) RADEON(0): Disposing accel...
>>>> (**) RADEON(0): Disposing cusor info
>>>> (**) RADEON(0): Disposing DGA
>>>> (**) RADEON(0): Unmapping memory
>>>> (**) RADEON(0): RADEONDRICloseScreen
>>>>
>>>>
>>>>
>>>> the only difference is, that 2.6.23-rc2-mm2 writes further
>>>>
>>>> FreeFontPath: FPE "/usr/share/X11/fonts/misc:unscaled" refcount is 2, should be
>>>> 1; fixing.
>>>>
>>>> and exits succesfully (note that these messages are taken on remote host, X
>>>> runned remotely).
>>>>
>>>> Both vesa and radeon + Option "NoAccel" "true" works obviously fine.
>> Also intel on integrated i915 causes this (NoAccell has no effect in this case).
>> Note that also 2.6.23-rc4-mm1 is affected by this behaviour.
>> I have a trace for you:
>> http://www.fi.muni.cz/~xslaby/sklad/panics/x-freeze.png
>> (this is the only what I'm able to grab so far)
>>
>
> afacit everything on that call trace is good. I guess it's possible that
> one of the higher-level loops has gone infinite (eg, the one in
> agp_remove_controller()).
>
> Are you able to get netconsole working, and run sysrq-P and sysrq-T
> ten or so times, see if it's always stuck in the same place on the
> same CPU?

Hm, I suspect Andi's x86_64-mm-cpa-clflush.patch or something like that. It
loops in flush_kernel_map in list_for_each_entry on the first CPU. The a->l list
is somehow corrupted I guess.

regards,
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University

2007-09-09 14:17:40

by Andi Kleen

[permalink] [raw]
Subject: Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]

> Hm, I suspect Andi's x86_64-mm-cpa-clflush.patch or something like that. It
> loops in flush_kernel_map in list_for_each_entry on the first CPU. The a->l list
> is somehow corrupted I guess.

Does it still happen with the latest version

ftp://ftp.firstfloor.org/pub/ak/x86_64/quilt/patches/cpa-clflush

?

(you might need to replace the other cpa-* patches too because
they depend on each other)

-Andi

2007-09-09 14:26:36

by Jiri Slaby

[permalink] [raw]
Subject: Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]

On 09/09/2007 04:17 PM, Andi Kleen wrote:
>> Hm, I suspect Andi's x86_64-mm-cpa-clflush.patch or something like that. It
>> loops in flush_kernel_map in list_for_each_entry on the first CPU. The a->l list
>> is somehow corrupted I guess.
>
> Does it still happen with the latest version

I think so :)
$ diff -u x86_64-mm-cpa-clflush.patch cpa-clflush |wc -l
0

> ftp://ftp.firstfloor.org/pub/ak/x86_64/quilt/patches/cpa-clflush
>
> ?
>
> (you might need to replace the other cpa-* patches too because
> they depend on each other)

And are there any changes against the -rc4-mm1 in those patches?

BTW it is reproducible for me on two different machines (i386-x86_64,
radeon-intel), don't you have the problem too?

regards,
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University

2007-09-09 14:33:33

by Andi Kleen

[permalink] [raw]
Subject: Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]

On Sun, Sep 09, 2007 at 04:26:22PM +0200, Jiri Slaby wrote:
> BTW it is reproducible for me on two different machines (i386-x86_64,
> radeon-intel), don't you have the problem too?

No problems here with a radeon, no.

Does your CPU have clflush or not in /proc/cpuinfo?

-Andi

2007-09-09 14:36:00

by Jiri Slaby

[permalink] [raw]
Subject: Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]

On 09/09/2007 04:33 PM, Andi Kleen wrote:
> On Sun, Sep 09, 2007 at 04:26:22PM +0200, Jiri Slaby wrote:
>> BTW it is reproducible for me on two different machines (i386-x86_64,
>> radeon-intel), don't you have the problem too?
>
> No problems here with a radeon, no.
>
> Does your CPU have clflush or not in /proc/cpuinfo?

yes:

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Core(TM)2 Duo CPU E6850 @ 3.00GHz
stepping : 11
cpu MHz : 2992.543
cache size : 4096 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm
constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx smx est tm2
ssse3 cx16 xtpr lahf_lm
bogomips : 5991.99
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Core(TM)2 Duo CPU E6850 @ 3.00GHz
stepping : 11
cpu MHz : 2992.543
cache size : 4096 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm
constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx smx est tm2
ssse3 cx16 xtpr lahf_lm
bogomips : 5985.42
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University

2007-09-09 14:43:53

by Jiri Slaby

[permalink] [raw]
Subject: Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]

On 09/09/2007 04:33 PM, Andi Kleen wrote:
> On Sun, Sep 09, 2007 at 04:26:22PM +0200, Jiri Slaby wrote:
>> BTW it is reproducible for me on two different machines (i386-x86_64,
>> radeon-intel), don't you have the problem too?
>
> No problems here with a radeon, no.
>
> Does your CPU have clflush or not in /proc/cpuinfo?

BTW this is how my flush_kernel_map looks like:

static void flush_kernel_map(void *arg)
{
struct flush_arg *a = (struct flush_arg *)arg;
struct page *pg;
unsigned int xx = 0;

/* When clflush is available use it because it is
much cheaper than WBINVD. */
printk("%s: 1\n", __func__);
if (a->full_flush || !cpu_has_clflush)
asm volatile("wbinvd" ::: "memory");
else list_for_each_entry(pg, &a->l, lru) {
printk("%s: %10u 1a\n", __func__, xx++);
if (PageFlush(pg))
clflush_cache_range(page_address(pg), PAGE_SIZE);
}
printk("%s: 2\n", __func__);
__flush_tlb_all();
printk("%s: 3\n", __func__);
}

It outputs 1a in the infinite loop with incrementing xx. But only in this case,
some global_flush_tlb are OK. e.g.:
Sep 10 01:39:19 localhost kernel: agpgart: Detected an Intel G33 Chipset.
Sep 10 01:39:19 localhost kernel: global_flush_tlb: 1
Sep 10 01:39:19 localhost kernel: flush_kernel_map: 1
Sep 10 01:39:19 localhost kernel: flush_kernel_map: 0 1a
Sep 10 01:39:19 localhost kernel: flush_kernel_map: 1 1a
Sep 10 01:39:19 localhost kernel: flush_kernel_map: 2
Sep 10 01:39:19 localhost kernel: flush_kernel_map: 3
Sep 10 01:39:19 localhost kernel: flush_kernel_map: 1
Sep 10 01:39:19 localhost kernel: flush_kernel_map: 0 1a
Sep 10 01:39:19 localhost kernel: flush_kernel_map: 1 1a
Sep 10 01:39:19 localhost kernel: flush_kernel_map: 2
Sep 10 01:39:19 localhost kernel: flush_kernel_map: 3
Sep 10 01:39:19 localhost kernel: global_flush_tlb: 2
Sep 10 01:39:19 localhost kernel: global_flush_tlb: 3
Sep 10 01:39:19 localhost kernel: agpgart: Detected 6140K stolen memory.

It seems, that the list is broken only on X shutdown. How can be deferred-pages
list inited in some bad manner, when list_replace_init is called on it? Weird.

--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University

2007-09-09 15:02:16

by Andi Kleen

[permalink] [raw]
Subject: Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]

On Sun, Sep 09, 2007 at 04:43:37PM +0200, Jiri Slaby wrote:
> On 09/09/2007 04:33 PM, Andi Kleen wrote:
> > On Sun, Sep 09, 2007 at 04:26:22PM +0200, Jiri Slaby wrote:
> >> BTW it is reproducible for me on two different machines (i386-x86_64,
> >> radeon-intel), don't you have the problem too?
> >
> > No problems here with a radeon, no.
> >
> > Does your CPU have clflush or not in /proc/cpuinfo?
>
> BTW this is how my flush_kernel_map looks like:

Can you stick a printk into change_page_attr to log in which order
it changes pages (including their addresses and the pgattr)?

-Andi

2007-09-09 15:49:35

by Jiri Slaby

[permalink] [raw]
Subject: Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]

On 09/09/2007 05:01 PM, Andi Kleen wrote:
> On Sun, Sep 09, 2007 at 04:43:37PM +0200, Jiri Slaby wrote:
>> On 09/09/2007 04:33 PM, Andi Kleen wrote:
>>> On Sun, Sep 09, 2007 at 04:26:22PM +0200, Jiri Slaby wrote:
>>>> BTW it is reproducible for me on two different machines (i386-x86_64,
>>>> radeon-intel), don't you have the problem too?
>>> No problems here with a radeon, no.
>>>
>>> Does your CPU have clflush or not in /proc/cpuinfo?
>> BTW this is how my flush_kernel_map looks like:
>
> Can you stick a printk into change_page_attr to log in which order
> it changes pages (including their addresses and the pgattr)?

printk("%s: %p %p %.16lx %d\n", __func__, page, page_address(page),
pgprot_val(prot), numpages);
http://www.fi.muni.cz/~xslaby/sklad/panics/x-freeze_chpa.png

What other info needed?

--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University

2007-09-10 19:07:45

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: 2.6.23-rc3-mm1 - vdso and gettimeofday issues with glibc

On Sun, 09 Sep 2007 09:27:06 +0200, Andi Kleen said:
> > Updating on this issue: Both myself and another person have reported on
> > the RedHat bugzilla that it's a clocksource issue - if you are using the
> > hpet clocksource, the time warps, but booting with clocksource=acpi_pm works.
> >
> > This ring any bells?
>
> Does this patch fix it?
> -Andi
>
> Add missing mask operation to vdso
>
> vdso vgetns() didn't mask the time source offset calculation, which could
> lead to time problems with 32bit HPET. Add the masking.
>
> Thanks to Chuck Ebbert for tracking down.
>
> Signed-off-by: Andi Kleen <[email protected]>

Confirming that does indeed fix it - booted with hpet clocksource and vdso=1,
and the time didn't warp at the 5-minute mark.

Tested-By: Valdis Kletnieks <[email protected]>


Attachments:
(No filename) (226.00 B)

2007-09-11 15:18:18

by Dave Airlie

[permalink] [raw]
Subject: Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]

>
> What other info needed?

I'm seeing this on my 965gm chipset with Andi's clflush patches on x86
32-bit, it looks like an interaction with the agp code which does a big
bunch of change page attr to allocate the AGP aperture backed memory..

I think the code might have worked in a previous iteration on my 64-bit
965G machine at home but I'm on the road and won't be back anytime soon..

I'll see what I can figure out from my laptop...

Dave.

2007-09-17 11:09:36

by Jiri Slaby

[permalink] [raw]
Subject: Re: X freezes kernel during exit [Re: 2.6.23-rc3-mm1]

On 09/09/2007 04:43 PM, Jiri Slaby wrote:
> On 09/09/2007 04:33 PM, Andi Kleen wrote:
>> On Sun, Sep 09, 2007 at 04:26:22PM +0200, Jiri Slaby wrote:
>>> BTW it is reproducible for me on two different machines (i386-x86_64,
>>> radeon-intel), don't you have the problem too?
>> No problems here with a radeon, no.
>>
>> Does your CPU have clflush or not in /proc/cpuinfo?
>
> BTW this is how my flush_kernel_map looks like:
>
> static void flush_kernel_map(void *arg)
> {
> struct flush_arg *a = (struct flush_arg *)arg;
> struct page *pg;
> unsigned int xx = 0;
>
> /* When clflush is available use it because it is
> much cheaper than WBINVD. */
> printk("%s: 1\n", __func__);
> if (a->full_flush || !cpu_has_clflush)
> asm volatile("wbinvd" ::: "memory");
> else list_for_each_entry(pg, &a->l, lru) {
> printk("%s: %10u 1a\n", __func__, xx++);
> if (PageFlush(pg))
> clflush_cache_range(page_address(pg), PAGE_SIZE);
> }
> printk("%s: 2\n", __func__);
> __flush_tlb_all();
> printk("%s: 3\n", __func__);
> }
>
> It outputs 1a in the infinite loop with incrementing xx. But only in this case,
> some global_flush_tlb are OK. e.g.:
> Sep 10 01:39:19 localhost kernel: agpgart: Detected an Intel G33 Chipset.
> Sep 10 01:39:19 localhost kernel: global_flush_tlb: 1
> Sep 10 01:39:19 localhost kernel: flush_kernel_map: 1
> Sep 10 01:39:19 localhost kernel: flush_kernel_map: 0 1a
> Sep 10 01:39:19 localhost kernel: flush_kernel_map: 1 1a
> Sep 10 01:39:19 localhost kernel: flush_kernel_map: 2
> Sep 10 01:39:19 localhost kernel: flush_kernel_map: 3
> Sep 10 01:39:19 localhost kernel: flush_kernel_map: 1
> Sep 10 01:39:19 localhost kernel: flush_kernel_map: 0 1a
> Sep 10 01:39:19 localhost kernel: flush_kernel_map: 1 1a
> Sep 10 01:39:19 localhost kernel: flush_kernel_map: 2
> Sep 10 01:39:19 localhost kernel: flush_kernel_map: 3
> Sep 10 01:39:19 localhost kernel: global_flush_tlb: 2
> Sep 10 01:39:19 localhost kernel: global_flush_tlb: 3
> Sep 10 01:39:19 localhost kernel: agpgart: Detected 6140K stolen memory.
>
> It seems, that the list is broken only on X shutdown. How can be deferred-pages
> list inited in some bad manner, when list_replace_init is called on it? Weird.

Ok, here comes a BUG with trace:
set status page addr 0x00033000
list_add corruption. next->prev should be prev (ffffffff8068ae70), but was
ffffffff80697a50. (next=ffff81000117fbd0).
------------[ cut here ]------------
kernel BUG at /home/l/latest/xxx/lib/list_debug.c:27!
invalid opcode: 0000 [1] SMP
last sysfs file: /devices/pci0000:00/0000:00:02.0/enable
CPU 0
Modules linked in: ipv6 floppy sr_mod rtc_cmos rtc_core cdrom ehci_hcd rtc_lib
usbhid
Pid: 1639, comm: X Not tainted 2.6.23-rc4-mm1_64 #23
RIP: 0010:[<ffffffff80332f49>] [<ffffffff80332f49>] __list_add+0x39/0x60
RSP: 0018:ffff81000547bd48 EFLAGS: 00010296
RAX: 0000000000000079 RBX: ffff81000117a380 RCX: ffffffff8068b450
RDX: ffff81000317d6a0 RSI: 0000000000000001 RDI: ffffffff8068b420
RBP: ffff81000547bd48 R08: 0000000000000000 R09: 0000000000000001
R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000006da2
R13: ffff810006c10d10 R14: ffff810006da2000 R15: 8000000000000163
FS: 00007f7a05258710(0000) GS:ffffffff806d1000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000a33040 CR3: 0000000004a43000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process X (pid: 1639, threadinfo ffff81000547a000, task ffff81000317d6a0)
Stack: ffff81000547bd58 ffffffff80332f7c ffff81000547bdc8 ffffffff80225c56
ffffffff80225cb5 8000000000000163 ffffffff806830e8 ffffffff806830a0
ffffffff806830a0 ffff810006da2000 ffff81000547bda8 0000000000006da2
Call Trace:
[<ffffffff80332f7c>] list_add+0xc/0x10
[<ffffffff80225c56>] __change_page_attr+0x376/0x390
[<ffffffff80225cb5>] change_page_attr_addr+0x45/0x140
[<ffffffff80225d16>] change_page_attr_addr+0xa6/0x140
[<ffffffff80225de3>] change_page_attr+0x33/0x40
[<ffffffff80387b64>] agp_generic_destroy_page+0x44/0x70
[<ffffffff80388645>] agp_free_memory+0x65/0xd0
[<ffffffff80386d49>] agp_free_memory_wrap+0x39/0x60
[<ffffffff803873fb>] agp_release+0xdb/0x1c0
[<ffffffff80299551>] __fput+0xd1/0x1b0
[<ffffffff802996b6>] fput+0x16/0x20
[<ffffffff802964e6>] filp_close+0x56/0x90
[<ffffffff80297bed>] sys_close+0xad/0x110
[<ffffffff8020bd0e>] system_call+0x7e/0x83

INFO: lockdep is turned off.

Code: 0f 0b eb fe 0f 1f 00 48 89 f1 4c 89 c2 48 89 c6 48 c7 c7 e8
RIP [<ffffffff80332f49>] __list_add+0x39/0x60
RSP <ffff81000547bd48>

regards,
--
Jiri Slaby ([email protected])
Faculty of Informatics, Masaryk University