<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/stable/linux.git/drivers/net/sfc/selftest.c, branch master</title>
<subtitle>Linux kernel stable tree</subtitle>
<id>https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/atom?h=master</id>
<link rel='self' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/'/>
<updated>2011-08-11T09:33:50+00:00</updated>
<entry>
<title>sfc: Move the Solarflare drivers</title>
<updated>2011-08-11T09:33:50+00:00</updated>
<author>
<name>Jeff Kirsher</name>
<email>jeffrey.t.kirsher@intel.com</email>
</author>
<published>2011-05-13T07:17:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=874aeea5d01cac55c160a4e503e3ddb4db030de7'/>
<id>urn:sha1:874aeea5d01cac55c160a4e503e3ddb4db030de7</id>
<content type='text'>
Moves the Solarflare drivers into drivers/net/ethernet/sfc/ and
make the necessary Kconfig and Makefile changes.

CC: Steve Hodgson &lt;shodgson@solarflare.com&gt;
CC: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
Signed-off-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
</content>
</entry>
<entry>
<title>sfc: Use netif_device_{detach,attach}() around reset and self-test</title>
<updated>2011-05-16T22:34:28+00:00</updated>
<author>
<name>Ben Hutchings</name>
<email>bhutchings@solarflare.com</email>
</author>
<published>2011-05-16T17:51:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=e4abce8538496ba90cb89909894ea42e00f96a7d'/>
<id>urn:sha1:e4abce8538496ba90cb89909894ea42e00f96a7d</id>
<content type='text'>
We need to keep the TX queues stopped throughout a reset, without
triggering the TX watchdog and regardless of the link state.  The
proper way to do this is to use netif_device_{detach,attach}() just as
we do around suspend/resume, rather than the current bodge of faking
link-down.

Since we also need to do this during an offline self-test and we
perform a reset during that, add these function calls outside of
efx_reset_down() and efx_reset_up().

Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
</content>
</entry>
<entry>
<title>sfc: Do not use efx_process_channel_now() in online self-test</title>
<updated>2011-04-12T15:37:54+00:00</updated>
<author>
<name>Ben Hutchings</name>
<email>bhutchings@solarflare.com</email>
</author>
<published>2011-04-04T13:22:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=d4fabcc8e8ecac21262b1a5b9684fe415b128bd2'/>
<id>urn:sha1:d4fabcc8e8ecac21262b1a5b9684fe415b128bd2</id>
<content type='text'>
During self-tests we use efx_process_channel_now() to handle
completion and other events synchronously.  This disables interrupts
and NAPI processing for the channel in question, but it may still be
interrupted by another channel.  A single socket may receive packets
from multiple net devices or even multiple channels of the same net
device, so this can result in deadlock on a socket lock.

Receiving packets in process context will also result in incorrect
classification by the network cgroup classifier.

Therefore, we must only use efx_process_channel_now() in the offline
loopback tests (which never deliver packets up the stack) and not for
the online interrupt and event tests.

For the interrupt test, there is no reason to process events.  We
only care that an interrupt is raised.

For the event test, we want to know whether events have been received,
and there may be many events ahead of the one we inject.  Therefore
remove efx_channel::magic_count and instead test whether
efx_channel::eventq_read_ptr advances.  This is currently an event
queue index and might wrap around to exactly the same value, resulting
in a false negative.  Therefore move the masking to efx_event() and
efx_nic_eventq_read_ack() so that it cannot wrap within the time of
the test.

The event test also tries to diagnose failures by checking whether an
event was delivered without causing an interrupt.  Add and use a
helper function that only does this.

Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
</content>
</entry>
<entry>
<title>sfc: Stop the TX queues during loopback self-tests</title>
<updated>2011-04-12T15:20:25+00:00</updated>
<author>
<name>Neil Turton</name>
<email>nturton@solarflare.com</email>
</author>
<published>2011-04-04T12:46:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=9d1aea62e45d447e7fc05d4e7f4e90f633e3abfc'/>
<id>urn:sha1:9d1aea62e45d447e7fc05d4e7f4e90f633e3abfc</id>
<content type='text'>
If the TX queues are running during loopback self tests, host
traffic gets looped back which causes the test to fail.  Avoid
restarting the TX queues after the port reset so that any packets
sent by the host get held back until after the tests have completed.

