20 Jun, 2009

1 commit


19 Jun, 2009

13 commits

  • The Unicast Promiscious Mode (UPM) bit in the mv643xx_eth port
    configuration register doesn't do exactly what its name would suggest:
    setting this bit merely enables reception of all unicast frames with a
    destination address that differs from our local MAC address in bits
    [47:4]. In particular, it doesn't have any effect on unicast frames
    with a destination address that matches our MAC address in bits [47:4]
    -- these will still be tested against the 16-entry unicast address
    filter table.

    Therefore, if the interface is set to promiscuous mode, just setting
    the unicast promiscuous bit isn't enough -- we need to set all filter
    bits in the unicast filter table to 1 as well.

    Reported-by: Sachin Sanap
    Signed-off-by: Prabhanjan Sarnaik
    Tested-by: Siddarth Gore
    Tested-by: Mahavir Jain
    Signed-off-by: Lennert Buytenhek
    Cc: stable@kernel.org
    Signed-off-by: David S. Miller

    Prabhanjan Sarnaik
     
  • all references got removed by 865c652d6be9929927cabdc54b137b7541eb6612
    (r8169: remove non-napi code).

    Signed-off-by: Florian Westphal
    Signed-off-by: David S. Miller

    Florian Westphal
     
  • The last hunk of this commit:

    commit 12d04a3c12b420f23398b4d650127642469a60a6
    Author: Alexander Duyck
    Date: Wed Mar 25 22:05:03 2009 +0000

    e1000e: commonize tx cleanup routine to match e1000 & igb

    changed the logic for determining if we should call napi_complete or
    not at then end of a napi poll.

    If the NIC is using MSI-X with no work to do in ->poll, net_rx_action
    can just spin indefinitely on older kernels and for 2 jiffies on newer
    kernels since napi_complete is never called and budget isn't
    decremented.

    Discovered and verified while testing driver backport to an older
    kernel.

    Signed-off-by: Andy Gospodarek
    Acked-by: Alexander Duyck
    Signed-off-by: David S. Miller

    Andy Gospodarek
     
  • This patch adds five PID's to the whitelist set of devices.

    Devices added to the whitelist:

    Dell Wireless 5530 HSPA
    Ericsson Mobile Broadband Module variants (F3507g, F3607gw and F3307)
    Toshiba F3507g

    Signed-off-by: Jonas Sjöquist
    Signed-off-by: David S. Miller

    Jonas Sjöquist
     
  • IEEE 802.15.4 git tree was moved from my private area to shared one.
    Fix address accordingly.

    Signed-off-by: Dmitry Eremin-Solenikov
    Signed-off-by: David S. Miller

    Dmitry Baryshkov
     
  • Use print_hex_dump_bytes instead of self-written dumping function
    for outputting packet dumps.

    Signed-off-by: Dmitry Eremin-Solenikov
    Signed-off-by: David S. Miller

    Dmitry Baryshkov
     
  • Rcv and process ansync link status notifications from BE instead of polling
    for link status in the be_worker thread.

    Signed-off-by: Sathya Perla
    Signed-off-by: David S. Miller

    Sathya Perla
     
  • Cleanup multicast_set method to avoid an extra copy of mc_list
    and unwanted promiscuos sets to BE.

    Signed-off-by: Sathya Perla
    Signed-off-by: David S. Miller

    Sathya Perla
     
  • Currenlty multicast_set and promiscuous_config cmds -- that may be called in BH context --
    use the blocking MCC mbox to post cmds.
    An mbox cmd is protected via a spin_lock(cmd_lock) and not spin_lock_bh() as it is undesirable
    to disable BHs while a blocking mbox cmd is in progress (and take long to finish.)
    This can lockup a cmd in progress in process context.
    So, these two cmds in BH context must use the MCC queue to post cmds.

    Signed-off-by: Sathya Perla
    Signed-off-by: David S. Miller

    Sathya Perla
     
  • Currenlty all cmds use the blocking MCC mbox to post cmds. An mbox cmd is protected
    via a spin_lock(cmd_lock) and not spin_lock_bh() as it is undesirable
    to disable BHs while a blocking mbox cmd is in progress (and take long to finish.)
    This can lockup a cmd in progress in process context. Instead cmds that may be
    called in BH context must use the MCC queue to post cmds. The cmd completions
    are rcvd in a separate completion queue and the events are placed in the tx-event
    queue.

    Signed-off-by: Sathya Perla
    Signed-off-by: David S. Miller

    Sathya Perla
     
  • This fixes various endianness bugs. Some harmless and some real ones.
    This is tested on a PowerPC-64 machine.

    Signed-off-by: Michael Buesch
    Cc: Stable
    Signed-off-by: David S. Miller

    Michael Buesch
     
  • If the iucv message limit for a communication path is exceeded,
    sendmsg() returns -EAGAIN instead of -EPIPE.
    The calling application can then handle this error situtation,
    e.g. to try again after waiting some time.

    For blocking sockets, sendmsg() waits up to the socket timeout
    before returning -EAGAIN. For the new wait condition, a macro
    has been introduced and the iucv_sock_wait_state() has been
    refactored to this macro.

    Signed-off-by: Hendrik Brueckner
    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Hendrik Brueckner
     
  • Change the if condition to exit sendmsg() if the socket in not connected.

    Signed-off-by: Hendrik Brueckner
    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Hendrik Brueckner
     

