<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/net/xen-netback, branch linux-5.8.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.8.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.8.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2020-01-17T09:57:22Z</updated>
<entry>
<title>net: xen-netback: hash.c: Use built-in RCU list checking</title>
<updated>2020-01-17T09:57:22Z</updated>
<author>
<name>Madhuparna Bhowmik</name>
</author>
<published>2020-01-15T15:55:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f3265971ded98a069ad699b51b8a5ab95e9e5be1'/>
<id>urn:sha1:f3265971ded98a069ad699b51b8a5ab95e9e5be1</id>
<content type='text'>
list_for_each_entry_rcu has built-in RCU and lock checking.
Pass cond argument to list_for_each_entry_rcu.

Signed-off-by: Madhuparna Bhowmik &lt;madhuparnabhowmik04@gmail.com&gt;
Acked-by: Wei Liu &lt;wei.liu@kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>xen-netback: support dynamic unbind/bind</title>
<updated>2019-12-26T23:16:26Z</updated>
<author>
<name>Paul Durrant</name>
</author>
<published>2019-12-23T09:59:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9476654bd5e8ad42abe8ee9f9e90069ff8e60c17'/>
<id>urn:sha1:9476654bd5e8ad42abe8ee9f9e90069ff8e60c17</id>
<content type='text'>
By re-attaching RX, TX, and CTL rings during connect() rather than
assuming they are freshly allocated (i.e. assuming the counters are zero),
and avoiding forcing state to Closed in netback_remove() it is possible
for vif instances to be unbound and re-bound from and to (respectively) a
running guest.

Dynamic unbind/bind is a highly useful feature for a backend module as it
allows it to be unloaded and re-loaded (i.e. updated) without requiring
domUs to be halted.

This has been tested by running iperf as a server in the test VM and
then running a client against it in a continuous loop, whilst also
running:

while true;
  do echo vif-$DOMID-$VIF &gt;unbind;
  echo down;
  rmmod xen-netback;
  echo unloaded;
  modprobe xen-netback;
  cd $(pwd);
  brctl addif xenbr0 vif$DOMID.$VIF;
  ip link set vif$DOMID.$VIF up;
  echo up;
  sleep 5;
  done

in dom0 from /sys/bus/xen-backend/drivers/vif to continuously unbind,
unload, re-load, re-bind and re-plumb the backend.

Clearly a performance drop was seen but no TCP connection resets were
observed during this test and moreover a parallel SSH connection into the
guest remained perfectly usable throughout.

Signed-off-by: Paul Durrant &lt;pdurrant@amazon.com&gt;
Reviewed-by: Wei Liu &lt;wei.liu@kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net</title>
<updated>2019-12-22T23:15:05Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2019-12-22T23:15:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ac80010fc94eb0680d9a432b639583bd7ac29066'/>
<id>urn:sha1:ac80010fc94eb0680d9a432b639583bd7ac29066</id>
<content type='text'>
Mere overlapping changes in the conflicts here.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>xen-netback: remove 'hotplug-status' once it has served its purpose</title>
<updated>2019-12-18T07:03:33Z</updated>
<author>
<name>Paul Durrant</name>
</author>
<published>2019-12-17T13:32:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1f2565780e9b7218cf92c7630130e82dcc0fe9c2'/>
<id>urn:sha1:1f2565780e9b7218cf92c7630130e82dcc0fe9c2</id>
<content type='text'>
Removing the 'hotplug-status' node in netback_remove() is wrong; the script
may not have completed. Only remove the node once the watch has fired and
has been unregistered.

Signed-off-by: Paul Durrant &lt;pdurrant@amazon.com&gt;
Acked-by: Wei Liu &lt;wei.liu@kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>xen-netback: switch state to InitWait at the end of netback_probe()...</title>
<updated>2019-12-18T07:03:33Z</updated>
<author>
<name>Paul Durrant</name>
</author>
<published>2019-12-17T13:32:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f55c3188df84248558f33b13bba4c2817dda78a7'/>
<id>urn:sha1:f55c3188df84248558f33b13bba4c2817dda78a7</id>
<content type='text'>
...as the comment above the function states.

The switch to Initialising at the start of the function is somewhat bogus
as the toolstack will have set that initial state anyway. To behave
correctly, a backend should switch to InitWait once it has set up all
xenstore values that may be required by a initialising frontend. This
patch calls backend_switch_state() to make the transition at the
appropriate point.

NOTE: backend_switch_state() ignores errors from xenbus_switch_state()
      and so this patch removes an error path from netback_probe(). This
      means a failure to change state at this stage (in the absence of
      other failures) will leave the device instantiated. This is highly
      unlikley to happen as a failure to change state would indicate a
      failure to write to xenstore, and that will trigger other error
      paths. Also, a 'stuck' device can still be cleaned up using 'unbind'
      in any case.

