diff options
-rwxr-xr-x | ztd-eth.c | 3 | ||||
-rwxr-xr-x | ztdynamic.c | 3 |
2 files changed, 4 insertions, 2 deletions
@@ -155,7 +155,8 @@ static int ztdeth_transmit(void *pvt, unsigned char *msg, int msglen) skb->protocol = __constant_htons(ETH_P_ZTDETH); skb->nh.raw = skb->data; skb->dev = z->dev; - z->dev->hard_header(skb, z->dev, ETH_P_ZTDETH, z->addr, z->dev->dev_addr, skb->len); + if (z->dev->hard_header) + z->dev->hard_header(skb, z->dev, ETH_P_ZTDETH, z->addr, z->dev->dev_addr, skb->len); dev_queue_xmit(skb); } } diff --git a/ztdynamic.c b/ztdynamic.c index aa81fea..9b7a4ca 100755 --- a/ztdynamic.c +++ b/ztdynamic.c @@ -385,10 +385,11 @@ static struct zt_dynamic_driver *find_driver(char *name) { struct zt_dynamic_driver *ztd; ztd = drivers; - while(drivers) { + while(ztd) { /* here's our driver */ if (!strcmp(name, ztd->name)) break; + ztd = ztd->next; } return ztd; } |