|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC PATCH 11/13] xen-netfront: feature-persistent xenbus support
"feature-persistent" check on xenbus for persistent grants
support on the backend.
Signed-off-by: Joao Martins <joao.martins@xxxxxxxxx>
---
drivers/net/xen-netfront.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index 99c17c9..7f44cc7 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -162,6 +162,8 @@ struct netfront_info {
struct netfront_stats __percpu *tx_stats;
atomic_t rx_gso_checksum_fixup;
+
+ unsigned int feature_persistent:1;
};
struct netfront_rx_info {
@@ -1919,6 +1921,12 @@ again:
goto abort_transaction;
}
+ err = xenbus_write(xbt, dev->nodename, "feature-persistent", "1");
+ if (err) {
+ message = "writing feature-persistent";
+ goto abort_transaction;
+ }
+
err = xenbus_transaction_end(xbt, 0);
if (err) {
if (err == -EAGAIN)
@@ -1950,6 +1958,7 @@ static int xennet_connect(struct net_device *dev)
unsigned int num_queues = 0;
int err;
unsigned int feature_rx_copy;
+ unsigned int feature_persistent;
unsigned int j = 0;
struct netfront_queue *queue = NULL;
@@ -1964,6 +1973,13 @@ static int xennet_connect(struct net_device *dev)
return -ENODEV;
}
+ err = xenbus_gather(XBT_NIL, np->xbdev->otherend,
+ "feature-persistent", "%u", &feature_persistent,
+ NULL);
+ if (err)
+ feature_persistent = 0;
+ np->feature_persistent = !!feature_persistent;
+
err = talk_to_netback(np->xbdev, np);
if (err)
return err;
--
2.1.3
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |