|
@@ -580,27 +580,27 @@ static void llc_shdlc_handle_send_queue(struct llc_shdlc *shdlc)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-static void llc_shdlc_connect_timeout(unsigned long data)
|
|
|
+static void llc_shdlc_connect_timeout(struct timer_list *t)
|
|
|
{
|
|
|
- struct llc_shdlc *shdlc = (struct llc_shdlc *)data;
|
|
|
+ struct llc_shdlc *shdlc = from_timer(shdlc, t, connect_timer);
|
|
|
|
|
|
pr_debug("\n");
|
|
|
|
|
|
schedule_work(&shdlc->sm_work);
|
|
|
}
|
|
|
|
|
|
-static void llc_shdlc_t1_timeout(unsigned long data)
|
|
|
+static void llc_shdlc_t1_timeout(struct timer_list *t)
|
|
|
{
|
|
|
- struct llc_shdlc *shdlc = (struct llc_shdlc *)data;
|
|
|
+ struct llc_shdlc *shdlc = from_timer(shdlc, t, t1_timer);
|
|
|
|
|
|
pr_debug("SoftIRQ: need to send ack\n");
|
|
|
|
|
|
schedule_work(&shdlc->sm_work);
|
|
|
}
|
|
|
|
|
|
-static void llc_shdlc_t2_timeout(unsigned long data)
|
|
|
+static void llc_shdlc_t2_timeout(struct timer_list *t)
|
|
|
{
|
|
|
- struct llc_shdlc *shdlc = (struct llc_shdlc *)data;
|
|
|
+ struct llc_shdlc *shdlc = from_timer(shdlc, t, t2_timer);
|
|
|
|
|
|
pr_debug("SoftIRQ: need to retransmit\n");
|
|
|
|
|
@@ -763,14 +763,9 @@ static void *llc_shdlc_init(struct nfc_hci_dev *hdev, xmit_to_drv_t xmit_to_drv,
|
|
|
mutex_init(&shdlc->state_mutex);
|
|
|
shdlc->state = SHDLC_DISCONNECTED;
|
|
|
|
|
|
- setup_timer(&shdlc->connect_timer, llc_shdlc_connect_timeout,
|
|
|
- (unsigned long)shdlc);
|
|
|
-
|
|
|
- setup_timer(&shdlc->t1_timer, llc_shdlc_t1_timeout,
|
|
|
- (unsigned long)shdlc);
|
|
|
-
|
|
|
- setup_timer(&shdlc->t2_timer, llc_shdlc_t2_timeout,
|
|
|
- (unsigned long)shdlc);
|
|
|
+ timer_setup(&shdlc->connect_timer, llc_shdlc_connect_timeout, 0);
|
|
|
+ timer_setup(&shdlc->t1_timer, llc_shdlc_t1_timeout, 0);
|
|
|
+ timer_setup(&shdlc->t2_timer, llc_shdlc_t2_timeout, 0);
|
|
|
|
|
|
shdlc->w = SHDLC_MAX_WINDOW;
|
|
|
shdlc->srej_support = SHDLC_SREJ_SUPPORT;
|