21 Sep, 2008

1 commit

  • This fixes the problem of incoming BMA responses being dropped due to
    a bad "is response" check. Fix the test to use the ib_response_mad()
    predicate, which correctly handles BMA MADs.

    This fixes .

    Signed-off-by: Michael Brooks
    Acked-by: Sean Hefty
    Signed-off-by: Roland Dreier

    Michael Brooks
     

20 Sep, 2008

5 commits


19 Sep, 2008

5 commits

  • When two md arrays share some block device (e.g each uses different
    partitions on the one device), a resync of one array will wait for
    the resync on the other to finish.

    This can be a long time and as it currently waits TASK_UNINTERRUPTIBLE,
    the softlockup code notices and complains.

    So use TASK_INTERRUPTIBLE instead and make sure to flush signals
    before calling schedule.

    Signed-off-by: NeilBrown

    NeilBrown
     
  • Currently e100 uses pci_enable_wake() to clear pending wake-up events
    and disable PME# during intitialization, but that function is not
    suitable for this purpose, because it immediately returns error code
    if device_may_wakeup() returns false for given device.

    Make e100 use pci_pme_active(), which carries out exactly the
    required operations, instead.

    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Jeff Garzik

    Rafael J. Wysocki
     
  • Andrey reports e1000 corruption, and that a patch in vmware's ESX fixed
    it.

    The EEPROM corruption is triggered by concurrent access of the EEPROM
    read/write. Putting a lock around it solve the problem.

    [akpm@linux-foundation.org: use DEFINE_SPINLOCK to avoid confusing lockdep]
    Signed-off-by: Christopher Li
    Reported-by: Andrey Borzenkov
    Cc: Zach Amsden
    Cc: Pratap Subrahmanyam
    Cc: Jeff Kirsher
    Cc: Jesse Brandeburg
    Cc: Bruce Allan
    Cc: PJ Waskiewicz
    Cc: John Ronciak
    Cc: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Christopher Li
     
  • after

    | commit f735a2a1a4f2a0f5cd823ce323e82675990469e2
    | Author: Tobias Diedrich
    | Date: Sun May 18 15:02:37 2008 +0200
    |
    | [netdrvr] forcedeth: setup wake-on-lan before shutting down
    |
    | When hibernating in 'shutdown' mode, after saving the image the suspend hook
    | is not called again.
    | However, if the device is in promiscous mode, wake-on-lan will not work.
    | This adds a shutdown hook to setup wake-on-lan before the final shutdown.
    |
    | Signed-off-by: Tobias Diedrich
    | Signed-off-by: Jeff Garzik

    my servers with nvidia ck804 and mcp55 will reverse mac address with kexec.

    it turns out that we need to restore the mac addr in nv_shutdown().

    [akpm@linux-foundation.org: fix typo in printk]
    Signed-off-by: Yinghai Lu
    Cc: Tobias Diedrich
    Cc: Ayaz Abdulla
    Cc: Jeff Garzik
    Cc: "Rafael J. Wysocki"
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Yinghai Lu
     
  • The bnx2 driver stores/uses the irq value from the pci_dev internally.
    But when it stores the irq value, it has been performing an
    integer demotion. Because of the recent changes made to
    arch/x86/kernel/io_apic.c, the new method in creating the irq value
    (using build_irq_for_pci_dev()) has exposed this bug on x86 systems.

    Because of this demotion when calling request_irq() from
    bnx2_request_irq(), the driver would get a return code of -EINVAL.
    This is because the kernel could not find the requested irq descriptor.
    By storing the irq value properly, the kernel can find the correct
    irq descriptor and the bnx2 driver can operate normally.

    Signed-off-by: Benjamin Li
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Benjamin Li
     

17 Sep, 2008

