2004-11-15 03:01:39

by Linus Torvalds

[permalink] [raw]
Subject: Linux 2.6.10-rc2


Ok, the -rc2 changes are almost as big as the -rc1 changes, and we should
now calm down, so I do not want to see anything but bug-fixes until 2.6.10
is released. Otherwise we'll never get there.

A lot of driver updates, many of them of the small and trivial kind,
others less so. USB, ALSA, fbdev, IDE, i2c, v4l, you name it. With a
sprinking of core device model and PCI updates thrown in for good measure.

Also, a number of architecture updates: ppc64, m68k, uml, parisc, arm.

And md, NTFS, and Documentation updates too.

The diffstat shows more of the story - not so much single really big
changes, more of a fairly wideranging thing. Shortlog appended.

Linus

-----

Summary of changes from v2.6.10-rc1 to v2.6.10-rc2
============================================

<[email protected]>:
o [ALSA] Fix DXS entry for GA-7VAX

<alexn:dsv.su.se>:
o x86_64: assign_irq_vector should not be marked __init

<jdittmer:ppp0.net>:
o fakephp: introduce pci_bus_add_device
o fakephp: add pci bus rescan ability

<thockin:google.com>:
o PCI: small PCI probe patch for odd 64 bit BARs

Aaron Grothe:
o [CRYPTO]: Add Anubis support

Adam Belay:
o [PNPBIOS] disable if ACPI is active
o [PNPBIOS] acpi compile fix

Adam J. Richter:
o dmx3191d.c lacked MODULE_DEVICE_TABLE()

Adrian Bunk:
o net/tokenring/olympic.c: remove unused variable
o USB: fix usb/serial/console.c compile error
o small SOFTWARE_SUSPEND help text fixes
o CREDITS update
o ISDN hisax_fcpcipnp.c: kill unused variable
o kbuild: Documentation/kbuild/makefiles.txt: check_gcc -> cc-option
o [APPLETALK]: Remove an unused function
o [IRDA]: Remove an unused function in net/irda/qos.c
o [AX25]: Remove an unused function in ax25_route.c
o [NETFILTER]: Remove an unused function in ipt_tcpmss.c
o USB stv680.c: remove an unused function
o USB ohci-dbg.c: remove an unused function
o [SCTP]: Remove an unused function in outqueue.c
o small sysfs cleanups
o i2c it87.c: remove an unused function
o PCI: kill old PCI changelog
o i2c/busses/ : make some code static
o USB: misc USB gadget cleanups
o [NET]: No reason for pktgen.c to include pci.h

Akinobu Mita:
o schedstat: fix schedule() statistics

Al Borchers:
o USB: io_edgeport locking, flow control, and misc fixes
o USB: revised usbserial open/close unbalanced get/put
o USB: io_ti new devices, circular buffer, flow control, misc fixes

Alan Cox:
o [ide] remove debugging delay from CS5520 driver
o [ide] apply undecoded slave fixup only for ide-cs
o [ide] siimage: fix the various SI3112 hangs
o moxa - dead code removal

Alan Stern:
o usbcore: drop reference to bus on allocation error
o UHCI: No bandwidth reclamation during enumeration
o USB Gadget: Use proper BCD values
o USB file-storage gadget: clean up endian issues
o USB device init: implement the Windows scheme
o SCSI core: Fix refcounting error
o UHCI: Workaround for broken remote wakeup
o USB: Dequeuing of root-hub URBs
o UHCI: Use a sane timeout for device initialization
o dummy_hcd: minor fixups
o dummy-hcd: Refactor startup and shutdown
o usbcore: Make the core release hcd structures
o USB PCI drivers: hcd release changes
o Non-PCI OHCI drivers: remove hcd release
o dummy-hcd: removal hcd release
o usbcore: add comment to updated hcd.h

Alasdair G. Kergon:
o device-mapper: dm-crypt tidy-ups
o device-mapper: dm-crypt generator extension
o device-mapper: dm-crypt: new IV mode ESSIV
o device-mapper trivial: duplicate kfree in error path

Alex Kiernan:
o UFS: solaris compatibility fix

Alex Williamson:
o [IA64] efi.c: fix mem= & max_addr=

Alexander Viro:
o FB_INTEL Kconfig breakage
o tcx compile fix (typo)
o missing braces in macros (asm-alpha/mmzone.h)

Alexey Dobriyan:
o kernel-doc: support for comma-separated members in structs and
unions
o kernel-doc: print arrays in declarations correctly
o kernel-doc: don't print ... twice in variadic functions
o kernel-doc: Print preprocessor directives correctly

Andi Kleen:
o Fix x86-64 genapic build
o x86_64: Fix safe_smp_processor_id after genapic
o x86_64: Fix warning in genapic
o x86_64: Update cpuid feature tables
o x86_64: Report SSE3 on AMD CPUs
o x86_64: Fix compat_timer_t
o x86_64: Defconfig update
o x86_64: Fix e820 overflow
o x86_64: Add early exception handler
o x86_64: Fix some readl/writel warnings
o x86_64: Fix CONFIG_X86_MCE
o x86_64: add nmi button support
o x86_64: Don't wait on panic
o x86_64: Poison initdata
o x86_64: Add 32bit quota support
o x86_64: Fix setup asm constraints
o x86_64: Auto enable HPET on Summit
o x86_64: Fallback to swiotlb for dma_alloc_coherent
o x86_64: Remove bogus __initdata in wakeup path
o x86_64: set -fno-strict-aliasing for early boot code
o Print real error when initramfs gunzip failed
o Add panic blinking to 2.6
o x86_64: Add p4 clockmod
o x86-64: Fix broken NMI change

Andrea Arcangeli:
o [NET]: Accept should return ENFILE not EMFILE

Andreas Gruenbacher:
o kbuild: Allow install of external modules to custom path

Andreas Herrmann:
o s390: make zfcp compile again

Andrew Hendry:
o [X25]: Stop x25_destroy_socket timer looping
o [ETHERTAP]: Add missing newline to debug printk
o [X25]: Stop /proc/net/x25/route infinitely reading
o [X25]: Dont log unknown frame type when receiving clear confirm

Andrew Morton:
o de4x5 warning fix
o igxb speedup
o e1000 sparc64 dma_mapping build fix
o kobject_hotplug: permit no hotplug_ops
o kobject_uevent warning fix
o revert "ppc: fix build with o=output_dir"
o msnd.c build fix
o ne2k-pci pci build fix
o e1000 module_param build fix
o ide_pio_sector() kmap fix
o [CRYPTO]: small sha256 cleanup
o [CRYPTO]: small sha512 cleanup
o [CRYPTO]: reduce sha512_transform() stack usage, speedup
o revert- sys_setaltroot
o [IA64] Need <asm/uaccess.h> for KERNEL_DS & set_fs() definitions
o key_init ordering fix
o swapper_space warning suppression
o ext3 reservation: default to on
o convert pipefs to fs_initcall()
o ext3_bread() cleanup
o PG_writeback: fix waitqueue_active memory barrier
o bk-kbuild utsname fix
o unexport lock_page()
o Fix ext3_dx_readdir
o netpoll: fix null ifa_list pointer dereference
o E1000 stop working after resume
o ixgb: fix ixgb_intr looping checks
o Fix for 802.3ad shutdown issue
o x86_64: ia32_aout-build-fix
o limit CONFIG_LEGACY_PTY_COUNT

