public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Linux 2.6.19-rc3
@ 2006-10-23 23:22 Linus Torvalds
  2006-10-24  2:24 ` Gene Heskett
                   ` (7 more replies)
  0 siblings, 8 replies; 139+ messages in thread
From: Linus Torvalds @ 2006-10-23 23:22 UTC (permalink / raw)
  To: Linux Kernel Mailing List

[-- Attachment #1: Type: TEXT/PLAIN, Size: 36476 bytes --]


Ok,
 a few days late, because I'm a retard and didn't think of doing a release 
when I should have. 

I'm also a bit grumpy, because I think people are sending me more stuff 
than they should at this stage in the game. We've been pretty good about 
keeping the later -rc releases quiet, please keep it that way.

That said, it's mostly harmless cleanups and some architecture updates. 
And some of the added warnings about unused return values have caused a 
number of people to add error handling. And on the driver front, there's 
mainly new driver ID's, and a couple of new drivers.

Shortlog appended,

		Linus
----
Adrian Bunk (12):
      RDMA/amso1100: Fix a NULL dereference in error path
      drivers/char/specialix.c: fix the baud conversion
      USB: ftdi-elan.c: remove dead code
      USB: mos7840.c: fix a check-after-dereference
      [GFS2] fs/gfs2/dir.c:gfs2_dir_write_data(): remove dead code
      [GFS2] fs/gfs2/ops_fstype.c:gfs2_get_sb_meta(): remove unused variable
      [GFS2] fs/gfs2/dir.c:gfs2_dir_write_data(): don't use an uninitialized variable
      [GFS2] fs/gfs2/ops_fstype.c:fill_super_meta(): fix NULL dereference
      [GFS2] gfs2_dir_read_data(): fix uninitialized variable usage
      one more ARM IRQ fix
      ATA must depend on BLOCK
      drivers/ide/pci/generic.c: re-add the __setup("all-generic-ide",...)

Akinobu Mita (8):
      [CRYPTO] api: fix crypto_alloc_base() return value
      md: fix /proc/mdstat refcounting
      rd: memory leak on rd_init() failure
      epca: prevent panic on tty_register_driver() failure
      usb devio: handle class_device_create() error
      cpcihp_generic: prevent loading without "bridge" parameter
      driver core: kmalloc() failure check in driver_probe_device
      ocfs2: delete redundant memcmp()

Al Viro (31):
      gfp_t in netlabel
      new cifs endianness bugs
      hp drivers/input stuff: C99 initializers, NULL noise removal, __user annotations
      sun3_ioremap() prototype
      serial167 __user annotations, NULL noise removal
      [GFS2] gfs2 endianness bug: be16 assigned to be32 field
      bug: nfsd/nfs4xdr.c misuse of ERR_PTR()
      fix svc_procfunc declaration
      lockd endianness annotations
      xdr annotations: NFSv2
      xdr annotations: NFSv3
      xdr annotations: NFSv4
      xdr annotations: NFS readdir entries
      fs/nfs/callback* passes error values big-endian
      xdr annotations: fs/nfs/callback*
      nfs: verifier is network-endian
      xdr annotations: mount_clnt
      nfs_common endianness annotations
      nfsd: nfserrno() endianness annotations
      nfsfh simple endianness annotations
      xdr annotations: nfsd_dispatch()
      xdr annotations: NFSv2 server
      xdr annotations: NFSv3 server
      xdr annotations: NFSv4 server
      nfsd: vfs.c endianness annotations
      nfsd: nfs4 code returns error values in net-endian
      nfsd: NFSv{2,3} trivial endianness annotations for error values
      nfsd: NFSv4 errno endianness annotations
      xdr annotations: nfsd callback*
      nfsd: misc endianness annotations
      nfsd: nfs_replay_me

Alan Cox (10):
      rio: fix array checking
      ide: add sanity checking to ide taskfile ioctl
      [ARM] switch to new pci_get_bus_and_slot API
      pci: Stamp out pci_find_* usage in fakephp
      PCI: quirks: switch quirks code offender to use pci_get API
      pci: Additional search functions
      irq updates: make eata_pio compile
      ahci: readability tweak
      libata-sff: Allow for wacky systems
      [ATM] nicstar: Fix a bogus casting warning

Alan Stern (6):
      USB: unusual_devs entry for Nokia 6131
      UHCI: workaround for Asus motherboard
      usbcore: fix refcount bug in endpoint removal
      usbcore: fix endpoint device creation
      USB: unusual_devs entry for Nokia 6234
      Driver core: Don't ignore error returns from probing

Alexey Dobriyan (6):
      ACPI: asus_acpi: don't printk on writing garbage to proc files
      sx: fix user-visible typo (devic)
      USB: drivers/usb/net/*: use BUILD_BUG_ON
      OOM killer meets userspace headers
      kernel/nsproxy.c: use kmemdup()
      i2o/exec-osm.c: use "unsigned long flags;"

Alexey Y. Starikovskiy (2):
      ACPI: Remove deferred execution from global lock acquire wakeup path
      ACPI: created a dedicated workqueue for notify() execution

Allan Stephens (12):
      [TIPC]: Add missing unlock in port timeout code.
      [TIPC]: Debug print buffer enhancements and fixes
      [TIPC]: Stream socket can now send > 66000 bytes at a time
      [TIPC]: Added duplicate node address detection capability
      [TIPC]: Optimize wakeup logic when socket has no waiting processes
      [TIPC]: Remove code bloat introduced by print buffer rework
      [TIPC]: Add support for Ethernet VLANs
      [TIPC]: Name publication events now delivered in chronological order
      [TIPC]: Fixed slow link reactivation when link tolerance is large
      [TIPC]: Can now list multicast link on an isolated network node
      [TIPC]: Unrecognized configuration command now returns error message
      [TIPC]: Updated TIPC version number to 1.6.2

Amit Choudhary (5):
      V4L/DVB (4738): Bt8xx/dvb-bt8xx.c: check kmalloc() return value.
      [ALSA] sound/isa/gus/interwave.c: check kmalloc() return value
      [ALSA] sound/isa/cmi8330.c: check kmalloc() return value
      [ALSA] sound/isa/ad1816a/ad1816a.c: check kmalloc() return value
      [ALSA] sound/isa/opti9xx/opti92x-ad1848.c: check kmalloc() return value

Amol Lad (5):
      [WATCHDOG] ioremap balanced with iounmap for drivers/char/watchdog/s3c2410_wdt.c
      drivers/isdn/hysdn: save_flags()/cli(), restore_flags() replaced appropriately
      drivers/isdn/isdnloop: save_flags()/cli(), restore_flags() replaced appropriately
      PCI hotplug: ioremap balanced with iounmap
      drivers/isdn: ioremap balanced with iounmap

Andi Kleen (8):
      x86-64: Update defconfig
      i386: Update defconfig
      x86: Use -maccumulate-outgoing-args
      x86-64: Revert interrupt backlink changes
      i386: Disable nmi watchdog on all ThinkPads
      x86: Revert new unwind kernel stack termination
      x86-64: Revert timer routing behaviour back to 2.6.16 state
      x86-64: Fix C3 timer test

Andrew Morton (14):
      r8169: PCI ID for Corega Gigabit network card
      Lockdep: fix compile error in drivers/input/serio/serio.c
      invalidate: remove_mapping() fix
      PROC_NUMBUF is wrong
      remove carta_random32
      vmalloc(): don't pass __GFP_ZERO to slab
      acpi_processor_latency_notifier(): UP warning fix
      swsusp: fix memory leaks
      USB: fix usbatm tiny race
      PCI: pcie-check-and-return-bus_register-errors fix
      separate bdi congestion functions from queue congestion functions
      highest_possible_node_id() linkage fix
      i386: fix .cfi_signal_frame copy-n-paste error
      pci: declare pci_get_device_reverse()

Andrew Victor (1):
      [WATCHDOG] Atmel AT91RM9200 rename.

Andrey Mirkin (1):
      scsi: megaraid_{mm,mbox}: 64-bit DMA capability fix

Andy Whitcroft (1):
      Reintroduce NODES_SPAN_OTHER_NODES for powerpc

Aneesh Kumar K.V (1):
      Add entry.S labels to tag file

Anton Blanchard (4):
      [POWERPC] Never panic when taking altivec exceptions from userspace
      [POWERPC] POWER6 has 6 PMCs
      [POWERPC] Better check in show_instructions
      [POWERPC] Check for offline nodes in pci NUMA code

Arnaud Patard (1):
      r8169: fix infinite loop during hotplug

Arnaud Patard (Rtp) (1):
      [WATCHDOG] add ich8 support to iTCO_wdt.c

Arnd Bergmann (3):
      USB: driver for mcs7830 (aka DeLOCK) USB ethernet adapter
      usbnet: improve generic ethtool support
      usbnet: add a mutex around phy register access

Aron Griffis (1):
      [IA64] move ioremap/ioremap_nocache under __KERNEL__

Arthur Kepner (1):
      IB/mthca: Use mmiowb after doorbell ring

Atsushi Nemoto (1):
      [MIPS] save_context_stack fix

Auke Kok (1):
      e100: fix reboot -f with netconsole enabled

Ben Collins (13):
      [SPARC]: Fix some section mismatch warnings in sparc drivers.
      [alim7101] Add pci dev table for auto module loading.
      [mv643xx] Add pci device table for auto module loading.
      [BusLogic] Add pci dev table for auto module loading.
      [fdomain] Add pci dev table for module auto loading.
      [initio] Add pci dev table for module auto loading.
      [ixj] Add pci dev table for module auto loading.
      [hid-core] TurboX Keyboard needs NOGET quirk.
      [controlfb] Ifdef for when CONFIG_NVRAM isn't enabled.
      [igafb] Add pci dev table for module auto loading.
      [platinumfb] Ifdef for when CONFIG_NVRAM isn't enabled.
      [valkyriefb] Ifdef for when CONFIG_NVRAM isn't enabled.
      [pci_ids] Add Quicknet XJ vendor/device ID's.

Benjamin Herrenschmidt (1):
      [POWERPC] Don't crash on cell with 2 BEs when !CONFIG_NUMA

bibo,mao (1):
      x86-64: x86_64 add NX mask for PTE entry

Bjorn Helgaas (3):
      [IA64] remove unused PAL_CALL_IC_OFF
      [IA64] reformat pal.S to fit in 80 columns, fix typos
      [IA64] remove unused acpi_kbd_controller_present, acpi_legacy_devices

Björn Steinbrink (1):
      [NETFILTER]: Missing check for CAP_NET_ADMIN in iptables compat layer

Borislav Petkov (1):
      readjust comments of task_timeslice for kernel doc

Brent Casavant (2):
      ioc4: Remove SN2 feature and config dependencies
      ioc4: Enable build on non-SN2

Brice Goglin (2):
      PCI: Improve pci_msi_supported() comments
      PCI: Update MSI-HOWTO.txt according to pci_msi_supported()

Cedric Le Goater (1):
      [S390] fix vmlinux link when CONFIG_SYSIPC=n

Chandra Seetharaman (1):
      configfs: handle kzalloc() failure in check_perm()

Chris Malley (1):
      USB: Support for BT On-Air USB modem in cdc-acm.c

Christoph Lameter (1):
      Slab: Do not fallback to nodes that have not been bootstrapped yet

Chuck Lever (5):
      NFS: fix minor bug in new NFS symlink code
      NFS: __nfs_revalidate_inode() can use "inode" before checking it is non-NULL
      NFS: remove unused check in nfs4_open_revalidate
      SUNRPC: fix race in in-kernel RPC portmapper client
      SUNRPC: fix a typo

Corey Minyard (1):
      x86-64: Fix for arch/x86_64/pci/Makefile CFLAGS

Cornelia Huck (8):
      [S390] cio: sch_no -> schid.sch_no conversion.
      [S390] cio: update documentation.
      driver core fixes: sysfs_create_link() retval check in class.c
      driver core fixes: bus_add_attrs() retval check
      driver core fixes: bus_add_device() cleanup on error
      driver core fixes: device_add() cleanup on error
      driver core fixes: device_create_file() retval check in dmapool.c
      driver core fixes: sysfs_create_group() retval in topology.c

Craig Shelley (1):
      USB-SERIAL:cp2101 Add new device ID

Daniel Drake (1):
      PCI: VIA IRQ quirk behaviour change

Daniel Ritz (2):
      usbtouchscreen: fix data reading for ITM touchscreens
      PCI: add ICH7/8 ACPI/GPIO io resource quirks

Daniel Walker (1):
      clocksource: acpi_pm: add another greylist chipset

Darren Jenkins (1):
      ACPI: asus_acpi: fix proc files parsing

Darrick J. Wong (1):
      fix "ACPI: Processor native C-states using MWAIT"

Dave Jones (2):
      ipmi: fix return codes in failure case
      Remove useless comment from sb1250

Dave Kleikamp (3):
      JFS: pageno needs to be long
      airo: check if need to freeze
      null dereference in fs/jbd2/journal.c

David Brownell (2):
      USB: ohci-pnx4008 build fixes
      USB: ftdi_sio whitespace fixes

David Gibson (2):
      ibmveth: Fix index increment calculation
      ibmveth: Fix index increment calculation

David Howells (2):
      FRV: Use the correct preemption primitives in kmap_atomic() and co
      autofs3: Make sure all dentries refs are released before calling kill_anon_super()

David M. Grimes (1):
      knfsd: add nfs-export support to tmpfs

David S. Miller (12):
      [XFRM]: Fix xfrm_state_num going negative.
      [SPARC]: Kill BOOTME_SINGLE.
      [SPARC64]: Fix PCI memory space root resource on Hummingbird.
      [SPARC] {bbc_,}envctrl: Use call_usermodehelper().
      [SPARC64]: Update defconfig.
      [TG3]: Bump driver version and release date.
      [IPV6]: Fix route.c warnings when multiple tables are disabled.
      [SPARC64]: Compute dma_end argument to sabre_pbm_init() correctly.
      [SPARC64]: Fix of_ioremap().
      [DCCP] ipv6: Fix opt_skb leak.
      [PKT_SCHED] netem: Orphan SKB when adding to queue.
      [SPARC64]: 8-byte align return value from compat_alloc_user_space()

David Woodhouse (2):
      fix `make headers_install'
      [SPARC]: Clean up asm-sparc/elf.h pollution in userspace.

Deepak Saxena (1):
      Update smc91x driver with ARM Versatile board info

Denis M. Sadykov (5):
      ACPI: EC: Remove unnecessary delay added by previous transation patch.
      ACPI: EC: Remove unused variables and duplicated code
      ACPI: EC: Unify poll and interrupt mode transaction functions
      ACPI: EC: Unify poll and interrupt gpe handlers
      ACPI: EC: Simplify acpi_hw_low_level*() with inb()/outb().

Diego Calleja (1):
      HOWTO: bug report addition

Dmitriy Monakhov (1):
      mm: D-cache aliasing issue in cow_user_page

Dmitry Torokhov (6):
      Input: add missing exports to fix modular build
      Input: i8042 - supress ACK/NAKs when blinking during panic
      Input: atkbd - supress "too many keys" error message
      Input: serio core - handle errors returned by device_bind_driver()
      Input: gameport core - handle errors returned by device_bind_driver()
      ACPI: fix potential OOPS in power driver with CONFIG_ACPI_DEBUG

Dominic Cerquetti (1):
      USB: xpad: dance pad support

Dominik Brodowski (1):
      Documentation: feature-removal-schedule typo

Doug Warzecha (1):
      firmware/dcdbas: add size check in smi_data_write

Duncan Sands (4):
      usbatm: fix tiny race
      speedtch: "extended reach"
      cxacru: add the ZTE ZXDSL 852
      Driver core: plug device probe memory leak

Ed L Cashin (14):
      aoe: eliminate isbusy message
      aoe: update copyright date
      aoe: remove unused NARGS enum
      aoe: zero copy write 1 of 2
      aoe: jumbo frame support 1 of 2
      aoe: clean up printks via macros
      aoe: jumbo frame support 2 of 2
      aoe: improve retransmission heuristics
      aoe: zero copy write 2 of 2
      aoe: module parameter for device timeout
      aoe: use bio->bi_idx
      aoe: remove sysfs comment
      aoe: update driver version
      aoe: revert printk macros

Eiichiro Oiwa (1):
      ACPICA: Fix incorrect handling of PCI Express Root Bridge _HID

eiichiro.oiwa.nm@hitachi.com (1):
      PCI: Turn pci_fixup_video into generic for embedded VGA

Enrico Scholz (1):
      V4L/DVB (4740): Fixed an if-block to avoid floating with debug-messages

Eric Dumazet (6):
      [NET]: reduce sizeof(struct inet_peer), cleanup, change in peer_check_expire()
      [NET]: reduce per cpu ram used for loopback stats
      [TCP]: One NET_INC_STATS() could be NET_INC_STATS_BH in tcp_v4_err()
      [IPV4] inet_peer: Group together avl_left, avl_right, v4daddr to speedup lookups on some CPUS
      [NET]: Can use __get_cpu_var() instead of per_cpu() in loopback driver.
      [NET]: Reduce sizeof(struct flowi) by 20 bytes.

Eric Sesterhenn (7):
      [POWERPC] Off-by-one in /arch/ppc/platforms/mpc8*
      zd1201: Possible NULL dereference
      USB: BUG_ON conversion for wacom.c
      USB: fix use after free in wacom_sys.c
      USB: fix dereference in drivers/usb/misc/adutux.c
      USB: Memory leak in drivers/usb/serial/airprime.c
      pciehp: Remove unnecessary check in pciehp_ctrl.c

Eric W. Biederman (2):
      x86-64: Use irq_domain in ioapic_retrigger_irq
      x86-64: Put more than one cpu in TARGET_CPUS

Evgeniy Polyakov (1):
      w1 kconfig fix

Felix Kuehling (1):
      [ALSA] hda_intel: add ATI RS690 HDMI audio support

Florin Malita (1):
      airo.c: check returned values

Francisco Larramendi (1):
      rtc-max6902: month conversion fix

Franck Bui-Huu (1):
      [MIPS] Use kallsyms_lookup_size_offset() instead of kallsyms_lookup()

Geert Uytterhoeven (1):
      CONFIG_TELCLOCK depends on X86

Gerrit Renker (1):
      [DCCP]: Fix Oops in DCCPv6

Grant Coady (1):
      adm9240: Update Grant Coady's email address

Grant Grundler (1):
      USB: input: extract() and implement() are bit field manipulation routines

Greg Banks (1):
      kbuild: allow multi-word $M in Makefile.modpost

Greg Kroah-Hartman (7):
      USB: revert EHCI VIA workaround patch
      USB: ftdi-elan: fix sparse warnings
      USB: move trancevibrator.c to the proper usb directory
      USB: add USB serial mos7720 driver
      USB: cleanup sierra wireless driver a bit
      PCI Hotplug: move pci_hotplug.h to include/linux/
      aoe: fix sysfs_create_file warnings

Hans Verkuil (3):
      V4L/DVB (4729): Fix VIDIOC_G_FMT for NTSC in cx25840.
      V4L/DVB (4744): The Samsung TCPN2121P30A does not have a tda9887
      V4L/DVB (4746): HM12 is YUV 4:2:0, not YUV 4:1:1

Hartmut Hackmann (1):
      V4L/DVB (4727): Support status readout for saa713x based FM radio

Heiko Carstens (1):
      [S390] Wire up epoll_pwait syscall.

Henrik Kretzschmar (1):
      RDMA/amso1100: pci_module_init() conversion

Herbert Xu (1):
      [CRYPTO] api: Select cryptomgr where needed

Hidetoshi Seto (2):
      sysfs: remove duplicated dput in sysfs_update_file
      sysfs: update obsolete comment in sysfs_update_file

Ingo Molnar (3):
      lockdep: increase max allowed recursion depth
      genirq: clean up irq-flow-type naming
      genirq: clean up irq-flow-type naming, fix

J. Bruce Fields (4):
      knfsd: nfsd4: fix owner-override on open
      knfsd: nfsd4: fix open permission checking
      knfsd: nfsd4: Fix error handling in nfsd's callback client
      nfs4: initialize cl_ipaddr

Jack Steiner (2):
      [IA64] - Allow IPIs in timer loop
      [IA64] Count resched interrupts

Jan Beulich (2):
      x86-64: Speed up dwarf2 unwinder
      x86-64: Fix ENOSYS in system call tracing

Jan Dittmer (1):
      [IPV6] sit: Add missing MODULE_LICENSE

Jan Kara (1):
      Fix IO error reporting on fsync()

Jan Luebbe (1):
      USB: Add device id for Sierra Wireless MC8755

Jan Mate (1):
      USB Storage: unusual_devs.h entry for Sony Ericsson P990i

Jarek Poplawski (1):
      USB: fix cdc-acm problems with hard irq? (inconsistent lock state)

Jaroslav Kysela (1):
      [ALSA] version 1.0.13

Jean Delvare (5):
      [WATCHDOG] includes for sample watchdog program.
      hwmon: Fix documentation typos
      smsc47m1: List the SMSC LPC47M112 as supported
      hwmon: Let w83781d and lm78 load again
      hwmon: Fix debug messages in w83781d

Jean Tourrilhes (2):
      orinoco: fix WE-21 buffer overflow
      wireless: More WE-21 potential overflows...

Jeff Dike (1):
      uml: MODE_TT is bust

Jeff Garzik (15):
      [WATCHDOG] watchdog/iTCO_wdt: fix bug related to gcc uninit warning
      Input: fm801-gp - handle errors from pci_enable_device()
      V4L/DVB (4741): {ov511,stv680}: handle sysfs errors
      V4L/DVB (4742): Drivers/media/video: handle sysfs errors
      drivers/led: handle sysfs errors
      I2O: handle a few sysfs errors
      fs/partitions/check: add sysfs error handling
      rtc: fix printk of 64-bit res on 32-bit platform
      ISDN: fix drivers, by handling errors thrown by ->readstat()
      ISDN: check for userspace copy faults
      USB/gadget/net2280: handle sysfs errors
      Driver core: bus: remove indentation level
      WAN/pc300: handle, propagate minor errors
      [ATM]: handle sysfs errors
      [ATM] firestream: handle thrown error

Jeff Moyer (1):
      direct-io: sync and invalidate file region when falling back to buffered write

Jens Axboe (2):
      Add lockless helpers for remove_suid()
      Remove SUID when splicing into an inode

Jeremy Fitzhardinge (1):
      i386: Fix fake return address

Jes Sorensen (1):
      [IA64] update sn2_defconfig

Jesper Juhl (1):
      Driver core: Don't leak 'old_class_name' in drivers/base/core.c::device_rename()

Jim Cromie (1):
      w83791d: Fix unchecked return status

Jiri Kosina (3):
      Input: serio - add lockdep annotations
      ACPI: acpi_pci_link_set() can allocate with either GFP_ATOMIC or GFP_KERNEL
      ACPI: check battery status on resume for un/plug events during sleep

Jiri Slaby (1):
      Char: correct pci_get_device changes

John Heffner (1):
      [TCP]: Bound TSO defer time

john stultz (1):
      i386 Time: Avoid PIT SMP lockups

John W. Linville (2):
      zd1211rw: fix build-break caused by association race fix
      wireless: WE-20 compatibility for ESSID and NICKN ioctls

Jonathan Corbet (1):
      V4L/DVB (4743): Fix oops in VIDIOC_G_PARM

keith mannthey (1):
      x86-64: x86_64 hot-add memory srat.c fix

Kenji Kaneshige (5):
      shpchp: fix shpchp_wait_cmd in poll
      pciehp: fix improper info messages
      pciehp - add missing locking
      shpchp: fix command completion check
      shpchp: remove unnecessary cmd_busy member from struct controller

Kevin Lloyd (1):
      USB: Sierra Wireless driver update

Kimball Murray (1):
      ACPI: SCI interrupt source override

Kristen Carlson Accardi (2):
      change pci hotplug subsystem maintainer to Kristen
      libata: use correct map_db values for ICH8

Kristoffer Ericson (2):
      [ARM] 3889/1: [Jornada7xx] Addition of correct SDRAM params into cpu-sa1110.c
      [ARM] 3890/1: [Jornada7xx] Addition of MCU commands into jornada720.h

Krzysztof Helt (1):
      [SPARC]: Sparc compilation fix with floppy enabled

Kumar Gala (1):
      [POWERPC] ppc: Add missing calls to set_irq_regs

Larry Finger (2):
      bcm43xx-softmac: check returned value from pci_enable_device
      bcm43xx-softmac: Fix system hang for x86-64 with >1GB RAM

Laurent Riffard (1):
      sotftmac: fix a slab corruption in WEP restricted key association

Lebedev, Vladimir P (2):
      ACPI: sbs: check for NULL device pointer
      ACPI: sbs: fix module_param() initializers

Len Brown (1):
      ACPI: update comments in motherboard.c

Lennart Poettering (3):
      ACPI: consolidate functions in acpi ec driver
      ACPI: EC: export ec_transaction() for msi-laptop driver
      MSI S270 Laptop support: backlight, wlan, bluetooth states

Li Yang (3):
      [POWERPC] Fix MPC8360EMDS PB board support
      [POWERPC] Add Makefile entry for MPC832x_mds support
      ucc_geth: changes to ucc_geth driver as a result of qe_lib changes and bugfixes

Liam Girdwood (1):
      [ARM] 3888/1: add pxa27x SSP FSRT register bit definition

Lijun Chen (1):
      [TIPC]: Added subscription cancellation capability

Linas Vepstas (1):
      e1000: Reset all functions after a PCI error

Linus Torvalds (5):
      Fix VM_MAYEXEC calculation
      Fix USB gadget net2280.c compile
      Revert "[mv643xx] Add pci device table for auto module loading."
      Revert unintentional and bogus change to drivers/pci/quirks.c
      Linux 2.6.19-rc3

Luiz Fernando N. Capitulino (1):
      airprime: New device ID.

Marcel Holtmann (12):
      [Bluetooth] Fix compat ioctl for BNEP, CMTP and HIDP
      [Bluetooth] Handle return values from driver core functions
      [Bluetooth] Make use of virtual devices tree
      [Bluetooth] Support concurrent connect requests
      [Bluetooth] Disconnect HID interrupt channel first
      [Bluetooth] Fix reference count when connection lookup fails
      [Bluetooth] Check if DLC is still attached to the TTY
      [Bluetooth] Add locking for bt_proto array manipulation
      [Bluetooth] Use work queue to trigger URB submission
      [Bluetooth] Add support for newer ANYCOM USB dongles
      [Bluetooth] Add missing entry for Nokia DTL-4 PCMCIA card
      [Bluetooth] Fix HID disconnect NULL pointer dereference

Marcus Junker (1):
      [WATCHDOG] w83697hf WDT driver

Marek W (1):
      ACPI: asus_acpi: W3000 support

Mark Fasheh (4):
      Take i_mutex in splice_from_pipe()
      Introduce generic_file_splice_write_nolock()
      ocfs2: fix page zeroing during simple extends
      ocfs2: cond_resched() in ocfs2_zero_extend()

Martin Habets (1):
      [SPARC]: Add sparc profiling support

Martin Schwidefsky (2):
      [S390] Fix pte type checking.
      [S390] update default configuration

Matt Domsch (1):
      PCI: optionally sort device lists breadth-first

Matthew Wilcox (3):
      V4L/DVB (4725): Fix vivi compile on parisc
      Fix dev_printk() is now GPL-only
      cciss: Fix warnings (and bug on 1TB discs)

matthieu castet (4):
      UEAGLE : be suspend friendly
      UEAGLE : use interruptible sleep
      UEAGLE : comestic changes
      UEAGLE: fix ueagle-atm Oops

Melissa Howland (1):
      [S390] monwriter find header logic.

Michael Buesch (2):
      bcm43xx: fix race condition in periodic work handler
      softmac: Fix WX and association related races

Michael Chan (1):
      [TG3]: Add lower bound checks for tx ring size.

Michael Krufky (3):
      V4L/DVB (4731a): Kconfig: restore pvrusb2 menu items
      V4L/DVB (4733): Tda10086: fix frontend selection for dvb_attach
      V4L/DVB (4734): Tda826x: fix frontend selection for dvb_attach

Michel Dänzer (1):
      [AGPGART] uninorth: Add module param 'aperture' for aperture size

Miklos Szeredi (6):
      fuse: fix hang on SMP
      document i_size_write locking rules
      fuse: locking fix for nlookup
      fuse: fix spurious BUG
      fuse: fix handling of moved directory
      fuse: fix dereferencing dentry parent

Muli Ben-Yehuda (1):
      x86-64: increase PHB1 split transaction timeout

Neil Brown (1):
      Convert cpu hotplug notifiers to use raw_notifier instead of blocking_notifier

NeilBrown (7):
      knfsd: Fix bug in recent lockd patches that can cause reclaim to fail
      knfsd: Allow lockd to drop replies as appropriate
      knfsd: fix race that can disable NFS server
      md: fix calculation of ->degraded for multipath and raid10
      md: add another COMPAT_IOCTL for md
      md: endian annotation for v1 superblock access
      md: endian annotations for the bitmap superblock

Nick Piggin (1):
      mm: more commenting on lock ordering

Nicolas Pitre (1):
      fix PXA2xx UDC compilation error

Noguchi, Masato (1):
      [POWERPC] spufs: fix support for read/write on cntl

OGAWA Hirofumi (1):
      ext3/4: fix J_ASSERT(transaction->t_updates > 0) in journal_stop()

Olaf Hering (1):
      Fix up rpaphp driver for pci hotplug header move

Oliver Neukum (3):
      USB: remove private debug macros from kaweth
      USB: suspend/resume support for kaweth
      USB: fix suspend support for usblp

Pablo Neira Ayuso (1):
      [NETFILTER]: ctnetlink: Remove debugging messages

Paolo 'Blaisorblade' Giarrusso (9):
      fix typo in memory barrier docs
      uml: remove some leftover PPC code
      uml: split memory allocation prototypes out of user.h
      uml: code convention cleanup of a file
      uml: reenable compilation of enable_timer, disabled by mistake
      uml: use DEFCONFIG_LIST to avoid reading host's config
      uml: cleanup run_helper() API to fix a leak
      uml: kconfig - silence warning
      uml: mmapper - remove just added but wrong "const" attribute

Patrick Boettcher (2):
      V4L/DVB (4748): Fixed oops for Nova-T USB2
      V4L/DVB (4750): AGC command1/2 is board specific

Patrick Caulfield (1):
      [DLM] fix iovec length in recvmsg

Patrick McHardy (6):
      [DECNET]: Use correct config option for routing by fwmark in compare_keys()
      [NETFILTER]: fix cut-and-paste error in exit functions
      [NETFILTER]: arp_tables: missing unregistration on module unload
      [NETFILTER]: ipt_ECN/ipt_TOS: fix incorrect checksum update
      [NETFILTER]: xt_CONNSECMARK: fix Kconfig dependencies
      [NETFILTER]: Update MAINTAINERS entry

Paul Fulghum (1):
      synclink: remove PAGE_SIZE reference

Paul Jackson (1):
      cpuset: mempolicy migration typo fix

Paul Moore (3):
      NetLabel: only deref the CIPSOv4 standard map fields when using standard mapping
      NetLabel: better error handling involving mls_export_cat()
      NetLabel: the CIPSOv4 passthrough mapping does not pass categories correctly

Paul Mundt (7):
      sh: Proper show_stack/show_trace() implementation.
      sh: Remove board-specific ide.h headers.
      sh: Cleanup board header directories.
      sh: Fix exception_handling_table alignment.
      sh: Add some missing board headers.
      sh: Updates for irq-flow-type naming changes.
      sh: Convert INTC2 to IRQ table registration.

Pavel Machek (1):
      ACPI: ibm_acpi: delete obsolete documentation

Pekka Enberg (1):
      ecryptfs: use special_file()

Peter Oberparleiter (1):
      [S390] cio: invalid device operational notification

Peter Zijlstra (3):
      Lockdep: add lockdep_set_class_and_subclass() and lockdep_set_subclass()
      lockdep: annotate i386 apm
      rt-mutex: fixup rt-mutex debug code

Petr Vandrovec (1):
      Fix core files so they make sense to gdb...

Pierre Ossman (2):
      ACPI: fix section for CPU init functions
      New MMC maintainer

Ping Cheng (1):
      USB: Wacom driver updates

Pádraig Brady (1):
      V4L/DVB (4739): SECAM support for saa7113 into saa7115

Ralf Baechle (11):
      [MIPS] Delete unneeded pt_regs forward declaration.
      [MIPS] Malta: Fix uninitialized regs pointer.
      [MIPS] A few more pt_regs fixups.
      [MIPS] Use compat_sys_mount.
      [MIPS] Reserve syscall numbers for kexec_load.
      [MIPS] Fix iounmap argument to const volatile.
      Make <linux/personality.h> userspace proof
      Fix warnings for WARN_ON if CONFIG_BUG is disabled
      Fix timer race
      [MIPS] Cleanup remaining references to mips_counter_frequency.
      [MIPS] Fix aliasing bug in copy_to_user_page / copy_from_user_page

Randy Dunlap (6):
      ACPI: fix printk format warnings
      fix epoll_pwait when EPOLL=n
      Kconfig serial typos
      cad_pid sysctl with PROC_FS=n
      fs/Kconfig: move GENERIC_ACL, fix acl() call errors
      [NET]: kernel-doc fix for sock.h

Randy Vinson (1):
      [POWERPC] Fix IO Window Updates on P2P bridges.

Ranjit Manomohan (1):
      [TG3]: Fix set ring params tx ring size implementation

Robert Walsh (1):
      IB/ipath: Initialize diagpkt file on device init only

Rudolf Marek (2):
      k8temp: Documentation update
      w83627ehf: Fix the detection of fan5

Russell King (4):
      [ARM] Fix fallout from IRQ regs changes
      [ARM] Fix Zaurii keyboard/touchscreen drivers
      [ARM] Update mach-types
      Remove __must_check for device_for_each_child()

Samuel Tardieu (17):
      [WATCHDOG] w83697hf/hg WDT driver - patch 1
      [WATCHDOG] w83697hf/hg WDT driver - patch 2
      [WATCHDOG] w83697hf/hg WDT driver - patch 3
      [WATCHDOG] w83697hf/hg WDT driver - patch 4
      [WATCHDOG] w83697hf/hg WDT driver - patch 5
      [WATCHDOG] w83697hf/hg WDT driver - patch 6
      [WATCHDOG] w83697hf/hg WDT driver - patch 7
      [WATCHDOG] w83697hf/hg WDT driver - patch 8
      [WATCHDOG] w83697hf/hg WDT driver - patch 9
      [WATCHDOG] w83697hf/hg WDT driver - patch 10
      [WATCHDOG] w83697hf/hg WDT driver - patch 11
      [WATCHDOG] w83697hf/hg WDT driver - patch 12
      [WATCHDOG] w83697hf/hg WDT driver - patch 13
      [WATCHDOG] w83697hf/hg WDT driver - patch 14
      [WATCHDOG] w83697hf/hg WDT driver - patch 15
      [WATCHDOG] w83697hf/hg WDT driver - patch 16
      [WATCHDOG] w83697hf/hg WDT driver - Kconfig patch

Satoru Takeuchi (1):
      doc: fixing cpu-hotplug documentation

Stefan Schmidt (3):
      ACPI: ibm_acpi: Remove experimental status for brightness and volume.
      ACPI: ibm_acpi: Update documentation for brightness and volume.
      ACPI: ibm_acpi: Documentation the wan feature.

Stefan Weinhuber (1):
      [S390] dasd: clean up timer.

Stephen Hemminger (16):
      [BRIDGE]: flush forwarding table when device carrier off
      rename net_random to random32
      sky2: MSI test is only a warning
      sky2: turn of workaround timer
      sky2: phy irq on shutdown
      sky2: fiber pause bits
      sky2: advertising register 16 bits
      sky2: use duplex result bits
      sky2: don't reset PHY twice
      sky2: flow control setting fixes
      sky2: no message on rx fifo overflow
      sky2: version 1.9
      sky2: accept multicast pause frames
      sky2: GMAC pause frame
      [NETPOLL]: initialize skb for UDP
      sky2: 88E803X transmit lockup

Steven Toth (1):
      V4L/DVB (4692): Add WinTV-HVR3000 DVB-T support

Steven Whitehouse (2):
      [DECNET]: Fix input routing bug
      [GFS2] Fix bmap to map extents properly

Sunil Mushran (1):
      ocfs2: remove spurious d_count check in ocfs2_rename()

Sven Anders (1):
      [WATCHDOG] Winbond SMsC37B787 watchdog driver

Takashi Iwai (8):
      [ALSA] hda-codec - Fix assignment of PCM devices for Realtek codecs
      [ALSA] Various fixes for suspend/resume of ALSA PCI drivers
      [ALSA] Fix dependency of snd-adlib driver in Kconfig
      [ALSA] hda-codec - Add model entry for ASUS U5F laptop
      [ALSA] Fix re-use of va_list
      [ALSA] Fix AC97 power-saving mode
      [ALSA] Fix addition of user-defined boolean controls
      [ALSA] hda-intel - Add check of MSI availabity

Tejun Heo (1):
      libata: typo fix

Thiemo Seufer (1):
      [MIPS] Fix O32 personality(2) call with 0xffffffff argument.

Thomas Gleixner (1):
      posix-cpu-timers: prevent signal delivery starvation

Thomas Graf (4):
      [IPv6] rules: Use RT6_LOOKUP_F_HAS_SADDR and fix source based selectors
      [IPv4] fib: Remove unused fib_config members
      [IPv6] route: Fix prohibit and blackhole routing decision
      [IPv6] fib: initialize tb6_lock in common place to give lockdep a key

Thomas Maier (1):
      export clear_queue_congested and set_queue_congested

Timur Tabi (1):
      [POWERPC] Add DOS partition table support to mpc834x_itx_defconfig

Tobias Klauser (1):
      [ATM]: No need to return void

Tobias Lorenz (1):
      USB: Mitsumi USB FDD 061M: UNUSUAL_DEV multilun fix

Tony Luck (1):
      [IA64] perfmon fix for global IRQ fix

Trond Myklebust (7):
      NFSv4: Fix thinko in fs/nfs/super.c
      NFS: Fix oops in nfs_cancel_commit_list
      NFS: Fix error handling in nfs_direct_write_result()
      NFS: Fix NFSv4 callback regression
      NFS: Deal with failure of invalidate_inode_pages2()
      VFS: Make d_materialise_unique() enforce directory uniqueness
      NFS: Cache invalidation fixup

Ulrich Drepper (1):
      make UML compile (FC6/x86-64)

Uwe Bugla (1):
      V4L/DVB (4732): Fix spelling error in Kconfig help text for DVB_CORE_ATTACH

Venkatesh Pallipadi (1):
      ACPI: Processor native C-states using MWAIT

Ville Nuorvala (6):
      [IPV6]: Remove struct pol_chain.
      [SCTP]: Fix minor typo
      [IPV6]: Make sure error handling is done when calling ip6_route_output().
      [IPV6]: Clean up BACKTRACK().
      [IPV6]: Make IPV6_SUBTREES depend on IPV6_MULTIPLE_TABLES.
      [IPV6]: Always copy rt->u.dst.error when copying a rt6_info.

Vivek Goyal (2):
      x86-64: fix page align in e820 allocator
      x86-64: Overlapping program headers in physical addr space fix

Vojtech Pavlik (1):
      Fix DMA resource allocation in ACPIPnP

Wim Van Sebroeck (9):
      [WATCHDOG] Winbond SMsC37B787 - remove trailing whitespace
      [WATCHDOG] Winbond SMsC37B787 watchdog fixes
      [WATCHDOG] Kconfig clean-up
      [WATCHDOG] w836?7hf_wdt spinlock fixes.
      [WATCHDOG] Kconfig clean up
      [WATCHDOG] use ENOTTY instead of ENOIOCTLCMD in ioctl()
      [WATCHDOG] w83697hf/hg WDT driver - autodetect patch
      [WATCHDOG] add ich8 support to iTCO_wdt.c (patch 2)
      [WATCHDOG] remove experimental on iTCO_wdt.c

Yasunori Goto (2):
      Change log level of a message of acpi_memhotplug to KERN_DEBUG
      acpi memory hotplug: remove strange add_memory fail message

Yinghai Lu (1):
      x86-64: typo in __assign_irq_vector when updating pos for vector and offset

Yoichi Yuasa (4):
      [MIPS] More vr41xx pt_regs fixups
      [MIPS] Update pnx8500-jbs_defconfig
      [MIPS] Update pnx8550-v2pci_defconfig
      [MIPS] Update tb0287_defconfig

YOSHIFUJI Hideaki (1):
      [IPV6]: Remove bogus WARN_ON in Proxy-NA handling.

Zachary Amsden (1):
      Fix potential interrupts during alternative patching

Zhang, Yanmin (1):
      PCI: fix pcie_portdrv_restore_config undefined without CONFIG_PM error

^ permalink raw reply	[flat|nested] 139+ messages in thread
* Re: [patch] drivers: wait for threaded probes between initcall levels
@ 2006-10-28  8:23 Adam J. Richter
  2006-10-28  9:22 ` Russell King
  2006-10-28 19:41 ` Linus Torvalds
  0 siblings, 2 replies; 139+ messages in thread
From: Adam J. Richter @ 2006-10-28  8:23 UTC (permalink / raw)
  To: torvalds
  Cc: akpm, bunk, greg, linux-kernel, linux-pci, matthew, pavel,
	shemminger

On Fri, 27 Oct 2006 13:42:44 -0700 (PDT), Linus Torvals wrote:
>        static struct semaphore outstanding;
[...]
>        static void allow_parallel(int n)
[...]
>        static void wait_for_parallel(int n)
[...]
>        static void execute_in_parallel(int (*fn)(void *), void *arg)

	This interface would have problems with nesting.

	As a realistic example of nesting, imagine if this facility were
used for initcalls, and one of those initcalls also used this facility to
attempt parallel initialization of several hardware devices attached
to some bus.  In this scenario, do_initcalls would call allow_parallelism(10),
and then one of the initcalls that wanted to spawn its own set of
parallel processes would also call allow_parallel(10) (unintentionally
making the number of allowed processes 20), kick off its parallel
processes, and then call wait_for_parallel(), which could return
prematurely, which could easily lead to one of the child threads that
was incorrectly assumed to have finished to then corrupt memory or do any
number of other things that leads to a crash that is not reliably
reproducible.

	Here are some possible ways to address this problem, and
their drawbacks.

	1. Just document that nesting is prohibited, adding some BUG()
test to prevent such use.  This would limit the usefulness of this
facility, and create some unnecessary coordination issues among
kernel developers in arguing policy over who gets to use this facility.

	2. Turn the "outstanding" counting semaphore into a parameter.
Each group of related threads would share this parameter.  For example,
do_initcalls might look something like this:

struct semaphore initcalls_sem = SEMAPHORE_INITIALIZER(...);

allow_parallel(PARALLELISM, &initcalls_sem);

for (call = __initcall_start; call < __initcall_end; call++)
	execute_in_parallel(call, NULL, &initcalls_sem);

wait_for_parallel(PARALLEISM, &initcalls_sem);

	The drawback of this solution is that the limitation on the total
number of parallel processes is not global.  So, the number of
parallel processes in a nesting situation could get quite high.
For example, if 10 top level threads each initiated another 10
secondary threads, that's up to 111 threads with just a nesting
depth of 2.

	3. Add an rw_semaphore passed as a parameter for
wait_for_parallelism, but keep original static semaphore for limiting
the parallelism.  wait_for_parallel would be the only function ever
to block on the rw_semaphore, so that should avoid any problem with
ordering of taking the two semaphores--I think.

	This solution deadlocks if the nesting depth exceeds the maximum
number of threads allowed, which could realistically occur when the maximum
parallelism allowed is 1.

	4. Same as #3, but also increase the global thread count by 1 on
every call to allow_parallel, and decrease it by one in the matching
wait_for_parallel.  The drawback here is that setting the global
number of threads to one at the outset would no longer guarantee
strict serial execution, which is minor compared to the other
problems listed above.  If we want to guarantee serial execution
when PARALLELISM=1, I think that can be arranged with a little more
complexity, but I'd like to know if that is actually important.

	I have attached an example of approach #4 below, also completely
untested, with no attempt made to try to compile it.

Adam Richter




#define PARALLELISM (10)

static struct semaphore outstanding;

struct thread_exec {
        int (*fn)(void *);
        void *arg;
	struct completion args_copied;
	struct rw_semaphore *fn_done;
};

/* In some .h file: */
static inline void start_parallel(void)
{
	up(&outstanding);
}

/* In some .h file: */
static inline void wait_for_parallel(struct rw_semaphore *fn_done)
{
	down_write(fn_done);
	down(&outstanding);
}

void allow_parallel(int n)	/* called once, at boot time */
{
        while (--n >= 0)
                up(&outstanding);
}

static int do_in_parallel(void *arg)
{
        struct thread_exec *p = arg;
        int (*fn)(void *) = p->fn;
        void *arg = p->arg;
	struct rw_semaphore *fn_done = p->fn_done;
        int retval;

        /* Tell the caller we are done with the arguments */
        complete(&p->args_copied);

        /* Do the actual work in parallel */
        retval = p->fn(p->arg);

        /*
         * And then tell the rest of the world that we've
         * got one less parallel thing outstanding..
         */
	up_read(fn_done);
        up(&outstanding);
        return retval;
}

void execute_in_parallel(int (*fn)(void *),
			void *arg,
			struct semaphore *fn_done)
{
        struct thread_exec arg = { .fn = fn, .arg = arg };

        /* Make sure we can have more outstanding parallel work */
        down(&outstanding);

        arg.fn = fn;
        arg.arg = arg;
	arg.fn_done = fn_done;
	down_read(fn_done);
        init_completion(&arg.args_copied);

        kernel_thread(do_in_parallel, &arg);

        wait_for_completion(&arg.args_copied)
}


Example of usage:

	/* Earlier in the boot process... */
        allow_parallel(PARALLELISM);


static void __init do_initcalls(void)
{
	DECLARE_RWSEM(initcalls_done);
	start_parallel();
	for (call = __initcall_start; call < __initcall_end; call++)
		execute_in_parallel(call, NULL, &initcalls_done);

	wait_for_parallel(&initcalls_done);
}

^ permalink raw reply	[flat|nested] 139+ messages in thread
* Re: [patch] drivers: wait for threaded probes between initcall levels
@ 2006-10-28 23:50 Adam J. Richter
  2006-10-28 23:55 ` Linus Torvalds
  0 siblings, 1 reply; 139+ messages in thread
From: Adam J. Richter @ 2006-10-28 23:50 UTC (permalink / raw)
  To: torvalds
  Cc: akpm, bunk, greg, linux-kernel, linux-pci, matthew, pavel,
	shemminger

On 2006-10-28 19:41:50, Linus Torvalds wrote:
>On Sat, 28 Oct 2006, Adam J. Richter wrote:
>
>> On Fri, 27 Oct 2006 13:42:44 -0700 (PDT), Linus Torvals wrote:
>> >        static struct semaphore outstanding;
>> [...]
>> >        static void allow_parallel(int n)
>> [...]
>> >        static void wait_for_parallel(int n)
>> [...]
>> >        static void execute_in_parallel(int (*fn)(void *), void *arg)
>> 
>>       This interface would have problems with nesting.
>
>You miss the point.
>
>They _wouldn't_ be nested.
>
>The "allow_parallel()" and "wait_for_parallel()" calls would be at some 
>top-level situation (ie initcalls looping).
>
>Nobody else than the top level would _ever_ use them. Anything under that 
>level would just say "I want to do this in parallel" - which is just a 
>statement, and has no nesting issues in itself.

	If only calls to execute_in_parallel nest, your original
implementation would always deadlock when the nesting depth exceeds
the allowed number of threads, and also potentially in some shallower
nesting depths given a very unlucky order of execution.  In your
original message, you mentioned allowing the parallelism limit to be
set as low as 1.

	One solution to this problem would be to have
execute_in_parallel execute the function directly when no threads are
available to do it, rather than blocking.  The disadvantage is that,
if no thread is immediately available, the call to
execute_in_parallel would not return until the function that was
passed in finishes, even if more threads become available much sooner.

	Here is what I am referring to, again completely untested:


	static void execute_in_parallel(int (*fn)(void *), void *arg)
	{
		struct thread_exec arg = { .fn = fn, .arg = arg };

		/* If no threads are available, call the function directly. */
		if (down_trylock(&outstanding) != 0) {
			fn(arg);
			return;
		}

		arg.fn = fn;
		arg.arg = arg;
		init_completion(&arg.args_copied);

		kernel_thread(do_in_parallel, &arg);

		/* We need to wait until our "arg" is safe */
		wait_for_completion(&arg.args_copied)
	}


Adam Richter

^ permalink raw reply	[flat|nested] 139+ messages in thread
* Re: [patch] drivers: wait for threaded probes between initcall levels
@ 2006-10-29 20:38 Adam J. Richter
  0 siblings, 0 replies; 139+ messages in thread
From: Adam J. Richter @ 2006-10-29 20:38 UTC (permalink / raw)
  To: torvalds
  Cc: akpm, bunk, greg, linux-kernel, linux-pci, matthew, pavel,
	shemminger

On 2006-10-28 23:55:42, Linus Torvalds wrote:
>On Sun, 29 Oct 2006, Adam J. Richter wrote:
>> 
>>       If only calls to execute_in_parallel nest, your original
>> implementation would always deadlock when the nesting depth exceeds
>> the allowed number of threads, and [...]
>
>No, I'm saying that nesting simply shouldn't be _done_. There's no real 
>reason. Any user would be already either parallel or doesn't need to be 
>parallel at all. Why would something that already _is_ parallel start 
>another parallel task?

	Suppose the system is initializing PCI cards in parallel.  The
thread that is initializing one particular PCI card discovers that it
is initializing a firewire controller.  After the already "parallel"
PCI firewire probe function initializes the card, it is going to
enumerate the devices attached to the firewire cable and spawn
separate threads to initialize drivers for each of these several
firewire devices.

	One way avoid this depth-first descent would be to change
device_attach() in drivers/base/dd.c to queue its work to helper daemon.

	Either way, we're talking about a few lines of code in
execute_in_parallel that can easily be added later if needed.  If you
really think all calls to execute_parallel will be done by the main
kernel thread, I suggest someone add a BUG_ON() statement to that
effect to execute_parallel to see.

	I would also like to suggest a very different approach, which
would not be quite as fast, but which I think would be more flexible
and would work partly by making the kernel do _less_.

	Perhaps we could offer a boot option to limit device_attach to
consider only drivers named by that option, such as
"limit_drivers=vc,ramdisk".  (If a user screwed his boot process with
the wrong limit_drivers= options, fixing the problem would be just a
matter of just eliminating the option.)  All other driver-device
bindings would be done explicitly by a user level mechanism, which
would implicitly provide the process context for blocking.  That is,
the parallelization would occur by a sysfs watcher like udev spawning
separate threads to call the user level sysfs interface for attaching
devices to drivers.  User level would also handle matching driver and
device ID information, determining parallelization limits, probe
order, choosing between multiple drivers available for devices or
deliberately not binding a driver to a device, and perhaps executing
other custom user level code along the way.

	Because the threads involved would come from clone() executed
by a user level daemon sysfs watcher like udev, execute_in_parallel()
would be less used, perhaps not used at all, depending on whether
parts the boot process besides walking the device tree would benefit
much from parallelization.

Adam Richter

^ permalink raw reply	[flat|nested] 139+ messages in thread

end of thread, other threads:[~2006-11-07 20:19 UTC | newest]

Thread overview: 139+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-23 23:22 Linux 2.6.19-rc3 Linus Torvalds
2006-10-24  2:24 ` Gene Heskett
2006-10-24  7:46 ` Muli Ben-Yehuda
2006-10-24 18:07   ` Badari Pulavarty
2006-10-24 20:21 ` 2.6.19-rc3: known unfixed regressions Adrian Bunk
2006-10-24 21:44   ` 2.6.19-rc3: known unfixed regressions: confirmations teunis
2006-10-26 15:31     ` Adrian Bunk
2006-10-26 15:54       ` teunis
2006-10-25  1:51 ` 2.6.19-rc3: known regressions with patches Adrian Bunk
2006-10-25 11:25 ` Linux 2.6.19-rc3 Jean Delvare
2006-10-25 12:01   ` Damien Wyart
2006-10-25 16:25     ` Auke Kok
2006-10-26  7:20       ` Jean Delvare
2006-10-25 20:13 ` Linux 2.6.19-rc3: !CONFIG_NET_ETHERNET unsets CONFIG_PHYLIB, but CONFIG_USB_USBNET also needs CONFIG_PHYLIB Athanasius
2006-10-25 22:17   ` [PATCH] " Randy Dunlap
2006-10-25 22:27     ` David Brownell
2006-10-25 23:58       ` [PATCH 2/2] usbnet: use MII hooks only if CONFIG_MII is enabled Randy Dunlap
2006-10-26  2:22         ` David Brownell
2006-11-02  7:15           ` Greg KH
2006-11-02 20:29             ` David Brownell
2006-11-03  2:27               ` Adrian Bunk
2006-11-03  2:47                 ` David Brownell
2006-11-03  2:58                   ` Randy.Dunlap
2006-11-04  2:51                   ` [2.6 patch] USB_RTL8150 must select MII Adrian Bunk
2006-10-26 15:46         ` [PATCH 2/2] usbnet: use MII hooks only if CONFIG_MII is enabled Adrian Bunk
2006-10-26 15:51           ` Randy.Dunlap
2006-10-28 11:21         ` Christoph Hellwig
2006-10-28 21:10           ` David Brownell
2006-10-28 21:13             ` Christoph Hellwig
2006-10-28 22:30               ` David Brownell
2006-10-28 21:39             ` Adrian Bunk
2006-10-31 17:40               ` [linux-usb-devel] " David Brownell
2006-10-31 18:07                 ` Adrian Bunk
2006-10-31 19:36                   ` David Brownell
2006-11-01  1:23                     ` Adrian Bunk
2006-11-02 20:19                       ` David Brownell
2006-10-25 23:59       ` [PATCH 1/2] !CONFIG_NET_ETHERNET unsets CONFIG_PHYLIB, but CONFIG_USB_USBNET also needs CONFIG_PHYLIB Randy Dunlap
2006-10-26  2:24         ` David Brownell
2006-10-26  5:05           ` Randy.Dunlap
2006-10-26  5:24             ` David Brownell
2006-10-26 22:45 ` 2.6.19-rc3: known unfixed regressions (v2) Adrian Bunk
2006-10-27  1:02   ` [RFC: 2.6.19 patch] let PCI_MULTITHREAD_PROBE depend on BROKEN Adrian Bunk
2006-10-27  1:20     ` Matthew Wilcox
2006-10-27  1:28       ` Andrew Morton
2006-10-27  2:11         ` Stephen Hemminger
2006-10-27 17:07           ` Greg KH
2006-10-27 17:22             ` Pavel Machek
2006-10-27 18:39               ` Andrew Morton
2006-10-27 18:41                 ` vmlinux.lds: consolidate initcall sections Andrew Morton
2006-10-27 18:42                   ` [patch] drivers: wait for threaded probes between initcall levels Andrew Morton
2006-10-27 18:47                     ` Stephen Hemminger
2006-10-27 20:15                       ` Andrew Morton
2006-10-27 20:42                         ` Linus Torvalds
2006-10-27 20:48                           ` Linus Torvalds
2006-10-28  1:11                             ` Greg KH
2006-10-28  1:50                               ` Linus Torvalds
2006-10-27 22:59                     ` Alan Cox
2006-10-27 23:06                       ` Andrew Morton
2006-10-28  5:09                         ` Grant Grundler
2006-10-28  5:19                           ` Andrew Morton
2006-10-28  5:32                             ` Andrew Morton
2006-10-28  6:08                             ` Grant Grundler
2006-10-28 20:48                               ` Stefan Richter
2006-10-28 23:34                                 ` Alan Cox
2006-10-29  2:01                                   ` Randy Dunlap
2006-10-30  9:44                         ` Cornelia Huck
2006-10-30 10:48                           ` Alan Cox
2006-10-30 12:29                             ` Matthew Wilcox
2006-10-27 23:12                       ` Olaf Hering
2006-10-27 19:31                   ` vmlinux.lds: consolidate initcall sections Haavard Skinnemoen
2006-10-29 10:21                     ` Geert Uytterhoeven
2006-10-27 19:44                   ` Matthew Wilcox
2006-10-27 20:17                     ` Andrew Morton
2006-10-27 20:27                       ` Matthew Wilcox
2006-10-27 22:23             ` [RFC: 2.6.19 patch] let PCI_MULTITHREAD_PROBE depend on BROKEN Adrian Bunk
2006-10-27 22:38               ` Andrew Morton
2006-10-28  1:08                 ` Greg KH
2006-10-27 23:03               ` Alan Cox
2006-10-27 22:57             ` Alan Cox
2006-10-27  8:27       ` Pavel Machek
2006-10-29 23:13 ` 2.6.19-rc3: known unfixed regressions (v3) Adrian Bunk
2006-10-30 13:56   ` Michael S. Tsirkin
2006-10-30 16:17     ` Jun'ichi Nomura
2006-10-30 16:32       ` Michael S. Tsirkin
2006-10-30 17:20         ` Jun'ichi Nomura
2006-10-30 17:54           ` Michael S. Tsirkin
2006-10-30 16:44       ` Linus Torvalds
2006-10-30 17:34         ` Jun'ichi Nomura
2006-10-30 18:16           ` Linus Torvalds
2006-10-30 18:35             ` Adrian Bunk
2006-10-30 19:00               ` Michael S. Tsirkin
2006-10-30 19:06               ` Hugh Dickins
2006-10-31 12:47               ` Martin Lorenz
2006-10-30 18:58             ` Michael S. Tsirkin
2006-10-31 21:15             ` Michael S. Tsirkin
2006-11-01  3:01     ` 2.6.19-rc <-> ThinkPads Adrian Bunk
2006-11-01  3:15       ` Len Brown
2006-11-01  5:11         ` Ernst Herzberg
2006-11-01  5:26           ` Linus Torvalds
2006-11-01  5:54             ` Michael S. Tsirkin
2006-11-01  6:16               ` Linus Torvalds
2006-11-01 17:25                 ` Andi Kleen
2006-11-01 18:12                   ` Michael S. Tsirkin
2006-11-01 18:25                   ` Linus Torvalds
2006-11-01 19:33                     ` Michael S. Tsirkin
2006-11-01 19:44                       ` Linus Torvalds
2006-11-01 19:34                     ` Andi Kleen
2006-11-01 19:52                       ` Linus Torvalds
2006-11-01 21:15                         ` Andi Kleen
2006-11-01 22:35                 ` Bill Davidsen
2006-11-01  6:18               ` Michael S. Tsirkin
2006-11-01  9:33                 ` Pavel Machek
2006-11-01 12:02                   ` Michael S. Tsirkin
2006-11-01 17:17                 ` Andi Kleen
2006-11-01 13:50             ` Stefan Seyfried
2006-11-01 16:36       ` Hugh Dickins
2006-11-04  3:49       ` 2.6.19-rc <-> ThinkPads, summary Adrian Bunk
2006-11-04 13:51         ` Hugh Dickins
2006-11-04 14:04         ` Russell King
2006-11-05  6:23           ` Adrian Bunk
2006-11-07 20:06             ` Russell King
2006-11-07 20:19               ` Ernst Herzberg
  -- strict thread matches above, loose matches on Subject: below --
2006-10-28  8:23 [patch] drivers: wait for threaded probes between initcall levels Adam J. Richter
2006-10-28  9:22 ` Russell King
2006-10-28 12:10   ` Russell King
2006-10-28 19:41 ` Linus Torvalds
2006-10-28 23:50 Adam J. Richter
2006-10-28 23:55 ` Linus Torvalds
2006-10-30 14:23   ` Kyle Moffett
2006-10-30 14:38     ` Arjan van de Ven
2006-10-30 15:00       ` Xavier Bestel
2006-10-30 15:05         ` Arjan van de Ven
2006-10-30 15:28           ` Xavier Bestel
2006-10-30 18:56       ` Kyle Moffett
2006-10-30 14:42     ` Matthew Wilcox
2006-10-30 18:47       ` Kyle Moffett
2006-10-30 19:13         ` Matthew Wilcox
2006-10-31  5:39           ` Grant Grundler
2006-10-29 20:38 Adam J. Richter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox