From: kfraser@localhost.localdomain Date: Thu, 25 Jan 2007 12:24:43 +0000 (+0000) Subject: netfront: Check availability of grant references in start_xmit(). X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15371^2~55 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=8658df107c3fd90e4a481e8c5c1dbdeb9a7d7e30;p=xen.git netfront: Check availability of grant references in start_xmit(). Signed-off-by: Tomonari Horikoshi --- diff --git a/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c b/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c index 448a972cc4..01ccb15b72 100644 --- a/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c +++ b/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c @@ -613,6 +613,10 @@ static int network_open(struct net_device *dev) static inline int netfront_tx_slot_available(struct netfront_info *np) { + /* XXX Need to check we have enough grants for worst-case fragments. */ + if (gnttab_empty_grant_references(&np->gref_tx_head)) + return 0; + return RING_FREE_REQUESTS(&np->tx) >= MAX_SKB_FRAGS + 2; }