Signed-off-by: Paul Durrant &lt;pdurrant@amazon.com&gt;
Acked-by: Wei Liu &lt;wei.liu@kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>xen-netback: move netback_probe() and netback_remove() to the end...</title>
<updated>2019-12-18T07:03:33Z</updated>
<author>
<name>Paul Durrant</name>
</author>
<published>2019-12-17T13:32:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=92fbeb43b6c44fb03e024c4c5b9f3d6b8ebd0cf0'/>
<id>urn:sha1:92fbeb43b6c44fb03e024c4c5b9f3d6b8ebd0cf0</id>
<content type='text'>
...of xenbus.c

This is a cosmetic function re-ordering to reduce churn in a subsequent
patch. Some style fix-up was done to make checkpatch.pl happier.

No functional change.

Signed-off-by: Paul Durrant &lt;pdurrant@amazon.com&gt;
Acked-by: Wei Liu &lt;wei.liu@kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>xen-netback: avoid race that can lead to NULL pointer dereference</title>
<updated>2019-12-15T19:40:15Z</updated>
<author>
<name>Paul Durrant</name>
</author>
<published>2019-12-13T13:20:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fd42bfd1bb31f9a521be6b4f1bd89b85abc08d20'/>
<id>urn:sha1:fd42bfd1bb31f9a521be6b4f1bd89b85abc08d20</id>
<content type='text'>
In function xenvif_disconnect_queue(), the value of queue-&gt;rx_irq is
zeroed *before* queue-&gt;task is stopped. Unfortunately that task may call
notify_remote_via_irq(queue-&gt;rx_irq) and calling that function with a
zero value results in a NULL pointer dereference in evtchn_from_irq().

This patch simply re-orders things, stopping all tasks before zero-ing the
irq values, thereby avoiding the possibility of the race.

Fixes: 2ac061ce97f4 ("xen/netback: cleanup init and deinit code")
Signed-off-by: Paul Durrant &lt;pdurrant@amazon.com&gt;
Acked-by: Wei Liu &lt;wei.liu@kernel.org&gt;
Signed-off-by: Jakub Kicinski &lt;jakub.kicinski@netronome.com&gt;
</content>
</entry>
<entry>
<title>xen/netback: cleanup init and deinit code</title>
<updated>2019-10-22T16:52:04Z</updated>
<author>
<name>Juergen Gross</name>
</author>
<published>2019-10-21T05:30:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2ac061ce97f413bfbbdd768f7d2e0fda2e8170df'/>
<id>urn:sha1:2ac061ce97f413bfbbdd768f7d2e0fda2e8170df</id>
<content type='text'>
Do some cleanup of the netback init and deinit code:

- add an omnipotent queue deinit function usable from
  xenvif_disconnect_data() and the error path of xenvif_connect_data()
- only install the irq handlers after initializing all relevant items
  (especially the kthreads related to the queue)
- there is no need to use get_task_struct() after creating a kthread
  and using put_task_struct() again after having stopped it.
- use kthread_run() instead of kthread_create() to spare the call of
  wake_up_process().

Signed-off-by: Juergen Gross &lt;jgross@suse.com&gt;
Reviewed-by: Paul Durrant &lt;pdurrant@gmail.com&gt;
Signed-off-by: Jakub Kicinski &lt;jakub.kicinski@netronome.com&gt;
</content>
</entry>
<entry>
<title>xen/netback: fix error path of xenvif_connect_data()</title>
<updated>2019-10-19T18:43:29Z</updated>
<author>
<name>Juergen Gross</name>
</author>
<published>2019-10-18T07:45:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3d5c1a037d37392a6859afbde49be5ba6a70a6b3'/>
<id>urn:sha1:3d5c1a037d37392a6859afbde49be5ba6a70a6b3</id>
<content type='text'>
xenvif_connect_data() calls module_put() in case of error. This is
wrong as there is no related module_get().

Remove the superfluous module_put().

Fixes: 279f438e36c0a7 ("xen-netback: Don't destroy the netdev until the vif is shut down")
Cc: &lt;stable@vger.kernel.org&gt; # 3.12
Signed-off-by: Juergen Gross &lt;jgross@suse.com&gt;
Reviewed-by: Paul Durrant &lt;paul@xen.org&gt;
Reviewed-by: Wei Liu &lt;wei.liu@kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net</title>
<updated>2019-08-19T18:54:03Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2019-08-19T18:54:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=446bf64b613c4433dac4b15f4eaf326beaad3c8e'/>
<id>urn:sha1:446bf64b613c4433dac4b15f4eaf326beaad3c8e</id>
<content type='text'>
Merge conflict of mlx5 resolved using instructions in merge
commit 9566e650bf7fdf58384bb06df634f7531ca3a97e.

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