1. 18 2月, 2010 2 次提交
  2. 13 2月, 2010 2 次提交
  3. 08 1月, 2010 1 次提交
  4. 04 12月, 2009 1 次提交
  5. 20 11月, 2009 1 次提交
  6. 14 10月, 2009 1 次提交
  7. 12 10月, 2009 1 次提交
  8. 02 10月, 2009 1 次提交
    • M
      skge: use unique IRQ name · 415e69e6
      Michal Schmidt 提交于
      Most network drivers request their IRQ when the interface is activated.
      skge 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 skge
         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
      ...
      And "ls /proc/irq/17" shows two subdirectories, both called eth0.
      
      Fix it by using a unique name for skge's IRQ, based on the PCI address.
      The naming from the example then looks like this:
      $ grep skge /proc/interrupts
       17:        169   IO-APIC-fasteoi   skge@pci:0000:00:0a.0, eth0
      
      irqbalance daemon will have to be taught to recognize "skge@" as an
      Ethernet interrupt. This will be a one-liner addition in classify.c. I
      will send a patch to irqbalance if this change is accepted.
      Signed-off-by: NMichal Schmidt <mschmidt@redhat.com>
      Acked-by: NStephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      415e69e6
  9. 01 10月, 2009 1 次提交
  10. 21 9月, 2009 1 次提交
  11. 04 9月, 2009 1 次提交
  12. 01 9月, 2009 1 次提交
  13. 23 7月, 2009 1 次提交
  14. 29 5月, 2009 1 次提交
  15. 15 4月, 2009 1 次提交
  16. 07 4月, 2009 2 次提交
  17. 22 1月, 2009 1 次提交
  18. 23 12月, 2008 1 次提交
  19. 21 11月, 2008 1 次提交
  20. 20 11月, 2008 1 次提交
  21. 04 11月, 2008 1 次提交
  22. 31 10月, 2008 1 次提交
    • R
      skge: adapt skge to use reworked PCI PM · 5177b324
      Rafael J. Wysocki 提交于
      Adapt the skge driver to the reworked PCI PM
      
      * Use device_set_wakeup_enable() and friends as needed
      * Remove an open-coded reference to the standard PCI PM registers
      * Use pci_prepare_to_sleep() and pci_back_from_sleep() in the
        ->suspend() and ->resume() callbacks
      * Use the observation that it is sufficient to call pci_enable_wake()
        once, unless it fails
      
      Tested on Asus L5D (Yukon-Lite rev 7).
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Cc: Stephen Hemminger <shemminger@linux-foundation.org>
      Cc: Jeff Garzik <jeff@garzik.org>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      5177b324
  23. 28 10月, 2008 1 次提交
  24. 09 10月, 2008 2 次提交
    • W
      skge: Fix skge_set_ring_param() losing error return · e824b3eb
      Wang Chen 提交于
      The error return is useful to caller, driver shouldn't miss it.
      Signed-off-by: NWang Chen <wangchen@cn.fujitsu.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e824b3eb
    • X
      [10/21] driver/net/skge.c: restart the interface when it's options or · 9ac1353f
      Xiaoming.Zhang 提交于
      pauseparam is set
      
      On Wednesday 24 September 2008 07:47, Stephen Hemminger wrote:
      > On Mon, 22 Sep 2008 14:52:17 -0700
      >
      > akpm@linux-foundation.org wrote:
      > > From: "Xiaoming.Zhang" <Xiaoming.Zhang@resilience.com>
      > >
      > > We have an issue of the skge driver: The card won't work when it's
      > > options are changed.  Here's the hardware info:
      > >
      > > # lspci -v
      > > 05:04.0 Ethernet controller: Marvell Technology Group Ltd. 88E8001
      > > Gigabit Ethernet Controller (rev 13) Subsystem: Marvell Technology Group
      > > Ltd. Marvell RDK-8001 Flags: bus master, 66MHz, medium devsel, latency
      > > 32, IRQ 16 Memory at d042c000 (32-bit, non-prefetchable) [size=16K] I/O
      > > ports at d000 [size=256]
      > >         [virtual] Expansion ROM at 20400000 [disabled] [size=128K]
      > >         Capabilities: [48] Power Management version 2
      > >         Capabilities: [50] Vital Product Data
      > >
      > > The happens in both Linux-2.6.26(skge version 1.23) and RHEL5.2(skge
      > > version 1.6).
      > >
      > > For example, at first it is set to "speed 1000 duplex full auto-neg on"
      > > and it works, then run
      > >
      > >        ethtool -s <ethx> autoneg off
      > > or     ethtool -s <ethx> speed 100 duplex full autoneg off
      > >
      > > Then it will stop working. After that if we restart the interface:
      > >
      > > 	ifconifg <ethx> down
      > > 	ifconfig <ethx> up
      > >
      > > It will work again. And `ethtool -A' has the same issue.
      > >
      > > So we think after setting the options, the interface should be restarted.
      > >
      > > Signed-off-by: Zhang Xiaoming <xiaoming.zhang@resilience.com>
      > > Cc: Stephen Hemminger <shemminger@vyatta.com>
      > > Cc: Jeff Garzik <jeff@garzik.org>
      > > Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
      > > ---
      > >
      > >  drivers/net/skge.c |   12 ++++++++----
      > >  1 file changed, 8 insertions(+), 4 deletions(-)
      > >
      > > diff -puN
      > > drivers/net/skge.c~driver-net-skgec-restart-the-interface-when-its-option
      > >s-or-pauseparam-is-set drivers/net/skge.c ---
      > > a/drivers/net/skge.c~driver-net-skgec-restart-the-interface-when-its-opti
      > >ons-or-pauseparam-is-set +++ a/drivers/net/skge.c
      > > @@ -353,8 +353,10 @@ static int skge_set_settings(struct net_
      > >  	skge->autoneg = ecmd->autoneg;
      > >  	skge->advertising = ecmd->advertising;
      > >
      > > -	if (netif_running(dev))
      > > -		skge_phy_reset(skge);
      > > +	if (netif_running(dev)) {
      > > +		skge_down(dev);
      > > +		skge_up(dev);
      > > +	}
      > >
      > >  	return (0);
      > >  }
      > > @@ -595,8 +597,10 @@ static int skge_set_pauseparam(struct ne
      > >  			skge->flow_control = FLOW_MODE_NONE;
      > >  	}
      > >
      > > -	if (netif_running(dev))
      > > -		skge_phy_reset(skge);
      > > +	if (netif_running(dev)) {
      > > +		skge_down(dev);
      > > +		skge_up(dev);
      > > +	}
      > >
      > >  	return 0;
      > >  }
      >
      > Since skge_up can fail because of out of memory, this code needs to
      > check the return value. And then if it fails the "limbo state" needs
      > to be handled in skge_down.
      
      How about like this? It is tested.
      
      Thank you.
      Signed-off-by: NZhang Xiaoming <xiaoming.zhang@resilience.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9ac1353f
  25. 26 3月, 2008 2 次提交
  26. 02 12月, 2007 8 次提交
  27. 16 11月, 2007 1 次提交
    • L
      Revert "skge: fix ram buffer size calculation" · 279e1dab
      Linus Torvalds 提交于
      This reverts commit 7fb7ac24.
      
      Heikki Orsila reports that it causes a regression:
      
        "Doing
      
      	nc host port < /dev/zero
      
         on a sending machine (not skge) to an skge machine that is receiving:
      
      	nc -l -p port >/dev/null
      
         with ~60 MiB/s speed, causes the interface go malfunct. A slow
         transfer doesn't cause a problem."
      
      See
      
      	http://bugzilla.kernel.org/show_bug.cgi?id=9321
      
      for some more information.
      
      There is a workaround (also reported by Heikki):
      
        "After some fiddling, I noticed that not changing the register write
         order on patch:
      
         +       skge_write32(hw, RB_ADDR(q, RB_END), end);
                 skge_write32(hw, RB_ADDR(q, RB_WP), start);
                 skge_write32(hw, RB_ADDR(q, RB_RP), start);
         -       skge_write32(hw, RB_ADDR(q, RB_END), end);
      
         fixes the visible effect..  Possibly not the root cause of the
         problem, but changing the order back fixes networking here."
      
      but that has yet to be ack'ed or tested more widely, so the whole
      problem-causing commit gets reverted until this is resolved properly.
      Bisected-and-requested-by: NHeikki Orsila <shdl@zakalwe.fi>
      Cc: Stephen Hemminger <shemminger@linux-foundation.org>
      Cc: Jeff Garzik <jeff@garzik.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      279e1dab
  28. 17 10月, 2007 1 次提交