28 Sep, 2006

19 commits

  • * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (48 commits)
    [PATCH] bonding: update version number
    [PATCH] git-netdev-all: pc300_tty build fix
    [PATCH] Make PC300 WAN driver compile again
    [PATCH] Modularize generic HDLC
    [PATCH] more s2io __iomem annotations
    [PATCH] restore __iomem annotations in e1000
    [PATCH] 64bit bugs in s2io
    [PATCH] bonding: Fix primary selection error at enslavement time
    [PATCH] bonding: Don't mangle LACPDUs
    [PATCH] bonding: Validate probe replies in ARP monitor
    [PATCH] bonding: Don't release slaves when master is admin down
    [PATCH] bonding: Add priv_flag to avoid event mishandling
    [PATCH] bonding: Handle large hard_header_len
    [PATCH] bonding: Remove unneeded NULL test
    [PATCH] bonding: Format fix in seq_printf call
    [PATCH] bonding: Convert delay value from s16 to int
    [PATCH] bonding: Allow bonding to enslave a 10 Gig adapter
    Delete unused drivers/net/gt64240eth.h
    [PATCH] skge: fiber support
    [PATCH] fix possible NULL ptr deref in forcedeth
    ...

    Linus Torvalds
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6: (129 commits)
    [PATCH] USB Storage: fix Rio Karma eject support build error
    USB: Airprime driver improvements to allow full speed EvDO transfers
    USB: remove OTG build warning
    USB: EHCI update VIA workaround
    USB: force root hub resume after power loss
    USB: ohci_usb can oops on shutdown
    USB: Dealias -110 code (more complete)
    USB: Remove unneeded void * casts in core files
    USB: u132-hcd: host controller driver for ELAN U132 adapter
    USB: ftdi-elan: client driver for ELAN Uxxx adapters
    usb serial: support Alcor Micro Corp. USB 2.0 TO RS-232 through pl2303 driver
    USB: Moschip 7840 USB-Serial Driver
    USB: add PlayStation 2 Trance Vibrator driver
    USB: Add ADU support for Ontrak ADU devices
    aircable: fix printk format warnings
    Add AIRcable USB Bluetooth Dongle Driver
    cypress_m8: implement graceful failure handling
    cypress_m8: improve control endpoint error handling
    cypress_m8: use usb_fill_int_urb where appropriate
    cypress_m8: use appropriate URB polling interval
    ...

    Linus Torvalds
     
  • The new code does clobber the result early, so make sure to tell
    gcc to not put it into the same register as a input argument

    Signed-off-by: Andi Kleen
    Cc: Andrew Morton
    Acked-by: Kyle McMartin
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • This patch (as739) adds the basic infrastructure for USB autosuspend
    and autoresume. The main features are:

    PM usage counters added to struct usb_device and struct
    usb_interface, indicating whether it's okay to autosuspend
    them or they are currently in use.

    Flag added to usb_device indicating whether the current
    suspend/resume operation originated from outside or as an
    autosuspend/autoresume.

    Flag added to usb_driver indicating whether the driver
    supports autosuspend. If not, no device bound to the driver
    will be autosuspended.

    Mutex added to usb_device for protecting PM operations.
    Unlike the device semaphore, the locking rule for the pm_mutex
    is that you must acquire the locks going _up_ the device tree.

    New routines handling autosuspend/autoresume requests for
    interfaces and devices.

    Suspend and resume requests are propagated up the device tree
    (but not outside the USB subsystem).

    work_struct added to usb_device, for carrying out delayed
    autosuspend requests.

    Autoresume added (and autosuspend prevented) during probe and
    disconnect.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This patch (as778) adds a field to struct usb_device to store the
    device's level in the USB tree. In itself this number isn't really
    important. But the overhead is very low, and in a later patch it will
    be used for preventing bogus warnings from the lockdep checker.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • As part of the ongoing program to flatten out the HCD bus-glue layer,
    this patch (as771b) eliminates the hcpriv, release, and kref fields
    from struct usb_bus. hcpriv and release were not being used for
    anything worthwhile, and kref has been moved into the enclosing
    usb_hcd structure.

    Along with those changes, the patch gets rid of usb_bus_get and
    usb_bus_put, replacing them with usb_get_hcd and usb_put_hcd.

    The one interesting aspect is that the dev_set_drvdata call was
    removed from usb_put_hcd, where it clearly doesn't belong. This means
    the driver private data won't get reset to NULL. It shouldn't cause
    any problems, since the private data is undefined when no driver is
    bound.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This patch (as770b) introduces a new field to usb_bus: a flag
    indicating whether or not the host controller uses DMA. This serves
    to encapsulate the computation. It also means we will have only one
    spot to update if the DMA API changes.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • All of the currently-supported USB host controller drivers use the HCD
    bus-glue framework. As part of the program for flattening out the glue
    layer, this patch (as769) removes the usb_operations structure. All
    function calls now go directly to the HCD routines (slightly renamed
    to remain within the "usb_" namespace).

    The patch also removes usb_alloc_bus(), because it's not useful in the
    HCD framework and it wasn't referenced anywhere.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • It's generally a bad idea for USB interface drivers to try to change a
    device's configuration, and usbcore doesn't provide any way for them
    to do it. However in a few exceptional circumstances it can make
    sense. This patch (as767) adds a roundabout mechanism to help drivers
    that may need it.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This patch marks some USB core's functions parameters as const. This
    improves the design (we're saying to the caller that its parameter is
    not going to be modified) and may help in compiler's optimisation work.

    Signed-off-by: Luiz Fernando N. Capitulino
    Signed-off-by: Greg Kroah-Hartman

    Luiz Fernando N. Capitulino
     
  • This changeset from Keith Bennett (via Bob Copeland) moves the Karma
    initializer to its own file and adds trapping of the START_STOP command to
    enable eject of the device.

    Signed-off-by: Keith Bennett
    Signed-off-by: Bob Copeland
    Signed-off-by: Matthew Dharm
    Signed-off-by: Greg Kroah-Hartman

    Matthew Dharm
     
  • These functions makes USB driver's code simpler when dealing with endpoints
    by avoiding them from accessing the endpoint's descriptor structure directly
    when they only need to know the endpoint's transfer type and/or
    direction.

    Please, read each functions' documentation in order to know how to use
    them.

    Signed-off-by: Luiz Fernando N. Capitulino
    Signed-off-by: Greg Kroah-Hartman

    Luiz Fernando N. Capitulino
     
  • include/linux/usb.h causes a lot of -Wshadow warnings - fix them.

    include/linux/usb.h:901: warning: declaration of 'complete' shadows a global declaration
    include/linux/completion.h:52: warning: shadowed declaration is here
    include/linux/usb.h:932: warning: declaration of 'complete' shadows a global declaration
    include/linux/completion.h:52: warning: shadowed declaration is here
    include/linux/usb.h:967: warning: declaration of 'complete' shadows a global declaration
    include/linux/completion.h:52: warning: shadowed declaration is here

    Signed-off-by: Jesper Juhl
    Signed-off-by: Greg Kroah-Hartman

    Jesper Juhl
     
  • This driver is glue between the USB gadget interface
    and the ALSA MIDI interface. It allows us to appear
    as a MIDI Streaming device to a host system on the
    other end of a USB cable.

    This includes linux/usb/audio.h and linux/usb/midi.h
    containing definitions from the relevant USB specifications
    for USB audio and USB MIDI devices.

    The following changes have been made since the first RFC
    posting:

    * Bug fixes to endpoint handling.
    * Workaround for USB_REQ_SET_CONFIGURATION handling,
    not understood yet.
    * Added SND and SND_RAWMIDI dependencies in Kconfig.
    * Moved usb_audio.h and usb_midi.h to usb/*.h
    * Added module parameters for ALSA card index and id.
    * Added module parameters for USB descriptor IDs and strings.
    * Removed some unneeded stuff inherited from zero.c, more to go.
    * Provide DECLARE_* macros for the variable-length structs.
    * Use kmalloc instead of usb_ep_alloc_buffer.
    * Limit source to 80 columns.
    * Return actual error code instead of -ENOMEM in a few places.

    Signed-off-by: Ben Williamson
    Cc: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Ben Williamson
     
  • Currently we rely on intf->dev.power.power_state.event for tracking
    whether intf is suspended. This is not a reliable technique because
    that value is owned by the PM core, not by usbcore. This patch (as718b)
    adds a new flag so that we can accurately tell which interfaces are
    suspended and which aren't.

    At first one might think these flags aren't needed, since interfaces
    will be suspended along with their devices. It turns out there are a
    couple of intermediate situations where that's not quite true, such as
    while processing a remote-wakeup request.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This patch (as732) adds a usb_device_driver structure, for representing
    drivers that manage an entire USB device as opposed to just an
    interface. Support routines like usb_register_device_driver,
    usb_deregister_device_driver, usb_probe_device, and usb_unbind_device
    are also added.

    Unlike an earlier version of this patch, the new code is type-safe. To
    accomplish this, the existing struct driver embedded in struct
    usb_driver had to be wrapped in an intermediate wrapper. This enables
    the core to tell at runtime whether a particular struct driver belongs
    to a device driver or to an interface driver.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This updates the PXA 25x UDC board-independent infrastructure for VBUS sensing
    and the D+ pullup. The original code evolved from rather bizarre support on
    Intel's "Lubbock" reference hardware, so that on more sensible hardware it
    doesn't work as well as it could/should.

    The change is just to teach the UDC driver how to use built-in PXA GPIO pins
    directly. This reduces the amount of board-specfic object code needed, and
    enables the use of a VBUS sensing IRQ on boards (like Gumstix) that have one.
    With VBUS sensing, the UDC is unclocked until a host is actually connected.

    Signed-off-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    David Brownell
     
  • Move to .

    Signed-off-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    David Brownell
     
  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
    [IA64] minor reformatting to vmlinux.lds.S
    [IA64] CMC/CPE: Reverse the order of fetching log and checking poll threshold
    [IA64] PAL calls need physical mode, stacked
    [IA64] ar.fpsr not set on MCA/INIT kernel entry
    [IA64] printing support for MCA/INIT
    [IA64] trim output of show_mem()
    [IA64] show_mem() printk levels
    [IA64] Make gp value point to Region 5 in mca handler
    Revert "[IA64] Unwire set/get_robust_list"
    [IA64] Implement futex primitives
    [IA64-SGI] Do not request DMA memory for BTE
    [IA64] Move perfmon tables from thread_struct to pfm_context
    [IA64] Add interface so modules can discover whether multithreading is on.
    [IA64] kprobes: fixup the pagefault exception caused by probehandlers
    [IA64] kprobe opcode 16 bytes alignment on IA64
    [IA64] esi-support
    [IA64] Add "model name" to /proc/cpuinfo

    Linus Torvalds
     

27 Sep, 2006

21 commits

  • * master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6: (108 commits)
    sh: Fix occasional flush_cache_4096() stack corruption.
    sh: Calculate shm alignment at runtime.
    sh: dma-mapping compile fixes.
    sh: Initial vsyscall page support.
    sh: Clean up PAGE_SIZE definition for assembly use.
    sh: Selective flush_cache_mm() flushing.
    sh: More intelligent entry_mask/way_size calculation.
    sh: Support for L2 cache on newer SH-4A CPUs.
    sh: Update kexec support for API changes.
    sh: Optimized readsl()/writesl() support.
    sh: Report movli.l/movco.l capabilities.
    sh: CPU flags in AT_HWCAP in ELF auxvt.
    sh: Add support for 4K stacks.
    sh: Enable /proc/kcore support.
    sh: stack debugging support.
    sh: select CONFIG_EMBEDDED.
    sh: machvec rework.
    sh: Solution Engine SH7343 board support.
    sh: SH7710VoIPGW board support.
    sh: Enable verbose BUG() support.
    ...

    Linus Torvalds
     
  • Add a version of __get_user() which is safe to call inside mmap_sem.

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Signed-off-by: Adrian Bunk
    Acked-by: Trond Myklebust
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • In de_thread we move pids from one process to another, a rather ugly case.
    The function transfer_pid makes it clear what we are doing, and makes the
    action atomic. This is useful we ever want to atomically traverse the
    process group and session lists, in a rcu safe manner.

    Even if the atomic properties this change should be a win as transfer_pid
    should be less code to execute than executing both attach_pid and
    detach_pid, and this should make de_thread slightly smaller as only a
    single function call needs to be emitted. The only downside is that the
    code might be slower to execute as the odds are against transfer_pid being
    in cache.

    Signed-off-by: Eric W. Biederman
    Cc: Oleg Nesterov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • The param section is an array of "kernel_param" structures, storing only
    constant data: pointer to name, permission of the variable pointed to by
    (void *)arg and pointers to set/get methods.

    Move end_rodata down to include __param section in the read-only range used
    by CONFIG_DEBUG_RODATA.

    Signed-off-by: Marcelo Tosatti
    Acked-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marcelo Tosatti
     
  • Add modalias attribute support for the almost forgotten now EISA bus and
    (at least some) EISA-aware modules.

    The modalias entry looks like (for an 3c509 NIC):

    eisa:sTCM5093

    and the in-module alias like:

    eisa:sTCM5093*

    The patch moves struct eisa_device_id declaration from include/linux/eisa.h
    to include/linux/mod_devicetable.h (so that the former now #includes the
    latter), adds proper MODULE_DEVICE_TABLE(eisa, ...) statements for all
    drivers with EISA IDs I found (some drivers already have that DEVICE_TABLE
    declared), and adds recognision of __mod_eisa_device_table to
    scripts/mod/file2alias.c so that proper modules.alias will be generated.

    There's no support for /lib/modules/$kver/modules.eisamap, as it's not used
    by any existing tools, and because with in-kernel modalias mechanism those
    maps are obsolete anyway.

    The rationale for this patch is:

    a) to make EISA bus to act as other busses with modalias
    support, to unify driver loading

    b) to foget about EISA finally - with this patch, kernel
    (who still supports EISA) will be the only one who knows
    how to choose the necessary drivers for this bus ;)

    [akpm@osdl.org: fix the kbuild bit]
    Signed-off-by: Michael Tokarev
    Cc: Rusty Russell
    Cc: Randy Dunlap
    Acked-the-net-bits-by: Jeff Garzik
    Acked-the-tulip-bit-by: Valerie Henson
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Tokarev
     
  • Consistently use MAX_ERRNO when checking for errors in __syscall_return().

    [ralf@linux-mips.org: build fix]
    Signed-off-by: Randy Dunlap
    Signed-off-by: Ralf Baechle
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • This eliminates the i_blksize field from struct inode. Filesystems that want
    to provide a per-inode st_blksize can do so by providing their own getattr
    routine instead of using the generic_fillattr() function.

    Note that some filesystems were providing pretty much random (and incorrect)
    values for i_blksize.

    [bunk@stusta.de: cleanup]
    [akpm@osdl.org: generic_fillattr() fix]
    Signed-off-by: "Theodore Ts'o"
    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Theodore Ts'o
     
  • Move the i_cdev pointer in struct inode into a union.

    Signed-off-by: "Theodore Ts'o"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Theodore Ts'o
     
  • Move the i_bdev pointer in struct inode into a union.

    Signed-off-by: "Theodore Ts'o"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Theodore Ts'o
     
  • Move the i_pipe pointer into a union that will be shared with i_bdev and
    i_cdev.

    Signed-off-by: "Theodore Ts'o"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Theodore Ts'o
     
  • The following patches reduce the size of the VFS inode structure by 28 bytes
    on a UP x86. (It would be more on an x86_64 system). This is a 10% reduction
    in the inode size on a UP kernel that is configured in a production mode
    (i.e., with no spinlock or other debugging functions enabled; if you want to
    save memory taken up by in-core inodes, the first thing you should do is
    disable the debugging options; they are responsible for a huge amount of bloat
    in the VFS inode structure).

    This patch:

    The filesystem or device-specific pointer in the inode is inside a union,
    which is pretty pointless given that all 30+ users of this field have been
    using the void pointer. Get rid of the union and rename it to i_private, with
    a comment to explain who is allowed to use the void pointer. This is just a
    cleanup, but it allows us to reuse the union 'u' for something something where
    the union will actually be used.

    [judith@osdl.org: powerpc build fix]
    Signed-off-by: "Theodore Ts'o"
    Signed-off-by: Judith Lebzelter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Theodore Ts'o
     
  • Resetting the devices during driver initialization can be a costly
    operation in terms of time (especially scsi devices). This option can be
    used by drivers to know that user forcibly wants the devices to be reset
    during initialization.

    This option can be useful while kernel is booting in unreliable
    environment. For ex. during kdump boot where devices are in unknown
    random state and BIOS execution has been skipped.

    Signed-off-by: Vivek Goyal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vivek Goyal
     
  • fork on UML has always somewhat subtle. The underlying cause has been the
    need to initialize a stack for the new process. The only portable way to
    initialize a new stack is to set it as the alternate signal stack and take a
    signal. The signal handler does whatever initialization is needed and jumps
    back to the original stack, where the fork processing is finished. The basic
    context switching mechanism is a jmp_buf for each process. You switch to a
    new process by longjmping to its jmp_buf.

    Now that UML has its own implementation of setjmp and longjmp, and I can poke
    around inside a jmp_buf without fear that libc will change the structure, a
    much simpler mechanism is possible. The jmpbuf can simply be initialized by
    hand.

    This eliminates -
    the need to set up and remove the alternate signal stack
    sending and handling a signal
    the signal blocking needed around the stack switching, since
    there is no stack switching
    setting up the jmp_buf needed to jump back to the original
    stack after the new one is set up

    In addition, since jmp_buf is now defined by UML, and not by libc, it can be
    embedded in the thread struct. This makes it unnecessary to have it exist on
    the stack, where it used to be. It also simplifies interfaces, since the
    switch jmp_buf used to be a void * inside the thread struct, and functions
    which took it as an argument needed to define a jmp_buf variable and assign it
    from the void *.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • The UML/x86_64 headers were missing ptrace support for some segment registers.
    The underlying problem was that the x86_64 kernel uses user_regs_struct
    rather than the ptrace register definitions in ptrace. This patch switches
    UML/x86_64 to using user_regs_struct for its definitions of the host's
    registers.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Signed-off-by: Hirokazu Takata
    Cc: Matthew Wilcox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hirokazu Takata
     
  • Fix to remove annoying gcc-4.1 warnings "value computed not used" for m32r;
    Modify set_mb to cast to void for SMP.

    Signed-off-by: Hirokazu Takata
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hirokazu Takata
     
  • Move the fallback arch_vma_name() to a sensible place (kernel/signal.c).

    Currently it's in fs/proc/task_mmu.c, a file that is dependent on both
    CONFIG_PROC_FS and CONFIG_MMU being enabled, but it's used from
    kernel/signal.c from where it is called unconditionally.

    [akpm@osdl.org: build fix]
    Signed-off-by: David Howells
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Implement /proc/pid/maps for NOMMU by reading the vm_area_list attached to
    current->mm->context.vmlist.

    Signed-off-by: David Howells
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Set the backing device info capabilities for /dev/mem and /dev/kmem to
    permit direct sharing under no-MMU conditions and full mapping capabilities
    under MMU conditions. Make the BDI used by these available to all directly
    mappable character devices.

    Also comment the capabilities for /dev/zero.

    [akpm@osdl.org: ifdef reductions]
    Signed-off-by: David Howells
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • The function is exported but not used from anywhere else. It's also marked as
    "not for driver use" so noone out there should really care.

    Signed-off-by: Rolf Eike Beer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rolf Eike Beer