Patch "xen-netfront: update num_queues to real created" has been added to the 4.1-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
xen-netfront: update num_queues to real created
to the 4.1-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
xen-netfront-update-num_queues-to-real-created.patch
and it can be found in the queue-4.1 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Tue Jan 26 21:37:04 PST 2016
From: Joe Jin <[email protected]>
Date: Mon, 19 Oct 2015 13:37:17 +0800
Subject: xen-netfront: update num_queues to real created
From: Joe Jin <[email protected]>
[ Upstream commit ca88ea1247dfee094e2467a3578eaec9bdf0833a ]
Sometimes xennet_create_queues() may failed to created all requested queues, we need to update num_queues to real created to avoid NULL pointer dereference.
--- drivers/net/xen-netfront.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)
drivers/net/xen-netfront.c +7 -7
@@ -1710,19 +1710,19 @@ static void xennet_destroy_queues(struct }static int xennet_create_queues (struct netfront_info *info, -unsigned int num_queues) +unsigned int *num_queues) {unsigned int i;int ret; - info->queues =kcalloc (num_queues,sizeof (struct netfront_queue ), + info->queues =kcalloc (*num_queues,sizeof (struct netfront_queue ),GFP_KERNEL );if (!info->queues)return -ENOMEM ;rtnl_lock (); -for (i =0 ; i < num_queues; i++) { +for (i =0 ; i < *num_queues; i++) {struct netfront_queue *queue = &info->queues[i]; queue->id = i;
@@ -1732,7 +1732,7 @@ static int xennet_create_queues(struct nif (ret <0 ) {dev_warn (&info->netdev->dev,"only created %d queues\n" , i); - num_queues = i; + *num_queues = i;break ; }
@@ -1742,11 +1742,11 @@ static int xennet_create_queues(struct nnapi_enable (&queue->napi); } -netif_set_real_num_tx_queues (info->netdev, num_queues); +netif_set_real_num_tx_queues (info->netdev, *num_queues);rtnl_unlock (); -if (num_queues ==0 ) { +if (*num_queues ==0 ) {dev_err (&info->netdev->dev,"no queues\n" );return -EINVAL ; }
@@ -1792,7 +1792,7 @@ static int talk_to_netback(struct xenbusif (info->queues)xennet_destroy_queues (info); - err =xennet_create_queues (info, num_queues); + err =xennet_create_queues (info, &num_queues);if (err <0 ) goto destroy_ring;
Patches currently in stable-queue which might be from [email protected] are
queue-4.1/xen-netfront-update-num_queues-to-real-created.patch