diff options
| author | Michael Brown | 2006-06-05 18:10:36 +0200 |
|---|---|---|
| committer | Michael Brown | 2006-06-05 18:10:36 +0200 |
| commit | 754cfdfcf42fe6e76dc5f5c4168f124990fa3b80 (patch) | |
| tree | 59c4be031fd8ff976e9dd580f3beb036abf43de9 /src/drivers/net/legacy.c | |
| parent | PNIC doesn't auto-pad. (diff) | |
| download | ipxe-754cfdfcf42fe6e76dc5f5c4168f124990fa3b80.tar.gz ipxe-754cfdfcf42fe6e76dc5f5c4168f124990fa3b80.tar.xz ipxe-754cfdfcf42fe6e76dc5f5c4168f124990fa3b80.zip | |
Legacy drivers will not pad when necessary
Diffstat (limited to 'src/drivers/net/legacy.c')
| -rw-r--r-- | src/drivers/net/legacy.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/drivers/net/legacy.c b/src/drivers/net/legacy.c index 1b36c0de..6e9c8ae9 100644 --- a/src/drivers/net/legacy.c +++ b/src/drivers/net/legacy.c @@ -21,7 +21,11 @@ struct nic nic; static int legacy_transmit ( struct net_device *netdev, struct pk_buff *pkb ) { struct nic *nic = netdev->priv; struct ethhdr *ethhdr = pkb->data; + int pad_len; + pad_len = ( ETH_ZLEN - pkb_len ( pkb ) ); + if ( pad_len > 0 ) + memset ( pkb_put ( pkb, pad_len ), 0, pad_len ); pkb_pull ( pkb, sizeof ( *ethhdr ) ); nic->nic_op->transmit ( nic, ( const char * ) ethhdr->h_dest, ntohs ( ethhdr->h_protocol ), |