7 commits

  • This fixes kernel regression for 2.6.27-rc in
    http://bugzilla.kernel.org/show_bug.cgi?id=11547
    The change to split 8390 into old isa and non-isa versions
    overlooked this driver.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Linus Torvalds

    Stephen Hemminger
     
  • This reverts commit bc19d6e0b74ef03a3baf035412c95192b54dfc6f, which as
    Larry Finger reports causes the radio LED on his system to no longer
    respond to rfkill switch events.

    Reported-by: Larry Finger
    Requested-by: John W. Linville
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Roland Dreier
     
  • Taking rtnl_lock in ipoib_mcast_join_complete() causes a deadlock with
    ipoib_stop(). We avoid it by scheduling the piece of code that takes
    the lock on ipoib_workqueue instead of executing it directly. This
    works because we only flush the ipoib_workqueue with the RTNL not held.

    The deadlock happens because ipoib_stop() calls ipoib_ib_dev_down()
    which calls ipoib_mcast_dev_flush(), which calls ipoib_mcast_free(),
    which calls ipoib_mcast_leave(). The latter calls
    ib_sa_free_multicast(), and this waits until the multicast completion
    handler finishes. This handler is ipoib_mcast_join_complete(), which
    waits for the rtnl_lock(), which was already taken by ipoib_stop().

    This bug was introduced in commit a77a57a1 ("IPoIB: Fix deadlock on
    RTNL in ipoib_stop()").

    Signed-off-by: Yossi Etigin
    Signed-off-by: Roland Dreier

    Yossi Etigin
     
  • Fix QP not being destroyed properly on the client, which leads to
    userspace programs hanging on exit. This is a missing chunk from the
    connection management rewrite in commit 6492cdf3 ("RDMA/nes: CM
    connection setup/teardown rework").

    Signed-off-by: Faisal Latif
    Signed-off-by: Roland Dreier

    Faisal Latif
     
  • The functions cio_tm_start_key and cio_start_key use the same private
    orb structure of a subchannel, so the orb needs to be cleared of old
    data before it is used again. A respective memset is missing from
    cio_start_key and hereby added.

    Signed-off-by: Stefan Weinhuber
    Acked-by: Cornelia Huck
    Signed-off-by: Martin Schwidefsky

    Stefan Weinhuber
     
  • Since 16f7f9564c3ae190954f2ec55f385a268b93ac4d, we've seen
    oopses when grouping/ungrouping devices:

    Unable to handle kernel pointer dereference at virtual kernel address 0000000000
    114000
    Oops: 0004 [#1] PREEMPT SMP
    Modules linked in: bonding qeth_l2 dm_multipath sunrpc qeth_l3 dm_mod qeth chsc_
    sch ccwgroup
    CPU: 1 Not tainted 2.6.26-29.x.20080815-s390xdefault #1
    Process iperf (pid: 24412, task: 000000003f446038, ksp: 000000003c929e08)
    Krnl PSW : 0404d00180000000 000003e00006f6e6 (qeth_irq+0xda/0xb28 [qeth])
    R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:3 CC:1 PM:0 EA:3
    Krnl GPRS: 0000000000000000 000003e000000003 0000000000000000 0000000000114ccc
    000000003fb82e48 000003e00006f60c 000000000000000c 000000003ce72100
    0000000000114944 000000003fb82e48 0000000000114ccc 000000003fe8fd28
    000003e000066000 000003e000076128 000000003fe8fdb8 000000003fe8fd28
    Krnl Code: 000003e00006f6da: bf3f2024 icm %r3,15,36(%r2)
    000003e00006f6de: a774023c brc 7,3e00006fb56
    000003e00006f6e2: a7280000 lhi %r2,0
    >000003e00006f6e6: 5020a1a0 st %r2,416(%r10)
    000003e00006f6ea: 58109000 l %r1,0(%r9)
    000003e00006f6ee: a7111000 tmll %r1,4096
    000003e00006f6f2: a77400f9 brc 7,3e00006f8e4
    000003e00006f6f6: 8810000c srl %r1,12
    Call Trace:
    ([] 0x3fe8fd20)
    [] ccw_device_call_handler+0xb2/0xd8
    [] ccw_device_irq+0x124/0x164
    [] io_subchannel_irq+0x8c/0x118
    [] do_IRQ+0x192/0x1bc
    [] io_return+0x0/0x8
    [] sysc_do_svc+0x0/0x22
    ([] sysc_noemu+0x10/0x16)
    [] 0x200002e047c
    Last Breaking-Event-Address:
    [] qeth_irq+0xca/0xb28 [qeth]

    The problem is that dev->driver_data for a ccw device is NULL,
    while it should point to the ccwgroup device it is a member of.
    This happened due to incorrect cleanup if creating a ccwgroup
    device failed because the ccw devices were already grouped.

    Fix this by setting cdev[i] to NULL in the error handling of
    ccwgroup_create_from_string() after we give up our reference and
    by checking if the driver_data points to the ccwgroup device in
    ccwgroup_release() just to be really sure.

    Signed-off-by: Cornelia Huck
    Signed-off-by: Martin Schwidefsky

    Cornelia Huck
     

16 Sep, 2008

1 commit

  • Byte swap the addresses in the page list for fast register work requests
    to big endian to match what the HCA expectx. Also, the addresses must
    have the "present" bit set so that the HCA knows it can access them.
    Otherwise the HCA will fault the first time it accesses the memory
    region.

    Signed-off-by: Vladimir Sokolovsky
    Signed-off-by: Roland Dreier

    Vladimir Sokolovsky
     

15 Sep, 2008

1 commit

  • The SEC's h/w IV out implementation DMAs the trailing encrypted payload
    block of the last encryption to ctx->iv. Since the last encryption may
    still be pending completion, we can sufficiently prevent successive
    packets from being transmitted with the same IV by xoring with sequence
    number.

    Also initialize alg_list earlier to prevent oopsing on a failed probe.

    Signed-off-by: Kim Phillips
    Signed-off-by: Lee Nipper
    Signed-off-by: Herbert Xu

    Kim Phillips
     

14 Sep, 2008

16 commits

  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    [ARM] Fix PCI_DMA_BUS_IS_PHYS for ARM
    [ARM] 5247/1: tosa: SW_EAR_IN support
    [ARM] 5246/1: tosa: add proper clock alias for tc6393xb clock
    [ARM] 5245/1: Fix warning about unused return value in drivers/pcmcia
    [ARM] OMAP: Fix MMC device data
    imx serial: fix rts handling for non imx1 based hardware
    imx serial: set RXD mux bit on i.MX27 and i.MX31
    i.MX serial: fix init failure
    pcm037: add rts/cts support for serial port

    Linus Torvalds
     
  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
    [libata] LBA28/LBA48 off-by-one bug in ata.h
    sata_inic162x: enable LED blinking
    ata: duplicate variable sparse warning

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
    PCI: re-add debug prints for unmodified BARs
    PCI: fix pciehp_free_irq()
    PCI Hotplug: fakephp: fix deadlock... again
    PCI: Fix printk warnings in setup-bus.c
    PCI: Fix printk warnings in probe.c
    PCI/iommu: blacklist DMAR on Intel G31/G33 chipsets

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
    niu: panic on reset
    netlink: fix overrun in attribute iteration
    [Bluetooth] Fix regression from using default link policy
    ath9k: Assign seq# when mac80211 requests this

    Linus Torvalds
     
  • - 8-bit interface mode never worked properly. The only adapter I have
    which supports the 8b mode (the Jmicron) had some problems with its
    clock wiring and they discovered it only now. We also discovered that
    ProHG media is more sensitive to the ordering of initialization
    commands.

    - Make the driver fall back to highest supported mode instead of always
    falling back to serial. The driver will attempt the switch to 8b mode
    for any new MSPro card, but not all of them support it. Previously,
    these new cards ended up in serial mode, which is not the best idea
    (they work fine with 4b, after all).

    - Edit some macros for better conformance to Sony documentation

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

    Alex Dubov
     
  • Fix the section mismatch warning generated by the incorrect naming of
    s3c24xx_spidrv which should be s3c24xx_spi_driver:

    WARNING: drivers/spi/spi_s3c24xx.o(.data+0x4):
    Section mismatch in reference from the variable s3c24xx_spidrv
    to the (unknown reference) .exit.text:(unknown)

    Signed-off-by: Ben Dooks
    Signed-off-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • When suspending the system with atmel_lcdfb enabled, I sometimes see
    this:

    atmel_lcdfb atmel_lcdfb.0: FIFO underflow 0x10

    Which can be explained by the fact that we're not stopping the LCD
    controller and its DMA engine when suspending, we're just gating the
    clocks to them.

    There's another potential issue which may be harder to trigger but
    much more nasty: If we gate the clocks at _just_ the right moment,
    e.g. when the DMA engine is doing a bus transaction, we may cause the
    DMA engine to violate the system bus protocol and cause a lockup.

    Avoid these issues by shutting down the LCD controller before entering
    suspend (and restarting it when resuming). This prevents the underrun
    from happening in the first place, and prevents whatever nastiness is
    happening when the bus clock stops in the middle of a DMA transfer.

    Signed-off-by: Haavard Skinnemoen
    Acked-by: Nicolas Ferre
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Haavard Skinnemoen
     
  • If you are on ia64 and you modprobe xpc then modprobe -r xpc, you
    immediately get a panic. xpc depends on xp which depends on gru for a
    symbol. That symbol is only used when we are running on UV hardware.

    Currently, the GRU driver detects we are not on UV hardware and does no
    initializing. It does not do the same check when unloading. As a result,
    the gru driver attempts to tear down stuff that was not setup.

    This is a simple two-line workaround to get us through this release. Once
    2.6.28 is opened, we need to rework the symbols that xp is depending on
    from gru so the gru driver can properly fail to load when hardware is not
    available.

    Signed-off-by: Robin Holt
    Cc: "Luck, Tony"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robin Holt
     
  • Fixes two DMA bugs in the pxa2xx_spi driver. The first bug is in all
    versions of this driver; the second was introduced in the 2.6.20 kernel,
    and prevents using the driver with chips like m25p16 flash (which can
    issue large DMA reads).

    1. Zero length transfers are permitted for use to insert timing,
    but pxa2xx_spi.c will fail if this is requested in DMA mode.
    Fixed by using programmed I/O (PIO) mode for such transfers.

    2. Transfers larger than 8191 are not permitted in DMA mode. A
    test for length rejects all large transfers regardless of DMA
    or PIO mode. Worked around by rejecting only large transfers
    with DMA mapped buffers, and forcing all other transfers
    larger than 8191 to use PIO mode. A rate limited warning is
    issued for DMA transfers forced to PIO mode.

    This patch should apply to all kernels back to and including 2.6.20;
    it was test patched against 2.6.20. An additional patch would be
    required for older kernels, but those versions are very buggy anyway.

    Signed-off-by: Ned Forrester
    Cc: Vernon Sauder
    Cc: Eric Miao
    Signed-off-by: David Brownell
    Cc: [2.6.25.x, 2.6.26.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ned Forrester
     
  • Fixes several chipselect bugs in the pxa2xx_spi driver. These bugs are in
    all versions of this driver and prevent using it with chips like m25p16
    flash.

    1. The spi_transfer.cs_change flag is handled too early:
    before spi_transfer.delay_usecs applies, thus making the
    delay ineffective at holding chip select.

    2. spi_transfer.delay_usecs is ignored on the last transfer
    of a message (likewise not holding chipselect long enough).

    3. If spi_transfer.cs_change is set on the last transfer, the
    chip select is always disabled, instead of the intended
    meaning: optionally holding chip select enabled for the
    next message.

    Those first three bugs were fixed with a relocation of delays
    and chip select de-assertions.

    4. If a message has the cs_change flag set on the last transfer,
    and had the chip select stayed enabled as requested (see 3,
    above), it would not have been disabled if the next message is
    for a different chip. Fixed by dropping chip select regardless
    of cs_change at end of a message, if there is no next message
    or if the next message is for a different chip.

    This patch should apply to all kernels back to and including 2.6.20;
    it was test patched against 2.6.20. An additional patch would be
    required for older kernels, but those versions are very buggy anyway.

    Signed-off-by: Ned Forrester
    Cc: Vernon Sauder
    Cc: Eric Miao
    Signed-off-by: David Brownell
    Cc: [2.6.25.x, 2.6.26.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ned Forrester
     
  • Error out on transfer length != multiple of bytes per word with -EINVAL.
    Fixes a buffer overrun crash if length < bytes per word.

    Signed-off-by: Peter Korsgaard
    Acked-by: Joakim Tjernlund
    Signed-off-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Korsgaard
     
  • Commit a61f5345 (spi_mpc83xx clockrate fixes) broke clockrate calculation
    for low speeds. SPMODE_DIV16 should be set if the divider is higher than
    64, not only if the divider gets clipped to 1024.

    Furthermore, the clipping check was off by a factor 16 as well.

    Signed-off-by: Peter Korsgaard
    Signed-off-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Korsgaard
     
  • Enable LED blinking.

    Signed-off-by: Bob Stewart
    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Bob Stewart
     
  • drivers/ata/ata_piix.c:1502:7: warning: symbol 'rc' shadows an earlier one

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Jeff Garzik

    Stephen Hemminger
     
  • Russell King
     
  • Fix warning when compiling "drivers/pcmcia/soc-common.c"
    The return value of the function "device_create_file"
    was not used / assigned.

    Signed-off-by: Jrgen Schindele
    Signed-off-by: Russell King

    Jürgen Schindele
     

13 Sep, 2008

2 commits


11 Sep, 2008

2 commits