diff options
| author | Shirley Ma <mashirle@us.ibm.com> | 2010-03-29 11:19:15 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-04-13 01:00:34 -0400 |
| commit | 0e413f22e4c1cbfe12907e462a7d739a2e316f2b (patch) | |
| tree | 81c774a0b38334184ae14efde570e96283dcae01 | |
| parent | 4a1032faac94ebbf647460ae3e06fc21146eb280 (diff) | |
virtio_net: missing sg_init_table
Add missing sg_init_table for sg_set_buf in virtio_net which
induced in defer skb patch.
Reported-by: Thomas Müller <thomas@mathtm.de>
Tested-by: Thomas Müller <thomas@mathtm.de>
Signed-off-by: Shirley Ma <xma@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | drivers/net/virtio_net.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 6fb783ce20b9..b0577dd1a42d 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c | |||
| @@ -327,6 +327,7 @@ static int add_recvbuf_small(struct virtnet_info *vi, gfp_t gfp) | |||
| 327 | struct scatterlist sg[2]; | 327 | struct scatterlist sg[2]; |
| 328 | int err; | 328 | int err; |
| 329 | 329 | ||
| 330 | sg_init_table(sg, 2); | ||
| 330 | skb = netdev_alloc_skb_ip_align(vi->dev, MAX_PACKET_LEN); | 331 | skb = netdev_alloc_skb_ip_align(vi->dev, MAX_PACKET_LEN); |
| 331 | if (unlikely(!skb)) | 332 | if (unlikely(!skb)) |
| 332 | return -ENOMEM; | 333 | return -ENOMEM; |
| @@ -352,6 +353,7 @@ static int add_recvbuf_big(struct virtnet_info *vi, gfp_t gfp) | |||
| 352 | char *p; | 353 | char *p; |
| 353 | int i, err, offset; | 354 | int i, err, offset; |
| 354 | 355 | ||
| 356 | sg_init_table(sg, MAX_SKB_FRAGS + 2); | ||
| 355 | /* page in sg[MAX_SKB_FRAGS + 1] is list tail */ | 357 | /* page in sg[MAX_SKB_FRAGS + 1] is list tail */ |
| 356 | for (i = MAX_SKB_FRAGS + 1; i > 1; --i) { | 358 | for (i = MAX_SKB_FRAGS + 1; i > 1; --i) { |
| 357 | first = get_a_page(vi, gfp); | 359 | first = get_a_page(vi, gfp); |