18 Jun, 2009

26 commits

  • This forces every update of tx ring producer to check for
    availability of space for next full TSO command. Earlier
    firmware control commands didn't care to pause tx queue.

    Stop the tx queue if there's not enough space to transmit one full
    LSO command left on the tx ring after current transmit. This avoids
    returning NETDEV_TX_BUSY after checking distance between producer
    and consumer on every cpu.

    Restart the tx queue only if we have cleaned up enough tx
    descriptors.

    Signed-off-by: Dhananjay Phadke
    Signed-off-by: David S. Miller

    Dhananjay Phadke
     
  • Fix the detection of cut-thru mode of the hardware (direct dma
    to host) to mode configured in SRE (ingress block) rather than
    onboard memory control.

    Signed-off-by: Dhananjay Phadke
    Signed-off-by: David S. Miller

    Dhananjay Phadke
     
  • forcedeth doesnt use properly dma api in its tx completion path
    and in nv_loopback_test()

    pci_map_single() should be paired with pci_unmap_single()
    pci_map_page() should be paired with pci_unmap_page()

    forcedeth xmit path uses pci_map_single() & pci_map_page(),
    but tx completion path only uses pci_unmap_single()

    nv_loopback_test() uses pci_map_single() & pci_unmap_page()

    Add a dma_single field in struct nv_skb_map, and
    define a helper function nv_unmap_txskb

    Signed-off-by: Eric Dumazet
    CC: Ayaz Abdulla
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • commit 2b85a34e911bf483c27cfdd124aeb1605145dc80
    (net: No more expensive sock_hold()/sock_put() on each tx)
    changed initial sk_wmem_alloc value.

    This broke net/atm since this protocol assumed a null
    initial value. This patch makes necessary changes.

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • commit 2b85a34e911bf483c27cfdd124aeb1605145dc80
    (net: No more expensive sock_hold()/sock_put() on each tx)
    changed initial sk_wmem_alloc value.

    We need to take into account this offset when reporting
    sk_wmem_alloc to user, in PROC_FS files or various
    ioctls (SIOCOUTQ/TIOCOUTQ)

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • on boot, link is always up.

    Signed-off-by: Seguier Regis
    Signed-off-by: David S. Miller

    Séguier Régis
     
  • If the adapter is not power-manageable using either ACPI, or the
    native PCI PM interface, __e100_power_off() returns error code, which
    causes every attempt to suspend to fail, although it should return 0
    in such a case. Fix this problem by ignoring the return value of
    pci_set_power_state() in __e100_power_off().

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Andreas Mohr
    Signed-off-by: David S. Miller

    Rafael J. Wysocki
     
  • clk_disable was called twice in the remove function.
    Correct this so that the driver module unloads without error.

    Signed-off-by: Chaithrika U S
    Signed-off-by: David S. Miller

    chaithrika@ti.com
     
  • This patch is inspired by patch recently posted by Johannes Berg. Basically what
    my patch does is to group list and a count of addresses into newly introduced
    structure netdev_hw_addr_list. This brings us two benefits:
    1) struct net_device becames a bit nicer.
    2) in the future there will be a possibility to operate with lists independently
    on netdevices (with exporting right functions).
    I wanted to introduce this patch before I'll post a multicast lists conversion.

    Signed-off-by: Jiri Pirko

    drivers/net/bnx2.c | 4 +-
    drivers/net/e1000/e1000_main.c | 4 +-
    drivers/net/ixgbe/ixgbe_main.c | 6 +-
    drivers/net/mv643xx_eth.c | 2 +-
    drivers/net/niu.c | 4 +-
    drivers/net/virtio_net.c | 10 ++--
    drivers/s390/net/qeth_l2_main.c | 2 +-
    include/linux/netdevice.h | 17 +++--
    net/core/dev.c | 130 ++++++++++++++++++--------------------
    9 files changed, 89 insertions(+), 90 deletions(-)
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • My previous patch, which explicitly delays freeing of tnodes by adding
    them to the list to flush them after the update is finished, isn't
    strict enough. It treats exceptionally tnodes without parent, assuming
    they are newly created, so "invisible" for the read side yet.

    But the top tnode doesn't have parent as well, so we have to exclude
    all exceptions (at least until a better way is found). Additionally we
    need to move rcu assignment of this node before flushing, so the
    return type of the trie_rebalance() function is changed.

    Reported-by: Yan Zheng
    Signed-off-by: Jarek Poplawski
    Signed-off-by: David S. Miller

    Jarek Poplawski
     
  • Action police statistics could be misleading because drops are not
    shown when expected.

    With feedback from: Jamal Hadi Salim

    Reported-by: Pawel Staszewski
    Signed-off-by: Jarek Poplawski
    Acked-by: Jamal Hadi Salim
    Signed-off-by: David S. Miller

    Jarek Poplawski
     
  • Version bump.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • Add support for generic receive offload.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • This patch implements skb recycling. It reclaims transmitted skb's
    for use in the receive ring.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • Reduce the size of the driver transmit ring to reduce latency
    and allow qdisc to do better rate control. Also make it
    obvious what the minimum transmit ring allowed is and why.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • Since it is likely that there are multiple packets received per
    interrupt, only update the receive counters once after all
    packets are processed.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • The logic in sky2_down was incorrect. Receiver could report status
    after rx_stop was called.

    The steps need to be:
    * stop new frames from being transmitted
    * shut off transmit/receive logic
    * synchronize with NAPI to process status info about transmitter
    and receiver

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • Add some read's to avoid any PCI posting issues when controlling
    irq's.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • Reset more parts of the receive path when device is take offline.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • This unblocks the chip if it is stuck in pause cycle during
    shutdown.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • Stopping all activity through ChipCmd and blindly acking the irqs
    is neither nice nor completely needed: the transition to low-power
    mode does enough work and it apparently keeps the device in a sane
    state.

    Patch suggested by a fix for http://bugzilla.kernel.org/show_bug.cgi?id=9512

    The rtl_shutdown path is kept unchanged so far.

    Signed-off-by: Francois Romieu
    Tested-by: Anders Eriksson
    Cc: Edward Hsu
    Signed-off-by: David S. Miller

    françois romieu
     
  • When sis190 driver is trying to get default phy, if it doesn't find home
    or lan phy, it falls back to the first phy in the phy list but list_entry()
    points to a bogus entry. list_first_entry() should be used instead.

    Signed-off-by: Arnaud Patard
    Acked-off-by: Francois Romieu
    Signed-off-by: David S. Miller

    françois romieu
     
  • -- derived from reverted commit 047584ce94108012288554a5f84585d792cc7f8f
    -- reworked by Grant Likely to play nice with commit:
    "net: Rework ucc_geth driver to use of_mdio infrastructure"
    (0b9da337dca972e7a4144e298ec3adb8f244d4a4)

    Signed-off-by: Haiying Wang
    Signed-off-by: David S. Miller
    Signed-off-by: Grant Likely
    Signed-off-by: David S. Miller

    Haiying Wang
     
  • This reverts commit 047584ce94108012288554a5f84585d792cc7f8f.

    This patch meshes badly with "net: Rework ucc_geth driver to use
    of_mdio infrastructure" (0b9da337dca972e7a4144e298ec3adb8f244d4a4).
    Since most of the patch needs to be reworked, it is clearer to revert
    the patch and then apply the corrected version

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

    Grant Likely
     
  • The skb mac_header field is sometimes NULL (or ~0u) as a sentinel
    value. The places where skb is expanded add an offset which would
    change this flag into an invalid pointer (or offset).

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • Looking at the crash in log_martians(), one suspect is that the check for
    mac header being set is not correct. The value of mac_header defaults to
    0 on allocation, therefore skb_mac_header_was_set will always be true on
    platforms using NET_SKBUFF_USES_OFFSET.

    Signed-off-by: Stephen Hemminger
    Acked-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Stephen Hemminger