Commit 25cc4ae9 authored by Ying Xue's avatar Ying Xue Committed by David S. Miller

net: remove redundant check for timer pending state before del_timer

As in del_timer() there has already placed a timer_pending() function
to check whether the timer to be deleted is pending or not, it's
unnecessary to check timer pending state again before del_timer() is
called.
Signed-off-by: default avatarYing Xue <ying.xue@windriver.com>
Cc: Eric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2b3c9a85
...@@ -257,7 +257,7 @@ static void rfcomm_session_clear_timer(struct rfcomm_session *s) ...@@ -257,7 +257,7 @@ static void rfcomm_session_clear_timer(struct rfcomm_session *s)
{ {
BT_DBG("session %p state %ld", s, s->state); BT_DBG("session %p state %ld", s, s->state);
if (timer_pending(&s->timer) && del_timer(&s->timer)) if (del_timer(&s->timer))
rfcomm_session_put(s); rfcomm_session_put(s);
} }
...@@ -285,7 +285,7 @@ static void rfcomm_dlc_clear_timer(struct rfcomm_dlc *d) ...@@ -285,7 +285,7 @@ static void rfcomm_dlc_clear_timer(struct rfcomm_dlc *d)
{ {
BT_DBG("dlc %p state %ld", d, d->state); BT_DBG("dlc %p state %ld", d, d->state);
if (timer_pending(&d->timer) && del_timer(&d->timer)) if (del_timer(&d->timer))
rfcomm_dlc_put(d); rfcomm_dlc_put(d);
} }
......
...@@ -70,8 +70,7 @@ static void ulog_send(unsigned int nlgroup) ...@@ -70,8 +70,7 @@ static void ulog_send(unsigned int nlgroup)
{ {
ebt_ulog_buff_t *ub = &ulog_buffers[nlgroup]; ebt_ulog_buff_t *ub = &ulog_buffers[nlgroup];
if (timer_pending(&ub->timer)) del_timer(&ub->timer);
del_timer(&ub->timer);
if (!ub->skb) if (!ub->skb)
return; return;
...@@ -319,8 +318,7 @@ static void __exit ebt_ulog_fini(void) ...@@ -319,8 +318,7 @@ static void __exit ebt_ulog_fini(void)
xt_unregister_target(&ebt_ulog_tg_reg); xt_unregister_target(&ebt_ulog_tg_reg);
for (i = 0; i < EBT_ULOG_MAXNLGROUPS; i++) { for (i = 0; i < EBT_ULOG_MAXNLGROUPS; i++) {
ub = &ulog_buffers[i]; ub = &ulog_buffers[i];
if (timer_pending(&ub->timer)) del_timer(&ub->timer);
del_timer(&ub->timer);
spin_lock_bh(&ub->lock); spin_lock_bh(&ub->lock);
if (ub->skb) { if (ub->skb) {
kfree_skb(ub->skb); kfree_skb(ub->skb);
......
...@@ -2230,7 +2230,7 @@ EXPORT_SYMBOL(sk_reset_timer); ...@@ -2230,7 +2230,7 @@ EXPORT_SYMBOL(sk_reset_timer);
void sk_stop_timer(struct sock *sk, struct timer_list* timer) void sk_stop_timer(struct sock *sk, struct timer_list* timer)
{ {
if (timer_pending(timer) && del_timer(timer)) if (del_timer(timer))
__sock_put(sk); __sock_put(sk);
} }
EXPORT_SYMBOL(sk_stop_timer); EXPORT_SYMBOL(sk_stop_timer);
......
...@@ -88,10 +88,8 @@ static void ulog_send(unsigned int nlgroupnum) ...@@ -88,10 +88,8 @@ static void ulog_send(unsigned int nlgroupnum)
{ {
ulog_buff_t *ub = &ulog_buffers[nlgroupnum]; ulog_buff_t *ub = &ulog_buffers[nlgroupnum];
if (timer_pending(&ub->timer)) { pr_debug("ulog_send: timer is deleting\n");
pr_debug("ulog_send: timer was pending, deleting\n"); del_timer(&ub->timer);
del_timer(&ub->timer);
}
if (!ub->skb) { if (!ub->skb) {
pr_debug("ulog_send: nothing to send\n"); pr_debug("ulog_send: nothing to send\n");
...@@ -426,10 +424,8 @@ static void __exit ulog_tg_exit(void) ...@@ -426,10 +424,8 @@ static void __exit ulog_tg_exit(void)
/* remove pending timers and free allocated skb's */ /* remove pending timers and free allocated skb's */
for (i = 0; i < ULOG_MAXNLGROUPS; i++) { for (i = 0; i < ULOG_MAXNLGROUPS; i++) {
ub = &ulog_buffers[i]; ub = &ulog_buffers[i];
if (timer_pending(&ub->timer)) { pr_debug("timer is deleting\n");
pr_debug("timer was pending, deleting\n"); del_timer(&ub->timer);
del_timer(&ub->timer);
}
if (ub->skb) { if (ub->skb) {
kfree_skb(ub->skb); kfree_skb(ub->skb);
......
...@@ -2567,8 +2567,7 @@ static int irda_getsockopt(struct socket *sock, int level, int optname, ...@@ -2567,8 +2567,7 @@ static int irda_getsockopt(struct socket *sock, int level, int optname,
err); err);
/* If watchdog is still activated, kill it! */ /* If watchdog is still activated, kill it! */
if(timer_pending(&(self->watchdog))) del_timer(&(self->watchdog));
del_timer(&(self->watchdog));
IRDA_DEBUG(1, "%s(), ...waking up !\n", __func__); IRDA_DEBUG(1, "%s(), ...waking up !\n", __func__);
......
...@@ -796,8 +796,7 @@ static void ip_vs_conn_expire(unsigned long data) ...@@ -796,8 +796,7 @@ static void ip_vs_conn_expire(unsigned long data)
*/ */
if (likely(atomic_read(&cp->refcnt) == 1)) { if (likely(atomic_read(&cp->refcnt) == 1)) {
/* delete the timer if it is activated by other users */ /* delete the timer if it is activated by other users */
if (timer_pending(&cp->timer)) del_timer(&cp->timer);
del_timer(&cp->timer);
/* does anybody control me? */ /* does anybody control me? */
if (cp->control) if (cp->control)
......
...@@ -434,8 +434,7 @@ void sctp_association_free(struct sctp_association *asoc) ...@@ -434,8 +434,7 @@ void sctp_association_free(struct sctp_association *asoc)
* on our state. * on our state.
*/ */
for (i = SCTP_EVENT_TIMEOUT_NONE; i < SCTP_NUM_TIMEOUT_TYPES; ++i) { for (i = SCTP_EVENT_TIMEOUT_NONE; i < SCTP_NUM_TIMEOUT_TYPES; ++i) {
if (timer_pending(&asoc->timers[i]) && if (del_timer(&asoc->timers[i]))
del_timer(&asoc->timers[i]))
sctp_association_put(asoc); sctp_association_put(asoc);
} }
...@@ -1497,7 +1496,7 @@ void sctp_assoc_rwnd_increase(struct sctp_association *asoc, unsigned int len) ...@@ -1497,7 +1496,7 @@ void sctp_assoc_rwnd_increase(struct sctp_association *asoc, unsigned int len)
/* Stop the SACK timer. */ /* Stop the SACK timer. */
timer = &asoc->timers[SCTP_EVENT_TIMEOUT_SACK]; timer = &asoc->timers[SCTP_EVENT_TIMEOUT_SACK];
if (timer_pending(timer) && del_timer(timer)) if (del_timer(timer))
sctp_association_put(asoc); sctp_association_put(asoc);
} }
} }
......
...@@ -468,8 +468,7 @@ void sctp_icmp_proto_unreachable(struct sock *sk, ...@@ -468,8 +468,7 @@ void sctp_icmp_proto_unreachable(struct sock *sk,
} else { } else {
struct net *net = sock_net(sk); struct net *net = sock_net(sk);
if (timer_pending(&t->proto_unreach_timer) && if (del_timer(&t->proto_unreach_timer))
del_timer(&t->proto_unreach_timer))
sctp_association_put(asoc); sctp_association_put(asoc);
sctp_do_sm(net, SCTP_EVENT_T_OTHER, sctp_do_sm(net, SCTP_EVENT_T_OTHER,
......
...@@ -1700,10 +1700,8 @@ static void sctp_check_transmitted(struct sctp_outq *q, ...@@ -1700,10 +1700,8 @@ static void sctp_check_transmitted(struct sctp_outq *q,
* address. * address.
*/ */
if (!transport->flight_size) { if (!transport->flight_size) {
if (timer_pending(&transport->T3_rtx_timer) && if (del_timer(&transport->T3_rtx_timer))
del_timer(&transport->T3_rtx_timer)) {
sctp_transport_put(transport); sctp_transport_put(transport);
}
} else if (restart_timer) { } else if (restart_timer) {
if (!mod_timer(&transport->T3_rtx_timer, if (!mod_timer(&transport->T3_rtx_timer,
jiffies + transport->rto)) jiffies + transport->rto))
......
...@@ -674,10 +674,8 @@ static void sctp_cmd_t3_rtx_timers_stop(sctp_cmd_seq_t *cmds, ...@@ -674,10 +674,8 @@ static void sctp_cmd_t3_rtx_timers_stop(sctp_cmd_seq_t *cmds,
list_for_each_entry(t, &asoc->peer.transport_addr_list, list_for_each_entry(t, &asoc->peer.transport_addr_list,
transports) { transports) {
if (timer_pending(&t->T3_rtx_timer) && if (del_timer(&t->T3_rtx_timer))
del_timer(&t->T3_rtx_timer)) {
sctp_transport_put(t); sctp_transport_put(t);
}
} }
} }
...@@ -1517,7 +1515,7 @@ static int sctp_cmd_interpreter(sctp_event_t event_type, ...@@ -1517,7 +1515,7 @@ static int sctp_cmd_interpreter(sctp_event_t event_type,
case SCTP_CMD_TIMER_STOP: case SCTP_CMD_TIMER_STOP:
timer = &asoc->timers[cmd->obj.to]; timer = &asoc->timers[cmd->obj.to];
if (timer_pending(timer) && del_timer(timer)) if (del_timer(timer))
sctp_association_put(asoc); sctp_association_put(asoc);
break; break;
......
...@@ -151,13 +151,11 @@ void sctp_transport_free(struct sctp_transport *transport) ...@@ -151,13 +151,11 @@ void sctp_transport_free(struct sctp_transport *transport)
* structure hang around in memory since we know * structure hang around in memory since we know
* the tranport is going away. * the tranport is going away.
*/ */
if (timer_pending(&transport->T3_rtx_timer) && if (del_timer(&transport->T3_rtx_timer))
del_timer(&transport->T3_rtx_timer))
sctp_transport_put(transport); sctp_transport_put(transport);
/* Delete the ICMP proto unreachable timer if it's active. */ /* Delete the ICMP proto unreachable timer if it's active. */
if (timer_pending(&transport->proto_unreach_timer) && if (del_timer(&transport->proto_unreach_timer))
del_timer(&transport->proto_unreach_timer))
sctp_association_put(transport->asoc); sctp_association_put(transport->asoc);
sctp_transport_put(transport); sctp_transport_put(transport);
...@@ -655,10 +653,9 @@ void sctp_transport_reset(struct sctp_transport *t) ...@@ -655,10 +653,9 @@ void sctp_transport_reset(struct sctp_transport *t)
void sctp_transport_immediate_rtx(struct sctp_transport *t) void sctp_transport_immediate_rtx(struct sctp_transport *t)
{ {
/* Stop pending T3_rtx_timer */ /* Stop pending T3_rtx_timer */
if (timer_pending(&t->T3_rtx_timer)) { if (del_timer(&t->T3_rtx_timer))
(void)del_timer(&t->T3_rtx_timer);
sctp_transport_put(t); sctp_transport_put(t);
}
sctp_retransmit(&t->asoc->outqueue, t, SCTP_RTXR_T3_RTX); sctp_retransmit(&t->asoc->outqueue, t, SCTP_RTXR_T3_RTX);
if (!timer_pending(&t->T3_rtx_timer)) { if (!timer_pending(&t->T3_rtx_timer)) {
if (!mod_timer(&t->T3_rtx_timer, jiffies + t->rto)) if (!mod_timer(&t->T3_rtx_timer, jiffies + t->rto))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment