diff options
| author | Insu Yun <wuninsu@gmail.com> | 2015-10-15 14:02:28 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2015-10-18 22:37:29 -0400 |
| commit | 833b8f18adfcca04070a8a42d545a4553379d36f (patch) | |
| tree | ea6c9a572819d080cc1982779dd802eb110fad0c /drivers/net/xen-netback | |
| parent | 80083a3c02ef4451edeef31a6f9afe130078f2bf (diff) | |
xen-netback: correctly check failed allocation
Since vzalloc can be failed in memory pressure,
writes -ENOMEM to xenstore to indicate error.
Signed-off-by: Insu Yun <wuninsu@gmail.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/xen-netback')
| -rw-r--r-- | drivers/net/xen-netback/xenbus.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c index 929a6e7e5ecf..56ebd8267386 100644 --- a/drivers/net/xen-netback/xenbus.c +++ b/drivers/net/xen-netback/xenbus.c | |||
| @@ -788,6 +788,12 @@ static void connect(struct backend_info *be) | |||
| 788 | /* Use the number of queues requested by the frontend */ | 788 | /* Use the number of queues requested by the frontend */ |
| 789 | be->vif->queues = vzalloc(requested_num_queues * | 789 | be->vif->queues = vzalloc(requested_num_queues * |
| 790 | sizeof(struct xenvif_queue)); | 790 | sizeof(struct xenvif_queue)); |
| 791 | if (!be->vif->queues) { | ||
| 792 | xenbus_dev_fatal(dev, -ENOMEM, | ||
| 793 | "allocating queues"); | ||
| 794 | return; | ||
| 795 | } | ||
| 796 | |||
| 791 | be->vif->num_queues = requested_num_queues; | 797 | be->vif->num_queues = requested_num_queues; |
| 792 | be->vif->stalled_queues = requested_num_queues; | 798 | be->vif->stalled_queues = requested_num_queues; |
| 793 | 799 | ||
