12 Dec, 2009

12 commits


11 Dec, 2009

8 commits

  • From: Randy Dunlap

    niu drivers uses crc32 functions, so it needs to select CRC32.

    niu.c:(.text+0x18a7f8): undefined reference to `crc32_le'

    Signed-off-by: Randy Dunlap
    Signed-off-by: David S. Miller

    Randy Dunlap
     
  • Update "US" and "JP" for current rules, and replace "EU" rules with the
    world roaming domain (since it was only a pseudo-domain anyway).

    Signed-off-by: John W. Linville

    John W. Linville
     
  • The patch ("mac80211: Use correct sign for mesh active path
    refresh.") was actually a bug. Reverted it and improved the
    explanation of how mesh path refresh works.

    Signed-off-by: Javier Cardona
    Signed-off-by: Andrey Yurovsky
    Cc: stable@kernel.org
    Signed-off-by: John W. Linville

    Javier Cardona
     
  • Paths to mesh portals were being timed out immediately after each use in
    intermediate forwarding nodes. mppath->exp_time is set to the expiration time
    so assigning it to jiffies was marking the path as expired.

    Signed-off-by: Javier Cardona
    Signed-off-by: Andrey Yurovsky
    Cc: stable@kernel.org
    Signed-off-by: John W. Linville

    Javier Cardona
     
  • Memset should be given the size of the structure, not the size of the pointer.

    The semantic patch that makes this change is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @@
    type T;
    T *x;
    expression E;
    @@

    memset(x, E, sizeof(
    + *
    x))
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: John W. Linville

    Julia Lawall
     
  • As shown in Kernel Bugzilla #14761, doing a controller restart after a
    fatal DMA error does not accomplish anything other than consume the CPU
    on an affected system. Accordingly, substitute a meaningful message for
    the restart.

    Signed-off-by: Larry Finger
    Cc: Stable [2.6.32]
    Signed-off-by: John W. Linville

    Larry Finger
     
  • Michael Buesch reports that his rtl8187 gives warnings on suspend
    ("queueing ieee80211 work while going to suspend" warnings), as rtl8187
    can call ieee80211_queue_delayed_work after mac80211 is suspended.

    This change enhances rtl8187 led code so we can avoid queuing work after
    mac80211 is suspended: now we register a radio led and make additional
    checks to ensure led is off/on properly as mac80211 wants.

    Signed-off-by: Herton Ronaldo Krzesinski
    Tested-by: Larry Finger
    Cc: Stable
    Signed-off-by: John W. Linville

    Herton Ronaldo Krzesinski
     
  • Without this we have no gaurantee of the integrity of the
    EEPROM and are likely to encounter a lot of bogus bug reports
    due to actual issues on the EEPROM. With the EEPROM checksum
    check in place we can easily rule those issues out.

    If you run patch during a revert *you* have a card with a busted
    EEPROM and only older kernel will support that concoction. This
    patch is a trade off between not accepitng bogus EEPROMs and
    avoiding bogus bug reports allowing developers to focus instead
    on real concrete issues.

    If stable keeps bogus bug reports because of a possibly busted EEPROM
    feel free to apply this there too.

    Tested on an AR5414

    Cc: stable@kernel.org
    Cc: jirislaby@gmail.com
    Cc: akpm@linux-foundation.org
    Cc: rjw@sisk.pl
    Cc: me@bobcopeland.com
    Cc: david.quan@atheros.com
    Signed-off-by: Luis R. Rodriguez
    Signed-off-by: John W. Linville

    Luis R. Rodriguez
     

10 Dec, 2009

2 commits


09 Dec, 2009

18 commits

  • commit 46ceb60ca80fa07703bc6eb8f4651f900dff5a82 ("gianfar: Add
    Multiple group Support") introduced the following build error
    with CONFIG_NET_POLL_CONTROLLER=y:

    CC ggianfar.o
    ggianfar.c: In function 'gfar_netpoll':
    ggianfar.c:2653: error: invalid storage class for function 'gfar_interrupt'
    ggianfar.c:2652: warning: ISO C90 forbids mixed declarations and code
    ggianfar.c:2681: error: invalid storage class for function 'adjust_link'
    ggianfar.c:2764: error: invalid storage class for function 'gfar_set_multi'
    ggianfar.c:2855: error: invalid storage class for function 'gfar_clear_exact_match'
    ggianfar.c:2877: error: invalid storage class for function 'gfar_set_hash_for_addr'
    ggianfar.c:2898: error: invalid storage class for function 'gfar_set_mac_for_addr'
    ggianfar.c:2922: error: invalid storage class for function 'gfar_error'
    ggianfar.c:3020: warning: ISO C90 forbids mixed declarations and code
    ggianfar.c:3032: error: invalid storage class for function 'gfar_init'
    ggianfar.c:3037: error: invalid storage class for function 'gfar_exit'
    ggianfar.c:3041: error: initializer element is not constant
    ggianfar.c:3042: error: initializer element is not constant
    ggianfar.c:3042: warning: ISO C90 forbids mixed declarations and code
    ggianfar.c:3042: error: expected declaration or statement at end of input
    make[1]: *** [ggianfar.o] Error 1

    This patch fixes the issue.

    Reported-by: Benjamin Herrenschmidt
    Signed-off-by: Anton Vorontsov
    Signed-off-by: David S. Miller

    Anton Vorontsov
     
  • About 50% of shutdowns of b44 Ethernet adapter ends by kernel panic
    with kernels compiled with stack-protector.

    Checking b44_magic_pattern() return values, one call of
    b44_magic_pattern() returns 127. It means, that set_bit(128, pmask)
    was called on line 1509. It means that bit 0 of 17th byte of pmask was
    overwritten. But pmask has only 16 bytes. Stack corruption happens.

    It seems that set_bit() on line 1509 always writes one bit off.

    The fix does not only solve the stack corruption, but also makes Wake
    On LAN working on my onboard B44 on Asus A7V-333X mainboard.

    It seems that this problem affects all kernel versions since commit
    725ad800 ([PATCH] b44: add wol for old nic) on 2006-06-20.

    Signed-off-by: Stanislav Brabec
    Signed-off-by: David S. Miller

    Stanislav Brabec
     
  • It can happen, that tcp_retransmit_skb fails due to some error.
    In such cases we might end up into a state where tp->retrans_out
    is zero but that's only because we removed the TCPCB_SACKED_RETRANS
    bit from a segment but couldn't retransmit it because of the error
    that happened. Therefore some assumptions that retrans_out checks
    are based do not necessarily hold, as there still can be an old
    retransmission but that is only visible in TCPCB_EVER_RETRANS bit.
    As retransmission happen in sequential order (except for some very
    rare corner cases), it's enough to check the head skb for that bit.

    Main reason for all this complexity is the fact that connection dying
    time now depends on the validity of the retrans_stamp, in particular,
    that successive retransmissions of a segment must not advance
    retrans_stamp under any conditions. It seems after quick thinking that
    this has relatively low impact as eventually TCP will go into CA_Loss
    and either use the existing check for !retrans_stamp case or send a
    retransmission successfully, setting a new base time for the dying
    timer (can happen only once). At worst, the dying time will be
    approximately the double of the intented time. In addition,
    tcp_packet_delayed() will return wrong result (has some cc aspects
    but due to rarity of these errors, it's hardly an issue).

    One of retrans_stamp clearing happens indirectly through first going
    into CA_Open state and then a later ACK lets the clearing to happen.
    Thus tcp_try_keep_open has to be modified too.

    Thanks to Damian Lukowski for hinting
    that this possibility exists (though the particular case discussed
    didn't after all have it happening but was just a debug patch
    artifact).

    Signed-off-by: Ilpo Järvinen
    Signed-off-by: David S. Miller

    Ilpo Järvinen
     
  • This patch moves retransmits_timed_out() from include/net/tcp.h
    to tcp_timer.c, where it is used.

    Reported-by: Frederic Leroy
    Signed-off-by: Damian Lukowski
    Acked-by: Ilpo Järvinen
    Signed-off-by: David S. Miller

    Damian Lukowski
     
  • This patch fixes a problem in the TCP connection timeout calculation.
    Currently, timeout decisions are made on the basis of the current
    tcp_time_stamp and retrans_stamp, which is usually set at the first
    retransmission.
    However, if the retransmission fails in tcp_retransmit_skb(),
    retrans_stamp is not updated and remains zero. This leads to wrong
    decisions in retransmits_timed_out() if tcp_time_stamp is larger than
    the specified timeout, which is very likely.
    In this case, the TCP connection dies after the first attempted
    (and unsuccessful) retransmission.

    With this patch, tcp_skb_cb->when is used instead, when retrans_stamp
    is not available.

    This bug has been introduced together with retransmits_timed_out() in
    2.6.32, as the number of retransmissions has been used for timeout
    decisions before. The corresponding commit was
    6fa12c85031485dff38ce550c24f10da23b0adaa (Revert Backoff [v3]:
    Calculate TCP's connection close threshold as a time value.).

    Thanks to Ilpo Järvinen for code suggestions and Frederic Leroy for
    testing.

    Reported-by: Frederic Leroy
    Signed-off-by: Damian Lukowski
    Acked-by: Ilpo Järvinen
    Signed-off-by: David S. Miller

    Damian Lukowski
     
  • use common_task instead of reset_task and link_chg_task, so it fix "call cancel_work_sync
    from the work itself".

    Signed-off-by: Jie Yang
    Signed-off-by: David S. Miller

    Jie Yang
     
  • add pci map direction in atl1c_buffer flags, it is used when call pci_unmap
    apis.
    Signed-off-by: Jie Yang
    Signed-off-by: David S. Miller

    Jie Yang
     
  • Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     
  • Unified firmware image may not contain MN type of firmware.
    Driver should fall back to NOMN firmware type instead
    of going to flash.

    Signed-off-by: Dhananjay Phadke
    Signed-off-by: Amit Kumar Salecha
    Signed-off-by: David S. Miller

    Dhananjay Phadke
     
  • o netif_running() check for enabling interrupt at end of napi poll is
    not enough to cover firmwar recovery. Instead test __NX_DEV_UP bit.
    o Avoid re-entry into to netxen_nic_down() with __NX_DEV_UP bit check.

    Acked-by: Dhananjay Phadke
    Signed-off-by: Amit Kumar Salecha
    Signed-off-by: David S. Miller

    Amit Kumar Salecha
     
  • o To prevent race conditions with other reset events.
    During suspend/resume and firmware recovery, acquire rtnl_lock,
    while changing interface state.

    Acked-by: Dhananjay Phadke
    Signed-off-by: Amit Kumar Salecha
    Signed-off-by: David S. Miller

    Amit Kumar Salecha
     
  • Check for valid hw address.

    Signed-off-by: Denis Kirjanov
    Signed-off-by: David S. Miller

    Denis Kirjanov
     
  • Various additions and improvements to the Gigaset driver's README
    file, and added comments to its userspace visible include file.

    Signed-off-by: Tilman Schmidt
    Signed-off-by: David S. Miller

    Tilman Schmidt
     
  • When built with debugging support, the Gigaset driver enabled some
    debugging messages by default. Change the default to "all off".

    Signed-off-by: Tilman Schmidt
    Signed-off-by: David S. Miller

    Tilman Schmidt
     
  • Fix the locking scheme on the fec_mpc52xx driver. This device can
    receive IRQs from three sources; the FEC itself, the tx DMA, and the
    rx DMA. Mutual exclusion was handled by taking a spin_lock() in the
    critical regions, but because the handlers are run with IRQs enabled,
    spin_lock() is insufficient and the driver can end up interrupting
    a critical region anyway from another IRQ.

    Asier Llano discovered that this occurs when an error IRQ is raised
    in the middle of handling rx irqs which resulted in an sk_buff memory
    leak.

    In addition, locking is spotty at best in the driver and inspection
    revealed quite a few places with insufficient locking.

    This patch is based on Asier's initial work, but reworks a number of
    things so that locks are held for as short a time as possible, so
    that spin_lock_irqsave() is used everywhere, and so the locks are
    dropped when calling into the network stack (because the lock only
    protects the hardware interface; not the network stack).

    Boot tested on a lite5200 with an NFS root. Has not been performance
    tested.

    Signed-off-by: Asier Llano
    Signed-off-by: Grant Likely
    Signed-off-by: David S. Miller

    Asier Llano
     
  • Use a more effective rss hash by default (src + dst, rather than just
    src).

    Signed-off-by: Brice Goglin
    Signed-off-by: David S. Miller

    Brice Goglin
     
  • in routed mode, we don't have a hardware address so netdev_ops doesnt
    need to validate our hardware address via .ndo_validate_addr

    Reported-by: Manuel Fuentes
    Signed-off-by: Chas Williams - CONTRACTOR
    Signed-off-by: David S. Miller

    chas williams - CONTRACTOR
     
  • due to reference counting sk_wmem_alloc now has a value of 1 when all
    the outstanding data has been sent.

    Signed-off-by: Chas Williams - CONTRACTOR
    Signed-off-by: David S. Miller

    chas williams - CONTRACTOR