[bwh: Also wake all TX queues at the end of self-tests.]

Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
</content>
</entry>
<entry>
<title>sfc: Update copyright dates</title>
<updated>2011-02-28T23:57:24+00:00</updated>
<author>
<name>Ben Hutchings</name>
<email>bhutchings@solarflare.com</email>
</author>
<published>2011-02-25T00:01:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=0a6f40c66ba388e6349a11bea146955716c4d492'/>
<id>urn:sha1:0a6f40c66ba388e6349a11bea146955716c4d492</id>
<content type='text'>
Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
</content>
</entry>
<entry>
<title>sfc: Add TX queues for high-priority traffic</title>
<updated>2011-02-15T19:45:35+00:00</updated>
<author>
<name>Ben Hutchings</name>
<email>bhutchings@solarflare.com</email>
</author>
<published>2011-01-10T21:18:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=94b274bf5fba6c75b922c8a23ad4b5639a168780'/>
<id>urn:sha1:94b274bf5fba6c75b922c8a23ad4b5639a168780</id>
<content type='text'>
Implement the ndo_setup_tc() operation with 2 traffic classes.

Current Solarstorm controllers do not implement TX queue priority, but
they do allow queues to be 'paced' with an enforced delay between
packets.  Paced and unpaced queues are scheduled in round-robin within
two separate hardware bins (paced queues with a large delay may be
placed into a third bin temporarily, but we won't use that).  If there
are queues in both bins, the TX scheduler will alternate between them.

If we make high-priority queues unpaced and best-effort queues paced,
and high-priority queues are mostly empty, a single high-priority queue
can then instantly take 50% of the packet rate regardless of how many
of the best-effort queues have descriptors outstanding.

We do not actually want an enforced delay between packets on best-
effort queues, so we set the pace value to a reserved value that
actually results in a delay of 0.

Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
</content>
</entry>
<entry>
<title>sfc: make functions static</title>
<updated>2010-10-21T10:09:43+00:00</updated>
<author>
<name>stephen hemminger</name>
<email>shemminger@vyatta.com</email>
</author>
<published>2010-10-18T05:27:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=d215697fe14a0c5a96765c6279b4751e632587a5'/>
<id>urn:sha1:d215697fe14a0c5a96765c6279b4751e632587a5</id>
<content type='text'>
Make local functions and variable static. Do some rearrangement
of the string table stuff to put it where it gets used.

Signed-off-by: Stephen Hemminger &lt;shemminger@vyatta.com&gt;
Acked-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: Make the dmaq size a run-time setting (rather than compile-time)</title>
<updated>2010-09-10T19:27:33+00:00</updated>
<author>
<name>Steve Hodgson</name>
<email>shodgson@solarflare.com</email>
</author>
<published>2010-09-10T06:42:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=ecc910f520ba8f22848982ee816ad75c449b805d'/>
<id>urn:sha1:ecc910f520ba8f22848982ee816ad75c449b805d</id>
<content type='text'>
- Allow the ring size to be specified in non
   power-of-two sizes (for instance to limit
   the amount of receive buffers).
 - Automatically size the event queue.

Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: Refactor channel and queue lookup and iteration</title>
<updated>2010-09-10T19:27:32+00:00</updated>
<author>
<name>Ben Hutchings</name>
<email>bhutchings@solarflare.com</email>
</author>
<published>2010-09-10T06:41:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=f7d12cdcbb28207b3bdcf4affbf3935e4c015d03'/>
<id>urn:sha1:f7d12cdcbb28207b3bdcf4affbf3935e4c015d03</id>
<content type='text'>
In preparation for changes to the way channels and queue structures
are allocated, revise the macros and functions used to look up and
iterator over them.

- Replace efx_for_each_tx_queue() with iteration over channels then TX
  queues
- Replace efx_for_each_rx_queue() with iteration over channels then RX
  queues (with one exception, shortly to be removed)
- Introduce efx_get_{channel,rx_queue,tx_queue}() functions to look up
  channels and queues by index
- Introduce efx_channel_get_{rx,tx}_queue() functions to look up a
  channel's queues

Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: Fix reading of inserted hash</title>
<updated>2010-06-26T04:03:30+00:00</updated>
<author>
<name>Ben Hutchings</name>
<email>bhutchings@solarflare.com</email>
</author>
<published>2010-06-25T07:05:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=604f6049ba2af86fe361d4cc320443d35b232df1'/>
<id>urn:sha1:604f6049ba2af86fe361d4cc320443d35b232df1</id>
<content type='text'>
The hash appears immediately before the packet data, not at the
beginning of the buffer. This means we can easily use negative offsets
from the start of packet data, so adjust the data and length at the
top of __efx_rx_packet() instead of wherever we consume the hash.

Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
