Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 142085 | Differences between
and this patch

Collapse All | Expand All

(-)linux-2.6.17-gentoo-r4_orig/drivers/net/pcmcia/xirc2ps_cs.c (-4 / +14 lines)
Lines 345-350 Link Here
345
    void __iomem *dingo_ccr; /* only used for CEM56 cards */
345
    void __iomem *dingo_ccr; /* only used for CEM56 cards */
346
    unsigned last_ptr_value; /* last packets transmitted value */
346
    unsigned last_ptr_value; /* last packets transmitted value */
347
    const char *manf_str;
347
    const char *manf_str;
348
    struct work_struct tx_timeout_task;
348
} local_info_t;
349
} local_info_t;
349
350
350
/****************
351
/****************
Lines 352-357 Link Here
352
 */
353
 */
353
static int do_start_xmit(struct sk_buff *skb, struct net_device *dev);
354
static int do_start_xmit(struct sk_buff *skb, struct net_device *dev);
354
static void do_tx_timeout(struct net_device *dev);
355
static void do_tx_timeout(struct net_device *dev);
356
static void xirc2ps_tx_timeout_task(void *data);
355
static struct net_device_stats *do_get_stats(struct net_device *dev);
357
static struct net_device_stats *do_get_stats(struct net_device *dev);
356
static void set_addresses(struct net_device *dev);
358
static void set_addresses(struct net_device *dev);
357
static void set_multicast_list(struct net_device *dev);
359
static void set_multicast_list(struct net_device *dev);
Lines 589-594 Link Here
589
#ifdef HAVE_TX_TIMEOUT
591
#ifdef HAVE_TX_TIMEOUT
590
    dev->tx_timeout = do_tx_timeout;
592
    dev->tx_timeout = do_tx_timeout;
591
    dev->watchdog_timeo = TX_TIMEOUT;
593
    dev->watchdog_timeo = TX_TIMEOUT;
594
    INIT_WORK(&local->tx_timeout_task, xirc2ps_tx_timeout_task, dev);
592
#endif
595
#endif
593
596
594
    return xirc2ps_config(link);
597
    return xirc2ps_config(link);
Lines 1341-1357 Link Here
1341
/*====================================================================*/
1344
/*====================================================================*/
1342
1345
1343
static void
1346
static void
1344
do_tx_timeout(struct net_device *dev)
1347
xirc2ps_tx_timeout_task(void *data)
1345
{
1348
{
1346
    local_info_t *lp = netdev_priv(dev);
1349
    struct net_device *dev = data;
1347
    printk(KERN_NOTICE "%s: transmit timed out\n", dev->name);
1348
    lp->stats.tx_errors++;
1349
    /* reset the card */
1350
    /* reset the card */
1350
    do_reset(dev,1);
1351
    do_reset(dev,1);
1351
    dev->trans_start = jiffies;
1352
    dev->trans_start = jiffies;
1352
    netif_wake_queue(dev);
1353
    netif_wake_queue(dev);
1353
}
1354
}
1354
1355
1356
static void
1357
do_tx_timeout(struct net_device *dev)
1358
{
1359
    local_info_t *lp = netdev_priv(dev);
1360
    lp->stats.tx_errors++;
1361
    printk(KERN_NOTICE "%s: transmit timed out\n", dev->name);
1362
    schedule_work(&lp->tx_timeout_task);
1363
}
1364
1355
static int
1365
static int
1356
do_start_xmit(struct sk_buff *skb, struct net_device *dev)
1366
do_start_xmit(struct sk_buff *skb, struct net_device *dev)
1357
{
1367
{

Return to bug 142085