diff options
author | David S. Miller <davem@davemloft.net> | 2013-02-18 23:32:49 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-02-18 23:34:21 -0500 |
commit | 6338a53a2bd02d5878ab449371323364b7cc7694 (patch) | |
tree | 461c4acae130771b9856715bc2cfdc341b6e5964 /drivers/net/xen-netback | |
parent | 8064b3cf750e71fdaf306abb4433a93d0f45f4c9 (diff) | |
parent | 18cf0d0784b4a634472ed24d0d7ca1c721d93e90 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net into net
Pull in 'net' to take in the bug fixes that didn't make it into
3.8-final.
Also, deal with the semantic conflict of the change made to
net/ipv6/xfrm6_policy.c A missing rt6->n neighbour release
was added to 'net', but in 'net-next' we no longer cache the
neighbour entries in the ipv6 routes so that change is not
appropriate there.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/xen-netback')
-rw-r--r-- | drivers/net/xen-netback/interface.c | 3 | ||||
-rw-r--r-- | drivers/net/xen-netback/netback.c | 8 |
2 files changed, 5 insertions, 6 deletions
diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-netback/interface.c index fc1b8d78f4bc..d98414168485 100644 --- a/drivers/net/xen-netback/interface.c +++ b/drivers/net/xen-netback/interface.c | |||
@@ -132,6 +132,7 @@ static void xenvif_up(struct xenvif *vif) | |||
132 | static void xenvif_down(struct xenvif *vif) | 132 | static void xenvif_down(struct xenvif *vif) |
133 | { | 133 | { |
134 | disable_irq(vif->irq); | 134 | disable_irq(vif->irq); |
135 | del_timer_sync(&vif->credit_timeout); | ||
135 | xen_netbk_deschedule_xenvif(vif); | 136 | xen_netbk_deschedule_xenvif(vif); |
136 | xen_netbk_remove_xenvif(vif); | 137 | xen_netbk_remove_xenvif(vif); |
137 | } | 138 | } |
@@ -365,8 +366,6 @@ void xenvif_disconnect(struct xenvif *vif) | |||
365 | atomic_dec(&vif->refcnt); | 366 | atomic_dec(&vif->refcnt); |
366 | wait_event(vif->waiting_to_free, atomic_read(&vif->refcnt) == 0); | 367 | wait_event(vif->waiting_to_free, atomic_read(&vif->refcnt) == 0); |
367 | 368 | ||
368 | del_timer_sync(&vif->credit_timeout); | ||
369 | |||
370 | if (vif->irq) | 369 | if (vif->irq) |
371 | unbind_from_irqhandler(vif->irq, vif); | 370 | unbind_from_irqhandler(vif->irq, vif); |
372 | 371 | ||
diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c index 2b9520c46e97..cd49ba949636 100644 --- a/drivers/net/xen-netback/netback.c +++ b/drivers/net/xen-netback/netback.c | |||
@@ -911,13 +911,13 @@ static int netbk_count_requests(struct xenvif *vif, | |||
911 | if (frags >= work_to_do) { | 911 | if (frags >= work_to_do) { |
912 | netdev_err(vif->dev, "Need more frags\n"); | 912 | netdev_err(vif->dev, "Need more frags\n"); |
913 | netbk_fatal_tx_err(vif); | 913 | netbk_fatal_tx_err(vif); |
914 | return -frags; | 914 | return -ENODATA; |
915 | } | 915 | } |
916 | 916 | ||
917 | if (unlikely(frags >= MAX_SKB_FRAGS)) { | 917 | if (unlikely(frags >= MAX_SKB_FRAGS)) { |
918 | netdev_err(vif->dev, "Too many frags\n"); | 918 | netdev_err(vif->dev, "Too many frags\n"); |
919 | netbk_fatal_tx_err(vif); | 919 | netbk_fatal_tx_err(vif); |
920 | return -frags; | 920 | return -E2BIG; |
921 | } | 921 | } |
922 | 922 | ||
923 | memcpy(txp, RING_GET_REQUEST(&vif->tx, cons + frags), | 923 | memcpy(txp, RING_GET_REQUEST(&vif->tx, cons + frags), |
@@ -925,7 +925,7 @@ static int netbk_count_requests(struct xenvif *vif, | |||
925 | if (txp->size > first->size) { | 925 | if (txp->size > first->size) { |
926 | netdev_err(vif->dev, "Frag is bigger than frame.\n"); | 926 | netdev_err(vif->dev, "Frag is bigger than frame.\n"); |
927 | netbk_fatal_tx_err(vif); | 927 | netbk_fatal_tx_err(vif); |
928 | return -frags; | 928 | return -EIO; |
929 | } | 929 | } |
930 | 930 | ||
931 | first->size -= txp->size; | 931 | first->size -= txp->size; |
@@ -935,7 +935,7 @@ static int netbk_count_requests(struct xenvif *vif, | |||
935 | netdev_err(vif->dev, "txp->offset: %x, size: %u\n", | 935 | netdev_err(vif->dev, "txp->offset: %x, size: %u\n", |
936 | txp->offset, txp->size); | 936 | txp->offset, txp->size); |
937 | netbk_fatal_tx_err(vif); | 937 | netbk_fatal_tx_err(vif); |
938 | return -frags; | 938 | return -EINVAL; |
939 | } | 939 | } |
940 | } while ((txp++)->flags & XEN_NETTXF_more_data); | 940 | } while ((txp++)->flags & XEN_NETTXF_more_data); |
941 | return frags; | 941 | return frags; |