1. 09 9月, 2010 8 次提交
    • J
      e1000: fix Tx hangs by disabling 64-bit DMA · e508be17
      Jesse Brandeburg 提交于
      Several users report issues with 32-bit adapters when plugged
      into PCI slots in machines with >= 4GB ram.  In particular AMD
      systems with HyperTransport to PCI bridges seem to trigger the
      issue, but it isn't limited to only them.
      
      This issue is not easily reproducible here, yet still continues
      to occur in the field.  For e1000 on PCI devices, just disable DMA
      addresses over the 4GB boundary when in PCI (not PCI-X) mode, to
      prevent the issue from continuing to pop up.  The performance
      impact for this is negligible.
      
      The code was refactored to move the init of the hw struct to its
      own function. This allows the init to be called very early in
      probe, which then allows using hw-> members for this fix.
      
      A slight refactor to the DMA mask code was done for minor
      correctness based on the instructions in DMA-API-HOWTO.
      Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e508be17
    • E
      net: introduce rcu_dereference_rtnl · a6e0fc85
      Eric Dumazet 提交于
      We use rcu_dereference_check(p, rcu_read_lock_held() ||
      lockdep_rtnl_is_held()) several times in network stack.
      
      More usages to come too, so its time to create a helper.
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a6e0fc85
    • A
      drivers: isdn: capi: use simple_strtol to convert numbers · a7a4f1c1
      Andy Shevchenko 提交于
      Signed-off-by: NAndy Shevchenko <andy.shevchenko@gmail.com>
      Cc: Karsten Keil <isdn@linux-pingi.de>
      Cc: Tilman Schmidt <tilman@imap.cc>
      Cc: netdev@vger.kernel.org
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a7a4f1c1
    • N
      net: remove address space warnings in net/socket.c · fb8621bb
      Namhyung Kim 提交于
      Casts __kernel to __user pointer require __force markup, so add it. Also
      sock_get/setsockopt() takes @optval and/or @optlen arguments as user pointers
      but were taking kernel pointers, use new variables 'uoptval' and/or 'uoptlen'
      to fix it. These remove following warnings from sparse:
      
       net/socket.c:1922:46: warning: cast adds address space to expression (<asn:1>)
       net/socket.c:3061:61: warning: incorrect type in argument 4 (different address spaces)
       net/socket.c:3061:61:    expected char [noderef] <asn:1>*optval
       net/socket.c:3061:61:    got char *optval
       net/socket.c:3061:69: warning: incorrect type in argument 5 (different address spaces)
       net/socket.c:3061:69:    expected int [noderef] <asn:1>*optlen
       net/socket.c:3061:69:    got int *optlen
       net/socket.c:3063:67: warning: incorrect type in argument 4 (different address spaces)
       net/socket.c:3063:67:    expected char [noderef] <asn:1>*optval
       net/socket.c:3063:67:    got char *optval
       net/socket.c:3064:45: warning: incorrect type in argument 5 (different address spaces)
       net/socket.c:3064:45:    expected int [noderef] <asn:1>*optlen
       net/socket.c:3064:45:    got int *optlen
       net/socket.c:3078:61: warning: incorrect type in argument 4 (different address spaces)
       net/socket.c:3078:61:    expected char [noderef] <asn:1>*optval
       net/socket.c:3078:61:    got char *optval
       net/socket.c:3080:67: warning: incorrect type in argument 4 (different address spaces)
       net/socket.c:3080:67:    expected char [noderef] <asn:1>*optval
       net/socket.c:3080:67:    got char *optval
      Signed-off-by: NNamhyung Kim <namhyung@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fb8621bb
    • J
      e3634169
    • O
      introduce cx82310_eth: Conexant CX82310-based ADSL router USB ethernet driver · cc28a20e
      Ondrej Zary 提交于
      This patch introduces cx82310_eth driver - driver for USB ethernet port of
      ADSL routers based on Conexant CX82310 chips. Such routers usually have
      ethernet port(s) too which are bridged together with the USB ethernet port,
      allowing the USB-connected machine to communicate to the network (and also
      internet through the ADSL, of course).
      
      This is my first driver, so please check thoroughly. As there's no protocol
      documentation, it was done with usbsnoop dumps from Windows driver, some
      parts (the commands) inspired by cxacru driver and also other usbnet drivers.
      The driver passed my testing - some real work and also pings sized from 0 to
      65507 B.
      
      The only problem I found is the ifconfig error counter. When I return 0 (or 1
      but empty skb) from rx_fixup(), usbnet increases the error counter although
      it's not an error condition (because packets can cross URB boundaries). Maybe
      the usbnet should be fixed to allow rx_fixup() to return empty skbs (or some
      other value, e.g. 2)?
      
      The USB ID of my device is 0x0572:0xcb01 which conflicts with some ADSL modems
      using cxacru driver (they probably use the same chipset but simpler
      firmware). The modems seem to use bDeviceClass 0 and iProduct "ADSL USB
      MODEM", my router uses bDeviceClass 255 and iProduct "USB NET CARD". The
      driver matches only devices with class 255 and checks for the iProduct string
      during init. I already posted a patch for the cxacru driver to ignore these
      devices.
      Signed-off-by: NOndrej Zary <linux@rainbow-software.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cc28a20e
    • C
      net: rps: add the shortcut for one rps_cpus · 6febfca9
      Changli Gao 提交于
      When there is only one rps_cpus, skb_get_rxhash() can be eliminated.
      Signed-off-by: NChangli Gao <xiaosuo@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6febfca9
    • D
      sctp: implement SIOCINQ ioctl() (take 3) · 65040c33
      Diego Elio 'Flameeyes' Pettenò 提交于
      This simple patch copies the current approach for SIOCINQ ioctl() from DCCP
      into SCTP so that the userland code working with SCTP can use a similar
      interface across different protocols to know how much space to allocate for
      a buffer.
      Signed-off-by: NDiego Elio Pettenò <flameeyes@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      65040c33
  2. 08 9月, 2010 11 次提交
  3. 07 9月, 2010 21 次提交