<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/net/ethernet/sfc/net_driver.h, branch linux-4.3.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.3.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.3.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2015-12-09T19:34:08Z</updated>
<entry>
<title>sfc: push partner queue for skb-&gt;xmit_more</title>
<updated>2015-12-09T19:34:08Z</updated>
<author>
<name>Martin Habets</name>
<email>mhabets@solarflare.com</email>
</author>
<published>2015-11-02T12:51:31Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c555478720e688d9b9fda6afb51253fc9d3f71c6'/>
<id>urn:sha1:c555478720e688d9b9fda6afb51253fc9d3f71c6</id>
<content type='text'>
[ Upstream commit b2663a4f30e85ec606b806f5135413e6d5c78d1e ]

When the IP stack passes SKBs the sfc driver puts them in 2 different TX
queues (called partners), one for checksummed and one for not checksummed.
If the SKB has xmit_more set the driver will delay pushing the work to the
NIC.

When later it does decide to push the buffers this patch ensures it also
pushes the partner queue, if that also has any delayed work. Before this
fix the work in the partner queue would be left for a long time and cause
a netdev watchdog.

Fixes: 70b33fb ("sfc: add support for skb-&gt;xmit_more")
Reported-by: Jianlin Shi &lt;jishi@redhat.com&gt;
Signed-off-by: Martin Habets &lt;mhabets@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sfc: Allow driver to cope with a lower number of VIs than it needs for RSS</title>
<updated>2015-08-28T20:53:47Z</updated>
<author>
<name>Shradha Shah</name>
<email>sshah@solarflare.com</email>
</author>
<published>2015-08-28T09:55:42Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=b0fbdae127a3968688ff7b474e9164dc4bf30dd5'/>
<id>urn:sha1:b0fbdae127a3968688ff7b474e9164dc4bf30dd5</id>
<content type='text'>
Previously, the driver would refuse to load if it couldn't secure
enough VIs from the MC to fulfill its RSS requirements.
This was causing probe to fail on later functions in
configurations where we'd run out of VIs, such as having many
VFs.

This change allows the driver to load with fewer VIs, down to a
minimum of 2. A warning will be printed saying that RSS
requirements were not met, possibly affecting performance.

efx-&gt;max_tx_channels needs to be set to avoid going down the
failure path in efx_probe_nic() immediately in the loop after the
probe() NIC-type function.
Also, Set rc=ENOSPC when bombing out of efx_probe_nic due to lack
of VIs.

Signed-off-by: Shradha Shah &lt;sshah@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: support cascaded multicast filters</title>
<updated>2015-07-22T05:21:32Z</updated>
<author>
<name>Daniel Pieczko</name>
<email>dpieczko@solarflare.com</email>
</author>
<published>2015-07-21T14:10:44Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=ab8b1f7cf83a3016dcdeae874a469e2c8894fcd9'/>
<id>urn:sha1:ab8b1f7cf83a3016dcdeae874a469e2c8894fcd9</id>
<content type='text'>
If the workaround to support cascaded multicast filters ("workaround_26807") is
enabled, the broadcast filter and individual multicast filters are not inserted
when in promiscuous or allmulti mode.

There is a race while inserting and removing filters when entering and leaving
promiscuous mode.  When changing promiscuous state with cascaded multicast
filters, the old multicast filters are removed before inserting the new filters
to avoid duplicating packets; this can lead to dropped packets until all
filters have been inserted.

The efx_nic:mc_promisc flag is added to record the presence of a multicast
promiscuous filter; this gives a simple way to tell if the promiscuous state is
changing.

Signed-off-by: Edward Cree &lt;ecree@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: Report TX completions to BQL after all TX events in interrupt</title>
<updated>2015-07-09T07:00:40Z</updated>
<author>
<name>Peter Dunning</name>
<email>pdunning@solarflare.com</email>
</author>
<published>2015-07-08T09:05:10Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c936835c1ec6f871f32c9b87a7708700320075b3'/>
<id>urn:sha1:c936835c1ec6f871f32c9b87a7708700320075b3</id>
<content type='text'>
The limit for BQL is updated each time we call
netdev_tx_completed_queue.
Without this patch the BQL limit was updated for every TX event we
see.
The issue was that this only updated the limit to handle the data
we complete in two events as the first event wouldn't show that
enough traffic had been processed between them.

This was OK when interrupt moderation was off but not when it was
on as more data had to be completed in a single interrupt.

The patch changes this so that we do report the completion to BQL
only when all the TX events in the interrupt have been processed.

