|
@@ -1693,9 +1693,9 @@ err_return:
|
|
|
/* Timer callbacks */
|
|
|
/* a) IOC timer */
|
|
|
static void
|
|
|
-bnad_ioc_timeout(unsigned long data)
|
|
|
+bnad_ioc_timeout(struct timer_list *t)
|
|
|
{
|
|
|
- struct bnad *bnad = (struct bnad *)data;
|
|
|
+ struct bnad *bnad = from_timer(bnad, t, bna.ioceth.ioc.ioc_timer);
|
|
|
unsigned long flags;
|
|
|
|
|
|
spin_lock_irqsave(&bnad->bna_lock, flags);
|
|
@@ -1704,9 +1704,9 @@ bnad_ioc_timeout(unsigned long data)
|
|
|
}
|
|
|
|
|
|
static void
|
|
|
-bnad_ioc_hb_check(unsigned long data)
|
|
|
+bnad_ioc_hb_check(struct timer_list *t)
|
|
|
{
|
|
|
- struct bnad *bnad = (struct bnad *)data;
|
|
|
+ struct bnad *bnad = from_timer(bnad, t, bna.ioceth.ioc.hb_timer);
|
|
|
unsigned long flags;
|
|
|
|
|
|
spin_lock_irqsave(&bnad->bna_lock, flags);
|
|
@@ -1715,9 +1715,9 @@ bnad_ioc_hb_check(unsigned long data)
|
|
|
}
|
|
|
|
|
|
static void
|
|
|
-bnad_iocpf_timeout(unsigned long data)
|
|
|
+bnad_iocpf_timeout(struct timer_list *t)
|
|
|
{
|
|
|
- struct bnad *bnad = (struct bnad *)data;
|
|
|
+ struct bnad *bnad = from_timer(bnad, t, bna.ioceth.ioc.iocpf_timer);
|
|
|
unsigned long flags;
|
|
|
|
|
|
spin_lock_irqsave(&bnad->bna_lock, flags);
|
|
@@ -1726,9 +1726,9 @@ bnad_iocpf_timeout(unsigned long data)
|
|
|
}
|
|
|
|
|
|
static void
|
|
|
-bnad_iocpf_sem_timeout(unsigned long data)
|
|
|
+bnad_iocpf_sem_timeout(struct timer_list *t)
|
|
|
{
|
|
|
- struct bnad *bnad = (struct bnad *)data;
|
|
|
+ struct bnad *bnad = from_timer(bnad, t, bna.ioceth.ioc.sem_timer);
|
|
|
unsigned long flags;
|
|
|
|
|
|
spin_lock_irqsave(&bnad->bna_lock, flags);
|
|
@@ -1748,9 +1748,9 @@ bnad_iocpf_sem_timeout(unsigned long data)
|
|
|
|
|
|
/* b) Dynamic Interrupt Moderation Timer */
|
|
|
static void
|
|
|
-bnad_dim_timeout(unsigned long data)
|
|
|
+bnad_dim_timeout(struct timer_list *t)
|
|
|
{
|
|
|
- struct bnad *bnad = (struct bnad *)data;
|
|
|
+ struct bnad *bnad = from_timer(bnad, t, dim_timer);
|
|
|
struct bnad_rx_info *rx_info;
|
|
|
struct bnad_rx_ctrl *rx_ctrl;
|
|
|
int i, j;
|
|
@@ -1781,9 +1781,9 @@ bnad_dim_timeout(unsigned long data)
|
|
|
|
|
|
/* c) Statistics Timer */
|
|
|
static void
|
|
|
-bnad_stats_timeout(unsigned long data)
|
|
|
+bnad_stats_timeout(struct timer_list *t)
|
|
|
{
|
|
|
- struct bnad *bnad = (struct bnad *)data;
|
|
|
+ struct bnad *bnad = from_timer(bnad, t, stats_timer);
|
|
|
unsigned long flags;
|
|
|
|
|
|
if (!netif_running(bnad->netdev) ||
|
|
@@ -1804,8 +1804,7 @@ bnad_dim_timer_start(struct bnad *bnad)
|
|
|
{
|
|
|
if (bnad->cfg_flags & BNAD_CF_DIM_ENABLED &&
|
|
|
!test_bit(BNAD_RF_DIM_TIMER_RUNNING, &bnad->run_flags)) {
|
|
|
- setup_timer(&bnad->dim_timer, bnad_dim_timeout,
|
|
|
- (unsigned long)bnad);
|
|
|
+ timer_setup(&bnad->dim_timer, bnad_dim_timeout, 0);
|
|
|
set_bit(BNAD_RF_DIM_TIMER_RUNNING, &bnad->run_flags);
|
|
|
mod_timer(&bnad->dim_timer,
|
|
|
jiffies + msecs_to_jiffies(BNAD_DIM_TIMER_FREQ));
|
|
@@ -1823,8 +1822,7 @@ bnad_stats_timer_start(struct bnad *bnad)
|
|
|
|
|
|
spin_lock_irqsave(&bnad->bna_lock, flags);
|
|
|
if (!test_and_set_bit(BNAD_RF_STATS_TIMER_RUNNING, &bnad->run_flags)) {
|
|
|
- setup_timer(&bnad->stats_timer, bnad_stats_timeout,
|
|
|
- (unsigned long)bnad);
|
|
|
+ timer_setup(&bnad->stats_timer, bnad_stats_timeout, 0);
|
|
|
mod_timer(&bnad->stats_timer,
|
|
|
jiffies + msecs_to_jiffies(BNAD_STATS_TIMER_FREQ));
|
|
|
}
|
|
@@ -3692,14 +3690,11 @@ bnad_pci_probe(struct pci_dev *pdev,
|
|
|
goto res_free;
|
|
|
|
|
|
/* Set up timers */
|
|
|
- setup_timer(&bnad->bna.ioceth.ioc.ioc_timer, bnad_ioc_timeout,
|
|
|
- (unsigned long)bnad);
|
|
|
- setup_timer(&bnad->bna.ioceth.ioc.hb_timer, bnad_ioc_hb_check,
|
|
|
- (unsigned long)bnad);
|
|
|
- setup_timer(&bnad->bna.ioceth.ioc.iocpf_timer, bnad_iocpf_timeout,
|
|
|
- (unsigned long)bnad);
|
|
|
- setup_timer(&bnad->bna.ioceth.ioc.sem_timer, bnad_iocpf_sem_timeout,
|
|
|
- (unsigned long)bnad);
|
|
|
+ timer_setup(&bnad->bna.ioceth.ioc.ioc_timer, bnad_ioc_timeout, 0);
|
|
|
+ timer_setup(&bnad->bna.ioceth.ioc.hb_timer, bnad_ioc_hb_check, 0);
|
|
|
+ timer_setup(&bnad->bna.ioceth.ioc.iocpf_timer, bnad_iocpf_timeout, 0);
|
|
|
+ timer_setup(&bnad->bna.ioceth.ioc.sem_timer, bnad_iocpf_sem_timeout,
|
|
|
+ 0);
|
|
|
|
|
|
/*
|
|
|
* Start the chip
|