24 Jun, 2008

3 commits


30 May, 2008

37 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (26 commits)
    llc: Fix double accounting of received packets
    netfilter: nf_conntrack_expect: fix error path unwind in nf_conntrack_expect_init()
    bluetooth: fix locking bug in the rfcomm socket cleanup handling
    mac80211: fix alignment issue with compare_ether_addr()
    mac80211: Fix for NULL pointer dereference in sta_info_get()
    mac80211: fix a typo in ieee80211_handle_filtered_frame comment
    rndis_wlan: add missing range check for power_output modparam
    iwlwifi: fix rate scale TLC column selection bug
    iwlwifi: fix exit from stay_in_table state
    rndis_wlan: Make connections to TKIP PSK networks work
    mac80211 : Fixes the status message for iwconfig
    rt2x00: Use atomic interface iteration in irq context
    rt2x00: Reset antenna RSSI after switch
    rt2x00: Don't count retries as failure
    rt2x00: Fix memleak in tx() path
    mac80211: reorder channel and freq reporting in wext scan report
    b43: Fix controller restart crash
    mac80211: fix ieee80211_rx_bss_put/get imbalance
    net/mac80211: always true conditionals
    b43: Upload both beacon templates on initial load
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
    [S390] Update default configuration.
    [S390] disassembler: fix idte instruction format.
    [S390] tape: fix race with stack local wait_queue_head_t.
    [S390] 3270: fix race with stack local wait_queue_head_t.
    [S390] dasd: use a generic wait_queue for sleep_on
    [S390] sclp_vt220: fix scheduling while atomic bug.
    [S390] showmem: Only walk spanned pages.
    [S390] appldata: prevent cpu hotplug when walking cpu_online_map.
    [S390] Fix section mismatch warnings.
    [S390] s390 types: make dma_addr_t 64 bit capable
    [S390] tape: Fix race condition in tape block device driver
    [S390] fix sparsemem related compile error with allnoconfig on s390

    Linus Torvalds
     
  • In this case we want a constant pointer to constant chars:

    drivers/misc/thinkpad_acpi.c:3824:19: error: Just how const do you want this type to be?

    Like the error says.

    drivers/misc/thinkpad_acpi.c:3863:19: error: Just how const do you want this type to be?
    drivers/misc/thinkpad_acpi.c:3864:19: error: Just how const do you want this type to be?
    drivers/misc/thinkpad_acpi.c:3865:19: error: Just how const do you want this type to be?
    drivers/misc/thinkpad_acpi.c:3866:19: error: Just how const do you want this type to be?

    Signed-off-by: Harvey Harrison
    Acked-by: Henrique de Moraes Holschuh
    Signed-off-by: Linus Torvalds

    Harvey Harrison
     
  • llc_sap_rcv was being preceded by skb_set_owner_r, then calling
    llc_state_process that calls sock_queue_rcv_skb, that in turn calls
    skb_set_owner_r again making the space allowed to be used by the socket to be
    leaked, making the socket to get stuck.

    Fix it by setting skb->sk at llc_sap_rcv and leave the accounting to be done
    only at sock_queue_rcv_skb.

    Reported-by: Dmitry Petukhov
    Tested-by: Dmitry Petukhov
    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Arnaldo Carvalho de Melo
     
  • Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • The correct instruction format of idte is "idte r1,r3,r2" with
    r1 at bit 24, r3 at bit 16 and r2 at bit 28.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • A wait_event call with a stack local wait_queue_head_t structure that is
    used to do the wake up for the wait_event is inherently racy. After the
    wait_event finished the wake_up call might not have completed yet.
    Replace the stack local wait_queue_head_t in tape_do_io and
    tape_do_io_interruptible with a per device wait queue.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • A wait_event call with a stack local wait_queue_head_t structure that is
    used to do the wake up for the wait_event is inherently racy. After the
    wait_event finished the wake_up call might not have completed yet.
    Remove the stack local wait_queue_head_t from raw3270_start_init and
    use the global raw3270_wait_queue instead.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • Use a generic wait_queue to prevent the wait_queue in dasd_sleep_on_
    functions from being referenced by callback_data while it does not
    exist any more.

    Signed-off-by: Stefan Haberland
    Signed-off-by: Martin Schwidefsky

    Stefan Haberland
     
  • The driver incorrectly assumed that putchar will only be called from
    schedulable process context and therefore blocked and waited if no
    free output buffers where available.
    Since putchar may also be called from BH context this may lead to
    deadlocks.
    To fix this just return the number of characters accepted and let the
    upper layer handle the rest.

    The console write function will busy wait (sclp_sync_wait) until a
    buffer is available again.

    Cc: Peter Oberparleiter
    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • Convert show_mem() so its nearly the same as on x86/powerpc.
    Gives us proper locking and we get also rid of the only use of max_mapnr.
    Also the number of pages was contained in an int which might not be
    sufficient not too far in the future.

    Cc: Johannes Weiner
    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • Use get_online_cpus() to prevent cpu hotplug in situations where
    for_each_online_cpu() is called.

    Signed-off-by: Gerald Schaefer
    Signed-off-by: Martin Schwidefsky

    Gerald Schaefer
     
  • This fixes the last remaining section mismatch warnings in s390
    architecture code. It reveals also a real bug introduced by... me
    with git commit 2069e978d5a6e7b45d58027e3de7f879b8c5e488
    ("[S390] sparsemem vmemmap: initialize memmap.")

    Calling the generic vmemmap_alloc_block() function to get initialized
    memory is a nice idea, however that function is __meminit annotated
    and therefore the function might be gone if we try to call it later.
    This can happen if a DCSS segment gets added.

    So basically revert the patch and clear the memmap explicitly to fix
    the original bug.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • virtio tests with guests larger than 4 GB revealed that the dma_addr_t
    definition for s390 did not make it into the 64bit world.
    This patch changes the definition on s390 to have an u64 on 64bit and
    u32 on 32bit systems.

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Martin Schwidefsky

    Christian Borntraeger
     
  • Due to incorrect function call sequence it can happen that a tape block
    request is finished before the request is taken from the block request queue.

    The following sequence leads to that condition:
    * tapeblock_start_request() -> start CCW program
    * Request finishes -> IO interrupt
    * tapeblock_end_request()
    * end_that_request_last()

    If blkdev_dequeue_request() has not been called before end_that_request_last(),
    a kernel bug is triggered in end_that_request_last() because the request is
    still queued. To solve that problem blkdev_dequeue_request() has to be called
    before starting the CCW program.

    Signed-off-by: Michael Holzheu
    Signed-off-by: Martin Schwidefsky

    Michael Holzheu
     
  • On s390 make allnoconfig fails with the following build error:

    arch/s390/mm/init.c: In function 'show_mem':
    arch/s390/mm/init.c:55: error: implicit declaration of function 'pfn_valid'
    make[1]: *** [arch/s390/mm/init.o] Error 1
    make: *** [arch/s390/mm] Error 2

    This problem can by fixed ensuring that ARCH_SELECT_MEMORY_MODEL
    is always turned on.

    Signed-off-by: Hans-Joachim Picht
    Signed-off-by: Martin Schwidefsky

    Hans-Joachim Picht
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6:
    driver-core: prepare for 2.6.27 api change by adding dev_set_name

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
    Revert "USB: EHCI: fix performance regression"
    USB: fsl_usb2_udc: fix recursive lock
    USB: usb-serial: option: Don't match Huawei driver CD images
    USB: pl2303: another product ID
    USB: add another scanner quirk
    USB: Add support for ROKR W5 in unusual_devs.h
    USB: Fix M600i unusual_devs entry
    USB: usb-storage: unusual_devs update for Cypress ATACB
    USB: EHCI: fix performance regression
    USB: EHCI: fix bug in Iso scheduling
    USB: EHCI: fix remote-wakeup regression
    USB: EHCI: suppress unwanted error messages
    USB: EHCI: fix up root-hub TT mess
    USB: add all configs to the "descriptors" attribute
    USB: fix possible deadlock involving sysfs attributes
    USB: Firmware loader driver for USB Apple iSight camera
    USB: FTDI_SIO : Add support for Matrix Orbital PID Range

    Linus Torvalds
     
  • Create the dev_set_name function now so that various subsystems can
    start changing over to it before other changes in 2.6.27 will make it
    compulsory.

    Cc: Kay Sievers
    Signed-off-by: Stephen Rothwell
    Signed-off-by: Greg Kroah-Hartman

    Stephen Rothwell
     
  • This reverts commit fa38dfcc56b5f6cce787f9aaa5d1830509213802.

    It wasn't really a regression and David and Alan are still working
    through the issues reported.

    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • UDC needs to release lock before calling out to gadget driver, since
    it may need to reenter. The change fixes kernel BUG observed on rt
    kernel.

    > kernel BUG at kernel/rtmutex.c:683!
    > stopped custom tracer.
    > Oops: Exception in kernel mode, sig: 5 [#1]
    > PREEMPT MPC834x ITX
    > NIP: c021629c LR: c0216270 CTR: 00000000
    > REGS: df761d70 TRAP: 0700 Not tainted (2.6.23.9-rt13)
    > MSR: 00021032 CR: 28000022 XER: 00000000
    > TASK = df632080[241] 'IRQ-38' THREAD: df760000
    > GPR00: 00000001 df761e20 df632080 00000000 11111111 00000000 df761e6c
    > 00000000
    > GPR08: df761e48 00000000 df761e50 00000000 80000000 ede5cdde 1fffd000
    > 00800000
    > GPR16: ffffffff 00000000 007fff00 00000040 00000000 007ffeb0 00000000
    > 1fff8b08
    > GPR24: 00000000 00000026 00000000 df79a320 c026b2e8 c02240bc 00009032
    > df79a320
    > NIP [c021629c] rt_spin_lock_slowlock+0x9c/0x200
    > LR [c0216270] rt_spin_lock_slowlock+0x70/0x200
    > Call Trace:
    > [df761e20] [c0216270] rt_spin_lock_slowlock+0x70/0x200 (unreliable)
    > [df761e90] [c0182828] fsl_ep_disable+0xcc/0x154
    > [df761eb0] [c0184d30] eth_reset_config+0x88/0x1d0
    > [df761ed0] [c0184ec0] eth_disconnect+0x48/0x64
    > [df761ef0] [c01831a4] reset_queues+0x60/0x78
    > [df761f00] [c0183b74] fsl_udc_irq+0x9b8/0xa58
    > [df761f50] [c003ef30] handle_IRQ_event+0x64/0x100
    > [df761f80] [c003f758] thread_simple_irq+0x6c/0xc8
    > [df761fa0] [c003f888] do_irqd+0xd4/0x2e4
    > [df761fd0] [c0032284] kthread+0x50/0x8c
    > [df761ff0] [c000f9b4] kernel_thread+0x44/0x60

    Signed-off-by: Li Yang
    Cc: Eugene T. Bordenkircher
    Acked-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Li Yang
     
  • Add the interface info matching to all Huawei cards, as they all also
    contain a Mass Storage Device interface (usually containing Windows
    drivers) which should not get bound by this driver.

    See also drivers/usb/storage/unusual_devs.h

    Signed-off-by: Michael Karcher
    Signed-off-by: Greg Kroah-Hartman

    Michael Karcher
     
  • I've just got a USB GPRS/EDGE modem branded Manufacturer Micromax Model
    MMX610U (see http://www.airtel.in/level2_t3data.aspx?path=1/106/179)
    working by adding another product ID to pl2303. Modem info reports same
    module as Max Arnold's i.e.SIMCOM SIM600 but with product ID 0x0612
    (cf Ox0611).

    From: Steve Murphy
    Signed-off-by: Greg Kroah-Hartman

    Steve Murphy
     
  • Like the HP53{00,70} scanner other devices of the OEM Avision require
    the USB_QUIRK_STRING_FETCH_255 to correct set a configuration with
    "recent" Linux kernels.

    Signed-off-by: René Rebe
    Signed-off-by: Greg Kroah-Hartman

    René Rebe
     
  • This patch adds support for rev 2 of an existing unusual_devs entry
    enabling ROKR W5s to work. Greg, please apply.

    From: Javier Smaldone
    Signed-off-by: Phil Dibowitz
    Signed-off-by: Greg Kroah-Hartman

    Javier Smaldone
     
  • It turns out that the unusual_devs entry for the Motorola M600i needs
    another flag. This patch adds it. Thanks to Atte André Jensen
    .

    Signed-off-by: Phil Dibowitz
    Signed-off-by: Greg Kroah-Hartman

    Phil Dibowitz
     
  • This patch (as1101) updates the unusual_devs entry for the Cypress
    ATACB pass-through. The protocol field is changed from US_PR_BULK to
    US_PR_DEVICE, since the Cypress devices already set bInterfaceProtocol
    to Bulk-only.

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

    Alan Stern
     
  • This patch (as1099) fixes a performance regression in ehci-hcd. The
    fundamental problem is that queue headers get removed from the
    schedule too quickly, since the code checks for a counter advancing
    rather than making an actual time-based check. The latency involved
    in removing the queue header and then relinking it can severely
    degrade certain kinds of workloads.

    The patch replaces a simple counter with a timestamp derived from the
    controller's uframe value. In addition, the delay for unlinking an
    idle queue header is increased from 5 ms to 10 ms; since some
    controllers (nVidia) have a latency of up to 1 ms for unlinking, this
    reduces the relative impact from 20% to 10%.

    Finally, a logical error left over from the IAA watchdog-timer
    conversion is corrected. Now the driver will always either unlink an
    idle queue header or set up a timer to unlink it later. The old code
    would sometimes fail to do either.

    Signed-off-by: Alan Stern
    Cc: David Brownell
    Cc: Leonid
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This patch (as1098) changes the way ehci-hcd schedules its periodic
    Iso transfers. That the current scheduling code is wrong is clear on
    the face of it: Sometimes it returns -EL2NSYNC (meaning that an URB
    couldn't be scheduled because it was submitted too late), but it does
    this even when the URB_ISO_ASAP flag is set (meaning the URB should be
    scheduled as soon as possible).

    The new code properly implements as-soon-as-possible scheduling,
    assigning the next unexpired slot as the URB's starting point. It
    also is more careful about checking for Iso URB completion: It doesn't
    bother to check for activity during frames that are already over,
    and it allows for the possibility that some of the URB's packets may
    have raced the hardware when they were submitted and so never got used
    (the packet status is set to -EXDEV).

    This fixes problems several people have experienced with USB video
    applications.

    Signed-off-by: Alan Stern
    Acked-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This patch (as1097) fixes a bug in the remote-wakeup handling in
    ehci-hcd. The driver currently does not keep track of whether the
    change-suspend feature is enabled for each port; the feature is
    automatically reset the first time it is read. But recent changes to
    the hub driver require that the feature be read at least twice in
    order to work properly.

    A bit-vector is added for storing the change-suspend feature values.

    Signed-off-by: Alan Stern
    Acked-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This patch (as1096) fixes an annoying problem: When a full-speed or
    low-speed device is plugged into an EHCI controller, it fails to
    enumerate at high speed and then is handed over to the companion
    controller. But usbcore logs a misleading and unwanted error message
    when the high-speed enumeration fails.

    The patch adds a new HCD method, port_handed_over, which asks whether
    a port has been handed over to a companion controller. If it has, the
    error message is suppressed.

    Signed-off-by: Alan Stern
    CC: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This patch (as1095) cleans up the HCD glue and several of the EHCI
    bus-glue files. The ehci->is_tdi_rh_tt flag is redundant, since it
    means the same thing as the hcd->has_tt flag, so it is removed and the
    other flag used in its place.

    Some of the bus-glue files didn't get the relinquish_port method added
    to their hc_driver structures. Although that routine currently
    doesn't do anything for controllers with an integrated TT, in the
    future it might. So the patch adds it where it is missing.

    Lastly, some of the bus-glue files have erroneous entries for their
    hc_driver's suspend and resume methods. These method pointers are
    specific to PCI and shouldn't be used otherwise.

    (The patch also includes an invisible whitespace fix.)

    Signed-off-by: Alan Stern
    Acked-by: David Brownell

    Alan Stern
     
  • This patch (as1094) changes the output of the "descriptors" binary
    attribute. Now it will contain the device descriptor followed by all
    the configuration descriptors, not just the descriptor for the current
    config.

    Userspace libraries want to have access to the kernel's cached
    descriptor information, so they can learn about device characteristics
    without having to wake up suspended devices. So far the only user of
    this attribute is the new libusb-1.0 library; thus changing its
    contents shouldn't cause any problems.

    This should be considered for 2.6.26, if for no other reason than to
    minimize the range of releases in which the attribute contains only the
    current config descriptor.

    Also, it doesn't hurt that the patch removes the device locking --
    which was formerly needed in order to know for certain which config was
    indeed current.

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

    Alan Stern
     
  • There is a potential deadlock when the usb_generic driver is unbound
    from a device. The problem is that generic_disconnect() is called
    with the device lock held, and it removes a bunch of device attributes
    from sysfs. If a user task happens to be running an attribute method
    at the time, the removal will block until the method returns. But at
    least one of the attribute methods (the store routine for power/level)
    needs to acquire the device lock!

    This patch (as1093) eliminates the deadlock by moving the calls to
    create and remove the sysfs attributes from the usb_generic driver
    into usb_new_device() and usb_disconnect(), where they can be invoked
    without holding the device lock.

    Besides, the other sysfs attributes are created when the device is
    registered and removed when the device is unregistered. So it seems
    only fitting for the extra attributes to be created and removed at the
    same time.

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

    Alan Stern
     
  • Uninitialised Apple iSight drivers present with a distinctive USB ID.
    Once firmware has been uploaded, they disconnect and reconnect with a
    new ID. At this point they can be driven by the uvcvideo driver. As this
    is unique to the Apple cameras and not functionality shared by any other
    UVC devices, it makes sense to provide the firmware loading
    functionality in a separate driver. This driver will read an isight.fw
    file extracted from the Apple driver using the tools at
    http://bersace03.free.fr/ift/ and upload it to the camera. It will also
    handle the case where the device loses its firmware during hibernation
    and must have it reloaded.

    Signed-off-by: Matthew Garrett
    Signed-off-by: Greg Kroah-Hartman

    Matthew Garrett
     
  • This patch adds support for the range of PIDs
    that have been allocated for FTDI based devices
    at Matrix Orbital.

    A small number of units have been shipped early 2008
    with a faulty USB Descriptor. Products that may have
    this issue have been marked with the existing quirk to
    work around the problem.

    Signed-off-by: R. Molenkamp
    Signed-off-by: Greg Kroah-Hartman

    Ray Molenkamp
     
  • * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:
    [CPUFREQ] fix double unlock of cpu_policy_rwsem in drivers/cpufreq/cpufreq.c

    Linus Torvalds