01 May, 2010

40 commits

  • Implement an alternate percpu chunk management based on kernel memeory
    for nommu SMP architectures. Instead of mapping into vmalloc area,
    chunks are allocated as a contiguous kernel memory using
    alloc_pages(). As such, percpu allocator on nommu will have the
    following restrictions.

    * It can't fill chunks on-demand page-by-page. It has to allocate
    each chunk fully upfront.

    * It can't support sparse chunk for NUMA configurations. SMP w/o mmu
    is crazy enough. Let's hope no one does NUMA w/o mmu. :-P

    * If chunk size isn't power-of-two multiple of PAGE_SIZE, the
    unaligned amount will be wasted on each chunk. So, archs which use
    this better align chunk size.

    For instructions on how to use this, read the comment on top of
    mm/percpu-km.c.

    Signed-off-by: Tejun Heo
    Reviewed-by: David Howells
    Cc: Graff Yang
    Cc: Sonic Zhang

    Tejun Heo
     
  • Separate out and move chunk management (creation/desctruction and
    [de]population) code into percpu-vm.c which is included by percpu.c
    and compiled together. The interface for chunk management is defined
    as follows.

    * pcpu_populate_chunk - populate the specified range of a chunk
    * pcpu_depopulate_chunk - depopulate the specified range of a chunk
    * pcpu_create_chunk - create a new chunk
    * pcpu_destroy_chunk - destroy a chunk, always preceded by full depop
    * pcpu_addr_to_page - translate address to physical address
    * pcpu_verify_alloc_info - check alloc_info is acceptable during init

    Other than wrapping vmalloc_to_page() inside pcpu_addr_to_page() and
    dummy pcpu_verify_alloc_info() implementation, this patch only moves
    code around. This separation is to allow alternate chunk management
    implementation.

    Signed-off-by: Tejun Heo
    Reviewed-by: David Howells
    Cc: Graff Yang
    Cc: Sonic Zhang

    Tejun Heo
     
  • Make the following misc preparations for percpu nommu support.

    * Remove refernces to vmalloc in common comments as nommu percpu won't
    use it.

    * Rename chunk->vms to chunk->data and make it void *. Its use is
    determined by chunk management implementation.

    * Relocate utility functions and add __maybe_unused to functions which
    might not be used by different chunk management implementations.

    This patch doesn't cause any functional change. This is to allow
    alternate chunk management implementation for percpu nommu support.

    Signed-off-by: Tejun Heo
    Reviewed-by: David Howells
    Cc: Graff Yang
    Cc: Sonic Zhang

    Tejun Heo
     
  • Reorganize alloc/free_pcpu_chunk() such that chunk struct alloc/free
    live in pcpu_alloc/free_chunk() and the rest in
    pcpu_create/destroy_chunk(). While at it, add missing error handling
    for chunk->map allocation failure.

    This is to allow alternate chunk management implementation for percpu
    nommu support.

    Signed-off-by: Tejun Heo
    Reviewed-by: David Howells
    Cc: Graff Yang
    Cc: Sonic Zhang

    Tejun Heo
     
  • Factor out pcpu_addr_in_first/reserved_chunk() from
    pcpu_chunk_addr_search() and use it to update per_cpu_ptr_to_phys()
    such that it handles first chunk differently from the rest.

    This patch doesn't cause any functional change and is to prepare for
    percpu nommu support.

    Signed-off-by: Tejun Heo
    Reviewed-by: David Howells
    Cc: Graff Yang
    Cc: Sonic Zhang

    Tejun Heo
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6:
    Staging: vme: Re-introduce necessary brackets
    Staging: iio: fix up the iio_get_new_idr_val comment
    Staging: add Add Sitecom WL-349 to rtl8192su
    Staging: rt2860: add Belkin F5D8055 Wireless-N USB Dongle device id
    staging: rtl8192su: add Support for Belkin F5D8053 v6
    Staging: dt3155: fix 50Hz configuration
    staging: usbip: Fix deadlock
    Staging: rtl8192su: add USB ID for 0bda:8171
    Staging: hv: name network device ethX rather than sethX
    Staging: hv: Fix up memory leak on HvCleanup
    Staging: hv: Fix a bug affecting IPv6
    staging: iio: ring_sw: Fix incorrect test on successful read of last value, causes infinite loop
    staging: iio: Function iio_get_new_idr_val() return negative value if fails.
    Staging: iio: adc: fix dangling pointers
    Staging: iio: light: fix dangling pointers
    Staging: iio: test for failed allocation
    staging: iio: lis3l02dq - incorrect ws used in container of call.

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6:
    serial: drivers/serial/pmac_zilog.c: add missing unlock
    serial: 8250_pnp - add Fujitsu Wacom device
    tty: Fix regressions in the char driver conversion

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (29 commits)
    USB: sl811-hcd: Fix device disconnect
    USB: ohci-at91: fix power management hanging
    USB: rename usb_buffer_alloc() and usb_buffer_free()
    USB: ti_usb: fix printk format warning
    USB: gadget: s3c-hsotg: Add missing unlock
    USB: fix build on OMAPs if CONFIG_PM_RUNTIME is not set
    USB: oxu210hp: release spinlock on error path
    USB: serial: option: add cinterion device id
    USB: serial: option: ZTEAC8710 Support with Device ID 0xffff
    USB: serial: pl2303: Hybrid reader Uniform HCR331
    USB: option: add ID for ZTE MF 330
    USB: xhci: properly set endpoint context fields for periodic eps.
    USB: xhci: properly set the "Mult" field of the endpoint context.
    USB: OHCI: don't look at the root hub to get the number of ports
    USB: don't choose configs with no interfaces
    USB: cdc-acm: add another device quirk
    USB: fix testing the wrong variable in fs_create_by_name()
    usb: Fix tusb6010 for DMA API
    musb_core: fix musb_init_controller() error cleanup path
    MUSB: fix DaVinci glue layer dependency
    ...

    Linus Torvalds
     
  • Correct two mishaps which prevented reporting error type (CECC vs UECC)
    and extended error description.

    Cc: # 32.x, 33.x
    Signed-off-by: Borislav Petkov
    Signed-off-by: Linus Torvalds

    Borislav Petkov
     
  • CONFIG_INOTIFY_USER defined but CONFIG_ANON_INODES undefined will result
    in the following build failure:

    LD vmlinux
    fs/built-in.o: In function 'sys_inotify_init1':
    (.text.sys_inotify_init1+0x22c): undefined reference to 'anon_inode_getfd'
    fs/built-in.o: In function `sys_inotify_init1':
    (.text.sys_inotify_init1+0x22c): relocation truncated to fit: R_MIPS_26 against 'anon_inode_getfd'
    make[2]: *** [vmlinux] Error 1
    make[1]: *** [sub-make] Error 2
    make: *** [all] Error 2

    Signed-off-by: Ralf Baechle
    Cc: Al Viro
    Signed-off-by: Linus Torvalds

    Ralf Baechle
     
  • * 'merge' of git://git.secretlab.ca/git/linux-2.6:
    spi: spidev_test gives error upon 1-byte transfer
    omap2_mcspi: small fixes of output data format
    omap2_mcspi: Flush posted writes
    spi: spi_device memory should be released instead of device.
    spi: release device claimed by bus_find_device_by_name
    of: check for IS_ERR()
    serial/mpc52xx_uart: Drop outdated comments
    gpio: potential null dereference

    Linus Torvalds
     
  • Somehow I managed to remove a set of rather necessary brackets in commit
    29848ac9f3b33bf171439ae2d66d40e6a71446c4. Put them back.

    Signed-off-by: Martyn Welch
    Signed-off-by: Greg Kroah-Hartman

    Martyn Welch
     
  • improve the comment a bit

    Cc: Greg KH
    Cc: Jonathan Cameron
    Cc: Sonic Zhang
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Andrew Morton
     
  • Add usb id of Sitecom WL-349 to rtl8192su

    Signed-off-by: Rodrigo Linfati
    Signed-off-by: Greg Kroah-Hartman

    Rodrigo Linfati
     
  • Add Belkin F5D8055 Wireless-N USB support to the rt2870
    staging driver.

    Signed-off-by: Chris Largret
    Signed-off-by: Greg Kroah-Hartman

    Chris Largret
     
  • Please find attached a patch which adds the device ID for the Belkin
    F5D8053 v6 to the rtl8192su driver. I've tested this in 2.6.34-rc3
    (Ubuntu 9.10 amd64) and the network adapter is working flawlessly.

    Signed-off-by: Richard Airlie
    Signed-off-by: Greg Kroah-Hartman

    Richard Airlie
     
  • According to the header file, dt3155_io.h, the 50/60 Hz configuration
    is controlled by a bit in the I2C CSR2 register (bit 2). The function
    dt3155_init_isr actually reads the I2C CONFIG register into the global
    I2C_CSR union variable then modifies the bit. It then does a write
    to the I2C CONFIG register with the global I2C_CONFIG union variable
    which is not even set with a value anywhere in the driver.

    My guess is 50Hz operation doesn't even work as-is.

    Fix this by actually reading and writing the correct register with
    the correct value.

    Signed-off-by: H Hartley Sweeten
    Cc: Simon Horman
    Signed-off-by: Greg Kroah-Hartman

    H Hartley Sweeten
     
  • When detaching a port from the client side (usbip --detach 0),
    the event thread, on the server side, is going to deadlock.
    The "eh" server thread is getting USBIP_EH_RESET event and calls:
    -> stub_device_reset() -> usb_reset_device()
    the USB framework is then calling back _in the same "eh" thread_ :
    -> stub_disconnect() -> usbip_stop_eh() -> wait_for_completion()
    the "eh" thread is being asleep forever, waiting for its own completion.
    This patch checks if "eh" is the current thread, in usbip_stop_eh().

    Signed-off-by: Eric Lescouet
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Eric Lescouet
     
  • Signed-off-by: Pavel Roskin
    Signed-off-by: Greg Kroah-Hartman

    Pavel Roskin
     
  • This patch makes the HyperV network device use the same naming scheme as
    other virtual drivers (Xen, KVM). In an ideal world, userspace tools
    would not care what the name is, but some users and applications do
    care. Vyatta CLI is one of the tools that does depend on what the name
    is.

    Signed-off-by: Stephen Hemminger
    Cc: Hank Janssen
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Stephen Hemminger
     
  • Don't assign NULL too early

    Signed-off-by: Cyrill Gorcunov
    Cc: Hank Janssen
    Cc: Haiyang Zhang
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Cyrill Gorcunov
     
  • Fix a bug affecting IPv6
    Added the multicast flag for proper IPv6 function.

    Reported-by: Toshikazu Sakai
    Signed-off-by: Hank Janssen
    Signed-off-by: Haiyang Zhang
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Haiyang Zhang
     
  • This is a bad one. The test means that almost no reads of the last
    value ever succeed! Result is an infinite loop.

    Another one for the 'oops' category.

    Signed-off-by: Jonathan Cameron
    Signed-off-by: Greg Kroah-Hartman

    Jonathan Cameron
     
  • Function iio_get_new_idr_val() return negative value if fails.
    So, only error when ret < 0 in iio_device_register_eventset().

    Signed-off-by: Sonic Zhang
    Acked-by: Jonathan Cameron
    Signed-off-by: Greg Kroah-Hartman

    Sonic Zhang
     
  • Fix I2C-drivers which missed setting clientdata to NULL before freeing the
    structure it points to. Also fix drivers which do this _after_ the structure
    was freed already.

    Signed-off-by: Wolfram Sang
    Acked-by: Jonathan Cameron
    Signed-off-by: Greg Kroah-Hartman

    Wolfram Sang
     
  • Fix I2C-drivers which missed setting clientdata to NULL before freeing the
    structure it points to. Also fix drivers which do this _after_ the structure
    was freed already.

    Signed-off-by: Wolfram Sang
    Acked-by: Jonathan Cameron
    Signed-off-by: Greg Kroah-Hartman

    Wolfram Sang
     
  • We should return test to see if iio_allocate_trigger() fails and return -ENOMEM.

    Signed-off-by: Dan Carpenter
    Acked-by: Jonathan Cameron
    Signed-off-by: Greg Kroah-Hartman

    Dan Carpenter
     
  • The word oops comes to mind. Original patch to merge the two work queues
    in here (prior to Greg taking them into staging) changed the top half to
    only use one of them and the bottom half to assume it was the other.

    Currently causes a NULL pointer dereference if you enable any of the events
    on an lis3l02dq. Just goes to show I need a few more regression tests.

    Signed-of-by: Jonathan Cameron
    Signed-off-by: Greg Kroah-Hartman

    Jonathan Cameron
     
  • A while ago I provided a patch that fixed device detection after device
    removal (USB: sl811-hcd: Fix device disconnect).
    Chris Brissette pointed out that the detection/removal counter method
    to distinguish insert or remove my fail under certain conditions.
    Latest SL811HS datasheet (Document 38-08008 Rev. *D) indicates that
    bit 6 (SL11H_INTMASK_RD) of the Interrupt Status Register together with
    bit 5 (SL11H_INTMASK_INSRMV) can be used to determine whether a device
    has been inserted or removed.

    Signed-off-by: Michael Hennerich
    Signed-off-by: Mike Frysinger
    Signed-off-by: Greg Kroah-Hartman

    Michael Hennerich
     
  • A hanging has been detected in ohci-at91 while going in suspend to ram. This is
    due to asynchronous operations between ohci reset and ohci clocks shutdown.
    This patch adds the reading of the control register between the reset of the
    ohci and clocks stop. This "flush the writes" idea was taken from ohci-hcd.c
    file (ohci_shutdown() function).

    Signed-off-by: Patrice Vilchez
    Signed-off-by: Nicolas Ferre
    Signed-off-by: Greg Kroah-Hartman

    Patrice Vilchez
     
  • For more clearance what the functions actually do,

    usb_buffer_alloc() is renamed to usb_alloc_coherent()
    usb_buffer_free() is renamed to usb_free_coherent()

    They should only be used in code which really needs DMA coherency.

    [added compatibility macros so we can convert things easier - gregkh]

    Signed-off-by: Daniel Mack
    Cc: Alan Stern
    Cc: Pedro Ribeiro
    Signed-off-by: Greg Kroah-Hartman

    Daniel Mack
     
  • Fix printk format warning in usbserial/ti_usb:

    drivers/usb/serial/ti_usb_3410_5052.c:1738: warning: format '%d' expects type 'int', but argument 5 has type 'size_t'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Greg Kroah-Hartman

    Randy Dunlap
     
  • In an error handling case the lock is not unlocked. The return is
    converted to a goto, to share the unlock at the end of the function.

    A simplified version of the semantic patch that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    @r exists@
    expression E1;
    identifier f;
    @@

    f (...) { }
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Greg Kroah-Hartman

    Julia Lawall
     
  • With patch as1329 (USB: convert to the runtime PM framework),
    we make USB_SUSPEND depend on PM_RUNTIME instead of CONFIG_PM.

    Also, CONFIG_USB_OTG selects CONFIG_USB_SUSPEND.

    If PM_RUNTIME is not enabled, and we try to enable USB_OTG,
    we will end up with CONFIG_USB_SUSPEND selected. This is
    due to a known bug with the select statement.

    This makes the build break on various OMAP configs (which
    have CONFIG_USB_OTG set by default, but do not yet have
    CONFIG_PM_RUNTIME enabled).

    Avoid this by changing the logic for CONFIG_USB_OTG from
    "select USB_SUSPEND" to "depends on USB_SUSPEND"

    Signed-off-by: Anand Gadiyar
    CC: Michal Marek
    CC: Tony Lindgren
    CC: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Anand Gadiyar
     
  • Smatch complained about this missing spinlock.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Greg Kroah-Hartman

    Dan Carpenter
     
  • This adds a device id for a Cinterion device.

    Reported-by: John Race
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • PATCH TO EXTEND SUPPORT TO AC8710 WITH 0xFFFF Product ID.

    Signed-off-by: Mahesh Kuruganti
    Signed-off-by: Greg Kroah-Hartman

    Mahesh Kuruganti
     
  • I tried a magnetic stripe reader
    (http://www.kimaldi.com/kimaldi_eng/productos/lectores_de_tarjetas/lectores_tarjeta_chip_y_dni/lector_hibrido_uniform_hcr_331)
    and I see that it is interfaced with a PL2303. I wrote a patch to use
    your driver which simply adds the product ID for the device and it
    seems working fine.

    From: Simone Contini
    Signed-off-by: Greg Kroah-Hartman

    Simone Contini
     
  • Based on the information provided for by Paweł Drobek, add
    a second vendor ID and the correct product ID for ZTE MF 330.

    Reported-by: Paweł Drobek
    Signed-off: Dominik Brodowski
    Signed-off-by: Greg Kroah-Hartman

    Dominik Brodowski
     
  • For periodic endpoints, we must let the xHCI hardware know the maximum
    payload an endpoint can transfer in one service interval. The xHCI
    specification refers to this as the Maximum Endpoint Service Interval Time
    Payload (Max ESIT Payload). This is used by the hardware for bandwidth
    management and scheduling of packets.

    For SuperSpeed endpoints, the maximum is calculated by multiplying the max
    packet size by the number of bursts and the number of opportunities to
    transfer within a service interval (the Mult field of the SuperSpeed
    Endpoint companion descriptor). Devices advertise this in the
    wBytesPerInterval field of their SuperSpeed Endpoint Companion Descriptor.

    For high speed devices, this is taken by multiplying the max packet size by the
    "number of additional transaction opportunities per microframe" (the high
    bits of the wMaxPacketSize field in the endpoint descriptor).

    For FS/LS devices, this is just the max packet size.

    The other thing we must set in the endpoint context is the Average TRB
    Length. This is supposed to be the average of the total bytes in the
    transfer descriptor (TD), divided by the number of transfer request blocks
    (TRBs) it takes to describe the TD. This gives the host controller an
    indication of whether the driver will be enqueuing a scatter gather list
    with many entries comprised of small buffers, or one contiguous buffer.

    It also takes into account the number of extra TRBs you need for every TD.
    This includes No-op TRBs and Link TRBs used to link ring segments
    together. Some drivers may choose to chain an Event Data TRB on the end
    of every TD, thus increasing the average number of TRBs per TD. The Linux
    xHCI driver does not use Event Data TRBs.

    In theory, if there was an API to allow drivers to state what their
    bandwidth requirements are, we could set this field accurately. For now,
    we set it to the same number as the Max ESIT payload.

    The Average TRB Length should also be set for bulk and control endpoints,
    but I have no idea how to guess what it should be.

    Signed-off-by: Sarah Sharp
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Sarah Sharp