[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/2] Try to re-open network device on transmission error
From: |
rekado |
Subject: |
[PATCH 1/2] Try to re-open network device on transmission error |
Date: |
Thu, 12 Sep 2013 14:10:54 +0800 |
---
pfinet/ethernet.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/pfinet/ethernet.c b/pfinet/ethernet.c
index b96c09a..f9fadf1 100644
--- a/pfinet/ethernet.c
+++ b/pfinet/ethernet.c
@@ -241,11 +241,24 @@ ethernet_open (struct device *dev)
int
ethernet_xmit (struct sk_buff *skb, struct device *dev)
{
- error_t err;
+ error_t err = 0;
struct ether_device *edev = (struct ether_device *) dev->priv;
u_int count;
+ short retries = 1;
+
+ do
+ {
+ if (err && retries)
+ {
+ edev->ether_port = MACH_PORT_NULL;
+ ethernet_open (dev);
+ retries--;
+ }
+
+ err = device_write (edev->ether_port, D_NOWAIT, 0, skb->data, skb->len,
&count);
+ }
+ while (err && retries);
- err = device_write (edev->ether_port, D_NOWAIT, 0, skb->data, skb->len,
&count);
assert_perror (err);
assert (count == skb->len);
dev_kfree_skb (skb);
--
1.8.3.1
- [PATCH] Look up device file name on device_open, rekado, 2013/09/09
- [PATCH] Look up device file name on device_open, rekado, 2013/09/09
- Re: [PATCH] Look up device file name on device_open, Samuel Thibault, 2013/09/09
- Re: [PATCH] Look up device file name on device_open, rekado, 2013/09/09
- Re: RFC: Look up device file name on device_open, Samuel Thibault, 2013/09/10
- [PATCH 0/2] Re-open ethernet device on error, rekado, 2013/09/12
- [PATCH 2/2] Look up device file name on device_open, rekado, 2013/09/12
- Re: [PATCH 2/2] Look up device file name on device_open, Samuel Thibault, 2013/09/15
- [PATCH 1/2] Try to re-open network device on transmission error,
rekado <=
- Re: [PATCH 1/2] Try to re-open network device on transmission error, Samuel Thibault, 2013/09/15