Andrew Vasquez:
o SCSI: fix `risc_code_addr01' multiple definition

Andries E. Brouwer:
o avoid semi-infinite loop when mounting bad ext2
o don't divide by zero on bad ext2 fs
o minix_clear_inode fix
o ext2 docs update
o ufs docs update
o wierd typos
o propogate typos
o recieve typos
o don't divide by 0 when trying to mount ext3
o new Solaris partition ID
o remove explicit k_name use in atmel_cs.c, bt3c_cs.c
o remove if !PARTITION_ADVANCED condition in defaults
o add __initdata in floppy.c
o __devinit in sound/oss/es1371.c
o __init for inflate.c
o __init in i386/kernel/cpu/nexgen.c
o __devinit in pci/generic.c
o __devinit in ide/pci/rz1000.c
o __init and i386 timers
o __init in scsi/scsi_devinfo.c
o __devinit in parport_pc.c
o __init in mm/slab.c
o __init in reboot.c
o __initdata in dm.c
o no __init in serial/8250.c
o no __initdata in netfilter

Andy Whitcroft:
o bootmem use NODE_DATA
o fix pnpbios fault message

Anil Keshavamurthy:
o remove cpu_run_sbin_hotplug()
o Add KOBJ_ONLINE

Anton Altaparmakov:
o NTFS: Fix two typos in Documentation/filesystems/ntfs.txt
o NTFS: Improve error handling in fs/ntfs/inode.c::ntfs_truncate()
o NTFS: Add fs/ntfs/aops.c to list of providers for ->b_end_io method
in Documentation/filesystems/Locking.
o NTFS: - Change fs/ntfs/inode.c::ntfs_truncate() to return an error
code instead of void and provide a helper ntfs_truncate_vfs() for
the vfs ->truncate method.
o NTFS: Fix min_size and max_size definitions in ATTR_DEF structure
in fs/ntfs/layout.h to be signed.
o NTFS: Add attribute definition handling helpers to
fs/ntfs/attrib.[hc]
o NTFS: In fs/ntfs/aops.c::mark_ntfs_record_dirty(), take the
mapping->private_lock around the dirtying of the buffer heads
analagous to the way it is done in __set_page_dirty_buffers().
o NTFS: Ensure the mft record size does not exceed the
PAGE_CACHE_SIZE at mount time as this cannot work with the current
implementation.
o NTFS: Check for location of attribute name and improve error
handling in general in fs/ntfs/inode.c::ntfs_read_locked_inode()
and friends.
o NTFS: In fs/ntfs/aops.c::ntfs_writepage(), if t he page is fully
outside i_size, i.e. race with truncate, invalidate the buffers on
the page so that they become freeable and hence the page does not
leak.
o NTFS: Implement extension of resident files in the regular file
write code paths (fs/ntfs/aops.c::ntfs_{prepare,commit}_write()).
At present this only works until the data attribute becomes too big
for the mft record after which we abort the write returning
-EOPNOTSUPP from ntfs_prepare_write().
o NTFS: Remove unused function fs/ntfs/runlist.c::ntfs_rl_merge().
(Adrian Bunk)
o NTFS: Fix stupid bug in fs/ntfs/attrib.c::ntfs_attr_find() that
resulted in a NULL pointer dereference in the error code path when
a corrupt attribute was found.
o NTFS: Add MODULE_VERSION() to fs/ntfs/super.c
o NTFS: Make several functions and variables static. (Adrian Bunk)
o fs/buffer.c exports for NTFS
o NTFS: Modify fs/ntfs/aops.c::mark_ntfs_record_dirty() so it
allocates buffers for the page if they are not present and then
marks the buffers belonging to the ntfs record dirty. This causes
the buffers to become busy and hence they are safe from removal
until the page has been written out.
o NTFS: Fix stupid bug in fs/ntfs/attrib.c::ntfs_external_attr_find()
in the error handling code path that resulted in a BUG() due to
trying to unmap an extent mft record when the mapping of it had
failed and it thus was not mapped. (Thanks to Ken MacFerrin for
the bug report.)
o NTFS: Drop the runlist lock after the vcn has been read in
fs/ntfs/lcnalloc.c::__ntfs_cluster_free().
o NTFS: Rewrite handling of multi sector transfer errors. We now do
not set PageError() when such errors are detected in the async i/o
handler fs/ntfs/aops.c::ntfs_end_buffer_async_read().
All users of mst protected attributes now check the magic
of each ntfs record as they use it and act appropriately.
This has the effect of making errors granular per ntfs record
rather than per page which solves the case where we cannot access
any of the ntfs records in a page when a single one of them had an
mst error. (Thanks to Ken MacFerrin for the bug report.)
o NTFS: Fix error handling in
fs/ntfs/quota.c::ntfs_mark_quotas_out_of_date() where we failed to
release i_sem on the $Quota/$Q attribute inode.
o NTFS: Fix bug in handling of bad inodes in
fs/ntfs/namei.c::ntfs_lookup()
o NTFS: Minor cleanup of fs/ntfs/debug.c
o NTFS: - Add mapping of unmapped buffers to all remaining code
paths, i.e
o NTFS: - Fix creation of buffers in
fs/ntfs/mft.c::ntfs_sync_mft_mirror()
o NTFS: Disable the file size changing code from
fs/ntfs/aops.c::ntfs_prepare_write() for now as it is not safe.
o NTFS: 2.1.22 - Many bug and race fixes and error handling
improvements

Anton Blanchard:
o fix acenic hotplug
o ppc64: Add option for oprofile to backtrace through spinlocks
o ppc64: Bump MAX_HWIFS in IDE code
o ppc64: Fix for cpu hotplug + NUMA
o ppc64: Small OF fixes

Antonino Daplas:
o fbdev: Fix software blanking code
o fbdev: Reduce pixmap memory allocation size
o fbdev: Remove inter_module_get/put from i810fb
o fbdev: Various mach64 changes
o fbdev: Clean up of fbcon/fbdev cursor interface
o fbdev: Clean up softcursor implementation
o fbdev: Clean up i810fb cursor implementation
o fbdev: Cleanup rivafb cursor implementation
o fbdev: Intel 830M/845G/852GM/855GM/865G framebuffer driver port
o fbdev: S3 Savage Framebuffer Driver
o savagefb export fixes
o fbdev: Fix rivafb crashes on PPC
o fbdev: Add __iomem annotations for savagefb
o fbdev: Add __iomem annotations to intelfb
o fbcon: Fix endian bug in fbcon_putc (console mouse problem)
o fbdev: Convert MODULE_PARM to module_param in i810fb
o fbdev: Remove module parameter 'disabled' from savagefb
o fbdev: Convert MODULE_PARM to module_param in intelfb
o fbdev: Convert MODULE_PARM to module_param in neofb
o fbdev: Fix io access in neofb
o fbdev: Add __iomem annotations to sstfb
o fbdev: Add __iomem annotations to tdfxfb
o fbdev: Do not memset the framebuffer memory in asiliantfb
o fbdev: Add __iomem annotations to cyber2000fb
o fbdev: Add __iomem annotations to pm2fb
o fbdev: Add __iomem annotations to hgafb
o fbdev: Add __iomem annotations to cirrusfb
o fbdev: Add __iomem annotations to vfb
o fbdev: Check if cursor image has changed in intelfb
o fbdev: Maintainership
o fbcon: Do not touch hardware if vc_mode != KD_TEXT
o fbdev: Fix access to ROM in aty128fb
o fbdev: Fix IO access in rivafb
o fbdev: Fix source copy bug in neofb
o fbcon/fbdev: Remove fbcon-specific fields from struct fb_info
o fbdev: atyfb_base.c requires atyfb_cursor()
o fbdev: Set correct mclk/xclk values for aty in ibook
o fbdev: Check for intialized flag before registration in matroxfb
o fbcon: "Do not touch hardware if vc_mode != KD_TEXT: fix
o fbcon: Another fix for fbcon generic blanking code
o rivafb: big-endian IO access fixes
o fbdev: Fix IO access in rivafb (part 2)
o fbdev: Fix mode handling in rivafb if with no EDID
o fbdev: Use soft_cursor in i810fb
o fbdev: Set color depth to 8 if in pseudocolor in vesafb
o fbcon: Split set_con2fb_map()
o fbdev: Introduce FB_BLANK_* constants
o fbdev: Convert drivers to use the new FB_BLANK_* constants
o fbdev: Fix broken fb_blank() implementation

Arjan van de Ven:
o [SERIAL] Remove dead code
o remove NET_HW_FLOWCONTROL
o [ide] remove unused internal exports from ide core
o unexport raise_softirq
o vmalloc_to_page helper
o remove unused code: dump_extended_fpu
o make filemap_fdatawrite_range() static
o unexport add_timer_on()
o USB: remove dead code in usb video
o [NET]: Unexport call_netdevice_notifiers()
o [TCP]: Unexport sysctl_tcp_tw_recycle
o I2C: remove dead code from i2c
o remove journal callback code from jbd
o remove unused lookup_mnt export
o [NET]: Mark __{lock,release}_sock() static
o make cdev_get static, unexport
o unexport task_nice

Arnaldo Carvalho de Melo:
o [SKBUFF] move common code to hdlc_type_trans
o [SKBUFF] remove skb->mac.raw setting after hdlc_type_trans
o [SKBUFF] introduce x25_type_trans
o [NET] add missing includes and forward decls to filter.h
o [NET] add missing include to divert.h
o USB: add id for Siemens x65 series of mobiles to pl2303 driver
o [NET] add missing include to inet.h
o [NET] add missing include to inetdevice.h
o [NET] add missing include to icmp.h
o [NET] add missing include to iw_handler.h
o [IPV6]: Fix mca_sfcount[] refcounting in error path
o fix platform_rename_gsi related ia32 build breakage

Arnout Engelen:
o [TCP]: Add /proc/net/tcp{,6} layout documentation

Arthur Kepner:
o [TG3]: Use mmiowb in tg3_poll

Bart De Schuymer:
o [EBTABLES]: Add wildcard support for interface matching

Bartlomiej Zolnierkiewicz:
o [ide] pmac: kill pmac_ide_[raw_]build_sglist()
o [ide] use ide_map_sg()
o [ide] kill ide_raw_build_sglist()
o [ide] ide-scsi: simplify+speedup DMA support
o [ide] kill ide_hwif_t->ide_dma_verbose
o [ide] kill /proc/ide/ide?/config
o [ide] aec62xx: kill /proc/ide/aec62xx
o [ide] atiixp: kill /proc/ide/atiixp
o [ide] cs5520: kill /proc/ide/cs5520
o [ide] cs5530: kill /proc/ide/cs5530
o [ide] hpt366: kill /proc/ide/hpt366
o [ide] pdc202xx_new: kill /proc/ide/pdcnew
o [ide] pdc202xx_old: kill /proc/ide/pdc202xx
o [ide] piix: kill /proc/ide/piix
o [ide] sc1200: kill /proc/ide/sc1200
o [ide] serverworks: kill /proc/ide/svwks
o [ide] slc90e66: kill /proc/ide/slc90e66
o [ide] ide-disk: fix /proc/ide/hd?/smart_thresholds
o [ide] ide-probe: undecoded slave fixup
o [ide] add pci_get_legacy_ide_irq()
o [ide] add ide_use_dma()
o [ide] remove needless exports from ide-taskfile.c
o [ide] PIO bugfix
o [ide] remove hwif from /proc/ide/ as part of ide_unregister_hwif()
o [ide] hpt34x: kill hpt34x.h
o [ide] pmac: kill CONFIG_BLK_DEV_IDEDMA_PMAC_AUTO
o [ide] setup-pci: small ide_get_or_set_dma_base() cleanup
o [ide] setup-pci: simplify autodma logic
o [ide] kill IDEPCI_FLAG_FORCE_MASTER
o [ide] make destroy_proc_ide_interfaces static
o [ide] obsolete /proc/ide/hd?/settings
o [ide] obsolete some command line parameters
o [ide] obsolete "enable DMA by default" config options
o libata PIO bugfix
o [ide] shrink hw_regs_t
o [ide] ns87415: small cleanup
o [ide] (partially) unify hdreg.h & ata.h

Ben Dooks:
o I2C: Fix compile of drivers/i2c/busses/i2c-s3c2410.c
o [ARM PATCH] 2134/3: S3C2410 - Power Management core (1/4)
o [ARM PATCH] 2135/3: S3C2410 - Power Management timer resume (2/4)
o [ARM PATCH] 2136/1: S3C2410 - Power Management IRQ wakeup (3/4)
o [ARM PATCH] 2138/1: S3C2410 - Power Management documentation (4/4)
o [ARM PATCH] 2146/1: S3C2410 - serial fixes and s3c2440 updates
o [ARM PATCH] 2147/1: S3C2410 - reorganise board support
o [ARM PATCH] 2148/1: S3C2410 - I2C platfrom data
o [ARM PATCH] 2149/1: S3C2410 - usb-simtec.c fixes and cleanup
o [ARM PATCH] 2151/1: S3C2410 - fix guard on
include/asm-arm/arch-s3c2410/regs-iic.h
o [ARM PATCH] 2152/1: S3C2410 - lcd controller register fixes
o [ARM PATCH] 2155/1: S3C2410 - fix definition of
S3C2410_UDC_MAXP_REG
o [ARM PATCH] 2156/1: S3C2410 - Documentation updates
o [ARM PATCH] 2157/2: S3C2410 - default configuration update
o [ARM PATCH] 2158/1: S3C2410 - clean warnings from
arch/arm/mach-s3c2410/pm.c
o [ARM PATCH] 2159/1: BAST - include/asm-arm/arch-s3c2410/bast-pmu.h
o [ARM PATCH] 2161/1: S3C2410 - uncompressor low level uart
configuration
o [ARM PATCH] 2139/1: BAST - Power management initialisation
o [ARM PATCH] 2172/1: S3C2410 - clock updates
o [ARM PATCH] 2176/1: S3C2410 - fixes for reset and idle
o [ARM PATCH] 2189/1: S3C2410 - select pclk as source for timer if
none specified for machine
o [ARM PATCH] 2190/1: S3C2410 - fix compile for S3C2440 CPUs
o [ARM PATCH] 2193/1: S3C2410 - fix wake mask for IRQEINT[0..3], and
IRQ_RTC
o [ARM PATCH] 2199/1: S3C2410 - fix warning in
include/asm-arm/arch-s3c2410/dma.h
o [ARM PATCH] 2208/1: S3C2410 - pm updates and fixes
o [ARM PATCH] 2210/1: S3C2410 - export symbols from
arch/arm/mach-s3c2410/gpio.c
o [ARM PATCH] 2211/1: S3C2410 - fix idcode of S3C2410A
o [ARM PATCH] 2209/1: OMAP - only offer OMAP systems if
CONFIG_ARCH_OMAP
o [ARM PATCH] 2214/1: S3C2410 - add missing RTCCON defs
o S3C2410 i2c updates
o [ARM PATCH] 2215/1: S3C2410 - i2c registers for s3c2440a
o [ARM PATCH] 2220/1: S3C2410 - regs-dsc.h fixes
o [ARM PATCH] 2217/2: S3C2410 - pm updates
o [ARM PATCH] 2224/1: S3C2410 - s3c2440 power management device
o [ARM PATCH] 2225/1: S3C2410 - export symbol from s3c2440-dsc.c
o [ARM PATCH] 2226/1: S3C2410 - dma system device
o [ARM PATCH] 2227/1: S3C2410 - export dma symbols to modules
o [ARM PATCH] 2228/1: S3C2410 - dma register updates
o [ARM PATCH] 2232/2: S3C2410 - RTC driver
o [ARM PATCH] 2238/1: S3C2410 - pm.h remove init code if not used
o [ARM PATCH] 2239/1: S3C2410 - add iPAQ rx3715 machine
o [ARM PATCH] 2237/1: S3C2410 - new serial driver - update
serial_core.h (4/4)
o [ARM PATCH] 2240/1: S3C2410 - clock device id update
o [ARM PATCH] 2235/1: S3C2410 - new serial driver - core updates
(2/4)
o [ARM PATCH] 2236/1: S3C2410 - new serial driver - machine updates
(3/4)

Ben Greear:
o [VLAN]: Sync code and feature set with 2.4.x

Benjamin Herrenschmidt:
o Fix msleep to sleep _at_least_ the requested amount
o ppc64: Move PCI IO mapping from pSeries_pci.c to pci.c
o ppc64: Fix pSeries secondary CPU setup
o ppc64: Rewrite the openpic driver
o 8250: Let arch provide the list of leagacy ports
o ppc64: properly build list of legacy serial ports from OF
o ppc64: clean up existence-check of legacy ISAdevices
o ppc64: cleanups of ppc64 pci.c
o ppc64: Some small pci fixes
o ppc64: Rework PCI <-> OF node matching
o ppc64: cleanup/split SMP code
o ppc64: Some cleanups of prom_init.c
o ppc64: remove unused cruft from prom.h
o ppc64: annotate remaining IO accessors
o ppc64: Improve PCI config accessors
o ppc64: Cleanup console detection
o Remove bogus definition of local chrp_int_ack_special in
pSeries_setup.c
o ppc64: don't include <stddef.h>
o ppc64: PCI ignores empty phb regions
o ppc64: Fix new mpic driver on some POWER3
o ppc64: Fix g5-only build
o ppc64: Add new "Maple" platform support
o 8250: Fix empty port registration
o ppc64: Some sparse fixes
o ppc32: Fix boot on PowerMac
o ppc64: Enable maple IDE fixup
o amd8111e: Fix identation of amd8111e_rx_poll()
o amd8111e: Add support for ppc64 eval board
o fbdev: workaround for broken X servers
o atyfb: Fix power management
o Fix pmac_zilog as console
o ppc64: Fix G5 low level i2c code
o ppc64: Add HW CPU timebase sync

Bjoern Paetzel:
o USB Storage: unusual_devs entry for yakumo

Bjorn Helgaas:
o PCDP: call acpi_register_gsi() with arguments in correct order
o ia64 iomap implementation
o radeonfb: If no video memory, exit with error
o acpi: better encapsulate eisa_set_level_irq()
o PCI: propagate pci_enable_device() errors
o PCI: remove unconditional PCI ACPI IRQ routing
o HPET init/add fixes
o fix HPET time_interpolator registration

Bob Breuer:
o sparc32: fix for HyperSPARC DMA errors

Brian Gerst:
o mem leak in tty_io.c

Brian Haley:
o [IPV6] Lookup appropriate destination when sending TCPv6 with
routing header

Carsten Otte:
o s390: dcss segments cleanup

Catalin Marinas:
o [ARM] Versatile: patch-2.6.9-icst307
o [ARM] Versatile: patch-2.6.9-common
o [ARM] Versatile: patch-2.6.9-ab / patch-2.6.9-pb

Chas Williams:
o [ATM]: [horizon] eliminate pci_find_device()
o [ATM]: don't leak skb on as_indicate failure; don't wakeup twice on
as_close
o [ATM]: [ambassador] fix <irq> type and printk warning (from Randy
Dunlap <[email protected]>)
o [ATM]: [drivers] add missing pci_tbl exports (pointed out by Adam
o [ATM]: [atmtcp] fix refcounting and vcc search

Chris Wedgwood:
o uml: use generic IRQ code
o uml: Build fix for TT w/o SKAS
o uml: Kconfig.debug update
o uml: minor warning removal
o uml: mconsole_proc rewrite
o uml: resolve symbols in back-traces
o Remove build warning from drivers/char/random.c on 32-bit platforms
o [ide] remove some cruft from ide.h

Chris Wright:
o lsm: remove net related includes from security.h
o error out on execve with no binfmts
o uninline __sigqueue_alloc
o binfmt_elf: handle partial reads gracefully

Christian Borntr?ger:
o s390: debug feature system control

Christian Ehrhardt:
o [IPV4]: Do not try to unhash null-netdev nexthops

Christoph Hellwig:
o [NETFILTER]: Make *_find_target_lock routines static
o use generic_file_open in udf
o [ATM]: Mark vcc_remove_socket static
o [XFRM]: Remove dead exports
o [IPV6]: Remove dead exports
o [TCP]: Remove dead exports
o [NET]: Remove dead socket layer exports
o remove dead exports in sounds/oss
o unexport getnstimeofday
o unexport kick_process
o remove page_follow_link
o unexport sys_lseek
o remove ext2 xatts exports
o parport: kill dead code and exports
o unexport vc_cons_allocated
o mark pi_unclaim static
o unexport set_selection and paste_selection
o unexport firmware_class
o fix show_refcnt return value type
o remove invoke_softirq
o remove mousedrivers.sgml
o [ide] remove more dead ide exports
o more hardirq.h consolidation
o remove two leftover <asm/linux_logo.h> files
o remove dead kernel_map_pages export
o remove dead exports from random.c
o unexport do_settimeofday
o [NET]: Remove dead exports from net/core/dev.c
o [NET]: Remove net_init.c ifdef clutter
o fix sata_svw compile

Christoph Lameter:
o Posix layer <-> clock driver API fix
o fix IBM cyclone clock and some cleanup
o mmtimer driver update: add SHub interrupt support

Clemens Buchacher:
o sparc32: revert sys_setaltroot

Colin Leroy:
o clean up therm_adt746x
o fix via-pmu.c compilation without CONFIG_PMAC_PBOOK
o therm_adt746x: gradually change fan speed and start both fans on
Albooks

Dale Farnsworth:
o USB: USB fixes for non-cache-coherent processors

Dan Malek:
o ppc32: Update MPC8xx code to quasi functional

Daniel Jacobowitz:
o Unwind information fix for the vsyscall DSO

Darren Hart:
o sched: active_load_balance fixes

Dave Jiang:
o [ARM PATCH] 2216/1: Update iop3xx timers to new update process
times scheme
o [ARM PATCH] 2222/1: iop3xx timer routine cleanup
o [ARM PATCH] 2223/1: convert serial UART to platform device on
iop3xx
o [ARM PATCH] 2231/1: remove unused file in iop321 port

Dave Jones:
o [CPUFREQ] Reevaluate users requests after denial
o [CPUFREQ] Don't break on FFFFFFFF'd frequencies
o [CPUFREQ] struct acpi_processor_performance *acpi_processor_perf
should be static
o [CPUFREQ] dbs_tuners_ins should be static
o [CPUFREQ] Attribute definitions in cpufreq core should be static
o [CPUFREQ] cpufreq_sysctl_table should be static even though it'll
be gone soon
o [CPUFREQ] Dothan is stepping 13 == 0x0D instead of 0x13 == 19
o [CPUFREQ] Rename cpufreq acpi module
o [CPUFREQ] Unify the CPU_FREQ config option
o [CPUFREQ] 2.4 API clarification
o [CPUFREQ] Add a unified cpufreq debug infrastructure
o [CPUFREQ] Use the unified cpufreq debug infrastructure in the
speedstep library
o [CPUFREQ] Use the unified cpufreq debug infrastructure in the
speedstep-smi driver
o [CPUFREQ] Use the unified cpufreq debug infrastructure in the
speedstep-ich driver
o [CPUFREQ] Use the unified cpufreq debug infrastructure in the
speedstep-centrino driver
o [CPUFREQ] Use the unified cpufreq debug infrastructure in the
p4-clockmod driver
o [CPUFREQ] Use the unified cpufreq debug infrastructure in the
longrun driver, and add some dprintks which might be / have been of
interest.
o [CPUFREQ] Use the unified cpufreq debug infrastructure in the
powernow-k8 driver
o [CPUFREQ] Use the unified cpufreq debug infrastructure in the
powernow-k7 driver
o [CPUFREQ] Use the unified cpufreq debug infrastructure in the
longhaul driver
o [CPUFREQ] Use the unified cpufreq debug infrastructure in the
gx-suspmod driver
o [CPUFREQ] Use the unified cpufreq debug infrastructure in the
acpi-cpufreq driver
o [CPUFREQ] Add (one each) dprintk for the performance and powersave
cpufreq governors
o [CPUFREQ] Add a few dprintks for the userspace cpufreq governor
o [CPUFREQ] Add a few useful dprintks in the frequency table helpers
o [CPUFREQ] Add a few useful dprintks to the cpufreq core
o [CPUFREQ] Show the CPUs which can only change frequencies at the
same time in a sysfs file named "affected_cpus"
o [CPUFREQ] module_vid_table is only used if DEBUG isn't set, so put
#ifdefs around it
o [CPUFREQ] print_speed and speedbuffer are only used if DEBUG isn't
set so put #ifdefs around them.
o [CPUFREQ] Use __ATTR in cpufreq.c attribute definitions
o [CPUFREQ] Set .owner in cpufreq_userspace.c sysfs attribute
definition
o [CPUFREQ] Use __ATTR in cpufreq_ondemand.c attribute definitions
o [CPUFREQ] Set .owner in freq_table's sysfs definition
o [CPUFREQ] ondemand return EINVAL on errors
o [CPUFREQ] Fix x86-64 compile
o [CPUFREQ] Remove config.h includes from ondemand driver

Dave Kleikamp:
o JFS: Fix extent overflow bugs
o JFS: avoid assert in lbmfree
o JFS: endian annotations
o JFS: use alloc_metapage for consistency
o JFS: make some symbols static

David Brownell:
o USB: usb hub descriptor fetch needs retries
o USB: usb suspend support for hid-core
o USB: goku_udc sparse updates
o USB: usb/hcd kconfig updates
o USB: usb error code docs
o USB: ohci module param for broken bios
o USB: omap_udc updates
o USB: net2280 compile fixes
o USB input Kconfig updates
o USB ehci: minor pci tweaks
o USB ehci: handle earlier endpoint_disable()
o USB ehci: minor debug cleanups
o Missed usb devices on boot
o usbcore and system sleep states
o PCI: make pci_save_state() only happen when no suspend()
o EHCI suspend/resume updates
o OHCI suspend/resume updates (minor)
o usbcore, diagnostic tweaks
o USB: fix ohci_restart warning
o USB: fix bug
o USB: clean up error messages
o USB: ohci, remove pre-byteswapped constants
o USB: ohci, hooks for big-endian registers
o USB: usb gadget drivers, minor tweaks
o USB: usb gadget serial driver v2.0
o USB: ohci-omap, updates for omap1510/5910 and innovator
o USB: usb network Kconfig updates
o USB: usb PM updates, PCI glue (1/4)
o USB: usb PM updates, root hub stuff (2/4)
o USB: usb PM updates, OHCI (3/4)
o USB: usb PM updates, EHCI (4/4)
o driver core: shrink struct device a bit

David Gibson:
o ppc64: don't build virtual IO drivers for PowerMac
o ppc64: trivial sparse cleanups
o ppc64: xmon sparse cleanups
o ppc64: rework hugepage code

David Howells:
o Shift key-related error codes up and insert ECANCELED
o ppc/ppc64: hook up key management syscalls
o move key_init to security_initcall
o Unexport some RxRPC symbols
o key management: fix locking problem and move __key_check() out of
line
o fix page size assumption in fork()
o EXT3 compiler warning fix
o Make /proc/kcore conditional on CONFIG_MMU

David Lazar:
o fbcon: Add box drawing glyphs to 6x11 font

David S. Miller:
o [NETFILTER]: Fix ipt_hashlimit build with NETFILTER_DEBUG enabled
o [ATY]: Fix build on sparc after viro sparse changes
o [NETFILTER]: ip_ct_attach decl got removed by accident
o [PKT_SCHED]: Make net/tc_act/tc_pedit.h include net/act_api.h
o [VLAN]: Revert vlan_dev_hard_start_xmit part of Ben Greear's
changes
o [TG3]: Bump driver version and reldate
o [SPARC64]: Do free_initmem() poisioning
o [SPARC64]: Update defconfig
o [SPARC64]: Add __must_check to user copy routines
o [SPARC64]: Fix IRQ setting in sunsu serial driver
o [SPARC64]: Add dummy pci_get_legacy_ide_irq() routine
o [TG3]: Use ioremap_nocache()
o [TG3]: Bump driver version and reldate
o [GNET_STATS]: Export gnet_stats_start_copy_compat to modules
o [TCP]: Fix tcp_diag build with ipv6 completely disabled
o [SUNGEM]: Use CONFIG_PPC_PMAC throughout
o Cset exclude:
[email protected]|ChangeSet|20041110052404|08839
o [APPLETALK]: Missing file add in recent commit

Dely Sy:
o PCI: Updated patch to add ExpressCard support
o PCI: Updated patch to fix adapter speed mismatch for 2.6 kernel
o PCI: ASPM patch for

Denis Vlasenko:
o kconfig.debug: mention that DEBUG_SLAB can slow down machine quite
a bit
o kbuild: make gcc -align options .config-settable
o [CRYPTO]: aes-586-asm: formatting changes
o [CRYPTO]: aes-586-asm: small optimizations

Dinakar Guniguntala:
o Fix do_wait race

Dmitry Torokhov:
o ik8.c: export power_status parameter through sysfs
o Driver core: export device_attach
o Driver core: add driver_probe_device
o Driver core: add driver symlink to device
o panic_blink and i8042 unloading

Domen Puncer:
o lib/parser: fix %% parsing

Dominik Brodowski:
o Fix PCMCIA duplicate pc_debug names

Doug Maxey:
o ppc64: install outside of source tree

Eugene Surovegin:
o PPC32: remove bogus eXecute permissions
o I2C: fix recently introduced race in IBM PPC4xx I2C driver

Evgeniy Polyakov:
o w1/w1_family: replace schedule_timeout() with
msleep_interruptible()
o w1/w1: replace schedule_timeout() with msleep_interruptible()
o w1/dscore: replace schedule_timeout() with msleep_interruptible()
o w1/w1_int: replace schedule_timeout() with msleep_interruptible()

Frank Pavlic:
o s390: network driver

Fran?ois Romieu:
o via-velocity: wrong module name in Kconfig documentation

Gabriel Paubert:
o I2C: Recent I2C "dead code removal" breaks pmac sound

Ganesh Venkatesan:
o e100 - Use pci_device_name for syslog messages till registering
netdevice
o e100 - use NET_IP_ALIGN to set rx data buffer alignment
o e100 driver version number update
o e1000 - use pci_device_name for syslog messages till registering
netdevice.
o e1000 - Removed support for advanced TCO features
o e1000 Check value returned by from pci_enable_device
o e1000 - Fix VLAN filter setup errors (while running on PPC)
o e1000 - Polarity reversal workaround for 10F/10H links
o e1000 - Ethtool -- 82545 do not support WoL
o e1000 update -- fix MODULE_PARM, module_param, module_param_array
o e1000: modified ethtool_set_pauseparam to use e1000_setup_link for
flow control settings for fiber serdes link
o e1000: remove unused function e1000_enable_mng_pass_thru
o e1000: fix set ringparam for ethtool returning error code on bad
input
o e1000: driver version update
o e1000: white space corrections
o e100: Fix loss of connectivity to BMC when interface is brought
down.
o e100: Fix set ringparam for ethtool returning error code on bad
input
o e100: Driver version number update
o e1000: Configuration and user guide update
o e100: Configuration and user guide update
o ixgb: Configuration and user guide update

Geert Uytterhoeven:
o NTFS: missing #include <linux/vmalloc.h>
o Cyclades assignment warning
o SCx200_ACB depends on PCI
o Atyfb: kill assignment warnings on Atari due to __iomem
o m68k: HP300 core updates
o m68k: HP300 DIO
o m68k: HP300 LANCE
o m68k: HP300 fb
o m68k: M68k I/O for generic 8250 on HP300
o m68k: HP300 8250 serial for DCA and APCI ports
o m68k: HP300 config
o m68k: HP300 SCSI chip is 98265A
o m68k: hades-pci.c: replace pci_find_device() with pci_get_device()
o m68k: HP300: Convert DIO bus and its drivers to the new driver
model
o m68k: fix incorrect config comment in check_bugs()
o m68k: missing/superfluous config.h
o m68k: Sun-3 Makefile: join short multi-line
o m68k: MVME167 serial: Replace bottom half handler with task queue
handler
o m68k: Add 43 missing syscalls
o m68k: Update defconfig for 2.6.9
o m68k: Add defconfig for Amiga
o m68k: Add defconfig for Apollo
o m68k: Add defconfig for Atari
o m68k: Add defconfig for BVME4000 and BVME6000
o m68k: Add defconfig for HP9000/300 and HP9000/400
o m68k: Add defconfig for Macintosh
o m68k: Add defconfig for MVME147
o m68k: Add defconfig for MVME162, MVME166, and MVME167
o m68k: Add defconfig for Q40 and Q60
o m68k: Add defconfig for Sun 3
o m68k: Add defconfig for Sun 3x
o m68k: Disable SERIO_I8042
o m68k: Reiserfs: Add missing #include <linux/sched.h>
o m68k: Sun 3: Fix modular XFS by exporting vmalloc_end
o m68k: Remove duplicate includes

George G. Davis:
o [ARM PATCH] 2179/1: gcc-4.0 static declaration of 'meminfo' follows
non- static declaration build error
o [ARM PATCH] 2181/1: Fix gcc-4.0 static declaration of '__clz_tab'
follows non-static declaration build error
o [ARM PATCH] 2188/1: Add missing MODULE_LICENSE declaration in PXA
Lubbock PCMCIA driver
o [ARM PATCH] 2182/1: apcs-32 and alignment-traps command line
options are deprecated in gcc-4.0

Gerd Knorr:
o v4l: bttv IR input update
o v4l: bttv whitespace cleanup
o v4l: i2c whitespace cleanup
o v4l: IR whitespace cleanup
o v4l: msp3400 update
o v4l: tuner update
o v4l: videobuf whitespace cleanup
o v4l: videodev whitespace cleanup
o v4l: config cleanups
o bttv subdev fix
o v4l: yet another video-buf interface update
o v4l: add video-buf-dvb.c
o v4l: bttv update
o v4l: saa7134 update
o v4l: cx88 update
o v4l: saa7146 update
o v4l: tuner modparam
o v4l: ir-common modparam
o v4l: v4l1-compat modparam
o v4l: msp3400 fix
o media/video/bw-qcam.c: remove an unused function

Grant Grundler:
o [ide] ns87415: PA-RISC update

Greg Edwards:
o increase max LOG_BUF_SHIFT value

Greg Kroah-Hartman:
o USB: update devices.txt with the proper USB minor number
information
o USB: add phidgetkit driver
o USB: remove unneeded checks in the usb-serial core
o USB: fix build error in the USB core if CONFIG_PROCFS is disabled
o USB: fix DoS in the visor driver by rate limiting sends
o PCI: use pci_dev_present() in irq.c check
o kobject: add CONFIG_DEBUG_KOBJECT
o hotplug: prevent skips in sequence number from happening
o USB: fix up serial object reference count bug on error path
o USB: fix up pl2303 device ids that ended up getting duplicated
o USB: fix sparse warnings in cypress_m8 driver
o kevent: fix build error if CONFIG_KOBJECT_UEVENT is not selected
o I2C: fix MODULE_PARAM warning in pc87360.c driver
o W1: fix build warnings due to msleep changes
o PCI: remove kernel log message about drivers not calling
pci_disable_device()
o I2C: remove probe_range from I2C sensor drivers, as it's not used
o I2C: remove ignore_range from I2C sensor drivers, as it's not used
o I2C: remove normal_isa_range from I2C sensor drivers, as it's not
used
o I2C: fix i2c_detect to allow NULL fields in adapter address
structure
o I2C: moved from all sensor drivers from normal_i2c_range to
normal_i2c
o I2C: delete normal_i2c_range logic from sensors as there are no
more users
o kobject: fix double kobject_put() in error path of kobject_add()
o timer: fix up problem where two sysdev_class devices had the same
name
o PCI Hotplug: fix up remaining MODULE_PARAM usage in pci hotplug
drivers
o USB: fix up sparse lock warning in whiteheat driver
o USB: fix up locking bugs in kl5kusb105.c that sparse found
o Cset exclude: [email protected]|ChangeSet|20041112030233|28853
o USB: fix locking bug found by sparse in ehci-sched.c
o USB: fix 2 locking bugs in usbtest.c as found by sparse
o USB: fix endian warnings as found by sparse in the rio500.c driver
o USB: fix sparse warnings in tiglusb.c driver
o USB: fix endian bug found by sparse in freecom usb-storage driver
o USB: fix up endian issues found by sparse in io_edgeport.c driver
o USB: fix endian issues found by sparse in mct_u232 driver
o I2C: fix up some out of date Documentation
o I2C: fix up rtc8564 which should not have been changed in my
previous cleanups
o driver core: fix up some missed power_state changes from David's
patch
o sysfs: fix odd patch error
o USB: fix sparse warnings in io_ti.c
o USB: fix up a bunch of sparse bitwise warnings in the ohci driver

Greg Ungerer:
o remove unused include in m68knommu mm/init.c
o remove unused include in m68knommu mm/memory.c
o remove uneeded includes (5206e/config.c)
o remove uneeded includes (5249/config.c)
o remove uneeded includes (5307/config.c)
o remove unused shglcore support
o clean up HZ definition
o remove unused shglcore.h include
o remove other unused shglcores.h include
o support all relocation types for m68knommu modules
o update total_vm on non-MMU configurations
o m68knommu: add hardware defines for the ColdFire 527x CPU family
o m68knommu: new CPU support strings in setup
o m68knommu: update syscall table to be inline with other
architectures
o m68knommu: build real lib udelay() function
o m68knommu: new board support nad missing sections for linker script
o m68knommu: create real lib udelay() function
o m68knommu: new CPU and board options for configuration
o m68knommu: update syscall definitions to match new syscall table
o m68knommu: fix calculation overflow in udelay() on fast CPU's
o m68knommu: clock definitions for 527x ColdFire CPU's
o m68knommu: fix do_signal() to properly use get_signal_to_deliver()
o m68knommu: makefile support for new CPU and board types
o m68knommu: checksum.h needs linux/in6.h
o m68knommu: move ColdFire PIT timer to common code directory
o m68knommu: new device support for ColdFire FEC ethernet driver
o m68knommu: kernel startup code for Freescale M5271EVB board
o m68knommu: update defconfig
o m68knommu: 527x platform support Makefile
o m68knommu: build PIT timer for 527x and 528x CPUs
o m68knommu: use linux/delay.h instead of asm/delay.h
o m68knommu: get flash based boot args for SCALES and CAMcam boards
o m68knommu: dynamic RAM sizing for Motorola 5206e platform
o m68knommu: hardware configuration for Freescale 527x family of CPUs
o m68knommu: add kernel startup code for the Freescale M5275EVB board
o m68knommu: move ColdFire 5282 config code to common 528x config
code
o m68knommu: move ColdFire 5282 Makefile to common 528x Makefile
o m68knommu: move ColdFire M5282EVB kernel startup code to common
528x platform directory
o m68knommu: remove unused include of delay.h in ColdFire 5407
configuration code
o m68knommu: use correct register offsets for ColdFire 527x FEC
ethernet
o m68knommu: move ColdFire 5282 definitions to common 528x include
o m68knommu: add kernel startup code for the ColdFire 5272 Feith
CANcam board
o m68knommu: add 527x and 528x support to ColdFire UART definitions
o m68knommu: add 527x and 528x support to ColdFire DMA definitions
o m68knommu: move definition of kernel stack size
o m68knommu: update comments in ColdFire PIT timer include
o m68knommu: kernel startup code for the ColdFire 5272 Feith SCALES
board
o m68knommu: add ColdFire 528x CPU reset code
o m68knommu: include 527x and 528x SIM hardware defines in common
ColdFire SIM header
o m68knommu: move senTec board supoprt to common 528x ColdFire
directory

Guido Barzini:
o [ARM PATCH] 2177/1: Trivial: contents of mach-h720x/Kconfig should
be conditional on ARCH_H720X

Guido Guenther:
o rivafb: stricter memory ordering
o rivafb: clean up ordering constraints

Hanna V. Linder:
o hw_random.c: replace pci_find_device
o add 'for_each_pci_dev()' helper macro
o PCI: Changed pci_find_device to pci_get_device
o cyclades.c: replace pci_find_device
o zr36120.c: Convert pci_find_device to pci_dev_present
o ide.c: replace pci_find_device with pci_dev_present
o scx200_wdt.c: replace pci_find_device with pci_dev_present
o ibmphp_core.c: replace pci_get_device with pci_dev_present
o chrp_pci.c: replace pci_find_device with for_each_pci_dev
o gemini_pci.c: replace pci_find_device with for_each_pci_dev
o matroxfb_base.c: convert pci_find_device to pci_get_device
o lopec.c: replace pci_find_device with pci_get_device
o k2.c: replace pci_find_device with pci_get_device
o cmipci.c: convert pci_find_device to pci_get_device
o drm_drv.h: replace pci_find_device
o sis-agp.c: replace pci_find_device with pci_get_device
o pci-gart.c: replace pci_find_device with pci_get_device
o ret_mb_a_pci.c: replace pci_find_device with pci_get_device
o pci_iommu.c: replace pci_find_device with pci_get_device
o isa.c: replace pci_find_device with pci_get_device
o ebus.c: replace pci_find_device with pci_get_device
o fixups-dreamcast.c: replace pci_find_device with pci_get_device
o sandpoint.c: replace pci_find_device with pci_get_device
o prpmc750.c: replace pci_find_device with pci_get_device
o mcpn765.c: replace pci_find_device with pci_get_device
o pcore.c: replace pci_find_device with pci_get_device
o pmac_pci.c: replace pci_find_device with pci_get_device
o pplus.c: replace pci_find_device with pci_get_device
o prep_pci.c: replace pci_find_device with pci_get_device

Harald Welte:
o [NETFILTER]: fix ipt_ULOG bogus error messages
o [NET]: Fix NLM_F_MULTI in tcp_diag and xfrm_user

Herbert Xu:
o [TCP]: Only re-set TSO size for packet which was TSO to begin with
o [NET]: Give skb_checksum_help() an skb_buff * again
o [TCP]: Handle real partial-ACKs of TSO frames correctly
o [TCP]: Move tcp_get_info() into tcp.c
o [NETLINK]: Remove netlink_sock_nr
o [NETLINK]: Check netlink_insert in kernel_create
o [XFRM]: Don't panic in xfrm_user_init
o [ETHTOOL]: Enforce SG requires TX csum rule
o [XFRM]: Move xfrm4_rcv export to its site
o [IPSEC]: Make ah4/esp4/ipcomp depend on INET
o [TCP]: Modularize tcpdiag
o [XFRM]: Fix build failures without CONFIG_INET
o [TCP]: Modular ipv6 support in tcpdiag
o [NETLINK]: Hash sockets by pid if not multicast
o [NET]: Neighbour table entries counter needs to be atomic_t
o [NET]: Get rid of unused global counter in neighbour
o [NETLINK]: Fix pid rover code
o [IPV6]: Close small race in ip6_del_rt

Hideaki Yoshifuji:
o [IPV6] Remove codes related to RTF_ALLONLINK
o [IPV6] simplify functions related to RTF_ALLONLINK
o [IPV6] NDISC: update neighbor cache entry by RS
o [IPV6] kill a warning when building without CONFIG_SYSCTL
o [IPV6]: Do not purge default routes by RA
o [IPV6] Fix unresolved symbol timer_bug_msg
o [IPV6] introduce lightweight IPv6 address comparison function
o [IPV6] Use ipv6_addr_equal() where appropriate

Hidetoshi Seto:
o futex_wait hang fix

Hirofumi Ogawa:
o FAT: remove incorrect BUG_ON()
o FAT: fix VFAT_IOCTL_READDIR_BOTH ioctl

Hirokazu Takata:
o m32r: fix a typo of delay.c
o m32r: Fix ELF_CORE_COPY_REGS macro to generate a correct "core"
file
o m32r: remove rep_nop()
o m32r: remove old ELF relocation types
o m32r: fix arch/m32r/lib/memset.S
o m32r: fix for use of Mappi PCC

Hollis Blanchard:
o HVSI hangup oops
o HVSI early boot console
o HVSI reset support

Hugh Dickins:
o shmem NUMA policy spinlock
o statm: __vm_stat_accounting
o statm: shared = rss - anon_rss
o statm: fix negative data
o omit CommitAvail
o tmpfs truncate latency
o anon cris align address_space
o tmpfs: CONFIG_TMPFS=n mount fix

Ian Campbell:
o [ARM PATCH] 2219/2: Ignore IRQ_NONE for edge triggered interrupts

Ingo Molnar:
o Avoid small irq preemption recursion window
o [NET]: Fix unbalanced local_bh_enable() in dev_queue_xmit()

Ivan Kokshaysky:
o alpha: fix sparse warnings
o alpha: fix CIA IO
o alpha: bootp fixes
o PCI: add pci_fixup_early

Jack Steiner:
o [IA64] Delete obsolete code from SGI console driver
o [IA64-SGI] Update asm-ia64/sn/sn_cpuid.h macros
o [IA64-SGI] Delete simulator support from SN idle loop
o [IA64-SGI] Update asm-ia64/sn/sn_cpuid.h macros
o [IA64-SGI] Delete unused variable (master_node_bedrock_address)

Jamal Hadi Salim:
o [PKT_SCHED]: Add generic packet editor
o [NETFILTER]: ipt mutex locks access
o [PKT_SCHED]: Add iptables action

James Bottomley:
o make osst compile again after st structure changes

James Cleverdon:
o x86-64 clustered APIC support

James Morris:
o Add d_alloc_name() to libfs
o SELinux: fix netif bugs and simplify
o SELinux: fix sidtab locking bug

James Nelson:
o ramdisk.txt update
o ftape has no maintainer
o ftape documentation fixes
o Documentation/cpqarray.txt update
o Documentation/mkdev.ida removal
o Patch to arch/sparc/Kconfig [1 of 5]
o More patches to arch/sparc/Kconfig [3 of 5]
o More patches to arch/sparc/Kconfig [5 of 5]
o More patches to arch/sparc/Kconfig [4 of 5]
o Re: More patches to arch/sparc/Kconfig [2 of 5]
o Documentation/digiboard.txt update
o Documentation/00-INDEX.txt update
o MAINTAINERS update
o Documentation/digiecpa.txt update
o digiecpa MAINTAINERS update
o computone: Documentation/computone.txt update
o computone: MAINTAINERS update
o floppy: Updates to Documentation/floppy.txt
o hw_random: Remove changelog from hw_random.txt
o documentation: Remove drivers/char/README.computone
o documentation: Remove drivers/char/README.cyclomY
o documentation: Remove drivers/char/README.ecpa
o documentation: Remove drivers/char/README.scc
o tipar: Documentation/tipar.txt cleanup
o ramdisk: Correction to Documentation/kernel-parameters.txt
o md: Documentation/md.txt update

Jan Dittmer:
o aic7xxx remove warnings

Jan Kara:
o Quota warnings somewhat broken

Jan Kasprzak:
o Minor fix of RCU documentation

Jaroslav Kysela:
o ALSA CVS update ENS1370/1+ driver Fixed AC3-passthru on
ens1371/1373 boards.
o ALSA CVS update ICE1712 driver Allow the private EEPROM image for
evaluation boards
o ALSA CVS update ES18xx driver Fixed a bug in setting the filter
register.
o [ALSA] Added __GFP_NORETRY to avoid OOM-killer
o [ALSA] Enable __GFP_NOWARN as default for buffer allocation
o [ALSA] Korg1212 misc fixes
o [ALSA] AC97 96 kHz sample rate support
o [ALSA] add missing ifdef for disabling MIDI
o [ALSA] suppress auto-loading of modules in module_init()
o [ALSA] Fix latency in ens1371 driver
o [ALSA] add AC97 quirk for Fujitsu-Siemens E4010
o [ALSA] remove gameport/MIDI support
o [ALSA] add mixer quirk for LineX FM Transmitter
o [ALSA] [ac97] Added VIA shared type
o [ALSA] [ac97] Check ac97 codec id in quirk table
o [ALSA] ac97 quirk entry for Soltek SL-75DRV5
o [ALSA] inverted EAPD support
o [ALSA] detect errors reported by the hardware
o [ALSA] Added Compaq Evo W4000 quirk
o [ALSA] [emu10k1] Audigy DSP support
o [ALSA] Fix the OSS PCM emulation - O_NONBLOCK write
o [ALSA] Added support for AudioTrak Prodigy 192 cards
o [ALSA] add UA-1000 sample rate detection
o [ALSA] mark snd_card_dummy_new_mixer() as static
o [ALSA] [ac97 core] added AC97_SCAP_DETECT_BY_VENDOR flag
o [ALSA] copy_to_user() return value checking in snd_seq_read()
o [ALSA] Added missing header file for AudioTrak Prodigy 192 cards
o [ALSA] Fix driver name for nforce and clean-up
o [ALSA] show codec name in card description
o [ALSA] adjust intel8x0 joystick documentation
o [ALSA] enhance Kconfig help texts
o [ALSA] remove 'ALSA' from Kconfig USB menu name
o [ALSA] fix ALI M5451 description
o [ALSA] Fixes for PCM/control 32bit emulation
o [ALSA] Support for capture of 16,32,64 channels on emu10k1 device
2
o [ALSA] Remove delay() to improve latency
o [ALSA] Improved clock measurement
o [ALSA] Fixed the obsolete description in comments
o [ALSA] Fix auto-loading of sequencer modules
o [ALSA] Fix iomem variable type
o [ALSA] Added support of Mediastation
o [ALSA] rme32 segfault fix
o [ALSA] [hdsp] Fix for 64bit architectures
o [ALSA] Fix SPDIF rate setting for old ICHs
o [ALSA] use card-specific driver name
o [ALSA] remove 'Rawmidi' part from sequencer port names
o [ALSA] don't stop capture on errors
o [ALSA] Fix the variable types in struct
o [ALSA] more au88x0 eq cleanups
o [ALSA] Fix HDSP meter ioctl
o [ALSA] Aureon S/PDIF input fixes
o [ALSA] Aureon S/PDIF input fixes
o [ALSA] Fix drain/drop of linked PCM streams
o [ALSA] snd-usb-usx2y 0.7.3
o [ALSA] Replace with usb_kill_urb()
o [ALSA] Fix peakmeter ioctl on big-endian
o [ALSA] Clean up ice1712 chip struct
o [ALSA] Adds AC'97 support to Aureon cards
o [ALSA] Add reset_workaround module option
o [ALSA] add overclocking option for the analog input
o [ALSA] Add (experimental) CM9761 support
o [ALSA] Fix SPDIF support on ICH4/5/6
o [ALSA] Fix AC97 master mute
o [ALSA] Fix AC3 playback on SB Live
o ALSA CVS update USB generic driver add Edirol UA-25 support
o [ALSA] Fix / clean up OPL3 for CS4281
o [ALSA] fix DAC slot assignment
o [ALSA] fix description of SPSA=3 in the proc file
o [ALSA] fix snd_opl3_init documentation
o [ALSA] Clean up bitmap
o [ALSA] Fix dead blocking during module_init()
o [ALSA] Fix pci_restore_state()
o [ALSA] Add KERN_ERR to error messages
o [ALSA] Fix typo
o [ALSA] Added dxs quirk for QDI Kudoz 7X/600-6AL
o [ALSA] Fix ac97 codec reset and clean up
o [ALSA] Fix compilation (sync with parisc tree)
o [ALSA] Fix Aureon CCS init sequence
o [ALSA] Fix the detection of secondary codec
o [ALSA] fixing a two-rme32-in-one-machine bug
o [ALSA] Add routing/volume of ADAT I/O on EWS88D
o [ALSA] Misc. volume fixes
o [ALSA] RME9632 precise_ptr fix
o [ALSA] fix build in !KMOD case (sequencer)
o [ALSA] Fixed SPDIF on CS4298
o [ALSA] Fix AC97_EXTENDED_STATUS initialial value
o [ALSA] Add VIA8237 driver type
o [ALSA] PCM boundary fix in 32bit compat layer
o [ALSA] Fix non-blocking write in ALSA OSS emulation
o [ALSA] boot_devs removal - module_param_array() accepts NULL now

Jason Baron:
o fix alt-sysrq deadlock

Jason Uhlenkott:
o [IA64] fix pgtable.h comments

Jean Delvare:
o I2C: New LM63 chip driver
o I2C: New PC8736x chip driver
o I2C: Check for unregistered adapter in i2c_del_adapter
o I2C: add Tyan S4882 driver
o I2C: Missing newlines in debug messages

Jean Tourrilhes:
o Wireless Extension dropped patchlet

Jeff Dike:
o uml: use PTRACE_SYSEMU also for TT mode
o uml: Lots of little fixes by Jeff Dike
o uml: update atomic.h so UML builds cleanly
o uml: handle signal api
o uml: sysenter is syscall
o uml: generic singlestep syscall
o uml: generic singlestepping
o uml: clear singlestep
o uml: dont check NR_syscalls
o uml: set DTRACE correctly

Jeff Garzik:
o [netdev] Remove no-op in-driver implementations of ->set_config()
o Cset exclude: [email protected]|ChangeSet|20040920183610|08290
o [libata] return ENOTTY rather than EOPNOTSUPP for unknown-ioctl
o [libata] use kunmap_atomic() correctly
o [libata] cosmetic libata.h changes to make merging with 2.4 easier
o add nth_page()
o [libata ahci] bump version to 1.00
o Remove silly comment from linux/ata.h
o [libata] remove dependence on PCI
o [libata] bump versions, add MODULE_VERSION() tags
o Parenthize nth_page() macro arg, in linux/mm.h

Jens Axboe:
o fix bad segment coalescing in blk_recalc_rq_segments()
o kill excessive cdrom prints
o cfq v2 switch bug
o issues with online scheduler switching
o [ide] ide-disk: enable stroke by default
o fix SCSI bounce limit
o add READ_BUFFER_CAPACITY as read-ok command
o queue congestion threshold hysteresis
o direct-IO: handle EOF
o warn once for unknown SCSI command
o minor io scheduler documentation fixes
o allow arch override of BIOVEC_PHYS_MERGEABLE
o Mark as_init and as_exit as init and exit functions
o Mark cfq_exit as an exit function
o Mark deadline_init and deadline_exit as init and exit functions

Jesper Juhl:
o ds_ioctl.c usercopy check
o [NET]: Fix spelling error for IPComp help in Kconfig
o kconfig: Small spelling fix for MODULE_SRCVERSION_ALL Kconfig
o add a bunch of missing files to Documentation/00-INDEX

Jesse Barnes:
o sched: small load balance fix
o mmtimer sparse fixes
o I/O space write barrier
o [IA64] fix machine vectors for mmiowb
o [TG3]: Use mmiowb in tg3.c
o [IA64-SGI] remove duplicate INVALID_* defines from arch.h
o [IA64-SGI] remove redundant macros
o [IA64-SGI] move nic_t to asm/sn/types.h
o [IA64-SGI] update sn2_defconfig
o document mmiowb and readX_relaxed a bit more in deviceiobook.tmpl
o fix find_next_best_node()
o remove contention on profile_lock

Jesse Brandeburg:
o ixgb: fix endianness issue for tx cleanup
o e100: fix NAPI race with watchdog
o e100: whitespace and DPRINTKS

Jim Hague:
o pm2fb: Blanking fixes
o pm2fb: Colour palette fixes

Jim Houston:
o idr_remove safety checking

John Hawkes:
o sched: improved load_balance() tolerance for pinned tasks

John Johansen:
o delay rq_lock acquisition in setscheduler

John Lenz:
o [ARM PATCH] 2206/1: convert locomo to use
platform_get_resource\platform_get_irq

John W. Linville:
o 3c59x: style change in vortex_ethtool_ops declaration
o [BONDING]: Add MODULE_VERSION
o [VLAN]: Add MODULE_VERSION

Jon Smirl:
o PCI: add PCI ROMs to sysfs

Jonathan McDowell:
o USB: add KC2190 support for usbnet

Justin Thiessen:
o I2C: lm85.c driver update
o I2C: fix lm85.c build warnings

Kai M?kisara:
o SCSI tape: remove remaining typedefs

Karsten Wiese:
o UHCI: Convert remainder to bitwise-and

Kay Sievers:
o kobject: fix hotplug bug with seqnum
o take me home, hotplug_path[]
o add the physical device and the bus to the hotplug environment
o add the driver name to the hotplug environment
o add the bus name to the hotplug environment
o print hotplug SEQNUM as unsigned

Keith Owens:
o [IA64] Correct bit test for salinfo oem decode
o [IA64] Correct references from text/data to init.text/data
o kbuild: Include useful absolute symbols in kallsyms

Kenji Kaneshige:
o add missing pci_disable_device for e1000
o PCI: add hook for PCI resource deallocation

Krzysztof Chmielewski:
o [ide] pdc202xx_old: PDC20267 needs the same LBA48 fixup as PDC20265

Kumar Gala:
o ppc32: dded MPC8555/8541 security block infrastructure
o ppc32: fix rheap warning
o ppc32: updated reporting of CPU rev & freq for e500 CPUs
o ppc32: add performance counters to cpu_spec
o ppc32: remove __setup_cpu_8xx
o ppc32: remove zero initializations in cpu_specs

Lars Marowsky-Bree:
o device-mapper trivial: stray semi-colon

Len Brown:
o [ACPI] Notify SMM of cpufreq
http://marc.theaimsgroup.com/?l=acpi4linux&m=109428989121089&w=2
o EXPORT_SYMBOL(acpi_os_write_port); EXPORT_SYMBOL(acpi_fadt_is_v1);
o [ACPI] firmware wakeup address is physical, not virtual (David
Shaohua Li) http://bugzilla.kernel.org/show_bug.cgi?id=3390
o [ACPI] add module parameters: processor.c2=[0,1] processor.c3=[0,1]
to disable/enable C2 or C3 blacklist entries for R40e and Medion
41700 http://bugme.osdl.org/show_bug.cgi?id=3549
o [ACPI] create IBM ThinkPad ACPI driver -- ibm-acpi-0.6.patch
o [ACPI] simplify ES7000 IRQ re-naming scheme so that it works for
all PCI interrupts.
o [ACPI] clarify #define ACPI_THERMAL_MODE_CRITICAL (Pavel Machek)
o [ACPI] disable printk on AML breakpoint
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=135856
o [ACPI] ACPICA 20040827 update from Bob Moore
o [ACPI] ACPICA 20040922 from Bob Moore
o [ACPI] acpi_os_sleep() now takes a single 64-bit value in [ms]
o [ACPI] ACPICA 20040924 from Bob Moore
o [ACPI] place-holder for ACPI 3.0 acpi_os_get_timer()
o [ACPI] ACPICA 20041006 from Bob Moore
o [ACPI] fix build warning in tables/tbget.c
o [ACPI] ACPICA 20041015 from Bob Moore
o [ACPI] fix build warning
o Cset exclude:
[email protected][torvalds]|ChangeSet|20040914144015|50315
o [ACPI] ibm-acpi 0.7 from Borislav Deianov
o [ACPI] ACPI_CUSTOM_DSDT for IA64 too
o [ACPI] Extensions for Display Adapters (Bruno Ducrot)
http://bugme.osdl.org/show_bug.cgi?id=1944
o [ACPI] ACPI_VIDEO is EXPERIMENTAL
o [ACPI] Move the "only do this once" stuff from acpi_register_gsi()
into eisa_set_level().
o [ACPI] C1 fixes when processor driver is loaded honor "halt="
cmdline parameter use monitor/mwait when available
http://bugzilla.kernel.org/show_bug.cgi?id=2280
o apply recent ES7000 ACPI interrupt fix to MPS mode
o 8250_pnp serial_req.port_high fix for Tiger
o [ACPI] introduces acpi_penalize_isa_irq() to to avoid PCI devices
use IRQ of legacy PNP devices.
o [ACPI] export acpi_match_ids()
o [ACPI] create ACPI-based PNP driver
o [ACPI] fix video module unload oops
o [PNP] handler more than 16 IRQs
o [ACPI] ACPIPNP handle IRQ resource value of 0 (David Shaohua Li)
o [ACPI] fix x86_64 build warnings in video.c (Luming Yu)
o [ACPI] correct compiled-in acpi_dbg_level default
o [ACPI] fix return values for ACPI_FUNCTION_TRACE
http://bugzilla.kernel.org/show_bug.cgi?id=3336
o [ACPI] Remove default PNPACPI driver binding to legacy ACPI devices
o [ACPI] remove obsolete blacklist entries (Andi Kleen)
http://bugzilla.kernel.org/show_bug.cgi?id=3164
o [ACPI] enable VIA quirk to fix audio interrupt on VIA_8233_5
http://bugzilla.kernel.org/show_bug.cgi?id=3175
o [ACPI] keep processor driver loaded even if acpi_disabled
o [ACPI] disable PNPBIOS if ACPI, even without PNPACPI
o [ACPI] delete duplicated code resulting from auto-merge
o [ACPI] Allow limiting idle C-States
o [ACPI] ACPICA 20041105 from Bob Moore
o [ACPI] ibm ACPI 0.8 by Chris Wright and Borislav Deianov

Lennert Buytenhek:
o [ARM PATCH] 2178/1: mnfd (move negated) emulation is busted on big-
endian

Liam Girdwood:
o [ARM PATCH] 2085/1: PXA SSP driver
o [ARM PATCH] 2084/1: PXA SSP, I2S and other misc register defs

Linus Torvalds:
o Start supporting lock context annotations
o Annotate the trivial unconditional lock/unlock functions on SMP
o Un-inline the big kernel lock
o Fix broken intel8x0.c ALSA "merge"
o ppc64: make G5 setup compile again
o Allow BKL re-acquire to fail, causing us to re-schedule
o Fix UP non-preempt build for kernel lock changes
o Don't ask the user for esoteric compiler tweaks by default
o Fix up "compat_sys_keyctl()" system call
o Fix atyfb modular build on ppc
o Fix kbuild problem with O=
o Make x86 semaphore routines use register calling convention
o amd8111e network driver: fix silly typo
o Make "atomic_dec_and_lock()" a macro
o Add sparse checker rules for conditional lock functions: trylock
and atomic_dec_and_lock.
o Annotate scheduler locking behaviour
o Lock-annotate some kernel functions as an example of how it works
o Annotate UP spinlock stubs with lock annotations
o Make sparse pick up the gcc internal include directory
automatically
o Undo totally broken m68k patch
o x86: regparm calling convention for exceptions and interrupts
o Make "unlock_buffer()" use the optimized
"smp_mb__after_clear_bit()"
o usb: don't "unsuspend" ports that aren't suspended
o Fix USB debugging build
o usb: remove totally bogus OHCI iomem casts
o Revert x86-64 flexmap code for now
o Remove stale 0-byte files
o Do EFI partitions only on ia64
o aio: remove incorrect initialization of "nr_pages"
o pc110 touchpad driver: be more polite
o fbdev: fix compile of rivafb on __BIG_ENDIAN
o wait_task_stopped() must not just return 0 when it has released the
tasklist_lock.
o Fix the fix
o Revert recent EDD changes to use EXTENDED READ comand and
CONFIG_EDD_SKIP_MBR
o ppc: fix up pmac IDE driver for driver core changes
o usb: edgeport serial driver uses CMSPAR, which not all
architectures support
o x86: only single-step into signal handlers if the tracer asked for
it.
o Linux 2.6.10-rc2

Lonnie Mendez:
o hid-core: add two devices to device blacklist
o usb-serial: add interrupt out support and improved debug messages
o cypress_m8: add usb-serial driver 'cypress_m8' to kernel tree
o usb-serial: free interrupt_out_buffer in cleanup routines

Luca Risolia:
o USB: W996[87]CF driver updates
o USB: SN9C10x driver updates

Luiz Capitulino:
o USB: Module version info for CyberJack
o USB: Module version info for PL2303
o USB: Module version info for Belkin_sa

Maciej W. Rozycki:
o defxx trivial updates
o defxx device name fixes
o UP local APIC bootstrap cleanup
o x86, x86_64: Only handle system NMIs on the BSP

Maneesh Soni:
o sysfs backing store - prepare sysfs_file_operations helpers
o fix oops with firmware loading
o sysfs backing store - add sysfs_direct structure
o sysfs backing store: use sysfs_dirent based tree in file removal
o sysfs backing store: use sysfs_dirent based tree in dir file
operations
o sysfs backing store: stop pinning dentries/inodes for leaf entries
o sysfs: fix sysfs backing store error path confusion
o fix kernel BUG at fs/sysfs/dir.c:20!
o sysfs: fix duplicate driver registration error

Manfred Spraul:
o handle posix message queues with /proc/sys disabled

Marc Singer:
o [ARM PATCH] 2213/1: lh7a40x serial.h cleanup

Marcel Holtmann:
o [Bluetooth] Ignore the BPA 100/105 devices
o [Bluetooth] Fix another disconnect race
o [Bluetooth] Allow vendor specific packet types
o Fix deprecated MODULE_PARM for CAPI subsystem
o [Bluetooth] Fix deprecated MODULE_PARM for PCCARD drivers
o [Bluetooth] Send HCI_Reset for new Microsoft dongle
o [Bluetooth] Add security callback to the core
o [Bluetooth] Fix connection hash bug
o [Bluetooth] Use usb_kill_urb() for synchronous unlink
o [Bluetooth] Add function for triggering a link key change
o [Bluetooth] Support responses with zero SCID
o [Bluetooth] Make some functions static
o Use add_hotplug_env_var() in firmware loader
o [Bluetooth] Some trivial s/int/unsigned int/

Marcelo Tosatti:
o Change pagevec counters back to unsigned long and cacheline align

Margit Schubert-While:
o Add prism54 to MAINTAINERS

Mark A. Greer:
o ppc32: add setup_indirect_pci_nomap() routine
o ppc32: remove CONFIG_SERIAL_CONSOLE_BAUD

Mark Goodwin:
o [IA64] sn_hwperf correctly handle bricks with multiple slabs

Markus Lidel:
o fix bug in i2o_iop_systab_set where address is used instead of
length

Martin Schlemmer:
o kbuild: check timestamps on files for initramfs

Martin Schwidefsky:
o s390: sacf local root exploit (CAN-2004-0887)
o s390: core changes
o s390: tty_write fix

Martin Waitz:
o fix wrong kfifo_init buffer size argument

Martin Wilck:
o skip sync_arb_IDs on P4/Xeon

Matt Domsch:
o [NET]: Zero out SIOCGIFHWADDR buffer if dev->addr_len is zero
o EFI GPT: reduce alternate header probing
o EDD: fix too short array

Matt Porter:
o ppc32: disable broken L2 cache on all 440GX revs
o ppc32: fix ppc4xx_progress warnings
o ppc32: 40x and Book E debug: core support
o ppc32: 40x and Book E debug: 4xx platform support
o ppc32: add PPC440GX L2C error handler

Matthew Dharm:
o USB Storage: Fix queuecommand() for disconnected devices

Matthew Wilcox:
o sym2 2.1.18m
o stifb bugfixes
o kernel-parameters update for PA-RISC
o parisc: arch/parisc/kernel/perf_asm.S
o parisc: unwind fixes
o parisc: spinlock fixes
o parisc: debuglock fixes
o parisc: fix 64-bit gcc 3.3 compiles
o parisc: register usage documentation update
o parisc: remove unused header file
o parisc: make atomic_t 32-bit
o parisc: make __kernel_clock_t long
o parisc: fix HPUX compile problem
o parisc: assembly fixes and comments
o Use optimised byteswap again
o parisc: Merge head64.S and head.S
o parisc: small debug cleanup in power.c
o parisc: add HP copyright to perf counters
o parisc: Fix 64-bit linking
o parisc: Kconfig debugging options
o parisc: make install
o parisc: Fix N-class SMP
o parisc: update a500_defconfig
o parisc: Initialise restart_block
o parisc: Add user_space macro
o parisc: Light-weight syscall support
o parisc: add copyright to sba_iommu
o parisc: better stack traces
o parisc: fix ptrace
o parisc: signal race fixes
o parisc: support get/put_unaligned
o parisc: _raw_write_trylock
o parisc: remove K_STW_PIC and K_LDW_PIC
o parisc: Remove isr verification
o parisc: use fixups for exception support
o parisc: export global fixup routines
o parisc: Add memory clobber to userspace syscall wrapper
o parisc: Fix LBA/SBA bugs
o parisc: fix CONFIG_DISCONTIGMEM support
o parisc: new memcpy routines
o parisc: register cpus with sysfs
o parisc: dump the stack on a BUG()
o parisc: Stop exporting the old memcpy symbols
o parisc: remove lcopy_*_user
o parisc: fix PTRACE_GETEVENTMSG
o parisc: new syscalls
o parisc: fix security hole
o parisc: superio cleanup
o parisc: checksum improvements
o compat syscalls naming standardisation

Matthias Burghardt:
o [ARM PATCH] 2183/1: GPIO84:81 for PXA26x defines
o [ARM PATCH] 2185/1: Bit definitions for PXA PWER
o [ARM PATCH] 2191/1: bugfix for PXA SSP

Matthijs Melchior:
o [libata ahci] fix rather serious (and/or embarassing) bugs

Maximilian Attems:
o USB: tiglusb: replace schedule_timeout() with
msleep_interruptible()
o USB: dabusb: replace schedule_timeout() with msleep_interruptible()
o scsi/53c700: replace schedule_timeout() with
o scsi/scsi_lib: replace schedule_timeout() with
o [SERIAL] replace schedule_timeout() with
msleep/msleep_interruptible()
o VFS maintainer email address updates

Meelis Roos:
o ata.h undefined types in USB

Michael Hunold:
o DVB: rework debugging in av7110
o DVB: misc. updates to the dvb-core
o DVB: add new driver
o DVB: revamp dibusb driver
o DVB: misc. updates to frontend drivers
o v4l: mxb driver and i2c helper cleanup
o v4l: keep tvaudio driver away from saa7146

Michal Rokos:
o [ALSA] Exclude uneeded code when ! CONFIG_PROC_FS

Mika Kukkonen:
o sparse: fix warnings in net/irda/*

Mikael Starvik:
o CRIS: configuration and Build
o CRIS: update simple drivers
o CRIS: ethernet driver
o CRIS: IDE driver
o CRIS: Add USB host driver
o CRIS: Core kernel updates
o CRIS: Console setup handling
o CRIS: Move drivers
o CRIS: Update Makefiles
o CRIS: Update MAINTAINERS

Mike Waychison:
o [TG3]: Fix fiber hw autoneg bounces

Miles Bader:
o v850: Work around include-definition-loop problem in
<asm-v850/posix_types.h>
o v850: Add definitions for memcpy_fromio and memcpy_toio
o v850: Add __param linker section
o v850: Fix misnamed variable in ptrace.c
o v850: signal handling race fix

Milton D. Miller II:
o net/Kconfig: undo duplicate patch application
o hamradio/hdlcdrv: undo duplicat patch application
o fix sysfs backing store error path confusion

Mingming Cao:
o ext2: discard preallocation in last iput
o ext3 block reservation patch set -- ext3 preallocation cleanup
o ext3 block reservations

M?ns Rullg?rd:
o SysRq-n changes RT tasks to normal

Naoki Shibata:
o USB: usbnet patch (new ax8817x device)

Neil Brown:
o md: remove md_flush_all
o md: make retry_list non-global in raid1 and multipath
o md: rationalise issue_flush function in md personalities
o md: rationalise unplug functions in md
o md: make sure md always uses rdev_dec_pending properly
o md: fix two little bugs in raid10
o md: modify locking when accessing subdevices in md
o md: make read retry use a new bio in raid1 and raid10
o md: discard calc_sb_csum_common in favour of csum_fold
o md: don't hold lock on md devices while waiting for them to finish
resync
o md: fix typos in md and raid10
o md: fixes to make version-1 superblocks work in md driver
o md: fix problem with md/linear for devices larger than 2 terabytes
o md: fix raid6 problem
o md: delete unplug timer before shutting down md array
o md: "Faulty" personality

Neil Horman:
o ns83820: add vlan tag hardware acceleration support

Nick Piggin:
o mm: help zone padding
o vm: unreclaimable pages debugginf
o vmscan: pages_scanned fix

Nickolai Zeldovich:
o ext3 umount hang

Nicolas Pitre:
o [ARM PATCH] 2080/1: clean up io-{read|write}sl
o fix smc91x compilation error
o [ARM PATCH] 2175/1: add reference for problem worked around by
patch #1824/1
o [ARM PATCH] 2187/1: fix lacking capability in pxa_gpio_mode()
o [ARM PATCH] 2203/1: trivial asm optimization for csum code
o [ARM PATCH] 2192/1: small optimization to {read|write}sl routines
o [ARM PATCH] 2154/2: XIP kernel for ARM
o [ARM PATCH] 2160/1: allow modules to work with XIP kernel
o [ARM PATCH] 2230/1: fix generic_fls declaration mismatch

Nigel Croxon:
o [IA64-HP] Fix for bits_wanted in sba_iommu.c

Nigel Cunningham:
o Fix dm_io.c oops in low memory conditions

Nishanth Aravamudan:
o net/de2104x: replace schedule_timeout() with msleep()
o [PNPBIOS] use msleep_interruptible()
o scsi/ahci: replace schedule_timeout() with msleep()/ssleep()
o pci/quirks: replace schedule_timeout() with msleep()

Olaf Hering:
o remove old version check from mac8390
o remove double newline from sysrq action_msg
o rmmod ohci1394 hangs
o x86_64: Fix make all
o fix initcall_debug on ppc64/ia64

Olaf Kirch:
o statfs compat functions can return EOVERFLOW on NFS

Oleg Drokin:
o "Bad" naming of structures and functions in ext3 reservation code

Oliver Neukum:
o kaweth: full conversion to usb_unlink_urb
o kaweth: no need for packed

Olof Johansson:
o ppc64: setup cpu_sibling_map on iSeries
o ppc64: VIO iommu table property parsing wrong

Ondrej Zary:
o make cdu31a work on at least one system

Pablo Neira:
o [NETFILTER]: Clean up ip_conntrack stats
o [NETFILTER]: fix stats in __ip_conntrack_confirm

Paolo 'Blaisorblade' Giarrusso:
o uml: Kconfig and defconfig updates
o uml: resync LDS script for SMP changes
o uml: unused label
o uml: add conf INITRAMFS_SOURCE
o uml: fix mainline lazyness about TTY layer patch
o Kbuild: avoid backup localversion files
o ptrace POKEUSR: add comment about the DR7 check
o uml: fix ptrace() hang on 2.6.9 host due to host changes
o uml - some comments about forcing /bin/bash
o uml: add startup check for mmap(...PROT_EXEC...) from /tmp
o uml: fix syscall auditing
o uml: fix symbol conflict in linking
o uml: cleanup header names
o uml: remove useless inclusion
o uml: no duplicate current_thread definition
o uml: mconsole_proc simplify and partial fix
o uml: catch EINTR in generic_console_write
o uml: remove SIGPROF from change_signals
o uml: use kallsyms when dumping stack
o uml: revert compile-only changes for other ones
o uml: fix sysemu test at startup
o uml: more careful test startup
o uml: clear errno in CATCH_EINTR
o uml: re-add linux Makefile target - fixes to the old version
o uml: add missing newline in help string
o uml: use sys_getpid bypassing glibc (fixes UML on Gentoo)

Pat Gefre:
o [IA64-SGI] only allocate irq if the device can interrupt

Patrick Caulfield:
o [DECNET]: Connect hang bugfix
o [DECNET]: Route RCU fix
o [DECNET]: Fix return codes

Patrick McHardy:
o [NETFILTER]: Introduce tabs to ip6t_ah.c
o [NETFILTER]: ip6t_esp.c whitespace cleanup
o [NETFILTER]: Convert ip6t_physdev match function to new argument
order
o [NETFILTER]: Select source address for gateway in MASQUERADE
o [PKT_SCHED]: Fix rcu_assign_pointer fallout, use it in the right
place
o [PKT_SCHED]: pedit: Convert jiffies values to USER_HZ when dumping
o [PKT_SCHED]: mirred: Convert jiffies values to USER_HZ when dumping
o [PKT_SCHED]: gact: Convert jiffies values to USER_HZ when dumping
o [PKT_SCHED]: ipt: Convert jiffies values to USER_HZ when dumping
o [NETFILTER]: Don't use skb_header_pointer in amanda conntrack
helper
o [PKT_SCHED]: Fix device leaks in mirred action
o [PKT_SCHED]: Mark some functions static in tc actions/act_api
o [PKT_SCHED]: Fix scheduler/classifier module unload race
o [PKT_SCHED]: Unline inner qdiscs immediately in qdisc_destroy()
o [PKT_SCHED]: Fix overflow on 64bit in times reported to userspace

Paul E. McKenney:
o scheduler: remove redundant #ifdef
o RCU: rcu_assign_pointer() removal of memory barriers
o RCU: use rcu_assign_pointer()
o RCU: eliminating explicit memory barriers from SysV IPC

Paul Fulghum:
o serial send_break duration fix

Paul Mackerras:
o ppc64: provide notifier list for EEH slot isolations
o ppc64: crash during firmware flash update
o ppc64: create iommu_free_table()
o ppc64: __ioremap_explicit() criterion change
o ppc64: cpu hotplug notifier for numa
o PPC/PPC64: Fix FP state corruption on UP
o Fix deadlocks on dpm_sem
o PPC64 mmu_context_init needs to run earlier
o ppc64: iommu fixes, round 3
o ppc64: iSeries_pci.c use for_each_pci_dev()
o ppc64: pmac_pci.c replace pci_find_device with pci_get_device
o ppc64: pSeries_pci.c use for_each_pci_dev()
o ppc64: pSeries_iommu.c use for_each_pci_dev
o ppc64: u3_iommu.c use for_each_pci_dev()
o Check character flags in ppp_async ldisc
o Update ppc list addresses in MAINTAINERS

Paul Mundt:
o sh: do_signal() update for generic changes
o sh: compile fixes
o sh: syscall updates

Pavel Fedin:
o VIA8231 support for parallel port driver

Pavel Machek:
o swsuspend for ne2k-pci cards
o power/disk.c: small fixups
o Kill useless pm_access from vt.c
o Add typechecking to suspend types and powerdown types

Pawel Sikora:
o signal.c: gcc-3.4 fix
o /proc/kcore - enable/disable
o x86: optimize stack pointer access (reduce register usage)

Pekka Enberg:
o radeonfb: screeninfo initialization cleanup
o fbcon: Remove spurious casts
o fbcon: Replace logo_shown magic numbers with constants
o radeonfb: more initializer fixes

Pete Zaitcev:
o USB: usblp BKL removal
o USB: Patch for ub

Peter Chubb:
o standalone sys_ni.c for not-implemented syscalls
o [ARM PATCH] 2205/1: Fix compilation for IXDP425: typo in
mach-ixp4xx/common.c

Peter Osterlund:
o Fix incorrect kunmap_atomic in pktcdvd
o Fix incorrect Mt Rainier detection
o fix bttv oops in btcx_riscmem_free

Peter Pregler:
o cpia.c rmmod deadlock fix

Petr Konecny:
o netpoll with xircom_cb

Petr Vandrovec:
o Weak symbols in modules and versioned symbols
o Add argument-less ppdev ioctls to compat_ioctl.h

Phil Dibowitz:
o USB Storage: Add unusual_devs entry for iPod

Philippe Bertin:
o USB: Superfluous statement in usb.c

Prasanna S. Panchamukhi:
o kprobes: Minor i386 changes required for porting kprobes to x86_64
o kprobes: kprobes ported to x86_64
o kprobes: Minor changes for sparc64

Pu Long:
o x86_64: Use compat readdir and aio functions

Rajesh Venkatasubramanian:
o prio_tree: fix prio_tree_expand corner case
o prio_tree: add Documentation/prio_tree.txt

Ralf B?chle:
o Stop queue on close in hdlcdrv
o [AX25]: Fix cb lookup

Randolph Chung:
o Fix cc-option call for xcompiles

Randy Dunlap:
o pcnet32: use unsigned 1-bit fields
o skfp: remove assignment expression in conditional (sparse)(v2)
o kconfig: OVERRIDE: save kernel version in .config file
o qla1280: driver_setup not __initdata
o checkstack: add x86_64 arch. support
o __init dependencies: ignore __param
o via-rhine: references __init code during resume
o convert MODULE_PARM() to module_param() family
o more MODULE_PARM conversions
o scsi/mesh: module_param corrections

Richard Henderson:
o Add __ioremap

Robert III:
o USB: PL2303 - PharosGPS patch

Robert Love:
o make dnotify a configure-time option
o kobject_uevent: fix init ordering
o kobject_uevent: add MAINTAINER entry

Roland McGrath:
o Invalid BUG_ONs in signal.c
o Fix ptrace problem
o fix core-dump return code
o acct: report single record for multithreaded process
o session leader tty disassociation fix
o Wake up signalled tasks when exiting ptrace

Romain Li?vin:
o USB: tiglusb.c: add direct USB support on some new TI handhelds

Roman Zippel:
o hfs: update key after rename
o hfs: relax dirty check
o hfs: manage correct block count
o hfs: read correct dir time
o hfs: write back resource info directly
o hfs: export type/creator via xattr

Russell King:
o [PCMCIA] Fix PCMCIA behaviour on resume with different card
o [ARM] Fix missing parens for __FD_* operations
o arm: Fix ARM kernel build with permitted binutils versions
o [ARM] Group linux/* includes together in mcbsp.c
o [MMC] Fix incorrectly balanced spin_lock_irq()
o [MMC] Add support for passing scatterlists to MMC host drivers
o [MMC] Remove block knowledge from MMCI driver
o [MMC] Switch PXAMCI to use supplied scatterlist
o [MMC] Deprecate "req" member of mmc_data structure
o [ARM] Use cpu_vm_mask to indicate whether the MM is mapped
o [ARM] Use cpu_vm_mask to determine whether to flush TLB/caches
o [ARM] Add disable_irq_nosync() and CPU number headings
o [ARM] Remove extraneous spaces
o [ARM] include/asm-arm/arch-integrator/time.h is unused, remove it
o [ARM] Fix wrong variable name in icside.c
o [ARM] etherh: add ethtool support
o [ARM] etherh: report errors when trying to parse MAC address
o 8390.c: Use mdelay(10) rather than udelay(10*1000)
o [ARM] etherh: add __iomem annotations
o [ARM] Add initial __iomem annotations to ARM io.h headers
o [ARM] s3c2410: DMA uses __iomem pointers
o [ARM] Add __iomem annotations to ARM amba drivers
o [SERIAL] Clean up serial_core.c write functions
o [SERIAL] 8250: Fix resource handling
o [SERIAL] 8250: move basic initialisation of 8250 ports
o [SERIAL] Re-order 8250 serial driver initialisation/finalisation
o [SERIAL] 8250: Add platform device for ISA 8250-compatible devices
o [SERIAL] 8250: add probe and remove device driver methods
o [SERIAL] 8250: prevent ports with zero clocks being registered
o [SERIAL] Undo "get_legacy_serial_ports" patch for PPC
o [SERIAL] 8250_acorn: Convert to use serial8250_{un,}register_port
o [ARM] No need for rpc_map_io to be public
o [ARM] riscpc: add iomd, keyboard and acornfb platform devices
o [SERIAL] 8250: Warn when ports with zero base_baud are registered
o [SERIAL] serial_cs: Convert to use serial8250_{un,}register_port
o [SERIAL] 8250_pnp: Convert to use serial8250_{un,}register_port
o [SERIAL] Don't use UPF_AUTOPROBE, fix two build problems
o [SERIAL] 8250_acpi: Convert to use serial8250_{un,}register_port
o [SERIAL] Don't detect console availability using port->ops
o [SERIAL] Fix deadlock on removal of 8250 module
o [ARM] Remove duplicate includes from ARM files
o [SERIAL] 8250: Return interrupt handler status
o [SERIAL] 8250_gsc: Convert to use serial8250_{un,}register_port
o [ARM] mtd: update mapping drivers
o [SERIAL] Add support for Dell PCI Remote Access Card III
o [SERIAL] Add ALPHA_KLUDGE_MCR from include/linux/serialP.h
o [SERIAL] 8250: Remove two warnings
o [SERIAL] Fix PPC64 for recent serial changes
o saa7111.c: fix VIDEO_MODE_SECAM
o [ARM] sa11x0: use ID of -1 for single devices
o [ARM] Optimise cache_is_xxx() macros
o [ARM] Fix double compare with zero instructions
o [ARM] Versatile: Remove CONFIG_MMC ifdef blocks
o [ARM] Eliminate include/asm-arm/arch-*/serial.h
o [ARM] Update mach-types
o [ARM] rtctime tweaks
o [ARM] Add static partitioning information to flash_platform_data
o [ARM] Add SA1100 generic flash infrastructure
o [ARM] Add Assabet flash device partitioning and location data
o [ARM] Fix IMX build error post sys_timer merge
o [ARM] Remove unused 'mclk' element from MMC platform structure
o [ARM] Add platform_device-based partition and map information
o [ARM] Remove broken SA1100 machine support
o [MTD] sa1100: add driver model support and remove static flash
probing
o [MTD] sa1100: split out sub-device init/destruction
o [MTD] sa1100: consolidate mtd and partition destructors
o [MTD] sa1100: add container structure for one logical flash device
o [MTD] sa1100: more driver model integration and consolidation
o [MTD] sa1100: remove static partitioning information
o [MTD] sa1100: Use set_vpp functions provided by machine support
code
o [MTD] sa1100: Obtain flash device location from platform device
o [SERIAL] Add sparse __iomem annotations
o [SERIAL] serial driver fixes
o [ARM] Fix Acorn SCSI drivers to use
ecard_{request,release}_resources
o [ARM] ecard: dumpirq state on unrecognised interrupts as well
o [ARM] icside: use MMIO for board specific registers
o [ARM] icside: use MMIO for IDE registers
o [ARM] rapide: use MMIO for IDE registers

Rusty Russell:
o [NETFILTER]: Change MASQUERADE to Use Device Address Directly
o MODULE_PARM must die: make it warn first
o Remove MODULE_PARM from i386 defconfig
o Remove MODULE_PARM from arch/i386
o Fix for MODULE_PARM obsolete
o Builtin Module Parameters in sysfs too
o boot parameters: quoting of environment variables revisited
o Eliminate init_module and cleanup_module from Documentation
o [NETFILTER]: Avoid warning on CONNTRACK_STAT_INC in
destroy_conntrack()
o Don't ignore try_stop_module return
o [NETFILTER]: Fix find_appropriate_src() to actually work

Sam Ravnborg:
o kbuild: Create Makefile in output dir for *config targets
o kbuild: Add cc-option-align
o kbuild/usr: initramfs list fixed and simplified
o m32r: misc kbuild cleanups
o kbuild: allow architectures to specify defconfig file with
KBUILD_DEFCONFIG
o Do not recompile if localversion changes
o kbuild: Prefer Kbuild as name of the kbuild files
o kconfig: drop usage of shared libraries
o ppc: fix building arch/ppc/boot/lib/ with make O=
o kconfig: fix xconfig and gconfig

Sascha Hauer:
o [ARM] Update h720x for timer changes
o [ARM PATCH] 1956/2: Re: Motorola i.MX serial driver

Scott Feldman:
o janitor: net/sis900: pci_find_device to pci_get_device
o janitor: net/tulip: pci_find_device to pci_dev_present
o e100: update maintainer

Sebastian Witt:
o [CPUFREQ] NVidia nForce2 FSB cpufreq driver

Sergey S. Kostyliov:
o Add megaraid PCI IDs

Simon Derr:
o Fix race in sysfs_read_file() and sysfs_write_file()
o Possible race in sysfs_read_file() and sysfs_write_file()

Sridhar Samudrala:
o [SCTP] Change sctp_assoc_t to a sized type(s32)
o [SCTP] Adaption layer indication support
o [SCTP] Update cwnd/ssthresh as per the sctpimpguide modifications
o [SCTP] When an address is deleted, update any transports that are
caching it as a source adddress
o [SCTP] Fix HEARTBEAT_ACKs being sent to wrong dest. ip address in a
multi-homing scenario after a failback.

Stelian Pop:
o sonypi: module related fixes
o sonypi: replace homebrew queue with kfifo
o sonypi: power management related fixes
o sonypi: rework input support
o sonypi: make CONFIG_SONYPI depend on CONFIG_INPUT
o sonypi: don't suppose the bluetooth subsystem is initialy off
o sonypi: whitespace and coding style fixes
o sonypi: bump up the version number
o meye: module related fixes
o meye: replace homebrew queue with kfifo
o meye: picture depth is in bits not in bytes
o meye: do lock properly when waiting for buffers
o meye: implement non blocking access using poll()
o meye: cleanup init/exit paths
o meye: the driver is no longer experimental and depends on PCI
o meye: module parameters documentation fixes
o meye: add v4l2 support
o meye: whitespace and coding style cleanups
o meye: bump up the version number
o meye: cache the camera settings in the driver
o sonypi: documentation fixes
o videodev2.h patchlet

Stephen C. Tweedie:
o ext3: online resizing

Stephen D. Smalley:
o lsm: fix send_sigurg mediation
o Add DAC check for setxattr(security.selinux)

Stephen Hemminger:
o (1/4) acenic - use netdev_priv
o (2/4) acenic - eliminate MAX_SKB_FRAGS #if
o (3/4) acenic - __iomem warnings cleanup
o (4/4) acenic - don't spin forever in hard_start_xmit
o ns83820: use module_param
o eql: use netdev_priv
o dummy: use netdev_priv
o tg3: use module_param
o tg3: use netdev_priv
o tg3: make driver only data static
o slip: use module_param
o slip: use netdev_priv
o kaweth: use alloc_etherdev to allocate device private
o usbnet: use alloc_etherdev to allocate private data
o USB kaweth: use alloc_etherdev to allocate device private data -
fix
o cdev: protect against buggy drivers
o avoid problems with kobject_set_name and name with %
o [PKT_SCHED]: netem: use timer to handle packets not rescheduling
o [NETFILTER]: Fix build without INET
o loop: convert to module_param
o rd: convert to module_param and add module alias

Stephen Rothwell:
o ppc64: iSeries console: cleanup after tty_write user copies
removal
o ppc64 iSeries pci cleanups
o ppc64 iSeries: fix for generic irq changes
o ppc64: iSeries iommu cleanups
o ppc64: iSeries combine some MF code
o ppc64: iSeries remove trailing white space
o ppc64: iSeries remove some Studly Caps
o ppc64: iSeries more MF cleanup
o ppc64: iSeries remove more Studly Caps from MF code
o ppc64: iSeries last of the cleanups fo the MF code

St?phane Eranian:
o [IA64] misc small patches for perfmon

Suparna Bhattacharya:
o Fix O_SYNC speedup for generic_file_write_nolock

Suresh B. Siddha:
o intel irqbalance quirk cleanup
o x86-64: fix sibling map again

Suresh Krishnan:
o [NET]: Address family not supported for sendmsg()

Sylvain Meyer:
o fbdev: intelfb code cleanup

Takayoshi Kochi:
o [IA64] cleanup CPU drift print

Tejun Heo:
o kbuild: use two double-quotes for localversion
o kbuild: explicit enable framepointer
o driver-model: comment fix in bus.c
o driver-model: bus_recan_devices() locking fix
o driver-model: sysfs_release() dangling pointer reference fix
o driver-model: kobject_add() error path reference counting fix
o driver-model: device_add() error path reference counting fix

Tero Roponen:
o Don't initialize /dev/pg0 to be always busy

Theodore Y. Ts'o:
o Licencing of drivers/char/rocket.c

Thomas Gleixner:
o Lock initializer unifying (Core)
o Lock initializer unifying (Network drivers)
o Lock initializer unifying Batch 2 (USB)
o Lock initializer unifying Batch 2 (PCI)
o [BLUETOOTH]: Lock initializer unifying
o [NET]: Lock initializer unifying

Thomas Graf:
o [PKT_SCHED]: u32: Remove unused hgenerator field in tc_u_hnode
o [NETFILTER]: Fix warning in CONNMARK
o [PKT_SCHED]: Rename TCQ_F_INGRES to TCQ_F_INGRESS
o [PKT_SCHED]: pkt_cls.h needs pkt_sched.h
o [PKT_SCHED]: Add net/sch_generic.h with generic sched definitions
o [PKT_SCHED]: Remove obsolete definitions in pkt_cls.h
o [PKT_SCHED]: Add net/act_api.h with public action/policer bits
o [PKT_SCHED]: Remove obsolete definitions in pkt_sched.h
o [PKT_SCHED]: Transform pkt_sched.h prototypes to be extern
o [PKT_SCHED]: Move tc_classify from pkt_cls.h to sch_api.c
o [PKT_SCHED]: psched_*_per_* can be static
o [PKT_SCHED]: Cleanup cls_set_class
o [PKT_SCHED]: Inline psched_tod_diff
o [PKT_SCHED]: Use new header architecture
o [PKT_SCHED]: Remove bogus lock and make cls_set_class return
unsigned long
o [PKT_SCHED]: Add generic classifier routines
o [PKT_SCHED]: cls_fw: Cleanup fw_classify
o [PKT_SCHED]: cls_fw: Use generic routines to configure
action/policer
o [PKT_SCHED]: cls_fw: Use generic routines to dump action/policer
o [PKT_SCHED]: cls_fw: Whitespace/ifdef fixes
o [PKT_SCHED]: cls_fw: Break is not enough to stop walking
o [PKT_SCHED]: cls_fw: CONFIG_NET_CLS_IND is not dependant on
CONFIG_NET_CLS_ACT
o [PKT_SCHED]: cls_route: Use generic routines for class binding and
police config/dump
o [PKT_SCHED]: cls_rsvp*: Use generic routines for class binding and
police config/dump
o [PKT_SCHED]: cls_tcindex: Use generic routines for class binding
and police config/dump
o [PKT_SCHED]: cls_u32: Use generic routines for class binding and
police config/dump
o [PKT_SCHED]: tcf_action: copy generic stats via TCA_ACT_STATS
o [PKT_SCHED]: gact: use gnet_stats for action stats
o [PKT_SCHED]: ipt: use gnet_stats for action stats
o [PKT_SCHED]: mirred: use gnet_stats for action stats
o [PKT_SCHED]: pedit: use gnet_stats for action stats
o [PKT_SCHED]: police: use gnet_stats for action policer stats
o [PKT_SCHED]: police: use gnet_stats for old policer stats
o [PKT_SCHED]: cls_*: use tcf_police_dump_stats to dump via new
gnet_stats API
o [PKT_SCHED]: Initialize lists of builtin qdiscs
o [PKT_SCHED]: Builtin qdiscs should avoid all qdisc_destroy()
processing
o [PKT_SCHED]: Remove old estimator code, no longer used

Tobias Lorenz:
o [libata sata_promise] s/sata/ata/

Tom Fredrik Blenning Klaussen:
o firmware spelling errors

Tom L. Nguyen:
o PCI: pci-mmconfig fix

Tom Rini:
o kbuild: fix 'htmldocs' and friends with O=
o ppc32: Fix building for Motorola Sandpoint with O=
o kbuild: warning fixes on Solaris 9
o ppc32: Move request_irq() calls to arch_initcall() functions
o ppc32: Fix warning in gen550 code
o ppc32: Remove sandpoint_early_serial_map()
o Fix ppc32 compile
o kconfig: Fix menuconfig on Solaris
o kbuild: additional warning fixes on Solaris 9
o ppc32: fix early request_irq
o ppc32: CPM2 bug
o ppc32: Add support for Sandpoint X2
o ppc32: Fixup <asm/time.h> includes
o Fix building of samba userland
o Add __KERNEL__ to <linux/crc-ccitt.h>
o Fix CPM2 uart driver device number brain damage

Tommy Christensen:
o [NET]: Move local_bh_enable back in dev_queue_xmit

Tony Lindgren:
o [ARM PATCH] 2162/1: OMAP update 1/8: Improved cpu detection and
serial init
o [ARM PATCH] 2164/1: OMAP update 3/8: Include files
o [ARM PATCH] 2165/1: OMAP update 4/X: Replace 1610 and 5912 header
files with 16xx
o [ARM PATCH] 2166/1: OMAP update 5/8: Change OMAP to use generic
clock framework
o [ARM PATCH] 2167/1: OMAP update 6/8: Add graphics acceleration
support to DMA
o [ARM PATCH] 2169/1: OMAP update 8/8: McBSP update
o [ARM PATCH] 2170/1: OMAP update 2/8, take 2: Arch files
o [ARM PATCH] 2173/1: OMAP update 7/8, take 3: Add PM support
o [ARM PATCH] 2194/1: Change OMAP serial port init to use
autodetection
o [ARM PATCH] 2195/1: Updates to OMAP clock framework

Tony Luck:
o [IA64] Need <asm/meminit.h> for GRANULEROUNDDOWN
o [IA64] fix(?) unwind data for ia64_monarch_init_handler
o [IA64] tiger_defconfig update for 2.6.10-rc1
o [IA64] promote configs/generic_defconfig to defconfig
o [IA64] implement pcibios_resource_to_bus and
pcibios_bus_to_resource
o [IA64-SGI] Do not disable interrupts in
ia64_sn_plat_specific_err_print

Toshihiro Iwamoto:
o direct IO write memory leak fix

Utz Bacher:
o s390: qdio changes

Venkatesh Pallipadi:
o HPET reenabling after suspend-resume

Ville Syrjala:
o fbdev: Fix atyfb cursor problems

Wen Xiong:
o icom makefile fix
o "PORT_ICOM" defination for icom adapter

Wensong Zhang:
o [IPVS]: Update version to 1.2.1

Werner Almesberger:
o update CREDITS entry of Werner Almesberger
o make buffer head argument of buffer_##name "const"

William Lee Irwin III:
o remove itimer_ticks and itimer_next

Yanmin Zhang:
o hugetlb_get_unmapped_area fix
o x86_64: Fix 32bit aio setup

Yasuyuki Kozakai:
o [NETFILTER]: prearation of removing skb_linearize()
o [NETFILTER]: Enable ip6t_LOG.c to work without skb_linearize()
o [NETFILTER]: Enable ip6t_ah.c to work without skb_linearize()
o [NETFILTER]: Enable ip6t_esp.c to work without skb_linearize()
o [NETFILTER]: Enable ip6t_rt.c to work without skb_linearize()
o [NETFILTER]: Enable ip6t_multiport.c to work without
skb_linearize()
o [NETFILTER]: Enable ip6t_frag.c to work without skb_linearize()
o [NETFILTER]: Fix multiple bugs in dst match
o [NETFILTER]: Fix multiple bugs in hbh match
o [NETFILTER]: Introduce skb_header_pointer() to dst match
o [NETFILTER]: Introduce skb_header_pointer() to hbh match

Yi Zhu:
o swsusp: print error message when swapping is disabled

Yoshinori Sato:
o H8/300 inline cleanup
o H8/300 build error fix
o H8/300 vmlinux.lds update
o fix "extern inline"

Zachary Amsden:
o faster signal handling on x86


2004-11-15 04:17:39

by Adrian Bunk

[permalink] [raw]
Subject: 2.6.10-rc2 doesn't boot

I don't know what might have caused this:

Both 2.6.9 and 2.6.10-rc1-mm5 boot fine on my computer.

2.6.10-rc2 doesn't boot.

It stops at the following place (from a 2.6.10-rc1-mm5 log):

<-- snip -->

...
ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 11 (level, low) -> IRQ 11
ACPI: PS/2 Keyboard Controller [PS2K] at I/O 0x60, 0x64, irq 1
ACPI: PS/2 Mouse Controller [PS2M] at irq 12
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing
disabled
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE,EPP]
parport0: irq 7 detected
lp0: using parport0 (polling).
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered


----> 2.6.10-rc2 stops here


loop: loaded (max 8 devices)
sis900.c: v1.08.07 11/02/2003
ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 6
PCI: setting IRQ 6 as level-triggered
ACPI: PCI interrupt 0000:00:04.0[A] -> GSI 6 (level, low) -> IRQ 6
eth0: Realtek RTL8201 PHY transceiver found at address 1.
eth0: Using transceiver found at address 1 as default
eth0: SiS 900 PCI Fast Ethernet at 0xdc00, IRQ 6, 00:0b:6a:3b:93:a8.
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with
idebus=xx
SIS5513: IDE controller at PCI slot 0000:00:02.5
SIS5513: chipset revision 0
SIS5513: not 100% native mode: will probe irqs later
SIS5513: SiS 962/963 MuTIOL IDE UDMA133 controller
ide0: BM-DMA at 0xff00-0xff07, BIOS settings: hda:DMA, hdb:DMA
ide1: BM-DMA at 0xff08-0xff0f, BIOS settings: hdc:DMA, hdd:DMA
...

<-- snip -->


My .config is attached.


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


Attachments:
(No filename) (1.96 kB)
.config (29.36 kB)
Download all attachments

2004-11-15 04:48:43

by Linus Torvalds

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot



On Mon, 15 Nov 2004, Adrian Bunk wrote:
> io scheduler deadline registered
> io scheduler cfq registered
>
> ----> 2.6.10-rc2 stops here
>
> loop: loaded (max 8 devices)

Strange. There is not a lot in between those two registrations. The "cfq
registered" comes from cfq_init(), and the "loop: loaded" thing comes from
loop_init(), and in between them in the link there is just floppy.o.

And I don't see that _any_ of those three has changed. Yes, cfq got an
__exit added to its exit function, and floppy got __initdata added, but
neither of those should make any difference what-so-ever.

Just for interest, what happens if you disable floppy support? It doesn't
look like you have a floppy on that system..

Linus

2004-11-15 05:40:25

by Adrian Bunk

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot

On Sun, Nov 14, 2004 at 08:48:22PM -0800, Linus Torvalds wrote:
>
>
> On Mon, 15 Nov 2004, Adrian Bunk wrote:
> > io scheduler deadline registered
> > io scheduler cfq registered
> >
> > ----> 2.6.10-rc2 stops here
> >
> > loop: loaded (max 8 devices)
>
> Strange. There is not a lot in between those two registrations. The "cfq
> registered" comes from cfq_init(), and the "loop: loaded" thing comes from
> loop_init(), and in between them in the link there is just floppy.o.
>
> And I don't see that _any_ of those three has changed. Yes, cfq got an
> __exit added to its exit function, and floppy got __initdata added, but
> neither of those should make any difference what-so-ever.
>
> Just for interest, what happens if you disable floppy support? It doesn't
> look like you have a floppy on that system..

Bingo.

I don't have a floppy and floppy support is disabled in the BIOS.

And thinking about it, I had exactly the same problem in -mm three
months ago (the thread subject was "2.6.8-rc4-mm1 doesn't boot").
(I didn't think it might be the same problem again since this was so
long ago...).

It seems Bjorns "PCI: remove unconditional PCI ACPI IRQ routing" was
merged now into your tree, but his patch to fix floppy.c wasn't
merged...

> Linus

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

2004-11-15 07:25:47

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot

Adrian Bunk <[email protected]> wrote:
>
> 2.6.10-rc2 doesn't boot.
>
> It stops at the following place (from a 2.6.10-rc1-mm5 log):
>
> <-- snip -->
>
> ...
> ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 11 (level, low) -> IRQ 11
> ACPI: PS/2 Keyboard Controller [PS2K] at I/O 0x60, 0x64, irq 1
> ACPI: PS/2 Mouse Controller [PS2M] at irq 12
> serio: i8042 AUX port at 0x60,0x64 irq 12
> serio: i8042 KBD port at 0x60,0x64 irq 1
> Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing
> disabled
> ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
> parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE,EPP]
> parport0: irq 7 detected
> lp0: using parport0 (polling).
> io scheduler noop registered
> io scheduler anticipatory registered
> io scheduler deadline registered
> io scheduler cfq registered
>
>
> ----> 2.6.10-rc2 stops here
>
>
> loop: loaded (max 8 devices)

Suggest you add initcall_debug to the kernel boot command line so we can
see which subsystem is causing the hang.

2004-11-15 10:27:13

by Russell King

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2

On Sun, Nov 14, 2004 at 06:49:04PM -0800, Linus Torvalds wrote:
> Ok, the -rc2 changes are almost as big as the -rc1 changes, and we should
> now calm down, so I do not want to see anything but bug-fixes until 2.6.10
> is released. Otherwise we'll never get there.

There's a few more non-bugfix changes which need merging first though.
Namely an update to the S3C2410 serial driver from Ben to allow the
s3c2410 changes which are now in 2.6.10-rc2 to work. Otherwise I
suspect s3c2410 is going to be dead in the water for 2.6.10.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core

2004-11-15 11:25:04

by Ben Dooks

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2

On Mon, Nov 15, 2004 at 10:26:20AM +0000, Russell King wrote:
> On Sun, Nov 14, 2004 at 06:49:04PM -0800, Linus Torvalds wrote:
> > Ok, the -rc2 changes are almost as big as the -rc1 changes, and we should
> > now calm down, so I do not want to see anything but bug-fixes until 2.6.10
> > is released. Otherwise we'll never get there.
>
> There's a few more non-bugfix changes which need merging first though.
> Namely an update to the S3C2410 serial driver from Ben to allow the
> s3c2410 changes which are now in 2.6.10-rc2 to work. Otherwise I
> suspect s3c2410 is going to be dead in the water for 2.6.10.

The new patch for the serial driver fixes/updates has been sent to
rmk, so hopefully this should complete the patch set.

--
Ben ([email protected], http://www.fluff.org/)

'a smiley only costs 4 bytes'

2004-11-15 11:56:44

by Nick Piggin

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2

Linus Torvalds wrote:
> Ok, the -rc2 changes are almost as big as the -rc1 changes, and we should
> now calm down, so I do not want to see anything but bug-fixes until 2.6.10
> is released. Otherwise we'll never get there.
>

I'd like to get included that patch to restore the buffer of memory
reserved for GFP_ATOMIC allocations (ie. the difference between GFP_KERNEL
and GFP_ATOMIC allocations).

http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc1/2.6.10-rc1-mm5/broken-out/mm-restore-atomic-buffer.patch

It is not actually a regression versus 2.6.9 (it is vs 2.6.8), although I
think it is responsible for the increased reports of page allocation failures.

It would be nice to let it have more testing in -mm first, but OTOH if we
_really_ want it in 2.6.10 it would make sense to merge it ASAP so it can get
wider testing.

Any feelings on the matter yet, Andrew? Or were you thinking it would be OK for
post 2.6.10?

2004-11-15 20:22:12

by Andrew Morton

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2

Nick Piggin <[email protected]> wrote:
>
> I'd like to get included that patch to restore the buffer of memory
> reserved for GFP_ATOMIC allocations (ie. the difference between GFP_KERNEL
> and GFP_ATOMIC allocations).
>
> http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc1/2.6.10-rc1-mm5/broken-out/mm-restore-atomic-buffer.patch
>
> It is not actually a regression versus 2.6.9 (it is vs 2.6.8), although I
> think it is responsible for the increased reports of page allocation failures.
>
> It would be nice to let it have more testing in -mm first, but OTOH if we
> _really_ want it in 2.6.10 it would make sense to merge it ASAP so it can get
> wider testing.
>
> Any feelings on the matter yet, Andrew? Or were you thinking it would be OK for
> post 2.6.10?

That one should be in 2.6.10, yes.

2004-11-15 20:25:05

by Paul Blazejowski

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2

Starting up ut2004 or doom3 games produces ALSA segfaults, dmesg prints:

scheduling while atomic: ut2004-bin/0x00000001/8390
[<c0331508>] schedule+0x508/0x510
[<c03319a3>] schedule_timeout+0x63/0xc0
[<c0122c90>] process_timeout+0x0/0x10
[<c012306f>] msleep+0x2f/0x40
[<f8b9e02f>] snd_intel8x0_setup_pcm_out+0xbf/0x150 [snd_intel8x0]
[<f8b9e14c>] snd_intel8x0_pcm_prepare+0x8c/0xb0 [snd_intel8x0]
[<f8bfda84>] snd_pcm_do_prepare+0x14/0x40 [snd_pcm]
[<f8bfcdd8>] snd_pcm_action_single+0x38/0x80 [snd_pcm]
[<f8bfcfd0>] snd_pcm_action_nonatomic+0x80/0x90 [snd_pcm]
[<f8bfdb37>] snd_pcm_prepare+0x57/0x80 [snd_pcm]
[<f8c001b2>] snd_pcm_playback_ioctl1+0x52/0x310 [snd_pcm]
[<f8d25ae9>] snd_pcm_oss_poll+0x49/0x1a0 [snd_pcm_oss]
[<c016901a>] poll_freewait+0x3a/0x50
[<f8c00828>] snd_pcm_kernel_playback_ioctl+0x38/0x50 [snd_pcm]
[<f8d23026>] snd_pcm_oss_prepare+0x26/0x60 [snd_pcm_oss]
[<f8d2309d>] snd_pcm_oss_make_ready+0x3d/0x60 [snd_pcm_oss]
[<f8d2358d>] snd_pcm_oss_write1+0x3d/0x210 [snd_pcm_oss]
[<f8d259d0>] snd_pcm_oss_write+0x40/0x60 [snd_pcm_oss]
[<f8d25990>] snd_pcm_oss_write+0x0/0x60 [snd_pcm_oss]
[<c01563e8>] vfs_write+0xb8/0x130
[<c0156531>] sys_write+0x51/0x80
[<c010317b>] syscall_call+0x7/0xb

.config attached

Regards,

Paul B.
--
FreeBSD the Power to Serve!


Attachments:
(No filename) (1.27 kB)
.config (30.31 kB)
Download all attachments

2004-11-15 23:27:40

by Chris Wright

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot

* Adrian Bunk ([email protected]) wrote:
> It seems Bjorns "PCI: remove unconditional PCI ACPI IRQ routing" was
> merged now into your tree, but his patch to fix floppy.c wasn't
> merged...

What's the likelihood of getting some derivative of Bjorn's patch
merged? W/out the patch (and w/ floppy built) I've the same issue.

thanks,
-chris
--
Linux Security Modules http://lsm.immunix.org http://lsm.bkbits.net

2004-11-15 23:59:13

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot

Chris Wright <[email protected]> wrote:
>
> * Adrian Bunk ([email protected]) wrote:
> > It seems Bjorns "PCI: remove unconditional PCI ACPI IRQ routing" was
> > merged now into your tree, but his patch to fix floppy.c wasn't
> > merged...
>
> What's the likelihood of getting some derivative of Bjorn's patch
> merged? W/out the patch (and w/ floppy built) I've the same issue.
>

I've had no bug reports against it for some time, but I was hoping to talk
Len into merging it up because ACPI makes my head swim.


From: Bjorn Helgaas <[email protected]>

This can be disabled with "floppy=no_acpi", which should only be required
if your BIOS supplies incorrect ACPI _CRS information about I/O ports,
IRQs, or DMA channels.

Signed-off-by: Bjorn Helgaas <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
---

25-akpm/Documentation/floppy.txt | 6 +
25-akpm/drivers/block/floppy.c | 183 +++++++++++++++++++++++++++++++++++++++
2 files changed, 189 insertions(+)

diff -puN Documentation/floppy.txt~add-acpi-based-floppy-controller-enumeration Documentation/floppy.txt
--- 25/Documentation/floppy.txt~add-acpi-based-floppy-controller-enumeration 2004-11-11 01:19:18.835616160 -0800
+++ 25-akpm/Documentation/floppy.txt 2004-11-11 01:19:18.840615400 -0800
@@ -204,6 +204,12 @@ in /etc/modprobe.conf.
It's been recommended that take about 1/4 of the default speed
in some more extreme cases."

+ floppy=no_acpi
+ Don't enumerate floppy controllers using ACPI namespace.
+ You may need this if your ACPI is buggy and doesn't report
+ a floppy controller when it actually exists, or if it
+ reports incorrect I/O port, IRQ, or DMA information.
+

Supporting utilities and additional documentation:
==================================================
diff -puN drivers/block/floppy.c~add-acpi-based-floppy-controller-enumeration drivers/block/floppy.c
--- 25/drivers/block/floppy.c~add-acpi-based-floppy-controller-enumeration 2004-11-11 01:19:18.837615856 -0800
+++ 25-akpm/drivers/block/floppy.c 2004-11-11 01:31:30.094447920 -0800
@@ -181,6 +181,13 @@ static int print_unex = 1;
#include <linux/device.h>
#include <linux/buffer_head.h> /* for invalidate_buffers() */

+#ifdef CONFIG_ACPI
+#include <linux/acpi.h>
+#include <acpi/acpi_bus.h>
+
+static int no_acpi_floppy;
+#endif
+
/*
* PS/2 floppies have much slower step rates than regular floppies.
* It's been recommended that take about 1/4 of the default speed
@@ -4150,6 +4157,9 @@ static struct param_table {
{"slow", NULL, &slow_floppy, 1, 0},
{"unexpected_interrupts", NULL, &print_unex, 1, 0},
{"no_unexpected_interrupts", NULL, &print_unex, 0, 0},
+#ifdef CONFIG_ACPI
+ {"no_acpi", NULL, &no_acpi_floppy, 1, 0},
+#endif
{"L40SX", NULL, &print_unex, 0, 0}

EXTRA_FLOPPY_PARAMS
@@ -4222,11 +4232,180 @@ static struct kobject *floppy_find(dev_t
return get_disk(disks[drive]);
}

+#ifdef CONFIG_ACPI
+static int acpi_floppy_registered;
+static int acpi_floppies;
+
+struct region {
+ unsigned int base;
+ unsigned int size;
+};
+
+struct floppy_resources {
+ unsigned int nr_io_regions;
+ struct region io_region[2];
+ unsigned int irq;
+ unsigned int dma_channel;
+};
+
+static acpi_status acpi_floppy_resource(struct acpi_resource *res, void *data)
+{
+ struct floppy_resources *fd = (struct floppy_resources *) data;
+ struct acpi_resource_io *io;
+ struct acpi_resource_irq *irq;
+ struct acpi_resource_ext_irq *ext_irq;
+ struct acpi_resource_dma *dma;
+ int n;
+
+ if (res->id == ACPI_RSTYPE_IO) {
+ io = &res->data.io;
+ if (io->range_length) {
+ n = fd->nr_io_regions;
+ if (n < 2) {
+ fd->io_region[n].base = io->min_base_address;
+ fd->io_region[n].size = io->range_length;
+ fd->nr_io_regions++;
+ } else {
+ printk(KERN_WARNING "%s: ignoring I/O port region 0x%x-0x%x\n",
+ DEVICE_NAME, io->min_base_address,
+ io->min_base_address + io->range_length - 1);
+ }
+ }
+ } else if (res->id == ACPI_RSTYPE_IRQ) {
+ irq = &res->data.irq;
+ if (irq->number_of_interrupts > 0)
+ fd->irq = acpi_register_gsi(irq->interrupts[0],
+ irq->edge_level, irq->active_high_low);
+ } else if (res->id == ACPI_RSTYPE_EXT_IRQ) {
+ ext_irq = &res->data.extended_irq;
+ if (ext_irq->number_of_interrupts > 0)
+ fd->irq = acpi_register_gsi(ext_irq->interrupts[0],
+ ext_irq->edge_level, ext_irq->active_high_low);
+ } else if (res->id == ACPI_RSTYPE_DMA) {
+ dma = &res->data.dma;
+ if (dma->number_of_channels > 0)
+ fd->dma_channel = dma->channels[0];
+ }
+ return AE_OK;
+}
+
+static int acpi_floppy_add(struct acpi_device *device)
+{
+ struct floppy_resources fd;
+ acpi_status status;
+ unsigned int base, dcr;
+
+ memset(&fd, 0, sizeof(fd));
+ status = acpi_walk_resources(device->handle, METHOD_NAME__CRS,
+ acpi_floppy_resource, &fd);
+ if (ACPI_FAILURE(status))
+ return -ENODEV;
+
+ strncpy(acpi_device_name(device), "Floppy Controller",
+ sizeof(acpi_device_name(device)));
+ printk("ACPI: %s [%s] at I/O 0x%x-0x%x",
+ acpi_device_name(device), acpi_device_bid(device),
+ fd.io_region[0].base,
+ fd.io_region[0].base + fd.io_region[0].size - 1);
+ if (fd.nr_io_regions > 1) {
+ if (fd.io_region[1].size == 1)
+ printk(", 0x%x", fd.io_region[1].base);
+ else
+ printk(", 0x%x-0x%x", fd.io_region[1].base,
+ fd.io_region[1].base + fd.io_region[1].size - 1);
+ }
+ printk(" irq %d dma channel %d\n", fd.irq, fd.dma_channel);
+
+ /*
+ * The most correct resource description is probably of the form
+ * 0x3f2-0x3f5, 0x3f7
+ * Those are the only ports this driver actually uses.
+ *
+ * 0x3f0 and 0x3f1 were apparently used on PS/2 systems (though
+ * this driver doesn't touch them), and 0x3f6 is used by IDE.
+ * Some BIOS's erroneously include those ports, or omit 0x3f7,
+ * so we should also be able to handle the following:
+ * 0x3f0-0x3f5
+ * 0x3f0-0x3f5, 0x3f7
+ * 0x3f0-0x3f7
+ * 0x3f2-0x3f7
+ */
+ base = fd.io_region[0].base & ~0x7;
+ dcr = base + 7;
+
+#define contains(region, port) ((region).base <= (port) && \
+ (port) < (region).base + (region).size)
+
+ if (!(contains(fd.io_region[0], dcr) || contains(fd.io_region[1], dcr))) {
+ printk(KERN_WARNING "ACPI: [%s] doesn't declare FD_DCR; also claiming 0x%x\n",
+ acpi_device_bid(device), dcr);
+ }
+
+#undef contains
+
+ if (acpi_floppies == 0) {
+ FDC1 = base;
+ FLOPPY_IRQ = fd.irq;
+ FLOPPY_DMA = fd.dma_channel;
+ } else if (acpi_floppies == 1) {
+ FDC2 = base;
+ if (fd.irq != FLOPPY_IRQ || fd.dma_channel != FLOPPY_DMA)
+ printk(KERN_WARNING "%s: different IRQ/DMA info for [%s]; may not work\n",
+ DEVICE_NAME, acpi_device_bid(device));
+ } else {
+ printk(KERN_ERR "%s: only 2 controllers supported; [%s] ignored\n",
+ DEVICE_NAME, acpi_device_bid(device));
+ return -ENODEV;
+ }
+
+ acpi_floppies++;
+ return 0;
+}
+
+static struct acpi_driver acpi_floppy_driver = {
+ .name = "floppy",
+ .ids = "PNP0700",
+ .ops = {
+ .add = acpi_floppy_add,
+ },
+};
+
+static int acpi_floppy_init(void)
+{
+ int err;
+
+ if (no_acpi_floppy) {
+ printk("%s: ACPI detection disabled\n", DEVICE_NAME);
+ return -ENODEV;
+ }
+ err = acpi_bus_register_driver(&acpi_floppy_driver);
+ if (err >= 0)
+ acpi_floppy_registered = 1;
+ return err;
+}
+
+static void acpi_floppy_exit(void)
+{
+ if (acpi_floppy_registered) {
+ acpi_bus_unregister_driver(&acpi_floppy_driver);
+ acpi_floppy_registered = 0;
+ }
+}
+#else
+static inline int acpi_floppy_init(void) { return -ENODEV; }
+static inline void acpi_floppy_exit(void) { }
+#endif
+
int __init floppy_init(void)
{
int i, unit, drive;
int err, dr;

+ if (acpi_floppy_init() == 0) {
+ err = -ENODEV;
+ goto out_put_acpi;
+ }
+
raw_cmd = NULL;

for (dr = 0; dr < N_DRIVE; dr++) {
@@ -4411,6 +4590,8 @@ out_put_disk:
del_timer(&motor_off_timer[dr]);
put_disk(disks[dr]);
}
+out_put_acpi:
+ acpi_floppy_exit();
return err;
}

@@ -4627,6 +4808,8 @@ void cleanup_module(void)
/* eject disk, if any */
fd_eject(0);

+ acpi_floppy_exit();
+
wait_for_completion(&device_release);
}

_

2004-11-16 00:30:22

by Eyal Lebedinsky

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2 [dvb-bt8xx unload oops]

Linus Torvalds wrote:
> Ok, the -rc2 changes are almost as big as the -rc1 changes, and we should
> now calm down, so I do not want to see anything but bug-fixes until 2.6.10
> is released. Otherwise we'll never get there.
>
> A lot of driver updates, many of them of the small and trivial kind,
> others less so. USB, ALSA, fbdev, IDE, i2c, v4l, you name it. With a

Did you say 'v4l'? The following crash is a result of unloading the dvb system using:
modprobe -r mt352
modprobe -r sp887x
modprobe -r dvb-bt8xx
modprobe -r bt878
modprobe -r bttv
modprobe -r dvb-core
I assume it is the third unload that triggered this oops.

This is vanilla 2.6.10-rc2 on P4. This was a problem with -rc1 but some patches off the list
[attached] fixed it. I expected these to be in -rc2, I am not able to say which patch is
missing.

Nov 16 11:13:00 eyal kernel: xxx detach
Nov 16 11:13:00 eyal kernel: xxx detach
Nov 16 11:13:00 eyal kernel: f899f3ea
Nov 16 11:13:00 eyal kernel: PREEMPT SMP
Nov 16 11:13:00 eyal kernel: Modules linked in: tsdev psmouse v4l1_compat dvb_bt8xx dvb_core i810_audio ac97_codec sr_mod sg ide_scsi ide_cd cdrom it87 eeprom i2c_isa i2c_i801 i2c_sensor eth1394 ohci1394 ieee1394 dc395x scsi_mod snd_bt87x bt878 bttv tuner video_buf firmware_class i2c_algo_bit v4l2_common btcx_risc i2c_core videodev e1000 snd_intel8x0 snd_ac97_codec snd_pcm snd_timer snd_page_alloc gameport snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore cfi_cmdset_0002 cfi_util mtdpart jedec_probe cfi_probe gen_probe ichxrom mtdcore chipreg ehci_hcd uhci_hcd usbcore shpchp pciehp pci_hotplug intel_mch_agp intel_agp agpgart parport_pc parport 8250_pnp 8250 serial_core evdev nls_cp437 msdos fat dm_mod rtc unix
Nov 16 11:13:00 eyal kernel: CPU: 0
Nov 16 11:13:00 eyal kernel: EIP: 0060:[pg0+945243114/1069364224] Not tainted VLI
Nov 16 11:13:00 eyal kernel: EFLAGS: 00010282 (2.6.9-d)
Nov 16 11:13:00 eyal kernel: EIP is at dvb_bt8xx_remove+0x89/0xc3 [dvb_bt8xx]
Nov 16 11:13:00 eyal kernel: eax: 00000000 ebx: ce3eb438 ecx: f9d0edf8 edx: 00000000
Nov 16 11:13:00 eyal kernel: esi: ce3eb400 edi: 00000000 ebp: f899f4a0 esp: d6130ef8
Nov 16 11:13:00 eyal kernel: ds: 007b es: 007b ss: 0068
Nov 16 11:13:00 eyal kernel: Process modprobe (pid: 3959, threadinfo=d6130000 task=eff88330)
Nov 16 11:13:00 eyal kernel: Stack: ecb907c0 ce3eb68c f7c6d980 f89a0620 c022507e f7c6d980 f7c6d9a8 f7c6d590
Nov 16 11:13:00 eyal kernel: f89a0670 c02250a0 f7c6d980 f89a0620 c03168c4 c02254b4 f89a0620 f89a0620
Nov 16 11:13:00 eyal kernel: f89a0620 c03168c4 c0225980 f89a0620 f89a0700 f9b93858 f89a0620 f899f4af
Nov 16 11:13:00 eyal kernel: Call Trace:
Nov 16 11:13:00 eyal kernel: [device_release_driver+100/102] device_release_driver+0x64/0x66
Nov 16 11:13:00 eyal kernel: [driver_detach+32/46] driver_detach+0x20/0x2e
Nov 16 11:13:00 eyal kernel: [bus_remove_driver+77/134] bus_remove_driver+0x4d/0x86
Nov 16 11:13:00 eyal kernel: [driver_unregister+19/42] driver_unregister+0x13/0x2a
Nov 16 11:13:00 eyal kernel: [pg0+964069464/1069364224] bttv_sub_unregister+0xf/0x15 [bttv]
Nov 16 11:13:00 eyal kernel: [pg0+945243311/1069364224] dvb_bt8xx_exit+0xf/0x13 [dvb_bt8xx]
Nov 16 11:13:00 eyal kernel: [sys_delete_module+343/396] sys_delete_module+0x157/0x18c
Nov 16 11:13:00 eyal kernel: [sys_munmap+81/118] sys_munmap+0x51/0x76
Nov 16 11:13:00 eyal kernel: [syscall_call+7/11] syscall_call+0x7/0xb
Nov 16 11:13:00 eyal kernel: Code: 24 04 ff 56 78 8d 86 34 02 00 00 89 04 24 e8 f8 e2 35 01 89 1c 24 e8 32 00 36 01 8b 46 2c 89 04 24 e8 27 c3 35 01 8b 06 8b 56 04 <89> 50 04 89 02 c7 46 04 00 02 20 00 c7 06 00 01 10 00 89 34 24

--
Eyal Lebedinsky ([email protected]) <http://samba.org/eyal/>

2004-11-16 01:33:23

by Lee Revell

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2

Please report ALSA issues to [email protected]. I have
added them to the cc:.

Lee

On Mon, 2004-11-15 at 15:23 -0500, Paul Blazejowski wrote:
> Starting up ut2004 or doom3 games produces ALSA segfaults, dmesg prints:
>
> scheduling while atomic: ut2004-bin/0x00000001/8390
> [<c0331508>] schedule+0x508/0x510
> [<c03319a3>] schedule_timeout+0x63/0xc0
> [<c0122c90>] process_timeout+0x0/0x10
> [<c012306f>] msleep+0x2f/0x40
> [<f8b9e02f>] snd_intel8x0_setup_pcm_out+0xbf/0x150 [snd_intel8x0]
> [<f8b9e14c>] snd_intel8x0_pcm_prepare+0x8c/0xb0 [snd_intel8x0]
> [<f8bfda84>] snd_pcm_do_prepare+0x14/0x40 [snd_pcm]
> [<f8bfcdd8>] snd_pcm_action_single+0x38/0x80 [snd_pcm]
> [<f8bfcfd0>] snd_pcm_action_nonatomic+0x80/0x90 [snd_pcm]
> [<f8bfdb37>] snd_pcm_prepare+0x57/0x80 [snd_pcm]
> [<f8c001b2>] snd_pcm_playback_ioctl1+0x52/0x310 [snd_pcm]
> [<f8d25ae9>] snd_pcm_oss_poll+0x49/0x1a0 [snd_pcm_oss]
> [<c016901a>] poll_freewait+0x3a/0x50
> [<f8c00828>] snd_pcm_kernel_playback_ioctl+0x38/0x50 [snd_pcm]
> [<f8d23026>] snd_pcm_oss_prepare+0x26/0x60 [snd_pcm_oss]
> [<f8d2309d>] snd_pcm_oss_make_ready+0x3d/0x60 [snd_pcm_oss]
> [<f8d2358d>] snd_pcm_oss_write1+0x3d/0x210 [snd_pcm_oss]
> [<f8d259d0>] snd_pcm_oss_write+0x40/0x60 [snd_pcm_oss]
> [<f8d25990>] snd_pcm_oss_write+0x0/0x60 [snd_pcm_oss]
> [<c01563e8>] vfs_write+0xb8/0x130
> [<c0156531>] sys_write+0x51/0x80
> [<c010317b>] syscall_call+0x7/0xb
>
> .config attached
>
> Regards,
>
> Paul B.
--
Lee Revell <[email protected]>

2004-11-16 07:56:57

by Philipp Matthias Hahn

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2 SAVAGEFB startup crash

Hello LKML!

2.6.10-rc2 on Debian i586 crashed during startup.

On Sun, Nov 14, 2004 at 06:49:04PM -0800, Linus Torvalds wrote:
> Summary of changes from v2.6.10-rc1 to v2.6.10-rc2
> ============================================
> Antonino Daplas:
...
> o fbdev: S3 Savage Framebuffer Driver

Copied by hand:

show_stack+0x7f/0xa0
show_registers+0x156/0x1c0
die+0xc8/0x150
do_page_fault+0x326/0x6a2
error_code+0x2b/0x30
savagefb_create_i2c_busses+0x44/0xf0
savagefb_probe+0xe2/0x460
pci_device_probe_static+0x4d/0x60
__pci_device_probe+0x3c/0x50
pci_device_probe+0x2x/0x50
driver_probe_device+0x2e/0x80
driver_attach+0x5c/0xa0
bus_add_driver+0x95/0xd0
driver_register+0x31/0x40
pci_register_driver+0x64/0x80
savagefb_init+0x39/0x41
do_initcalls+0x2b/0xc0
init+0x28/0x110
kernel_thread_helper+0x5/0x10

(gdb) disassemble savagefb_create_i2c_busses
Dump of assembler code for function savagefb_create_i2c_busses:
0x02b0 <savagefb_create_i2c_busses+0>: push %ebp
0x02b1 <savagefb_create_i2c_busses+1>: mov %esp,%ebp
0x02b3 <savagefb_create_i2c_busses+3>: sub $0x8,%esp
0x02b6 <savagefb_create_i2c_busses+6>: mov 0x8(%ebp),%eax
0x02b9 <savagefb_create_i2c_busses+9>: mov 0x234(%eax),%edx
0x02bf <savagefb_create_i2c_busses+15>: mov %edx,0x8(%edx)
0x02c2 <savagefb_create_i2c_busses+18>: mov 0xe0(%eax),%eax
0x02c8 <savagefb_create_i2c_busses+24>: cmp $0x88,%eax
0x02cd <savagefb_create_i2c_busses+29>: je 0x350 <savagefb_create_i2c_busses+160>
0x02d3 <savagefb_create_i2c_busses+35>: ja 0x340 <savagefb_create_i2c_busses+144>
0x02d5 <savagefb_create_i2c_busses+37>: add $0xffffff80,%eax
0x02d8 <savagefb_create_i2c_busses+40>: je 0x2f8 <savagefb_create_i2c_busses+72>
0x02da <savagefb_create_i2c_busses+42>: lea 0x0(%esi),%esi
0x02e0 <savagefb_create_i2c_busses+48>: mov $0x1,%eax
0x02e5 <savagefb_create_i2c_busses+53>: mov %eax,0x4(%esp)
0x02e9 <savagefb_create_i2c_busses+57>: lea 0x8(%edx),%eax
0x02ec <savagefb_create_i2c_busses+60>: mov %eax,(%esp)
0x02ef <savagefb_create_i2c_busses+63>: call 0x1c0 <savage_setup_i2c_bus>
0x02f4 <savagefb_create_i2c_busses+68>: mov %ebp,%esp
0x02f6 <savagefb_create_i2c_busses+70>: pop %ebp
0x02f7 <savagefb_create_i2c_busses+71>: ret

$ grep 'SAVAGE\|I2C' /boot/config-2.6.10-rc2
# I2C support
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=m
# I2C Algorithms
CONFIG_I2C_ALGOBIT=y
CONFIG_I2C_ALGOPCF=m
CONFIG_I2C_ALGOPCA=m
# I2C Hardware Bus support
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
CONFIG_I2C_ELEKTOR=m
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_I810 is not set
CONFIG_I2C_ISA=m
# CONFIG_I2C_NFORCE2 is not set
CONFIG_I2C_PARPORT=m
CONFIG_I2C_PARPORT_LIGHT=m
CONFIG_I2C_PIIX4=m
CONFIG_I2C_PROSAVAGE=m
CONFIG_I2C_SAVAGE4=m
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
# CONFIG_I2C_VOODOO3 is not set
# CONFIG_I2C_PCA_ISA is not set
CONFIG_I2C_SENSOR=m
# Other I2C Chip support
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
CONFIG_FB_SAVAGE=y
CONFIG_FB_SAVAGE_I2C=y
CONFIG_FB_SAVAGE_ACCEL=y

BYtE
Philipp
--
/ / (_)__ __ ____ __ Philipp Hahn
/ /__/ / _ \/ // /\ \/ /
/____/_/_//_/\_,_/ /_/\_\ [email protected]

2004-11-16 08:18:22

by Colin Leroy

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2 SAVAGEFB startup crash

On 16 Nov 2004 at 08h11, Philipp Matthias Hahn wrote:

Hi,

> savagefb_create_i2c_busses+0x44/0xf0

You can also try
gdb> list *savagefb_create_i2c_busses+0x44

to get the corresponding chunk of code if your kernel has CONFIG_DEBUG.
--
Colin

2004-11-16 09:53:20

by Takashi Iwai

[permalink] [raw]
Subject: Re: [Alsa-devel] Re: Linux 2.6.10-rc2

At Mon, 15 Nov 2004 16:16:31 -0500,
Lee Revell wrote:
>
> Please report ALSA issues to [email protected]. I have
> added them to the cc:.

The attached patch should fix this.


Takashi

==
Summary: [ALSA] fix sleep in atomic during prepare callback

Fixed the sleep in spinlock during prepare callback.
This happened only on Nforce chips.

Signed-off-by: Takashi Iwai <[email protected]>

--- linux/sound/pci/intel8x0.c 15 Nov 2004 14:19:52 -0000 1.173
+++ linux/sound/pci/intel8x0.c 16 Nov 2004 09:41:47 -0000
@@ -1020,7 +1020,9 @@ static void snd_intel8x0_setup_pcm_out(i
*/
if (cnt & ICH_PCM_246_MASK) {
iputdword(chip, ICHREG(GLOB_CNT), cnt & ~ICH_PCM_246_MASK);
+ spin_unlock_irq(&chip->reg_lock);
msleep(50); /* grrr... */
+ spin_lock_irq(&chip->reg_lock);
}
} else if (chip->device_type == DEVICE_INTEL_ICH4) {
if (runtime->sample_bits > 16)

2004-11-16 10:03:41

by Eyal Lebedinsky

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2 [dvb-bt8xx unload oops]

At first the attachement was not posted. I then posted with "reply" so I now
have another copy of it.

Let's try "Reply to All"... this should get through.

--
Eyal Lebedinsky ([email protected]) <http://samba.org/eyal/>


Attachments:
2.6.10-rc1-dvb.zip (41.93 kB)

2004-11-16 12:53:41

by Antonino A. Daplas

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2 SAVAGEFB startup crash

On Tuesday 16 November 2004 15:55, Philipp Matthias Hahn wrote:
> Hello LKML!
>
> 2.6.10-rc2 on Debian i586 crashed during startup.
>
> On Sun, Nov 14, 2004 at 06:49:04PM -0800, Linus Torvalds wrote:
> > Summary of changes from v2.6.10-rc1 to v2.6.10-rc2
> > ============================================
> > Antonino Daplas:

Try rc1-mm5, rc2-mm1 or apply this particular changeset:

http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc1/2.6.10-rc1-mm5/broken-out/fbdev-allow-mode-change-even-if-edid-block-is-not-found.patch

Tony


2004-11-16 16:39:37

by Guido Günther

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2

Hi,
On Sun, Nov 14, 2004 at 06:49:04PM -0800, Linus Torvalds wrote:
>
> Ok, the -rc2 changes are almost as big as the -rc1 changes, and we should
> now calm down, so I do not want to see anything but bug-fixes until 2.6.10
> is released. Otherwise we'll never get there.
here's a simple compile fix necessary due to dev.power changes:

--- linux-2.6.10-rc2/drivers/macintosh/mediabay.c.orig 2004-11-16 17:13:53.165493040 +0100
+++ linux-2.6.10-rc2/drivers/macintosh/mediabay.c 2004-11-16 17:16:13.587145704 +0100
@@ -713,13 +713,13 @@
{
struct media_bay_info *bay = macio_get_drvdata(mdev);

- if (state != mdev->ofdev.dev.power_state && state >= 2) {
+ if (state != mdev->ofdev.dev.power.power_state && state >= 2) {
down(&bay->lock);
bay->sleeping = 1;
set_mb_power(bay, 0);
up(&bay->lock);
msleep(MB_POLL_DELAY);
- mdev->ofdev.dev.power_state = state;
+ mdev->ofdev.dev.power.power_state = state;
}
return 0;
}
@@ -728,8 +728,8 @@
{
struct media_bay_info *bay = macio_get_drvdata(mdev);

- if (mdev->ofdev.dev.power_state != 0) {
- mdev->ofdev.dev.power_state = 0;
+ if (mdev->ofdev.dev.power.power_state != 0) {
+ mdev->ofdev.dev.power.power_state = 0;

/* We re-enable the bay using it's previous content
only if it did not change. Note those bozo timings,

Signed-off-by: Guido Guenther <[email protected]>
Cheers,
-- Guido

2004-11-16 17:28:12

by Philipp Matthias Hahn

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2 SAVAGEFB startup crash

Hello Antonio, LKML!

On Tue, Nov 16, 2004 at 08:43:22PM +0800, Antonino A. Daplas wrote:
> On Tuesday 16 November 2004 15:55, Philipp Matthias Hahn wrote:
> > 2.6.10-rc2 on Debian i586 crashed during startup.
...
> Try rc1-mm5, rc2-mm1 or apply this particular changeset:
>
> http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc1/2.6.10-rc1-mm5/broken-out/fbdev-allow-mode-change-even-if-edid-block-is-not-found.patch

That fixed the crash, but the screen looks very broken on my notebook
after boot. Switching between XFree86 and SavageFB also locked up the
kernel hard.

BYtE
Philipp
--
/ / (_)__ __ ____ __ Philipp Hahn
/ /__/ / _ \/ // /\ \/ /
/____/_/_//_/\_,_/ /_/\_\ [email protected]

2004-11-16 21:24:44

by Antonino A. Daplas

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2 SAVAGEFB startup crash

On Wednesday 17 November 2004 01:27, Philipp Matthias Hahn wrote:
> Hello Antonio, LKML!
>
> On Tue, Nov 16, 2004 at 08:43:22PM +0800, Antonino A. Daplas wrote:
> > On Tuesday 16 November 2004 15:55, Philipp Matthias Hahn wrote:
> > > 2.6.10-rc2 on Debian i586 crashed during startup.
>
> ...
>
> > Try rc1-mm5, rc2-mm1 or apply this particular changeset:
> >
> > http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc1
> >/2.6.10-rc1-mm5/broken-out/fbdev-allow-mode-change-even-if-edid-block-is-n
> >ot-found.patch
>
> That fixed the crash, but the screen looks very broken on my notebook
> after boot. Switching between XFree86 and SavageFB also locked up the
> kernel hard.

Try booting at the native resolution of your notebook, for example:

video=savagefb:1024x768@60

Tony


2004-11-16 21:47:11

by Antonino A. Daplas

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2 SAVAGEFB startup crash

On Wednesday 17 November 2004 01:27, Philipp Matthias Hahn wrote:
> Hello Antonio, LKML!
>
> On Tue, Nov 16, 2004 at 08:43:22PM +0800, Antonino A. Daplas wrote:
> > On Tuesday 16 November 2004 15:55, Philipp Matthias Hahn wrote:

> after boot. Switching between XFree86 and SavageFB also locked up the

As for the lockup between X and the console, can you try this patch?

Tony

diff -Nru a/drivers/video/savage/savagefb.c b/drivers/video/savage/savagefb.c
--- a/drivers/video/savage/savagefb.c 2004-11-11 07:58:25 +08:00
+++ b/drivers/video/savage/savagefb.c 2004-11-17 05:40:47 +08:00
@@ -1797,23 +1797,23 @@
switch (info->fix.accel) {
case FB_ACCEL_SUPERSAVAGE:
par->chip = S3_SUPERSAVAGE;
- snprintf (info->fix.id, 16, "S3 SuperSavage");
+ snprintf (info->fix.id, 16, "SuperSavage");
break;
case FB_ACCEL_SAVAGE4:
par->chip = S3_SAVAGE4;
- snprintf (info->fix.id, 16, "S3 Savage4");
+ snprintf (info->fix.id, 16, "Savage4");
break;
case FB_ACCEL_SAVAGE3D:
par->chip = S3_SAVAGE3D;
- snprintf (info->fix.id, 16, "S3 Savage3D");
+ snprintf (info->fix.id, 16, "Savage3D");
break;
case FB_ACCEL_SAVAGE3D_MV:
par->chip = S3_SAVAGE3D;
- snprintf (info->fix.id, 16, "S3 Savage3D-MV");
+ snprintf (info->fix.id, 16, "Savage3D-MV");
break;
case FB_ACCEL_SAVAGE2000:
par->chip = S3_SAVAGE2000;
- snprintf (info->fix.id, 16, "S3 Savage2000");
+ snprintf (info->fix.id, 16, "Savage2000");
break;
case FB_ACCEL_SAVAGE_MX_MV:
par->chip = S3_SAVAGE_MX;
@@ -1878,7 +1878,8 @@
info->fbops = &savagefb_ops;
info->flags = FBINFO_DEFAULT |
FBINFO_HWACCEL_YPAN |
- FBINFO_HWACCEL_XPAN;
+ FBINFO_HWACCEL_XPAN |
+ FBINFO_MISC_MODESWITCHLATE;

info->pseudo_palette = par->pseudo_palette;



2004-11-17 11:55:34

by Philipp Matthias Hahn

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2 SAVAGEFB startup crash

Hello!

On Wed, Nov 17, 2004 at 05:20:58AM +0800, Antonino A. Daplas wrote:
> > That fixed the crash, but the screen looks very broken on my notebook
> > after boot. Switching between XFree86 and SavageFB also locked up the
> > kernel hard.
>
> Try booting at the native resolution of your notebook, for example:
>
> video=savagefb:1024x768@60

The "@60" did it. (Reading "man 4x savage" -> "UseBIOS" gives my the
impression, that this is important for some mobile chips.)

On Wed, Nov 17, 2004 at 05:43:02AM +0800, Antonino A. Daplas wrote:
> > after boot. Switching between XFree86 and SavageFB also locked up the
>
> As for the lockup between X and the console, can you try this patch?
...
> - FBINFO_HWACCEL_XPAN;
> + FBINFO_HWACCEL_XPAN |
> + FBINFO_MISC_MODESWITCHLATE;

That (partly) solved the lockup: I was able start XFree86, switch back
to Console, but on return to X11, the X11 screen wasn't restored
correctly, the mouse left a trail behind and switching to console
again didn't work. (a remove "chvt 1" as root still worked). Exiting
and than restarting XFree86 sometimes didn't initialize the screen
correctly.

While writing this email, my notebook locked up again hard and I had to
powercycle it.

BYtE
Philipp
--
/ / (_)__ __ ____ __ Philipp Hahn
/ /__/ / _ \/ // /\ \/ /
/____/_/_//_/\_,_/ /_/\_\ [email protected]

2004-11-17 15:55:38

by Andrew Walrond

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2

On Monday 15 Nov 2004 02:49, Linus Torvalds wrote:
>
> Antonino Daplas:
...
> o fbdev: Fix IO access in rivafb

FYI

changeset 1.2563 breaks the rivafb for x86_64 (64bit). I'm looking into it
with the fbdev guys help, so I'm sure a fix will be forthcoming soon.

Andrew Walrond

2004-11-17 17:02:22

by Vladimir B. Savkin

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2 OOPS on boot with 3ware + reiserfs

Nov 17 18:19:18 behemoth kernel: arq->state 2
Nov 17 18:19:18 behemoth kernel: Badness in as_requeue_request at drivers/block/as-iosched.c:1478
Nov 17 18:19:18 behemoth kernel: [dump_stack+23/32] dump_stack+0x17/0x20
Nov 17 18:19:18 behemoth kernel: [as_requeue_request+102/224] as_requeue_request+0x66/0xe0
Nov 17 18:19:18 behemoth kernel: [elv_requeue_request+38/80] elv_requeue_request+0x26/0x50
Nov 17 18:19:18 behemoth kernel: [blk_insert_request+171/176] blk_insert_request+0xab/0xb0
Nov 17 18:19:18 behemoth kernel: [scsi_queue_insert+100/160] scsi_queue_insert+0x64/0xa0
Nov 17 18:19:18 behemoth kernel: [scsi_softirq+164/192] scsi_softirq+0xa4/0xc0
Nov 17 18:19:18 behemoth kernel: [__do_softirq+184/208] __do_softirq+0xb8/0xd0
Nov 17 18:19:18 behemoth kernel: [do_softirq+53/64] do_softirq+0x35/0x40
Nov 17 18:19:18 behemoth kernel: [do_IRQ+33/48] do_IRQ+0x21/0x30
Nov 17 18:19:18 behemoth kernel: [common_interrupt+26/32] common_interrupt+0x1a/0x20
Nov 17 18:19:18 behemoth kernel: [search_by_key+2122/4688] search_by_key+0x84a/0x1250
Nov 17 18:19:18 behemoth kernel: [reiserfs_update_sd_size+159/512] reiserfs_update_sd_size+0x9f/0x200
Nov 17 18:19:18 behemoth kernel: [reiserfs_dirty_inode+116/144] reiserfs_dirty_inode+0x74/0x90
Nov 17 18:19:18 behemoth kernel: [reiserfs_submit_file_region_for_write+541/656] reiserfs_submit_file_region_for_write+0x21d/0x290
Nov 17 18:19:18 behemoth kernel: [reiserfs_file_write+1453/1856] reiserfs_file_write+0x5ad/0x740
Nov 17 18:19:18 behemoth kernel: [do_readv_writev+364/544] do_readv_writev+0x16c/0x220
Nov 17 18:19:18 behemoth kernel: [vfs_writev+73/96] vfs_writev+0x49/0x60
Nov 17 18:19:18 behemoth kernel: [sys_writev+65/112] sys_writev+0x41/0x70
Nov 17 18:19:18 behemoth kernel: [syscall_call+7/11] syscall_call+0x7/0xb

~
:wq
With best regards,
Vladimir Savkin.

2004-11-17 19:36:36

by Andrew Walrond

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2 start_udev very slow

I noticed that when upgrading from 2.6.8.1 to rc2, start_udev now takes 10-15s
after printing

"Creating initial udev device nodes:"

Any known reason? should I upgrade udev? (030 installed)

Andrew Walrond

2004-11-17 23:17:12

by Greg KH

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2 start_udev very slow

On Wed, Nov 17, 2004 at 07:32:47PM +0000, Andrew Walrond wrote:
> I noticed that when upgrading from 2.6.8.1 to rc2, start_udev now takes 10-15s
> after printing
>
> "Creating initial udev device nodes:"
>
> Any known reason? should I upgrade udev? (030 installed)

Well, 045 is the latest version, so 030 is a bit old :)

thanks,

greg k-h

2004-11-17 23:21:21

by Eyal Lebedinsky

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2 [dvb-bt8xx unload oops]

I now can say that this problem does not show with rc2-mm1.

--
Eyal Lebedinsky ([email protected]) <http://samba.org/eyal/>

2004-11-18 16:21:23

by Bill Davidsen

[permalink] [raw]
Subject: Re: [Alsa-devel] Re: Linux 2.6.10-rc2

Takashi Iwai wrote:
> At Mon, 15 Nov 2004 16:16:31 -0500,
> Lee Revell wrote:
>
>>Please report ALSA issues to [email protected]. I have
>>added them to the cc:.
>
>
> The attached patch should fix this.
>
>
> Takashi
>
> ==
> Summary: [ALSA] fix sleep in atomic during prepare callback
>
> Fixed the sleep in spinlock during prepare callback.
> This happened only on Nforce chips.
>
> Signed-off-by: Takashi Iwai <[email protected]>
>
> --- linux/sound/pci/intel8x0.c 15 Nov 2004 14:19:52 -0000 1.173
> +++ linux/sound/pci/intel8x0.c 16 Nov 2004 09:41:47 -0000
> @@ -1020,7 +1020,9 @@ static void snd_intel8x0_setup_pcm_out(i
> */
> if (cnt & ICH_PCM_246_MASK) {
> iputdword(chip, ICHREG(GLOB_CNT), cnt & ~ICH_PCM_246_MASK);
> + spin_unlock_irq(&chip->reg_lock);
> msleep(50); /* grrr... */
> + spin_lock_irq(&chip->reg_lock);
> }
> } else if (chip->device_type == DEVICE_INTEL_ICH4) {
> if (runtime->sample_bits > 16)

Might this make it into 2.6.10?

--
-bill davidsen ([email protected])
"The secret to procrastination is to put things off until the
last possible moment - but no longer" -me

2004-11-18 17:38:02

by Vladimir B. Savkin

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2

On Sun, Nov 14, 2004 at 06:49:04PM -0800, Linus Torvalds wrote:
>
> Ok, the -rc2 changes are almost as big as the -rc1 changes, and we should
> now calm down, so I do not want to see anything but bug-fixes until 2.6.10
> is released. Otherwise we'll never get there.

Please accept this fix:

[PATCH] fix posix_locks_deadlock().

"blocked_list" may contain both leases and flock locks. Since the latter in
particular do not initialize the fl_owner field, we have to beware not to
call posix_same_owner() on them.

Signed-off-by: Trond Myklebust <[email protected]>
---
locks.c | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)

Index: linux-2.6.9-rc2-up/fs/locks.c
===================================================================
--- linux-2.6.9-rc2-up.orig/fs/locks.c 2004-09-19 13:55:33.680258334 -0700
+++ linux-2.6.9-rc2-up/fs/locks.c 2004-09-19 15:37:32.595634679 -0700
@@ -634,14 +634,13 @@
int posix_locks_deadlock(struct file_lock *caller_fl,
struct file_lock *block_fl)
{
- struct list_head *tmp;
+ struct file_lock *fl;

next_task:
if (posix_same_owner(caller_fl, block_fl))
return 1;
- list_for_each(tmp, &blocked_list) {
- struct file_lock *fl = list_entry(tmp, struct file_lock, fl_link);
- if (posix_same_owner(fl, block_fl)) {
+ list_for_each_entry(fl, &blocked_list, fl_link) {
+ if (IS_POSIX(fl) && posix_same_owner(fl, block_fl)) {
fl = fl->fl_next;
block_fl = fl;
goto next_task;

~
:wq
With best regards,
Vladimir Savkin.

2004-11-18 18:03:38

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2



On Thu, 18 Nov 2004, Vladimir B. Savkin wrote:
>
> Please accept this fix:
>
> [PATCH] fix posix_locks_deadlock().
>
> "blocked_list" may contain both leases and flock locks. Since the latter in
> particular do not initialize the fl_owner field, we have to beware not to
> call posix_same_owner() on them.

Nope. It got fixed differently: by only adding POSIX locks to the list.
See locks_insert_block(). Since a non-posix lock cannot be blocked by a
POSIX lock, the "if (IS_POSIX(blocker))" test should make sure we're
always proper.

At least that's Willy claims. If you think he's wrong, holler.

Willy Cc'd, once more.

Linus
----
> Signed-off-by: Trond Myklebust <[email protected]>
> ---
> locks.c | 7 +++----
> 1 files changed, 3 insertions(+), 4 deletions(-)
>
> Index: linux-2.6.9-rc2-up/fs/locks.c
> ===================================================================
> --- linux-2.6.9-rc2-up.orig/fs/locks.c 2004-09-19 13:55:33.680258334 -0700
> +++ linux-2.6.9-rc2-up/fs/locks.c 2004-09-19 15:37:32.595634679 -0700
> @@ -634,14 +634,13 @@
> int posix_locks_deadlock(struct file_lock *caller_fl,
> struct file_lock *block_fl)
> {
> - struct list_head *tmp;
> + struct file_lock *fl;
>
> next_task:
> if (posix_same_owner(caller_fl, block_fl))
> return 1;
> - list_for_each(tmp, &blocked_list) {
> - struct file_lock *fl = list_entry(tmp, struct file_lock, fl_link);
> - if (posix_same_owner(fl, block_fl)) {
> + list_for_each_entry(fl, &blocked_list, fl_link) {
> + if (IS_POSIX(fl) && posix_same_owner(fl, block_fl)) {
> fl = fl->fl_next;
> block_fl = fl;
> goto next_task;
>
> ~
> :wq
> With best regards,
> Vladimir Savkin.
>

2004-11-18 23:19:52

by Brown, Len

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

Chris,

Please apply this debug patch and boot with
apic=debug acpi_dbg_level=1

If the disabled floppy hardware doesn't cause the floppy.c
to hang the system, (or if running Linus' recent floppy.c
update, if the floppy.c doesn't nuke IRQ6) then please
send me the dmesg.

Then try with apic=debug pci=routeirq and capture that dmesg.

If the patch makes no functional difference, then please
add pci=routeirq to the cmdline above and send me that dmesg.

apic=debug
enables print_PIC() so we can see what the BIOS gave us,
and what we do to the PIC.

acpi_dbg_level=1
will prevent ACPI from blindly disabling the
PCI Interrupt Link Devices, which I'm guessing
may be confusing the BIOS on this box.

if you can send me the acpidmp and lspci -vv for
this box, that would help too.

thanks,
-Len


Attachments:
debug.patch (1.05 kB)

2004-11-18 18:20:58

by Matthew Wilcox

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2

On Thu, Nov 18, 2004 at 09:59:00AM -0800, Linus Torvalds wrote:
> Nope. It got fixed differently: by only adding POSIX locks to the list.
> See locks_insert_block(). Since a non-posix lock cannot be blocked by a
> POSIX lock, the "if (IS_POSIX(blocker))" test should make sure we're
> always proper.
>
> At least that's Willy claims. If you think he's wrong, holler.
>
> Willy Cc'd, once more.

The problem certainly should have been fixed. I'd like to know if it
still occurs.

--
"Next the statesmen will invent cheap lies, putting the blame upon
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince
himself that the war is just, and will thank God for the better sleep
he enjoys after this process of grotesque self-deception." -- Mark Twain

2004-11-19 07:09:57

by Chris Wright

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

* Len Brown ([email protected]) wrote:
> Chris,
>
> Please apply this debug patch and boot with
> apic=debug acpi_dbg_level=1

Len, unfortunately the disk drive went south on my laptop. So testing
will take a bit longer as I piece things back together.

thanks,
-chris
--
Linux Security Modules http://lsm.immunix.org http://lsm.bkbits.net

2004-11-19 08:43:53

by Vladimir B. Savkin

[permalink] [raw]
Subject: Re: Linux 2.6.10-rc2

On Thu, Nov 18, 2004 at 06:01:00PM +0000, Matthew Wilcox wrote:
> On Thu, Nov 18, 2004 at 09:59:00AM -0800, Linus Torvalds wrote:
> > Nope. It got fixed differently: by only adding POSIX locks to the list.
> > See locks_insert_block(). Since a non-posix lock cannot be blocked by a
> > POSIX lock, the "if (IS_POSIX(blocker))" test should make sure we're
> > always proper.
> >
> > At least that's Willy claims. If you think he's wrong, holler.
> >
> > Willy Cc'd, once more.
>
> The problem certainly should have been fixed. I'd like to know if it
> still occurs.
>

It does not, thank you.

~
:wq
With best regards,
Vladimir Savkin.

2004-11-19 13:48:21

by Adrian Bunk

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

On Thu, Nov 18, 2004 at 06:14:46PM -0500, Len Brown wrote:

> Chris,

Hi Len,

I have the same problem Chris has.

> Please apply this debug patch and boot with
> apic=debug acpi_dbg_level=1
>...

It doesn't compile since I don't have APIC support enabled.

> thanks,
> -Len
>...

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

2004-11-20 09:03:49

by Brown, Len

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

Please try this updated debug patch.

It clears the ELCR on Linux boot.

Also, it prints out the ICH PIRQ registers which
are the hardware underlying the ACPI PCI Interrupt Links.
It no longer depends on IOAPIC support in the kernel,
nor the apic=debug flag.

Please boot it with no kernel parameters
and report if it makes the floppy probe failure
(or 8042 probe failure) go away, and send dmesg.

If it still fails, please boot it with pci=routeirq
and capture the dmesg; also boot it with
acpi_dbg_level=1 and capture the dmesg.
The former will program all the links
before device probe, the later will
cause the kernel to skip disabling
the links and skip clearning the ELCR.

thanks,
-Len

ps. what I think is happening...

To its credit, he BIOS correctly recognizes that there is
no floppy, and it routes a PIRQ to IRQ6. It correctly sets the
ELCR bit for this IRQ.

Linux boots and disables all the PCI Interrupt Links,
which un-programs the PIRQ directed to IRQ6.

However, Linux doesn't clear the ELCR first,
and for some reason that causes an interrupt
to latch in IRQ6 -- though it is masked.

Along comes the broken floppy driver before
the PCI devices probe. floppy
doesn't realize there is no hardware and
unwittingly does a request_irq(6).

Since nobody is camped on IRQ6, this exclusive
request succeeds, IRQ6 is unmasked and the
floppy driver takes the outstaning interrupt.
For some reason it is unable to clear the IRQ.
I don't think it is because the line is being
driven by the PIRQ, that is disabled. It may
have something to do with the ELCR still
being set to level senstive for this IRQ.

So this hangs the system, or with Linus'
update to floppy.c, it nukes IRQ6.

I'm hopeful that with a cleared ELCR, the
misguided legacy floppy probe will work
as it always has, and floppy will then
unload so the PCI device can later claim
IRQ6 and program the link and the ELCR
accordingly.

I do believe that Linux should continue to disable
the PCI Interrupt Links at boot and enable them
only on demand. We used to leave them
all enabled and on some systems that caused
spurious interrupts, duplicated interrupts,
and all kinds of crazy things.

Note if the floppy driver had not requested
IRQ6, then a PCI device would have requested it,
the link would be programmed, and ELCR would
be set (redundant), and the interrupt unmasked.
The device would take the initial interrupt,
it would clear it successfully, and run normally
from then on.


Attachments:
debug.patch (4.52 kB)

2004-11-20 12:40:41

by Adrian Bunk

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

On Sat, Nov 20, 2004 at 04:02:04AM -0500, Len Brown wrote:

> Please try this updated debug patch.
>
> It clears the ELCR on Linux boot.
>
> Also, it prints out the ICH PIRQ registers which
> are the hardware underlying the ACPI PCI Interrupt Links.
> It no longer depends on IOAPIC support in the kernel,
> nor the apic=debug flag.
>
> Please boot it with no kernel parameters
> and report if it makes the floppy probe failure
> (or 8042 probe failure) go away, and send dmesg.
>...

With your patch, the boot failure goes away.
This was with a kernel without Linus' patch applied.

desg is below.

> thanks,
> -Len
>...

cu
Adrian

BTW: Is all what ACPI does really required, if all I need ACPI for is to
turn the power off after halting my computer?


Linux version 2.6.10-rc2 ([email protected]) (gcc version 3.4.2 (Debian 3.4.2-3)) #2 Sat Nov 20 13:20:42 CET 2004
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000000fff0000 (usable)
BIOS-e820: 000000000fff0000 - 000000000fff8000 (ACPI data)
BIOS-e820: 000000000fff8000 - 0000000010000000 (ACPI NVS)
BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
BIOS-e820: 00000000ffee0000 - 00000000fff00000 (reserved)
BIOS-e820: 00000000fffc0000 - 0000000100000000 (reserved)
255MB LOWMEM available.
On node 0 totalpages: 65520
DMA zone: 4096 pages, LIFO batch:1
Normal zone: 61424 pages, LIFO batch:14
HighMem zone: 0 pages, LIFO batch:1
DMI 2.3 present.
... PIC IMR: fffb
... PIC IRR: 0001
... PIC ISR: 0000
... PIC ELCR: 0c68
PIRQA -> IRQ15 disabled
PIRQB -> IRQ15 disabled
PIRQC -> IRQ15 disabled
PIRQD -> IRQ15 disabled
PIRQE -> IRQ15 disabled
PIRQF -> IRQ15 disabled
PIRQG -> IRQ15 disabled
PIRQH -> IRQ15 disabled
ACPI: RSDP (v000 AMI ) @ 0x000fab70
ACPI: RSDT (v001 AMIINT SiS740XX 0x00001000 MSFT 0x0100000b) @ 0x0fff0000
ACPI: FADT (v001 AMIINT SiS740XX 0x00000011 MSFT 0x0100000b) @ 0x0fff0030
ACPI: MADT (v001 AMIINT SiS740XX 0x00001000 MSFT 0x0100000b) @ 0x0fff00c0
ACPI: DSDT (v001 SiS 746 0x00000100 MSFT 0x0100000d) @ 0x00000000
Built 1 zonelists
Kernel command line: BOOT_IMAGE=test ro root=301 mode=1280x1024@760
Initializing CPU#0
CPU 0 irqstacks, hard=c0466000 soft=c0465000
PID hash table entries: 1024 (order: 10, 16384 bytes)
Detected 1800.276 MHz processor.
Using tsc for high-res timesource
Console: colour VGA+ 80x25
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 255340k/262080k available (2365k kernel code, 6172k reserved, 942k data, 144k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay loop... 3563.52 BogoMIPS (lpj=1781760)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: After generic identify, caps: 0383fbff c1c3fbff 00000000 00000000
CPU: After vendor identify, caps: 0383fbff c1c3fbff 00000000 00000000
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 256K (64 bytes/line)
CPU: After all inits, caps: 0383fbff c1c3fbff 00000000 00000020
CPU: AMD Athlon(tm) XP 2200+ stepping 01
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
clear ELCR
... PIC IMR: fffa
... PIC IRR: 0000
... PIC ISR: 0000
... PIC ELCR: 0000
PIRQA -> IRQ15 disabled
PIRQB -> IRQ15 disabled
PIRQC -> IRQ15 disabled
PIRQD -> IRQ15 disabled
PIRQE -> IRQ15 disabled
PIRQF -> IRQ15 disabled
PIRQG -> IRQ15 disabled
PIRQH -> IRQ15 disabled
ACPI: IRQ9 SCI: Edge set to Level Trigger.
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at 0xfdb31, last bus=2
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
ACPI: Subsystem revision 20041105
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
LENB: ACPI has not touched Links yet
... PIC IMR: fdfa
... PIC IRR: 0000
... PIC ISR: 0000
... PIC ELCR: 0200
PIRQA -> IRQ15 disabled
PIRQB -> IRQ15 disabled
PIRQC -> IRQ15 disabled
PIRQD -> IRQ15 disabled
PIRQE -> IRQ15 disabled
PIRQF -> IRQ15 disabled
PIRQG -> IRQ15 disabled
PIRQH -> IRQ15 disabled
ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Probing PCI hardware (bus 00)
Uncovering SIS963 that hid as a SIS503 (compatible=0)
Enabling SiS 96x SMBus.
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: Power Resource [URP1] (off)
ACPI: Power Resource [URP2] (off)
ACPI: Power Resource [FDDP] (off)
ACPI: Power Resource [LPTP] (off)
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 10 *11 12 14 15)
_DISabled
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
_DISabled
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
_DISabled
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 *6 7 10 11 12 14 15)
_DISabled
ACPI: PCI Interrupt Link [LNKE] (IRQs *3 4 5 6 7 10 11 12 14 15)
_DISabled
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 *5 6 7 10 11 12 14 15)
_DISabled
ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
_DISabled
ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 *10 11 12 14 15)
_DISabled
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
PCI: Using ACPI for IRQ routing
... PIC IMR: fdfa
... PIC IRR: 0c68
... PIC ISR: 0000
... PIC ELCR: 0200
PIRQA -> IRQ15 disabled
PIRQB -> IRQ15 disabled
PIRQC -> IRQ15 disabled
PIRQD -> IRQ15 disabled
PIRQE -> IRQ15 disabled
PIRQF -> IRQ15 disabled
PIRQG -> IRQ15 disabled
PIRQH -> IRQ15 disabled
** PCI interrupts are no longer routed automatically. If this
** causes a device to stop working, it is probably because the
** driver failed to call pci_enable_device(). As a temporary
** workaround, the "pci=routeirq" argument restores the old
** behavior. If this argument makes the device work again,
** please email the output of "lspci" to [email protected]
** so I can fix the driver.
... PIC IMR: fdfa
... PIC IRR: 0c68
... PIC ISR: 0000
... PIC ELCR: 0200
PIRQA -> IRQ15 disabled
PIRQB -> IRQ15 disabled
PIRQC -> IRQ15 disabled
PIRQD -> IRQ15 disabled
PIRQE -> IRQ15 disabled
PIRQF -> IRQ15 disabled
PIRQG -> IRQ15 disabled
PIRQH -> IRQ15 disabled
NTFS driver 2.1.22 [Flags: R/O].
ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 11
PCI: setting IRQ 11 as level-triggered
ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 11 (level, low) -> IRQ 11
radeonfb: Found Intel x86 BIOS ROM Image
radeonfb: Retreived PLL infos from BIOS
radeonfb: Reference=27.00 MHz (RefDiv=60) Memory=155.00 Mhz, System=155.00 MHz
radeonfb: PLL min 12000 max 35000
radeonfb: Monitor 1 type DFP found
radeonfb: EDID probed
radeonfb: Monitor 2 type no found
Console: switching to colour frame buffer device 160x64
radeonfb: ATI Radeon QY DDR SGRAM 64 MB
lp: driver loaded but no devices found
Real Time Clock Driver v1.12
Non-volatile memory driver v1.2
Linux agpgart interface v0.100 (c) Dave Jones
agpgart: Detected SiS 746 chipset
agpgart: Maximum main memory to use for agp memory: 203M
agpgart: AGP aperture is 64M @ 0xd0000000
ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 11 (level, low) -> IRQ 11
[drm] Initialized radeon 1.11.0 20020828 on minor 0: ATI Technologies Inc Radeon RV100 QY [Radeon 7000/VE]
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing disabled
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE,EPP]
parport0: irq 7 detected
lp0: using parport0 (polling).
io scheduler noop registered
io scheduler cfq registered
elevator: using cfq as default io scheduler
floppy0: no floppy controllers found
loop: loaded (max 8 devices)
sis900.c: v1.08.07 11/02/2003
ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 6
PCI: setting IRQ 6 as level-triggered
ACPI: PCI interrupt 0000:00:04.0[A] -> GSI 6 (level, low) -> IRQ 6
eth0: Realtek RTL8201 PHY transceiver found at address 1.
eth0: Using transceiver found at address 1 as default
eth0: SiS 900 PCI Fast Ethernet at 0xdc00, IRQ 6, 00:00:00:00:00:00.
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
SIS5513: IDE controller at PCI slot 0000:00:02.5
SIS5513: chipset revision 0
SIS5513: not 100% native mode: will probe irqs later
SIS5513: SiS 962/963 MuTIOL IDE UDMA133 controller
ide0: BM-DMA at 0xff00-0xff07, BIOS settings: hda:DMA, hdb:DMA
ide1: BM-DMA at 0xff08-0xff0f, BIOS settings: hdc:DMA, hdd:DMA
Probing IDE interface ide0...
hda: SAMSUNG SV1604N, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
hdc: LITE-ON LTR-12101B, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 1024KiB
hda: 312581808 sectors (160041 MB) w/2048KiB Cache, CHS=19457/255/63, UDMA(100)
hda: cache flushes supported
hda: hda1 hda2 hda3 hda4
hdc: ATAPI 32X CD-ROM CD-R/RW drive, 2048kB Cache, DMA
Uniform CD-ROM driver Revision: 3.20
ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 10
PCI: setting IRQ 10 as level-triggered
ACPI: PCI interrupt 0000:00:03.2[D] -> GSI 10 (level, low) -> IRQ 10
ehci_hcd 0000:00:03.2: Silicon Integrated Systems [SiS] USB 2.0 Controller
ehci_hcd 0000:00:03.2: irq 10, pci mem 0xcffff000
ehci_hcd 0000:00:03.2: new USB bus registered, assigned bus number 1
PCI: cache line size of 64 is not supported by device 0000:00:03.2
ehci_hcd 0000:00:03.2: USB 2.0 initialized, EHCI 1.00, driver 26 Oct 2004
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 6 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard on isa0060/serio0
input: ImPS/2 Generic Wheel Mouse on isa0060/serio1
i2c /dev entries driver
Advanced Linux Sound Architecture Driver Version 1.0.6 (Sun Aug 15 07:17:53 2004 UTC).
ACPI: PCI interrupt 0000:00:0c.0[A] -> GSI 11 (level, low) -> IRQ 11
ALSA device list:
#0: Ensoniq AudioPCI ENS1371 at 0xd800, irq 11
NET: Registered protocol family 2
IP: routing cache hash table of 2048 buckets, 16Kbytes
TCP: Hash tables configured (established 16384 bind 32768)
ip_conntrack version 2.1 (2047 buckets, 16376 max) - 176 bytes per conntrack
ip_tables: (C) 2000-2002 Netfilter core team
NET: Registered protocol family 1
NET: Registered protocol family 17
... PIC IMR: 20f8
... PIC IRR: 00a8
... PIC ISR: 0000
... PIC ELCR: 0e40
PIRQA -> IRQ15 disabled
PIRQB -> IRQ15 disabled
PIRQC -> IRQ15 disabled
PIRQD -> IRQ15 disabled
PIRQE -> IRQ15 disabled
PIRQF -> IRQ15 disabled
PIRQG -> IRQ15 disabled
PIRQH -> IRQ15 disabled
BIOS EDD facility v0.16 2004-Jun-25, 1 devices found
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 144k freed
Adding 987988k swap on /dev/hda2. Priority:-1 extents:1
eth0: Media Link On 10mbps half-duplex
agpgart: Found an AGP 2.0 compliant device at 0000:00:00.0.
agpgart: Putting AGP V3 device at 0000:00:00.0 into 4x mode
agpgart: SiS delay workaround: giving bridge time to recover.
agpgart: Putting AGP V3 device at 0000:01:00.0 into 4x mode

2004-11-20 16:41:55

by Linus Torvalds

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)



On Sat, 20 Nov 2004, Len Brown wrote:
>
> It clears the ELCR on Linux boot.

I think this is _really_ wrong.

Basically, you're screwing up more and more PIC state.

Len, the PIC was _correct_ before ACPI touched it. We don't want to touch
it MORE, we want to touch it LESS.

I'll try this for debugging, but what I want to figure out is where ACPI
is doing something it shouldn't be doing, and _removing_ that.

We already had one patch where people tried to hide this problem by adding
more code. Clearly, that patch was bogus. Yes, it hid the problem for
floppies, but as shown by my other case (and as I was trying to say from
the beginning), it's not about floppies. It's about _any_ non-PCI
interrupt that apparently ACPI has done something _wrong_ for.

So ACPI seems to assume that all interrupts are PCI interrupts, and that's
just totally wrong. Clearing ELCR is more of this total wrongness. ELCR
exists for a reason, namely that not all interrupts are PCI.

Also, you seem to still totally concentrate on PIRQ routing etc. Totally
ignoring the fact that the problematic cases are about interrupts that
have _nothing_ to do with PCI. Not the floppy, not the PS/2 mouse. NOT
PCI! They're both on the southbridge behind a very special interface that
may or may not look like a PCI bus internally, but might quite as well be
something totally special-case (ie a perfectly normal case is that
somebody literally just bolted an old 8042 controller core into the system
and set up special case magic irq routing).

> ps. what I think is happening...
>
> To its credit, he BIOS correctly recognizes that there is
> no floppy, and it routes a PIRQ to IRQ6. It correctly sets the
> ELCR bit for this IRQ.
>
> Linux boots and disables all the PCI Interrupt Links,
> which un-programs the PIRQ directed to IRQ6.

And this is what I think is the bug. There is no reason to disable the PCI
interrupt link unless you have a damn good reason to do so.

> However, Linux doesn't clear the ELCR first,
> and for some reason that causes an interrupt
> to latch in IRQ6 -- though it is masked.
>
> Along comes the broken floppy driver before
> the PCI devices probe. floppy
> doesn't realize there is no hardware and
> unwittingly does a request_irq(6).

You are totally ignoring my other bug report which was for a (existing)
PSAUX mouse driver on irq12.

If I had had a mouse on that port, it would not have worked.

So the fact is, ACPI does something WRONG.

Linus

2004-11-20 18:28:53

by Linus Torvalds

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)



On Sat, 20 Nov 2004, Adrian Bunk wrote:
>
> With your patch, the boot failure goes away.
> This was with a kernel without Linus' patch applied.

It boots for me too, but it all seems pretty accidental.

In particular, the code will disable irq12 (mouse interrupt), so the mouse
has no chance of working. Having tested it, it so happens that if I boot
with a mouse actually conntected, the BIOS will not use irq12 for PCI
devices, so that will hide the problem since ACPI won't try to disable it
when it doesn't see it.

But if I had more PCI devices, or another legacy device that doesn't have
the same kind of "test if something is connected" logic, it really looks
like it would break again. (It's entirely possible that Windows has the
exact same issue, of course, at which point it's fairly safe to say that
manufacturers will have tested this and just not done it, but I don't feel
all that safe making that assumption).

So I think the simpler fix is just this one-liner: we should not disable
preexisting links, because non-PCI devices may depend on the same routing
information, and thus the comments about "being activated on use" is not
actually true.

Linus

===== drivers/acpi/pci_link.c 1.34 vs edited =====
--- 1.34/drivers/acpi/pci_link.c 2004-11-01 23:40:09 -08:00
+++ edited/drivers/acpi/pci_link.c 2004-11-20 09:43:56 -08:00
@@ -685,9 +685,6 @@
acpi_link.count++;

end:
- /* disable all links -- to be activated on use */
- acpi_ut_evaluate_object(link->handle, "_DIS", 0, NULL);
-
if (result)
kfree(link);

2004-11-20 19:12:33

by Linus Torvalds

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)



On Sat, 20 Nov 2004, Linus Torvalds wrote:
>
> In particular, the code will disable irq12 (mouse interrupt), so the mouse
> has no chance of working.

Btw, looking closer still, this all will most likely vary wildly according
to southbridge (and BIOS setups). At least some SB's seem to put the
legacy interrupts totally separately from the PIRQ stuff, in which case
the PIRQ disable will not matter one whit - the legacy interrupt is
inserted "after" the PIRQ gating/translation anyway. This seems to be
especially common for controllers for keyboard/mouse/i2c etc that are
actually on the southbridge itself.

But the basic notion remains: disabling a PIRQ line is valid only if you
know it's only used by PCI devices. There might be other special devices
on the board that don't show up as PCI devices, eg things like the Sony
programmable I/O thing that doesn't show up as a PCI device at all, it's
just "invisibly" connected to the bus (it just hijacks port 0x66 or
something - the range 0-0x3ff is generally reserved for "motherboard
devices").

These kinds of things hopefully aren't all that common (there can't be a
lot of extra hw required to follow the PCI spec _properly_), but if I were
a hw designer, I'd connect such a chip to the PIRQ input, and just make
the BIOS enable it automatically.

Linus

2004-11-21 16:35:18

by Adrian Bunk

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

On Sat, Nov 20, 2004 at 10:28:27AM -0800, Linus Torvalds wrote:
>...
> So I think the simpler fix is just this one-liner: we should not disable
> preexisting links, because non-PCI devices may depend on the same routing
> information, and thus the comments about "being activated on use" is not
> actually true.

I can confirm this patch fixes the problem for me in an otherwise
unmodified 2.6.10-rc2.

> Linus
>
> ===== drivers/acpi/pci_link.c 1.34 vs edited =====
> --- 1.34/drivers/acpi/pci_link.c 2004-11-01 23:40:09 -08:00
> +++ edited/drivers/acpi/pci_link.c 2004-11-20 09:43:56 -08:00
> @@ -685,9 +685,6 @@
> acpi_link.count++;
>
> end:
> - /* disable all links -- to be activated on use */
> - acpi_ut_evaluate_object(link->handle, "_DIS", 0, NULL);
> -
> if (result)
> kfree(link);

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

2004-11-22 18:33:49

by Brown, Len

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

On Sat, 2004-11-20 at 07:40, Adrian Bunk wrote:
> On Sat, Nov 20, 2004 at 04:02:04AM -0500, Len Brown wrote:
>
> > Please try this updated debug patch.
> >
> > It clears the ELCR on Linux boot.

> With your patch, the boot failure goes away.
> This was with a kernel without Linus' patch applied.

Thanks for running this test Adrian.

>
> BTW: Is all what ACPI does really required, if all I need ACPI for is
> to turn the power off after halting my computer?

On this system ACPI is required to configure the IOAPIC.

It may be possible to save power in idle with c-states
and at run-time with p-states (cpufreq) on this box,
but I couldn't tell that from the dmesg if CONFIG_ACPI_PROCESSOR
was included or not.

If you don't care about interrupt performance and you don't
mind pressing the power button when you halt the system,
go ahead and run with CONFIG_ACPI=n.

cheers,
-Len


2004-11-22 19:13:33

by Brown, Len

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

On Sat, 2004-11-20 at 11:41, Linus Torvalds wrote:
>
> On Sat, 20 Nov 2004, Len Brown wrote:
> >
> > It clears the ELCR on Linux boot.
>
> I think this is _really_ wrong.
>
> Basically, you're screwing up more and more PIC state.
>
> Len, the PIC was _correct_ before ACPI touched it. We don't want to
> touch it MORE, we want to touch it LESS.
>
> I'll try this for debugging, but what I want to figure out is where
> ACPI is doing something it shouldn't be doing, and _removing_ that.
>
> We already had one patch where people tried to hide this problem by
> adding more code. Clearly, that patch was bogus. Yes, it hid the
> problem for floppies, but as shown by my other case (and as I was
> trying to say from the beginning), it's not about floppies. It's about
> _any_ non-PCI interrupt that apparently ACPI has done something
> _wrong_ for.

I agree that the system should work properly even if the legacy device
drivers are broken. Please understand, however, that the legacy device
drivers _are_ broken. The BIOS via ACPI clearly tells them if the
devices are present or not, and Linux isn't yet listening.

> So ACPI seems to assume that all interrupts are PCI interrupts, and
> that's just totally wrong. Clearing ELCR is more of this total
> wrongness. ELCR exists for a reason, namely that not all interrupts
> are PCI.

ACPI-compliant systems have three types of interrupts:
1. legacy
2. PCI
3. the ACPI SCI

The first two are described in the DSDT legacy devices and _PRT,
respectively. The third is described in the FADT. The MADT overrides
are available to handle any special cases, though that applies only to
IOAPIC mode.

If there are other interrupts, then it isn't an ACPI-compliant system
and it the BIOS should not enable ACPI. If the BIOS erroneously enables
ACPI on such a system, the workaround is to boot with acpi=off. I'd be
extremly interested to know of such a system, as I've not yet
encountered one.

> Also, you seem to still totally concentrate on PIRQ routing etc.
> Totally ignoring the fact that the problematic cases are about
> interrupts that have _nothing_ to do with PCI. Not the floppy, not the
> PS/2 mouse. NOT PCI! They're both on the southbridge behind a very
> special interface that may or may not look like a PCI bus internally,
> but might quite as well be something totally special-case (ie a
> perfectly normal case is that somebody literally just bolted an old
> 8042 controller core into the system and set up special case magic irq
> routing).

If somebody bolts motherboard hardware on and doesn't tell ACPI about
it, then they need to disable ACPI, which _owns_ configuration of
motherboard devices when it is enabled.

The problem at hand has everything to do with PCI interrupts, and how
they can conflict with legacy interrupts.

PIC hardware is level-HIGH sensitive, it cannot be programmed like
APIC INTIN's can. The only way to effectively use it as level-LOW
sensitive such as that supplied by PCI devices, it so attach those
interrupts sources through inverters. This is what the PIRQ routers
do. I printed out the underlying PIRQ routers for the ICH in
the debug patch because all of the failures at hand seemed
to be in ICH systems and these registers tell us the state
not of the abstract PCI Interrupt link, but of the actual hardware that
can be driving that (legacy) interrupt input.

> > ps. what I think is happening...
> >
> > To its credit, he BIOS correctly recognizes that there is
> > no floppy, and it routes a PIRQ to IRQ6. It correctly sets the
> > ELCR bit for this IRQ.
> >
> > Linux boots and disables all the PCI Interrupt Links,
> > which un-programs the PIRQ directed to IRQ6.
>
> And this is what I think is the bug. There is no reason to disable the
> PCI interrupt link unless you have a damn good reason to do so.

The damn good reason is that doing otherwise breaks systems.
This is the cset comment for the line of code disabling the links:

ChangeSet 1.1608.11.11 2004/06/17 23:21:03 [email protected]
[ACPI] avoid spurious interrupts on VIA
http://bugzilla.kernel.org/show_bug.cgi?id=2243
drivers/acpi/pci_link.c 1.28.1.1 2004/06/11 10:38:46 [email protected]
disable all PCI Interrupt Links to be enabled by _SRS

It would sure make my life easier if we didn't support
these VIA/Phoenix systems, but I don't think that breaking
them is what the community wants.

> > However, Linux doesn't clear the ELCR first,
> > and for some reason that causes an interrupt
> > to latch in IRQ6 -- though it is masked.
> >
> > Along comes the broken floppy driver before
> > the PCI devices probe. floppy
> > doesn't realize there is no hardware and
> > unwittingly does a request_irq(6).
>
> You are totally ignoring my other bug report which was for a
> (existing) PSAUX mouse driver on irq12.
>
> If I had had a mouse on that port, it would not have worked.
>
> So the fact is, ACPI does something WRONG.

The PS2 IRQ12 situation is exactly the same as the IRQ6 floppy
situation. If the mouse or floppy were present, the BIOS would not have
given that interrupt to PCI.

-Len


2004-11-22 19:39:12

by Brown, Len

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

On Sat, 2004-11-20 at 13:28, Linus Torvalds wrote:
>
> On Sat, 20 Nov 2004, Adrian Bunk wrote:
> >
> > With your patch, the boot failure goes away.
> > This was with a kernel without Linus' patch applied.
>
> It boots for me too, but it all seems pretty accidental.
>
> In particular, the code will disable irq12 (mouse interrupt), so the
> mouse has no chance of working. Having tested it, it so happens that
> if I boot with a mouse actually conntected, the BIOS will not use
> irq12 for PCI devices, so that will hide the problem since ACPI won't
> try to disable it when it doesn't see it.

This is not an accident that is being hidden by mistake.
The BIOS probes for the legacy mouse.

If it finds one, it gives it IRQ12.
If it doesn't find one it gives IRQ12 to PCI.

Other BIOS's are not as good as these and they don't give the free IRQs
to PCI. Sub-optimal, but perfectly legal.

Exact same situation Chris and Adrian see with the floppy and IRQ6.
Exact same situation could potentially be seen with any motherboard
device and any IRQ -- except, of course, those that can't be probed or
are otherwise hard-coded for well known legacy devices, such as the RTC
on IRQ8.

> But if I had more PCI devices, or another legacy device that doesn't
> have the same kind of "test if something is connected" logic, it
> really looks like it would break again. (It's entirely possible that
> Windows has the exact same issue, of course, at which point it's
> fairly safe to say that manufacturers will have tested this and just
> not done it, but I don't feel all that safe making that assumption).

Windows uses ACPI to probe the legacy motherboard devices, and ACPI uses
what the BIOS finds. If the BIOS and ACPI don't know about the
motherboard device, then it isn't an ACPI system and among other
failures, it would never have got a nifty Made for Windows sticker, and
thus would have market penetration of approximately 0.

Linux is just now learning to use ACPI for probing legacy motherboard
devices. I believe that this transition can be made safely and that
legacy probes should continue to work both during and after the
transition.

> So I think the simpler fix is just this one-liner: we should not
> disable preexisting links, because non-PCI devices may depend on the
> same routing information, and thus the comments about "being activated
> on use" is not actually true.
>

> Linus
>
> ===== drivers/acpi/pci_link.c 1.34 vs edited =====
> --- 1.34/drivers/acpi/pci_link.c 2004-11-01 23:40:09 -08:00
> +++ edited/drivers/acpi/pci_link.c 2004-11-20 09:43:56 -08:00
> @@ -685,9 +685,6 @@
> acpi_link.count++;
>
> end:
> - /* disable all links -- to be activated on use */
> - acpi_ut_evaluate_object(link->handle, "_DIS", 0, NULL);
> -
> if (result)
> kfree(link);

This is not a fix, it will break systems in the field.

When we enable a link, we must set the ELCR.
When we disable a link, we must clear the ELCR.
We need to be able to enable and disable all links in the system.

The bug was that while we were were setting the ELCR
when we enabled a link, we were not clearing it when we disabled one.

We also have an issue when we move the destiation of a link,
though we don't do that very often.

My debug patch cleared every bit in the ELCR even if no PCI interrupt
link device pointed to that entry. Yes, this assumes that ACPI knows
about every level triggered interrupt in the system.

I think that is a valid assumption on an ACPI-compliant system.

But if you're more comfortable with disabling the associated ELCR bit
only when we disable links directed at that entry, we can do that too.
The complication with that approach is that links are many to one, so
clearing the bit without disabling all links directed to that entry
would result in a failure. Also, the SCI uses the ELCR too, and it
isn't described by links at all.

-Len


2004-11-22 19:35:53

by Linus Torvalds

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)



On Mon, 22 Nov 2004, Len Brown wrote:
>
> I agree that the system should work properly even if the legacy device
> drivers are broken. Please understand, however, that the legacy device
> drivers _are_ broken. The BIOS via ACPI clearly tells them if the
> devices are present or not, and Linux isn't yet listening.

I really disagree.

I realize that you like ACPI, or you would have shot yourself long long
ago.

But I have a totally different view on things. To me, firmware is not
something cool to be used. It's a necessary evil, and it should be avoided
and mistrusted as far as humanly possible, because it is always buggy, and
we can't fix the bugs in it.

Yes, the current ACPI layer in the kernel is a lot better at working
around the bugs, and it's getting to the point where I suspect Linux
vendors actually decide that enabing ACPI by default causes fewer problems
than it solves. That clearly didn't use to be true.

> ACPI-compliant systems have three types of interrupts:

Stop right there.

"ACPI-compliant systems". The fact is, there is no such thing. There are
systems that users buy, and they are not "ACPI compliant", they are "one
implementation of ACPI that was tested with a single vendor usage test".

Call me cynical, but I believe in standards papers just about as much as I
believe in the voices in my attic that tell me to kill the Queen of
England.

Papers is so much dead trees. The only thing that matters is real life.
And like it or not, real life does NOT implement standards properly, even
if the standards are well written and unambiguous (which also doesn't
actually happen in real life).

> If somebody bolts motherboard hardware on and doesn't tell ACPI about
> it, then they need to disable ACPI, which _owns_ configuration of
> motherboard devices when it is enabled.

No. The only thing that owns the motherboard is the user. ACPI shouldn't
get uppity.

> The damn good reason is that doing otherwise breaks systems.

And not doing it breaks systems.

See a pattern?

This is why I don't trust firmware. It's always buggy.

Linus

2004-11-22 19:59:31

by Brown, Len

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

On Sat, 2004-11-20 at 14:10, Linus Torvalds wrote:
>
> On Sat, 20 Nov 2004, Linus Torvalds wrote:
> >
> > In particular, the code will disable irq12 (mouse interrupt), so the
> mouse
> > has no chance of working.
>
> Btw, looking closer still, this all will most likely vary wildly
> according to southbridge (and BIOS setups). At least some SB's seem to
> put the legacy interrupts totally separately from the PIRQ stuff, in
> which case the PIRQ disable will not matter one whit - the legacy
> interrupt is inserted "after" the PIRQ gating/translation anyway. This
> seems to be especially common for controllers for keyboard/mouse/i2c
> etc that are actually on the southbridge itself.

Right, programming a PIRQ router to an IRQ doesn't mean that a legacy
device isn't still attached to that IRQ.

> But the basic notion remains: disabling a PIRQ line is valid only if
> you know it's only used by PCI devices. There might be other special
> devices on the board that don't show up as PCI devices, eg things like
> the Sony programmable I/O thing that doesn't show up as a PCI device
> at all, it's just "invisibly" connected to the bus (it just hijacks
> port 0x66 or something - the range 0-0x3ff is generally reserved for
> "motherboard devices").

> These kinds of things hopefully aren't all that common (there can't be
> a lot of extra hw required to follow the PCI spec _properly_), but if
> I were a hw designer, I'd connect such a chip to the PIRQ input, and
> just make the BIOS enable it automatically.

While there may be non-standard non-PCI legacy devices that
(erroneously) use PIRQ routers on legacy systms, that isn't the issue at
hand.

The issue at hand is what to do in ACPI mode.

ACPI PCI Interrupt Link Devices, by definition, are used only by PCI
devices, or devices that look like them. You look up the device in the
_PRT by its devid. Although links are often implemented underneath by
PIRQ routers, they are much more general. ACPI PCI Interrupt Links can
specificy any trigger/polarity, as well as connect to IOAPIC inputs.

If there is "special" hardware using an ACPI PCI Interrupt Link without
being listed in the DSDT _PRT that describes the link, then the BIOS is
simply broken.

-Len



2004-11-22 20:14:05

by Linus Torvalds

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)



On Mon, 22 Nov 2004, Linus Torvalds wrote:
>
> This is exactly what you are already doing with SCI, thanks to
> "acpi_pic_sci_set_trigger()", no?
>
> So I'm really suggesting that instead of disabling the PCI irq routing, it
> should do exactly the same thing that SCI already does. Namely make sure
> that ELCR is set correctly for it.

In fact, we would even use the same function for it (the only thing that
makes it SCI-specific right now is the "printk()" that says "SCI IRQ", the
rest really is totally generic.

So how about renaming "acpi_pic_sci_set_trigger()" to not have the "sci"
part in there, and remove it's dependence on CONFIG_ACPI_BUS, and just
using it in "apic_pci_link_add()" to make sure that any PCI links we find
to be enabled have the right ELCR. That's _logical_, since if we were to
actually enable them, we'd set ELCR right. So literally the only
difference between disabling them at boot (and then re-enabling them when
a driver finds them) _is_ that ELCR setting..

And that would make me much happier, because it's a "minimally intrusive"
thing to do.

Linus

2004-11-22 20:10:41

by Linus Torvalds

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)



On Mon, 22 Nov 2004, Len Brown wrote:
>
> Windows uses ACPI to probe the legacy motherboard devices, and ACPI uses
> what the BIOS finds. If the BIOS and ACPI don't know about the
> motherboard device, then it isn't an ACPI system and among other
> failures, it would never have got a nifty Made for Windows sticker, and
> thus would have market penetration of approximately 0.

One thing that matters is definitely "how does Windows do things", because
that's what has been tested. However, "Windows" clearly does not use ACPI
for all enumeration, since there are different versions of Windows, and
some of them don't (and some of them very much don't boot on all hardware
either).

In other words, Linux actually needs to be _more_ careful than Windows,
because it's supposed to just magically work on pretty much anything out
there. Nasty. So "what windows does" can never be anything but a hint on
what kind of functionality has ever been tested.

> When we enable a link, we must set the ELCR.
> When we disable a link, we must clear the ELCR.
> We need to be able to enable and disable all links in the system.
>
> The bug was that while we were were setting the ELCR
> when we enabled a link, we were not clearing it when we disabled one.

Fair enough. That may be a good fix too, but so far I can see the bug on a
system I actually have access to, and my one-liner fixes it in a
fundamentally more acceptable manner than any other patch I've seen.

Why? Because _not_ touching things is the other thing that _has_ been
tested on machines, ie mb manufacturers actually tend to test things that
have no ACPI knowledge at all, still. DOS comes to mind, but so do pretty
much all other operating systems.

Because of that, there's this dichtonomy: you either do everything exactly
like Windows does things, or you try very carefully to do the minimal
amount of untrusted accesses possible. Linux ends up mixing the two
approaches as best it can.

But feel free to send me a patch that doesn't just clear ELCR totally, but
clears the bits we are disabling. I just don't believe in the "let's just
clear everything" approach. In particular, I don't have the same kind of
"ACPI will provide" belief in higher powers that you seem to have.

> But if you're more comfortable with disabling the associated ELCR bit
> only when we disable links directed at that entry, we can do that too.
> The complication with that approach is that links are many to one, so
> clearing the bit without disabling all links directed to that entry
> would result in a failure. Also, the SCI uses the ELCR too, and it
> isn't described by links at all.

Wouldn't it be nicer to take the _reverse_ approach: let's assume that any
PCI interrupts that we have already enabled are fine and should not be
disabled? Mark them in the ELCR, and _report_ when the ELCR seems to be
incorrect (let's make a wild guess here, and realize that the screaming
VIA interrupts you talk about are exactly because the ELCR was wrong).

This is exactly what you are already doing with SCI, thanks to
"acpi_pic_sci_set_trigger()", no?

So I'm really suggesting that instead of disabling the PCI irq routing, it
should do exactly the same thing that SCI already does. Namely make sure
that ELCR is set correctly for it.

So in "acpi_pci_link_add()", when you find a link that is enabled, add a
call to make sure that it is set to level triggered in the ELCR. That's
not even ACPI-specific, now we're talking fundamental PCI behaviour, so
the likelihood of that being wrong is pretty low, no?

That seems like a _safe_ thing to do.

Linus

2004-11-22 20:26:21

by Brown, Len

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

On Mon, 2004-11-22 at 14:23, Linus Torvalds wrote:


> To me, firmware is not
> something cool to be used. It's a necessary evil, and it should be
> avoided and mistrusted as far as humanly possible, because it is
> always buggy, and we can't fix the bugs in it.

Mistrusting firmware is why I disabled all the links, some system
firmware didn't leave them in a self-consistent state.

Re: liking ACPI
Consider it a love/hate thing;-)

> > The damn good reason is that doing otherwise breaks systems.
>
> And not doing it breaks systems.

I'm not aware (yet) of any systems where disabling all the links (which
we've been doing since June, BTW) and clearing the entire ELCR, and then
re-enabling them both only as we use them causes a failure.

> This is why I don't trust firmware. It's always buggy.

I'm with you on that one.

-Len


2004-11-22 20:37:17

by Linus Torvalds

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)



On Mon, 22 Nov 2004, Len Brown wrote:
> >
> > And not doing it breaks systems.
>
> I'm not aware (yet) of any systems where disabling all the links (which
> we've been doing since June, BTW)

We have been doing it since June, but we also immediately _re-enabled_
them.

And the moment we _didn't_ re-enable them, people started sending in
bug-reports. So the "since June" is clearly true only in a very limited
sense.

A more correct way to say it would be that within hours of releasing a
test-kernel (not even a real release) that _really_ disabled the links, we
got people reporting boot failures.

> and clearing the entire ELCR, and then re-enabling them both only as we
> use them causes a failure.

Now, the clearing the entire ELCR thing has been tested by all of three
people, all of whom saw problems with the non-clearing thing. So not only
is the base for that claim very thin indeed, the small base was totally
self-selected, ie statistically completely meaningless even if it had
been much much larger.

Nobody who didn't actually see the problem in the first place would have
tested it.

IOW, I'll claim that the only thing that has really gotten testing since
June is the thing that disables and immediately re-enables the links.

And that's exactly why I think the "minimally disruptive" fix is to not
disable them at all, but just fix up ELCR for anything that was already
enabled. Since that _is_ what "disable + re-enable" ends up actually
doing.

See my argument?

Linus

2004-11-22 20:42:39

by Linus Torvalds

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)



On Mon, 22 Nov 2004, Linus Torvalds wrote:
>
> And that's exactly why I think the "minimally disruptive" fix is to not
> disable them at all, but just fix up ELCR for anything that was already
> enabled. Since that _is_ what "disable + re-enable" ends up actually
> doing.

Oh, and I think one alternative at this point is obviously to just go back
to the "re-enable all interrupts early in the boot" code. Clearly we need
to do _something_ for 2.6.10, and I want it to be something that is pretty
much equivalent to what we _do_ have testing coverage of. Just to keep
safe.

I actually _like_ the "enable links only when needed" thing, which is why
I'd prefer to look for alternatives. But I like even more not having to
worry about strange hw setups, so "minimal fixing" really is pretty
important.

Linus

2004-11-22 20:42:40

by Brown, Len

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

On Mon, 2004-11-22 at 15:02, Linus Torvalds wrote:
>
> On Mon, 22 Nov 2004, Len Brown wrote:
> >
> > When we enable a link, we must set the ELCR.
> > When we disable a link, we must clear the ELCR.
> > We need to be able to enable and disable all links in the system.
> >
> > The bug was that while we were were setting the ELCR
> > when we enabled a link, we were not clearing it when we disabled
> one.
>
> Fair enough. ...

> But feel free to send me a patch that doesn't just clear ELCR totally,
> but clears the bits we are disabling. I just don't believe in the
> "let's just clear everything" approach.

Will do.

>
> > But if you're more comfortable with disabling the associated ELCR
> bit> only when we disable links directed at that entry, we can do that
> too.
> > The complication with that approach is that links are many to one,
> so
> > clearing the bit without disabling all links directed to that entry
> > would result in a failure. Also, the SCI uses the ELCR too, and it
> > isn't described by links at all.
>
> Wouldn't it be nicer to take the _reverse_ approach: let's assume that
> any PCI interrupts that we have already enabled are fine and should
> not be disabled? Mark them in the ELCR, and _report_ when the ELCR
> seems to be incorrect (let's make a wild guess here, and realize that
> the screaming VIA interrupts you talk about are exactly because the
> ELCR was wrong).

I think the VIA case is more complicated than that, but I'll take
another look at it.


thanks,
-Len


2004-11-22 20:59:15

by Brown, Len

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

On Mon, 2004-11-22 at 15:31, Linus Torvalds wrote:
>
> On Mon, 22 Nov 2004, Len Brown wrote:
> > >
> > > And not doing it breaks systems.
> >
> > I'm not aware (yet) of any systems where disabling all the links
> (which
> > we've been doing since June, BTW)
>
> We have been doing it since June, but we also immediately _re-enabled_
> them.

Mostly true.

We re-enabled all the links for which we found PCI devices.
This is a super-set of all the links with device-drivers.

But it is also a sub-set of the total population of links -- some BIOSs
enabled links for which there were no devices attached. This caused two
problems. First there were suprious interrupts on some boxes, and
second in the case where we enabling balacing IRQs (default in IOAPIC
mode, requires "acpi_irq_balance" in PIC mode) it ate up IRQs and forced
more sharing.

> IOW, I'll claim that the only thing that has really gotten testing
> since June is the thing that disables and immediately re-enables the
> links.
>
> And that's exactly why I think the "minimally disruptive" fix is to
> not disable them at all, but just fix up ELCR for anything that was
> already enabled. Since that _is_ what "disable + re-enable" ends up
> actually doing.
>
> See my argument?

"minimally distruptive" undertood, Yes.

"minimal risk", OTOH is to return to what we did in 2.6.9.

Note, for the record, that Bjorn's patch to remove the paranoia loop and
add the pci=routeirq override came to you through the -mm tree, not
through the ACPI tree. I think that Bjorn was as surprised as I was
that it appeared in 2.6.10-rc2.

-Len


2004-11-22 21:01:59

by Brown, Len

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

On Mon, 2004-11-22 at 15:36, Linus Torvalds wrote:
>
> Oh, and I think one alternative at this point is obviously to just go
> back to the "re-enable all interrupts early in the boot" code. Clearly
> we need to do _something_ for 2.6.10, and I want it to be something
> that is pretty much equivalent to what we _do_ have testing coverage
> of. Just to keep safe.

I'm okay with this, and testing the interrupt fixes in -mm in the
mean-time -- particularly if you're planning a relatively short 2.6.10
rc cycle.

-Len


2004-11-23 00:48:17

by Adrian Bunk

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

On Mon, Nov 22, 2004 at 01:28:59PM -0500, Len Brown wrote:
>...
> > BTW: Is all what ACPI does really required, if all I need ACPI for is
> > to turn the power off after halting my computer?
>
> On this system ACPI is required to configure the IOAPIC.
>
> It may be possible to save power in idle with c-states
> and at run-time with p-states (cpufreq) on this box,
> but I couldn't tell that from the dmesg if CONFIG_ACPI_PROCESSOR
> was included or not.

It's not.

> If you don't care about interrupt performance and you don't
> mind pressing the power button when you halt the system,
> go ahead and run with CONFIG_ACPI=n.

Not needed "pressing the power button when you halt the system" is the
"killer application" for using ACPI for me...

> cheers,
> -Len

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

2004-11-23 01:12:37

by Brown, Len

[permalink] [raw]
Subject: why use ACPI (Re: 2.6.10-rc2 doesn't boot (if no floppy device))

On Mon, 2004-11-22 at 19:46, Adrian Bunk wrote:

> Not needed "pressing the power button when you halt the system" is the
> "killer application" for using ACPI for me...

Yes, thats certainly one that people notice right away. Laptops have
had soft poweroff with APM for a while, but desktops and servers never
adopted APM, so soft-power-off is generally a new feature with ACPI for
them.

Enabling IOAPIC is one that a lot of people like, because it results in
less interrupt sharing and better performance than PIC mode. But if you
don't load your system much you may not notice any difference.

Next people tend to notice fan speed, because they can hear it.
If you load processor and thermal, you'll probably see some
/proc/acpi/thermal/thermal_zone/*/temperature and you'll
probably find that it stays lower if you keep processor
loaded versus when you do not.

This is usually because of power-saving c-csates in idle,
which you can observe in /proc/acpi/processor/*/power
and the higher the C-state, the more power you save.

Also, CPUFREQ usually often on ACPI, and that can save
power even when the system is not idle, and this results
in lower temperatures and hopefully slower fan speeds.

cheers,
-Len


2004-11-23 01:28:41

by Dave Jones

[permalink] [raw]
Subject: Re: why use ACPI (Re: 2.6.10-rc2 doesn't boot (if no floppy device))

On Mon, Nov 22, 2004 at 08:07:36PM -0500, Len Brown wrote:

> Laptops have had soft poweroff with APM for a while, but desktops and
> servers never adopted APM, so soft-power-off is generally a new feature
> with ACPI for them.

Nonsense.

My 4-way compaq server disagrees with you. No ACPI on that
at all, and it has fully working APM, even in SMP. Likewise,
I don't think I've ever seen a desktop without APM.
(modulo broken biosen).

IIRC, APM supported this since the arrival of ATX power supplies,
which was a _long_ time ago. 1996/1997 ?

Dave

2004-11-23 01:45:39

by Adrian Bunk

[permalink] [raw]
Subject: Re: why use ACPI (Re: 2.6.10-rc2 doesn't boot (if no floppy device))

On Mon, Nov 22, 2004 at 08:07:36PM -0500, Len Brown wrote:
> On Mon, 2004-11-22 at 19:46, Adrian Bunk wrote:
>
> > Not needed "pressing the power button when you halt the system" is the
> > "killer application" for using ACPI for me...
>
> Yes, thats certainly one that people notice right away. Laptops have
> had soft poweroff with APM for a while, but desktops and servers never
> adopted APM, so soft-power-off is generally a new feature with ACPI for
> them.

That's wrong.

My old desktop computer (with a VIA MVP3 chipset and an AMD K6 cpu)
I bought in 1998 did power off fine under Linux using APM.

> Enabling IOAPIC is one that a lot of people like, because it results in
> less interrupt sharing and better performance than PIC mode. But if you
> don't load your system much you may not notice any difference.

I saw

kernel: APIC error on CPU0: 00(02)
...
kernel: APIC error on CPU0: 02(02)

on my computer and decided disabling APIC was the easiest way to solve
them...

> Next people tend to notice fan speed, because they can hear it.
> If you load processor and thermal, you'll probably see some
> /proc/acpi/thermal/thermal_zone/*/temperature and you'll
> probably find that it stays lower if you keep processor
> loaded versus when you do not.

/proc/acpi/thermal/thermal_zone is empty on my computer.

> This is usually because of power-saving c-csates in idle,
> which you can observe in /proc/acpi/processor/*/power
> and the higher the C-state, the more power you save.

active state: C1
default state: C1
bus master activity: 00000000
states:
*C1: promotion[--] demotion[--] latency[000] usage[00000000]
C2: <not supported>
C3: <not supported>

> Also, CPUFREQ usually often on ACPI, and that can save
> power even when the system is not idle, and this results
> in lower temperatures and hopefully slower fan speeds.

My computer has a desktop Athlon...

> cheers,
> -Len

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

2004-11-23 01:53:35

by Adrian Bunk

[permalink] [raw]
Subject: Re: why use ACPI (Re: 2.6.10-rc2 doesn't boot (if no floppy device))

On Mon, Nov 22, 2004 at 08:23:33PM -0500, Dave Jones wrote:
>...
> I don't think I've ever seen a desktop without APM.
> (modulo broken biosen).
>...

For my old computer (bought 1998) this was true.

Unfortunately, my new computer (bought early this year) says:
kernel: apm: BIOS not found.

I don't know whether it's a hardware problem or "only" a BIOS problem,
but it forces me to use ACPI to power off my computer. :-(

> Dave

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

2004-11-23 02:00:41

by Chris Wright

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

For the record...

* Len Brown ([email protected]) wrote:
> Please try this updated debug patch.
>
> It clears the ELCR on Linux boot.

This boots as expected (no irq6 storm). I have dmesg if you're still
interested.

thanks,
-chris
--
Linux Security Modules http://lsm.immunix.org http://lsm.bkbits.net

2004-11-23 02:06:22

by Chris Wright

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

Also for the record...

* Linus Torvalds ([email protected]) wrote:
> So I think the simpler fix is just this one-liner: we should not disable
> preexisting links, because non-PCI devices may depend on the same routing
> information, and thus the comments about "being activated on use" is not
> actually true.

This boots as expected (no irq6 storm).

thanks,
-chris
--
Linux Security Modules http://lsm.immunix.org http://lsm.bkbits.net

2004-11-23 02:06:32

by Chris Wright

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

For the record...

* Len Brown ([email protected]) wrote:
> Please apply this debug patch and boot with
> apic=debug acpi_dbg_level=1

acpi_dbg_level=1 boots as expected. w/out it, irq6 interrupt storm.
I have dmesg if you're still interested.

thanks,
-chris
--
Linux Security Modules http://lsm.immunix.org http://lsm.bkbits.net

2004-11-23 02:51:26

by Linus Torvalds

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)



On Mon, 22 Nov 2004, Len Brown wrote:
>
> I think the VIA case is more complicated than that, but I'll take
> another look at it.

Ok, having looked at the bugzilla entry, I have to concur. Looks like we
do need to disable the PCI interrupts and re-enable them. Mea culpa.

So what's the right way to get ELCR into a useful state? I'm starting to
lean towards your "just clear it all" after all, but that does the wrong
thing for SCI (which is _usually_ level-triggered), and I worry that there
are other cases too.

Any reasonably simple patch that likely gets it right?

Linus

2004-11-23 02:56:17

by Dave Jones

[permalink] [raw]
Subject: Re: why use ACPI (Re: 2.6.10-rc2 doesn't boot (if no floppy device))

On Mon, Nov 22, 2004 at 09:47:32PM -0500, Len Brown wrote:
> > > Also, CPUFREQ usually often on ACPI, and that can save
> > > power even when the system is not idle, and this results
> > > in lower temperatures and hopefully slower fan speeds.
> >
> > My computer has a desktop Athlon...
>
> maybe Dave can determine if there is a governor that can help you.
>
> cheers,
> -Len

desktop athlons tend not to have powernow. And those that do
(usually by someone transplanting a mobile part into a desktop
board), hit the problem where the BIOS has no idea what the
hell is going on, and sets up no PST tables.

Dave

2004-11-23 03:05:38

by Brown, Len

[permalink] [raw]
Subject: Re: why use ACPI (Re: 2.6.10-rc2 doesn't boot (if no floppy device))

On Mon, 2004-11-22 at 20:37, Adrian Bunk wrote:
> On Mon, Nov 22, 2004 at 08:07:36PM -0500, Len Brown wrote:
> > On Mon, 2004-11-22 at 19:46, Adrian Bunk wrote:

>
> My old desktop computer (with a VIA MVP3 chipset and an AMD K6 cpu)
> I bought in 1998 did power off fine under Linux using APM.

I stand corrected. ACPI wasn't widely deployed until 1998, so I expect
everything at that time was APM. grepping my logs for more modern
systems, I see APM still in many of the laptops, about half the
desktops, and none of the servers -- YMMV.

> > Enabling IOAPIC is one that a lot of people like, because it results
> in
> > less interrupt sharing and better performance than PIC mode. But if
> you
> > don't load your system much you may not notice any difference.
>
> I saw
>
> kernel: APIC error on CPU0: 00(02)
> ...
> kernel: APIC error on CPU0: 02(02)
>
> on my computer and decided disabling APIC was the easiest way to solve
> them...

yup, this is common on some hardware.

Frankly, I don't know if it is something to be concerned about if you
don't see it that much, but if the hardware loses interrupts when the
IOAPIC is enabled, then disabling it is a reasonable workaround.

> > Next people tend to notice fan speed, because they can hear it.
> > If you load processor and thermal, you'll probably see some
> > /proc/acpi/thermal/thermal_zone/*/temperature and you'll
> > probably find that it stays lower if you keep processor
> > loaded versus when you do not.
>
> /proc/acpi/thermal/thermal_zone is empty on my computer.
>
> > This is usually because of power-saving c-csates in idle,
> > which you can observe in /proc/acpi/processor/*/power
> > and the higher the C-state, the more power you save.
>
> active state: C1
> default state: C1
> bus master activity: 00000000
> states:
> *C1: promotion[--] demotion[--] latency[000]
> usage[00000000]
> C2: <not supported>
> C3: <not supported>
>

You'll get C1 even without ACPI, so ACPI processor driver doesn't give
you any additional power savings c-states on this hardware.

> > Also, CPUFREQ usually often on ACPI, and that can save
> > power even when the system is not idle, and this results
> > in lower temperatures and hopefully slower fan speeds.
>
> My computer has a desktop Athlon...

maybe Dave can determine if there is a governor that can help you.

cheers,
-Len


2004-11-23 03:16:39

by Gene Heskett

[permalink] [raw]
Subject: Re: why use ACPI (Re: 2.6.10-rc2 doesn't boot (if no floppy device))

On Monday 22 November 2004 21:50, Dave Jones wrote:
>On Mon, Nov 22, 2004 at 09:47:32PM -0500, Len Brown wrote:
> > > > Also, CPUFREQ usually often on ACPI, and that can save
> > > > power even when the system is not idle, and this results
> > > > in lower temperatures and hopefully slower fan speeds.
> > >
> > > My computer has a desktop Athlon...
> >
> > maybe Dave can determine if there is a governor that can help
> > you.
> >
> > cheers,
> > -Len
>
>desktop athlons tend not to have powernow. And those that do
>(usually by someone transplanting a mobile part into a desktop
> board), hit the problem where the BIOS has no idea what the
>hell is going on, and sets up no PST tables.
>
> Dave
>
A link to a neat util was posted earlier today, to 'gcccpuopt', which
scans things and reports the appropriate options to put in the
Makefile. But it doesn't even contain the 'powernow' string. Does
this need updated?

--
Cheers, Gene
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
99.29% setiathome rank, not too shabby for a WV hillbilly
Yahoo.com attorneys please note, additions to this message
by Gene Heskett are:
Copyright 2004 by Maurice Eugene Heskett, all rights reserved.

2004-11-23 05:04:15

by Linus Torvalds

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)



On Mon, 22 Nov 2004, Linus Torvalds wrote:
>
> So what's the right way to get ELCR into a useful state? I'm starting to
> lean towards your "just clear it all" after all, but that does the wrong
> thing for SCI (which is _usually_ level-triggered), and I worry that there
> are other cases too.
>
> Any reasonably simple patch that likely gets it right?

Len, how about this patch - it re-enables the link disable and then
re-codes the ELCR setting to match.

Basically it just computes the new ELCR: if acpi_noirq is set, it leaves
it at the old value, otherwise it zeroes it - and in both cases it fixes
the SCI entry.

Your argument for doing this ended up being convincing, so the only
difference between this and your debug patch is really just the obvious
organizational ones, and the test for "acpi_noirq", which I think is
needed (since if acpi_noirq is set, we're not going to disable and
re-enable the PCI interrupts, so we'll just have to trust ELCR).

Linus

----
===== arch/i386/kernel/acpi/boot.c 1.75 vs edited =====
--- 1.75/arch/i386/kernel/acpi/boot.c 2004-11-11 16:08:40 -08:00
+++ edited/arch/i386/kernel/acpi/boot.c 2004-11-22 20:55:57 -08:00
@@ -409,28 +409,38 @@
void __init
acpi_pic_sci_set_trigger(unsigned int irq, u16 trigger)
{
- unsigned char mask = 1 << (irq & 7);
- unsigned int port = 0x4d0 + (irq >> 3);
- unsigned char val = inb(port);
+ unsigned int mask = 1 << irq;
+ unsigned int old, new;

-
- printk(PREFIX "IRQ%d SCI:", irq);
- if (!(val & mask)) {
- printk(" Edge");
+ /* Real old ELCR mask */
+ old = inb(0x4d0) | (inb(0x4d1) << 8);

- if (trigger == 3) {
- printk(" set to Level");
- outb(val | mask, port);
- }
- } else {
- printk(" Level");
+ /*
+ * If we use ACPI to set PCI irq's, then we should clear ELCR
+ * since we will set it correctly as we enable the PCI irq
+ * routing.
+ */
+ new = acpi_noirq ? old : 0;

- if (trigger == 1) {
- printk(" set to Edge");
- outb(val & ~mask, port);
- }
+ /*
+ * Update SCI information in the ELCR, it isn't in the PCI
+ * routing tables..
+ */
+ switch (trigger) {
+ case 1: /* Edge - clear */
+ new &= ~mask;
+ break;
+ case 3: /* Level - set */
+ new |= mask;
+ break;
}
- printk(" Trigger.\n");
+
+ if (old == new)
+ return;
+
+ printk(PREFIX "setting ELCR to %04x (from %04x)\n", new, old);
+ outb(new, 0x4d0);
+ outb(new >> 8, 0x4d1);
}


===== drivers/acpi/pci_link.c 1.35 vs edited =====
--- 1.35/drivers/acpi/pci_link.c 2004-11-22 10:41:11 -08:00
+++ edited/drivers/acpi/pci_link.c 2004-11-22 20:02:53 -08:00
@@ -685,6 +685,9 @@
acpi_link.count++;

end:
+ /* disable all links -- to be activated on use */
+ acpi_ut_evaluate_object(link->handle, "_DIS", 0, NULL);
+
if (result)
kfree(link);

2004-11-23 05:01:03

by Dave Jones

[permalink] [raw]
Subject: Re: why use ACPI (Re: 2.6.10-rc2 doesn't boot (if no floppy device))

On Mon, Nov 22, 2004 at 10:13:21PM -0500, Gene Heskett wrote:

> A link to a neat util was posted earlier today, to 'gcccpuopt', which
> scans things and reports the appropriate options to put in the
> Makefile. But it doesn't even contain the 'powernow' string. Does
> this need updated?

Very likely not. What would you expect it to do ?

Dave

2004-11-23 07:08:30

by Brown, Len

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

On Mon, 2004-11-22 at 23:57, Linus Torvalds wrote:
>
> On Mon, 22 Nov 2004, Linus Torvalds wrote:
> >

> Len, how about this patch - it re-enables the link disable and then
> re-codes the ELCR setting to match.
>
> Basically it just computes the new ELCR: if acpi_noirq is set, it
> leaves it at the old value, otherwise it zeroes it - and in both cases
> it fixes the SCI entry.

> Your argument for doing this ended up being convincing, so the only
> difference between this and your debug patch is really just the
> obvious organizational ones, and the test for "acpi_noirq", which I
> think is needed (since if acpi_noirq is set, we're not going to
> disable and re-enable the PCI interrupts, so we'll just have to trust
> ELCR).

I think your use of acpi_noirq in acpi_pic_sci_set_trigger() was clever
-- maybe more clever than the name of the routine suggests -- but it
looks correct.

thanks for restoring pci_link.c

-Len


2004-11-23 20:18:18

by Stian Jordet

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

Hi,
If the reason for cc'ing me was for me to verify it still works on my
VIA board, I can confirm it does with Linus' patch :)

Thanks.

Best regards,
Stian

tir, 23,.11.2004 kl. 02.06 -0500, skrev Len Brown:
> On Mon, 2004-11-22 at 23:57, Linus Torvalds wrote:
> >
> > On Mon, 22 Nov 2004, Linus Torvalds wrote:
> > >
>
> > Len, how about this patch - it re-enables the link disable and then
> > re-codes the ELCR setting to match.
> >
> > Basically it just computes the new ELCR: if acpi_noirq is set, it
> > leaves it at the old value, otherwise it zeroes it - and in both cases
> > it fixes the SCI entry.
>
> > Your argument for doing this ended up being convincing, so the only
> > difference between this and your debug patch is really just the
> > obvious organizational ones, and the test for "acpi_noirq", which I
> > think is needed (since if acpi_noirq is set, we're not going to
> > disable and re-enable the PCI interrupts, so we'll just have to trust
> > ELCR).
>
> I think your use of acpi_noirq in acpi_pic_sci_set_trigger() was clever
> -- maybe more clever than the name of the routine suggests -- but it
> looks correct.
>
> thanks for restoring pci_link.c
>
> -Len
>

2004-11-27 01:59:00

by Alan

[permalink] [raw]
Subject: Re: 2.6.10-rc2 doesn't boot (if no floppy device)

On Sad, 2004-11-20 at 19:10, Linus Torvalds wrote:
> These kinds of things hopefully aren't all that common (there can't be a
> lot of extra hw required to follow the PCI spec _properly_), but if I were
> a hw designer, I'd connect such a chip to the PIRQ input, and just make
> the BIOS enable it automatically.

The PCI spec includes several such bits of magic itself remember -
notably on a PC the use of IRQ14 and IRQ15 by the IDE controller is not
via the PCI PIRQ routing.