23 Mar, 2008

2 commits

  • As reported by Johannes Berg:

    I started getting this warning with recent kernels:

    [ 773.908927] ------------[ cut here ]------------
    [ 773.908954] Badness at net/core/dev.c:2204
    ...

    If we loop more than once in gem_poll(), we'll
    use more than the real budget in our gem_rx()
    calls, thus eventually trigger the caller's
    assertions in net_rx_action().

    Subtract "work_done" from "budget" for the second
    arg to gem_rx() to fix the bug.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • On 10GBaseT boards setting the type to TP will cause the driver to try
    to configure 1GBaseT.
    Since there are currently no boards that support setting of the port
    type, disable this for now.

    Signed-off-by: Eliezer Tamir
    Signed-off-by: David S. Miller

    Eliezer Tamir
     

21 Mar, 2008

2 commits

  • [ 10.536424] =======================================================
    [ 10.536424] [ INFO: possible circular locking dependency detected ]
    [ 10.536424] 2.6.25-rc3-devel #3
    [ 10.536424] -------------------------------------------------------
    [ 10.536424] swapper/0 is trying to acquire lock:
    [ 10.536424] (&dev->queue_lock){-+..}, at: []
    dev_queue_xmit+0x175/0x2f3
    [ 10.536424]
    [ 10.536424] but task is already holding lock:
    [ 10.536424] (&p->tcfc_lock){-+..}, at: [] tcf_mirred+0x20/0x178
    [act_mirred]
    [ 10.536424]
    [ 10.536424] which lock already depends on the new lock.

    lockdep warns of locking order while using ifb with sch_ingress and
    act_mirred: ingress_lock, tcfc_lock, queue_lock (usually queue_lock
    is at the beginning). This patch is only to tell lockdep that ifb is
    a different device (e.g. from eth) and has its own pair of queue
    locks. (This warning is a false-positive in common scenario of using
    ifb; yet there are possible situations, when this order could be
    dangerous; lockdep should warn in such a case.) (With suggestions by
    David S. Miller)

    Reported-and-tested-by: Denys Fedoryshchenko
    Signed-off-by: Jarek Poplawski
    Acked-by: Jamal Hadi Salim
    Signed-off-by: David S. Miller

    Jarek Poplawski
     
  • Sparc MAC address support should be protected consistently
    with CONFIG_SPARC, but there was a stray CONFIG_SPARC64
    case.

    Bump driver version and release date.

    Reported by Andrew Morton.

    Signed-off-by: David S. Miller

    David S. Miller
     

19 Mar, 2008

1 commit


18 Mar, 2008

3 commits


17 Mar, 2008

