git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge to Fedora kernel-2.6.18-1.2224_FC5 patched with stable patch-2.6.18.1-vs2.0...
[linux-2.6.git]
/
drivers
/
net
/
8390.c
diff --git
a/drivers/net/8390.c
b/drivers/net/8390.c
index
bab16bc
..
d2935ae
100644
(file)
--- a/
drivers/net/8390.c
+++ b/
drivers/net/8390.c
@@
-225,9
+225,9
@@
void ei_tx_timeout(struct net_device *dev)
unsigned long icucr;
local_irq_save(flags);
unsigned long icucr;
local_irq_save(flags);
- icucr = inl(
ICUCR1
);
+ icucr = inl(
M32R_ICU_CR1_PORTL
);
icucr |= M32R_ICUCR_ISMOD11;
icucr |= M32R_ICUCR_ISMOD11;
- outl(icucr,
ICUCR1
);
+ outl(icucr,
M32R_ICU_CR1_PORTL
);
local_irq_restore(flags);
#endif
ei_local->stat.tx_errors++;
local_irq_restore(flags);
#endif
ei_local->stat.tx_errors++;
@@
-249,7
+249,7
@@
void ei_tx_timeout(struct net_device *dev)
/* Ugly but a reset can be slow, yet must be protected */
/* Ugly but a reset can be slow, yet must be protected */
- disable_irq_nosync(dev->irq);
+ disable_irq_nosync
_lockdep
(dev->irq);
spin_lock(&ei_local->page_lock);
/* Try to restart the card. Perhaps the user has fixed something. */
spin_lock(&ei_local->page_lock);
/* Try to restart the card. Perhaps the user has fixed something. */
@@
-257,7
+257,7
@@
void ei_tx_timeout(struct net_device *dev)
NS8390_init(dev, 1);
spin_unlock(&ei_local->page_lock);
NS8390_init(dev, 1);
spin_unlock(&ei_local->page_lock);
- enable_irq(dev->irq);
+ enable_irq
_lockdep
(dev->irq);
netif_wake_queue(dev);
}
netif_wake_queue(dev);
}
@@
-275,12
+275,14
@@
static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev);
int send_length = skb->len, output_page;
unsigned long flags;
struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev);
int send_length = skb->len, output_page;
unsigned long flags;
+ char buf[ETH_ZLEN];
+ char *data = skb->data;
if (skb->len < ETH_ZLEN) {
if (skb->len < ETH_ZLEN) {
- skb = skb_padto(skb, ETH_ZLEN);
- if (skb == NULL)
- return 0;
+ memset(buf, 0, ETH_ZLEN); /* more efficient than doing just the needed bits */
+ memcpy(buf, data, skb->len);
send_length = ETH_ZLEN;
send_length = ETH_ZLEN;
+ data = buf;
}
/* Mask interrupts from the ethercard.
}
/* Mask interrupts from the ethercard.
@@
-347,7
+349,7
@@
static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
* trigger the send later, upon receiving a Tx done interrupt.
*/
* trigger the send later, upon receiving a Tx done interrupt.
*/
- ei_block_output(dev, send_length,
skb->
data, output_page);
+ ei_block_output(dev, send_length, data, output_page);
if (! ei_local->txing)
{
if (! ei_local->txing)
{
@@
-1094,7
+1096,7
@@
static void NS8390_trigger_send(struct net_device *dev, unsigned int length,
outb_p(E8390_NODMA+E8390_PAGE0, e8390_base+E8390_CMD);
outb_p(E8390_NODMA+E8390_PAGE0, e8390_base+E8390_CMD);
- if (inb_p(e8390_base) & E8390_TRANS)
+ if (inb_p(e8390_base
+ E8390_CMD
) & E8390_TRANS)
{
printk(KERN_WARNING "%s: trigger_send() called with the transmitter busy.\n",
dev->name);
{
printk(KERN_WARNING "%s: trigger_send() called with the transmitter busy.\n",
dev->name);