1. 10 1月, 2011 1 次提交
  2. 02 1月, 2011 1 次提交
    • S
      sky2: implement 64 bit stats · 0885a30b
      stephen hemminger 提交于
      This implements 64 bit statistics support and fixes races when reading
      counter values. The PHY counters can only be accessed 16 bits at a time,
      so they are subject to carry races.
      
      NB:
        * TX/RX counters are maintained in software because the the hardware packet count
          is only a 32 bit value.
      
        * Error counters are really only 32 bit.
      
        * Old 32 bit counter fields in dev->stats still used for some
          software counters
      Signed-off-by: NStephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0885a30b
  3. 03 6月, 2010 1 次提交
  4. 29 4月, 2010 1 次提交
  5. 25 4月, 2010 1 次提交
  6. 23 4月, 2010 1 次提交
  7. 31 3月, 2010 2 次提交
  8. 13 2月, 2010 1 次提交
  9. 03 2月, 2010 1 次提交
  10. 30 10月, 2009 2 次提交
  11. 02 10月, 2009 1 次提交
    • S
      sky2: irqname based on pci address · 66466797
      Stephen Hemminger 提交于
      This is based on Michal Schmidt fix for skge.
      
      Most network drivers request their IRQ when the interface is activated.
      sky2 does it in ->probe() instead, because it can work with two-port
      cards where the two net_devices use the same IRQ. This works fine most
      of the time, except in some situations when the interface gets renamed.
      Consider this example:
      
      1. modprobe sky2
         The card is detected as eth0 and requests IRQ 17. Directory
         /proc/irq/17/eth0 is created.
      2. There is an udev rule which says this interface should be called
         eth1, so udev renames eth0 -> eth1.
      3. modprobe 8139too
         The Realtek card is detected as eth0. It will be using IRQ 17 too.
      4. ip link set eth0 up
         Now 8139too requests IRQ 17.
      
      The result is:
      WARNING: at fs/proc/generic.c:590 proc_register ...
      proc_dir_entry '17/eth0' already registered
      
      The fix is for sky2 to name the irq based on the pci device, as is done
      by some other devices DRM, infiniband, ...  ie. sky2@pci:0000:00:00
      Signed-off-by: NStephen Hemminger <shemminger@vyatta.com>
      Reviewed-by: NMichal Schmidt <mschmidt@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      66466797
  12. 02 9月, 2009 2 次提交
  13. 19 8月, 2009 4 次提交
  14. 15 8月, 2009 2 次提交
  15. 04 8月, 2009 1 次提交
    • M
      sky2: Avoid transmits during sky2_down() · f6caa14a
      Mike McCormack 提交于
      This patch supersedes my previous patch "sky2: Avoid transmitting
      during sky2_restart".
      
      I have reworked the patch to avoid crashes during both sky2_restart()
      and sky2_set_ringparam().
      
      Without this patch, the sky2 driver can be crashed by doing:
      
      # pktgen eth1 &    (transmit many packets on eth1)
      # ethtool -G eth1 tx 510
      
      I am aware you object to storing extra state, but I can't see a way
      around this. Without remembering that we're restarting,
      netif_wake_queue() is called in the ISR from sky2_tx_complete(), and
      netif_tx_lock() is used in sky2_tx_done().  If anybody can see a way
      around this, please let me know.
      Signed-off-by: NMike McCormack <mikem@ring3k.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f6caa14a
  16. 18 6月, 2009 1 次提交
  17. 07 8月, 2008 1 次提交
  18. 18 6月, 2008 1 次提交
  19. 31 5月, 2008 2 次提交
  20. 13 5月, 2008 1 次提交
  21. 24 2月, 2008 1 次提交
  22. 06 2月, 2008 1 次提交
  23. 29 1月, 2008 1 次提交
  24. 13 1月, 2008 1 次提交
  25. 02 12月, 2007 1 次提交
  26. 10 11月, 2007 1 次提交
  27. 12 10月, 2007 1 次提交
  28. 11 10月, 2007 4 次提交
    • S
      sky2: use pci_config access functions · 167f53d0
      Stephen Hemminger 提交于
      Use the PCI layer config access functions. The driver was using the
      memory mapped window in device, to workaround issues accessing the
      advanced error reporting registers.
      Signed-off-by: NStephen Hemminger <shemminger@linux-foundation.org>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      167f53d0
    • S
      sky2: advanced error reporting · 555382cb
      Stephen Hemminger 提交于
      Use the kernel interfaces for advanced error reporting.
      This should be cleaner and clear up errors on boot.
      
      For those systems with busted BIOS's that don't correctly
      support mmconfig, advanced error reporting will be disabled.
      The PCI registers for advanced error reporting start at 0x100 which
      is too large to be accessed by legacy functions.
      Signed-off-by: NStephen Hemminger <shemminger@linux-foundation.org>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      555382cb
    • S
      sky2: document GPHY_CTRL bits · efcf6e2f
      Stephen Hemminger 提交于
      Add documentation of GPHY_CTRL register bits even if driver
      is not using them (yet).
      Signed-off-by: NStephen Hemminger <shemminger@linux-foundation.org>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      efcf6e2f
    • S
      [NET]: Make NAPI polling independent of struct net_device objects. · bea3348e
      Stephen Hemminger 提交于
      Several devices have multiple independant RX queues per net
      device, and some have a single interrupt doorbell for several
      queues.
      
      In either case, it's easier to support layouts like that if the
      structure representing the poll is independant from the net
      device itself.
      
      The signature of the ->poll() call back goes from:
      
      	int foo_poll(struct net_device *dev, int *budget)
      
      to
      
      	int foo_poll(struct napi_struct *napi, int budget)
      
      The caller is returned the number of RX packets processed (or
      the number of "NAPI credits" consumed if you want to get
      abstract).  The callee no longer messes around bumping
      dev->quota, *budget, etc. because that is all handled in the
      caller upon return.
      
      The napi_struct is to be embedded in the device driver private data
      structures.
      
      Furthermore, it is the driver's responsibility to disable all NAPI
      instances in it's ->stop() device close handler.  Since the
      napi_struct is privatized into the driver's private data structures,
      only the driver knows how to get at all of the napi_struct instances
      it may have per-device.
      
      With lots of help and suggestions from Rusty Russell, Roland Dreier,
      Michael Chan, Jeff Garzik, and Jamal Hadi Salim.
      
      Bug fixes from Thomas Graf, Roland Dreier, Peter Zijlstra,
      Joseph Fannin, Scott Wood, Hans J. Koch, and Michael Chan.
      
      [ Ported to current tree and all drivers converted.  Integrated
        Stephen's follow-on kerneldoc additions, and restored poll_list
        handling to the old style to fix mutual exclusion issues.  -DaveM ]
      Signed-off-by: NStephen Hemminger <shemminger@linux-foundation.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bea3348e
  29. 25 9月, 2007 1 次提交