30 commits

  • Signed-off-by: Jose Alberto Reguero
    Signed-off-by: Jeff Garzik

    Jose Alberto Reguero
     
  • pata_ali was using qc->nbytes to determine whether a command is
    data transfer type or not. As now qc->nbytes can be extended by
    padding and draining buffers, these tests are not useful anymore.

    Use atapi_cmd_type() instead.

    Signed-off-by: Tejun Heo
    Cc: Alan Cox
    Cc: Rafael J. Wysocki
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • Under certain circumstances (SSP turned off by the BIOS) and for
    debugging purposes, skipping global controller reset is helpful. Add
    a kernel parameter for it.

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

    Tejun Heo
     
  • ahci is often implemented with accompanying SFF compatible interface
    and legacy IDE driver may attach to the legacy IO ports when the
    controller is already claimed by ahci and vice-versa. This patch
    makes ahci use pcim_iomap_regions_request_all() so that all IO regions
    are claimed on attach.

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

    Tejun Heo
     
  • Improve ACPI hotplug handling such that dock event is handled properly.

    * Register handlers for dock events.

    * Directly detach device on EJECT_REQUEST instead of signaling hotplug
    event. This prevents libata from accessing severed controller
    and/or device.

    * While at it, use named constants for ACPI events and move uevent
    signaling inside host lock.

    Original patch and testing by Holger Macht.

    Signed-off-by: Tejun Heo
    Cc: Holger Macht
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • __FUNCTION__ is gcc-specific, use __func__

    Signed-off-by: Harvey Harrison
    Signed-off-by: Ralf Baechle

    drivers/sn/ioc3.c | 22 +++++++++++-----------
    1 files changed, 11 insertions(+), 11 deletions(-)
    Signed-off-by: Jeff Garzik

    Harvey Harrison
     
  • Use thread number of 1 for 10/100Mbps link instead of 4.

    Signed-off-by: Joakim Tjernlund
    Signed-off-by: Li Yang
    Signed-off-by: Jeff Garzik

    Joakim Tjernlund
     
  • We can't look at the socket to get protocol information. We should
    instead look directly at the packet, and hope there are no IPv6
    option headers.

    Signed-off-by: Mitch Williams
    Signed-off-by: Auke Kok
    Signed-off-by: Jeff Garzik

    Mitch Williams
     
  • LD drivers/net/built-in.o
    WARNING: drivers/net/built-in.o(.text+0x3468): Section mismatch in reference fro
    m the function ioc3_probe() to the function .devinit.text:ioc3_serial_probe()
    The function ioc3_probe() references
    the function __devinit ioc3_serial_probe().
    This is often because ioc3_probe lacks a __devinit
    annotation or the annotation of ioc3_serial_probe is wrong.

    Signed-off-by: Ralf Baechle
    Signed-off-by: Jeff Garzik

    Ralf Baechle
     
  • This untested patch _should_ fix:
    "(net de2104x) Kernel panic with de2104x tulip driver on boot"
    http://bugzilla.kernel.org/show_bug.cgi?id=3156

    But the bug submitter isn't responding. Same fix has been applied
    to tulip.c (several years ago) and uli526x.c (Feb 2008) drivers.

    [ The panic reported in the bug report was removed in a recently
    (march 2008) accepted patch from Ondrej Zary. ]

    Signed-off-by: Grant Grundler
    Signed-off-by: Jeff Garzik

    Grant Grundler
     
  • This is a critical patch which adds a workaround for a HW bug. The patch
    will limit the number of outstanding tx packets to 16. Otherwise, the HW
    could send out packets with bad checksums.

    The driver will still setup the tx packets into the ring, however, will
    only set the Valid bit on 16 packets at a time.

    Signed-off-by: Ayaz Abdulla
    Signed-off-by: Jeff Garzik

    Ayaz Abdulla
     
  • Signed-off-by: Alan Cox
    Signed-off-by: Jeff Garzik

    Alan Cox
     
  • The last change in the Tx queue stop mechanism opens a window
    where the Tx queue might be stopped after pending credits
    returned.

    Tx credits are returned via a control message generated by the HW.
    It returns tx credits on demand, triggered by a completion bit
    set in selective transmit packet headers.

    The current code can lead to the Tx queue stopped
    with all pending credits returned, and the current frame
    not triggering a credit return. The Tx queue will then never be
    awaken.

    The driver could alternatively request a completion for packets
    that stop the queue. It's however safer at this point to go back
    to the pre-existing behaviour.

    Signed-off-by: Divy Le Ray
    Signed-off-by: Jeff Garzik

    Divy Le Ray
     
  • Add "ibm,tah" to the compatible matching table of the ibm_newemac
    tah driver. The type "tah" is still preserved for compatibility reasons.
    New dts files should use the compatible property though.

    Signed-off-by: Stefan Roese
    Signed-off-by: Jeff Garzik

    Stefan Roese
     
  • This patch should resolve a problem that's troubled support for
    some RNDIS peripherals. It seems to have boiled down to using a
    variable to establish transfer size limits before it was assigned,
    which caused those devices to fallback to a default "jumbogram"
    mode we don't support. Fix by assigning it earlier for RNDIS.

    Signed-off-by: Jean-Christophe Dubois
    [ cleanups ]
    Signed-off-by: David Brownell
    Signed-off-by: Jeff Garzik

    Jean-Christophe Dubois
     
  • Problem Description and Fix
    ---------------------------
    When a pause packet(with destination as reserved Multicast address) is
    received by the EMAC hardware to control the flow of frames being
    transmitted by it, it is dropped by the hardware unless the reserved
    Multicast address is hashed in to the GAHT[1-4] registers. This code fix
    adds the default reserved multicast address to the GAHT[1-4] registers
    in the EMAC(s) present on the chip. The flow control with Pause packets
    will only work if the following register bits are programmed in EMAC:
    EMACx_MR1[APP] = 1
    EMACx_RMR[BAE] = 1
    EMACx_RMR[MAE] = 1

    Behavior that may be observed in a running system
    -------------------------------------------------
    A host transferring data from a PPC based system may send a Pause packet
    to the PPC EMAC requesting it to slow down the flow of packets. If the
    default reserved multicast MAC address is not programmed into the
    GAHT[1-4] registers this Pause packet will be dropped by PPC EMAC and no
    Flow Control will be done.

    Signed-off-by: Pravin M. Bathija
    Signed-off-by: Stefan Roese
    Signed-off-by: Jeff Garzik

    Pravin M. Bathija
     
  • There is a race in virtio_net, dealing with disabling/enabling the callback.
    I saw the following oops:

    kernel BUG at /space/kvm/drivers/virtio/virtio_ring.c:218!
    illegal operation: 0001 [#1] SMP
    Modules linked in: sunrpc dm_mod
    CPU: 2 Not tainted 2.6.25-rc1zlive-host-10623-gd358142-dirty #99
    Process swapper (pid: 0, task: 000000000f85a610, ksp: 000000000f873c60)
    Krnl PSW : 0404300180000000 00000000002b81a6 (vring_disable_cb+0x16/0x20)
    R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:0 CC:3 PM:0 EA:3
    Krnl GPRS: 0000000000000001 0000000000000001 0000000010005800 0000000000000001
    000000000f3a0900 000000000f85a610 0000000000000000 0000000000000000
    0000000000000000 000000000f870000 0000000000000000 0000000000001237
    000000000f3a0920 000000000010ff74 00000000002846f6 000000000fa0bcd8
    Krnl Code: 00000000002b819a: a7110001 tmll %r1,1
    00000000002b819e: a7840004 brc 8,2b81a6
    00000000002b81a2: a7f40001 brc 15,2b81a4
    >00000000002b81a6: a51b0001 oill %r1,1
    00000000002b81aa: 40102000 sth %r1,0(%r2)
    00000000002b81ae: 07fe bcr 15,%r14
    00000000002b81b0: eb7ff0380024 stmg %r7,%r15,56(%r15)
    00000000002b81b6: a7f13e00 tmll %r15,15872
    Call Trace:
    ([] 0xfa0bcd0)
    [] vring_interrupt+0x5c/0x6c
    [] do_extint+0xb8/0xf0
    [] ext_no_vtime+0x16/0x1a
    [] cpu_idle+0x1c2/0x1e0

    The problem can be triggered with a high amount of host->guest traffic.
    I think its the following race:

    poll says netif_rx_complete
    poll calls enable_cb
    enable_cb opens the interrupt mask
    a new packet comes, an interrupt is triggered----\
    enable_cb sees that there is more work |
    enable_cb disables the interrupt |
    . V
    . interrupt is delivered
    . skb_recv_done does atomic napi test, ok
    some waiting disable_cb is called->check fails->bang!
    .
    poll would do napi check
    poll would do disable_cb

    The fix is to let enable_cb not disable the interrupt again, but expect the
    caller to do the cleanup if it returns false. In that case, the interrupt is
    only disabled, if the napi test_set_bit was successful.

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Rusty Russell (cleaned up doco)

    Christian Borntraeger
     
  • Add a new poll_controller handler that the netpoll interface needs.

    This enables netconsole logging from a kvm guest over the virtio
    net interface.

    Signed-off-by: Amit Shah
    Signed-off-by: Rusty Russell

    Amit Shah
     
  • If the host asks for a huge target towards_target() can overflow, and
    we up oops as we try to release more pages than we have. The simple
    fix is to use a 64-bit value.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • Fix up so that the virtio_blk devices in sysfs link correctly to their
    block device. This then allows them to be detected by hal, etc

    Signed-off-by: Jeremy Katz
    Signed-off-by: Rusty Russell

    Jeremy Katz
     
  • virtio-pci acquires its spin lock in an interrupt context so it's necessary
    to use spin_lock_irqsave/restore variants. This patch fixes guest SMP when
    using virtio devices in KVM.

    Signed-off-by: Anthony Liguori
    Signed-off-by: Rusty Russell

    Anthony Liguori
     
  • The variable update_rx is initialized but never used otherwise.

    The semantic patch that makes this change is as follows:
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @@
    type T;
    identifier i;
    constant C;
    @@

    (
    extern T i;
    |
    - T i;

    )
    //

    Signed-off-by: Julia Lawall
    Acked-by: Jay Cliburn
    Signed-off-by: Jeff Garzik

    Julia Lawall
     
  • The variable gig is initialized but never used otherwise.

    The semantic patch that makes this change is as follows:
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @@
    type T;
    identifier i;
    constant C;
    @@

    (
    extern T i;
    |
    - T i;

    )
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Jeff Garzik

    Julia Lawall
     
  • * "powerpc or sparc" is not the same as "big-endian", fix the ifdef
    * since we tell the card to byteswap the descriptors on big-endian,
    we ought to leave them host-endian...

    Signed-off-by: Al Viro
    Signed-off-by: Jeff Garzik

    Al Viro
     
  • spurious cpu_to_le64()

    Signed-off-by: Al Viro
    Signed-off-by: Jeff Garzik

    Al Viro
     
  • Signed-off-by: Al Viro
    Signed-off-by: Jeff Garzik

    Al Viro
     
  • Signed-off-by: Al Viro
    Signed-off-by: Jeff Garzik

    Al Viro
     
  • kmalloc intermediate buffer(), do copy_from_user() + memcpy_toio()

    Signed-off-by: Al Viro
    Signed-off-by: Jeff Garzik

    Al Viro
     
  • pci_unmap_single() on little-endian address

    Signed-off-by: Al Viro
    Signed-off-by: Jeff Garzik

    Al Viro
     
  • * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6:
    [PARISC] make ptr_to_pide() static
    [PARISC] head.S: section mismatch fixes
    [PARISC] add back Crestone Peak cpu
    [PARISC] futex: special case cmpxchg NULL in kernel space
    [PARISC] clean up show_stack
    [PARISC] add pa8900 CPUs to hardware inventory
    [PARISC] clean up include/asm-parisc/elf.h
    [PARISC] move defconfig to arch/parisc/configs/
    [PARISC] add back AD1889 MAINTAINERS entry
    [PARISC] pdc_console: fix bizarre panic on boot
    [PARISC] dump_stack in show_regs
    [PARISC] pdc_stable: fix compile errors
    [PARISC] remove unused pdc_iodc_printf function
    [PARISC] bump __NR_syscalls
    [PARISC] unbreak pgalloc.h
    [PARISC] move VMALLOC_* definitions to fixmap.h
    [PARISC] wire up timerfd syscalls
    [PARISC] remove old timerfd syscall

    Linus Torvalds
     

16 Mar, 2008

2 commits