Signed-off-by: Shradha Shah &lt;sshah@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: Implement ndo_gets_phys_port_id() for EF10 VFs</title>
<updated>2015-06-02T19:57:26Z</updated>
<author>
<name>Shradha Shah</name>
<email>sshah@solarflare.com</email>
</author>
<published>2015-06-02T10:38:16Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=1d051e009851334899e2041c3d8dcde36e2db1c2'/>
<id>urn:sha1:1d051e009851334899e2041c3d8dcde36e2db1c2</id>
<content type='text'>
Signed-off-by: Shradha Shah &lt;sshah@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: set the MAC address using MC_CMD_VADAPTOR_SET_MAC</title>
<updated>2015-05-21T22:43:55Z</updated>
<author>
<name>Shradha Shah</name>
<email>sshah@solarflare.com</email>
</author>
<published>2015-05-20T10:12:48Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=910c8789a777c0a18cd997765de291b49bd26906'/>
<id>urn:sha1:910c8789a777c0a18cd997765de291b49bd26906</id>
<content type='text'>
Add a set_mac_address() NIC-type function for EF10 only, and
use this to set the MAC address on the vadaptor. For Siena and
earlier, the MAC address continues to be set by MC_CMD_SET_MAC;
this is still called on EF10, and including a MAC address in
this command has no effect.

The sriov_mac_address_changed() NIC-type function is no longer
needed on EF10, but it is needed for Siena where it is used to
update the peer address of the PF for VFDI.  Change this to use
the new set_mac_address function pointer.

efx_ef10_sriov_mac_address_changed() is no longer called, as VFs
will try to change the MAC address on their vadaptor rather than
trying to change to the context of the PF to alter the vport.

When a VF is running in direct passthrough mode with MAC spoofing
enabled, it will be able to change the MAC address on its vadaptor.
In this case, there is a link to the PF, so find the correct VF in
its ef10_vf array and update the MAC address.

ndo_set_mac_address() can be called during driver unload while
bonding, and in this case the device has already been stopped, so
don't call efx_net_open() to restart it after reconfiguration.

efx-&gt;port_enabled is set to false in efx_stop_port(), so it is
indicator of whether the device needs to be restarted.

Signed-off-by: Shradha Shah &lt;sshah@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: add ndo_set_vf_link_state() function for EF10</title>
<updated>2015-05-21T22:43:54Z</updated>
<author>
<name>Edward Cree</name>
<email>ecree@solarflare.com</email>
</author>
<published>2015-05-20T10:12:13Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=4392dc6900618c1d5137a3cd43805d746a2c563a'/>
<id>urn:sha1:4392dc6900618c1d5137a3cd43805d746a2c563a</id>
<content type='text'>
Exercised with
"ip link set &lt;PF intf&gt; vf &lt;vf_i&gt; state {auto|enable|disable}"
Sets the reporting policy for VF link state to either
 - mirror physical link state
 - always up
 - always down

get VF link state mode in efx_ef10_sriov_get_vf_config

Exercised by
"ip link show &lt;PF intf&gt;";
output will include a line like
vf 0 MAC 12:34:56:78:9a:bc, link-state auto

Signed-off-by: Shradha Shah &lt;sshah@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: Enable a VF to get its own MAC address</title>
<updated>2015-05-21T22:43:53Z</updated>
<author>
<name>Daniel Pieczko</name>
<email>dpieczko@solarflare.com</email>
</author>
<published>2015-05-20T10:10:20Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=0d5e0fbba0ced95cc642d89a95120dcc9ec5be57'/>
<id>urn:sha1:0d5e0fbba0ced95cc642d89a95120dcc9ec5be57</id>
<content type='text'>
A VF's MAC address is set by its parent PF and added to its vport.
To get this MAC address, the VF must use MC_CMD_ VPORT_GET_MAC_ADDRESSES.
In the current scheme, a VF's vport should only have one MAC address,
so warn if this is not the case.

Signed-off-by: Shradha Shah &lt;sshah@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: protect filter table against use-after-free</title>
<updated>2015-05-21T22:43:53Z</updated>
<author>
<name>Edward Cree</name>
<email>ecree@solarflare.com</email>
</author>
<published>2015-05-20T10:10:03Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=0d322413d6cff0bd2ccafc03ab9314dc55417e9d'/>
<id>urn:sha1:0d322413d6cff0bd2ccafc03ab9314dc55417e9d</id>
<content type='text'>
If MCDI timeouts are encountered during efx_ef10_filter_table_remove(),
an FLR will be queued, but efx-&gt;filter_state will still be kfree()d.
The queued FLR will then call efx_ef10_filter_table_restore(), which
will try to use efx-&gt;filter_state. This previously caused a panic.
This patch adds an rwsem to protect the existence of efx-&gt;filter_state,
separately from the spinlock protecting its contents.  Users which can
race against efx_ef10_filter_table_remove() should down_read this rwsem.

Signed-off-by: Shradha Shah &lt;sshah@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: save old MAC address in case sriov_mac_address_changed fails</title>
<updated>2015-05-21T22:43:53Z</updated>
<author>
<name>Shradha Shah</name>
<email>sshah@solarflare.com</email>
</author>
<published>2015-05-20T10:09:30Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=cfc77c2fbadf5b806fea2e35738c7437fc62f522'/>
<id>urn:sha1:cfc77c2fbadf5b806fea2e35738c7437fc62f522</id>
<content type='text'>
Otherwise the PF and VF can disagree on the VF's MAC address and
this leads to strange behaviour, up to and including kernel panics.

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