Commit 121caf577dc61588c1128821873a08cec48baf58
Committed by
David S. Miller
1 parent
7672d0b544
Exists in
master
and in
7 other branches
[NET]: fix-up schedule_timeout() usage
Use schedule_timeout_{,un}interruptible() instead of
set_current_state()/schedule_timeout() to reduce kernel size. Also use
human-time conversion functions instead of hard-coded division to avoid
rounding issues.
Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Showing 4 changed files with 11 additions and 20 deletions Side-by-side Diff
net/core/pktgen.c
| ... | ... | @@ -1452,8 +1452,7 @@ |
| 1452 | 1452 | thread_lock(); |
| 1453 | 1453 | t->control |= T_REMDEV; |
| 1454 | 1454 | thread_unlock(); |
| 1455 | - current->state = TASK_INTERRUPTIBLE; | |
| 1456 | - schedule_timeout(HZ/8); /* Propagate thread->control */ | |
| 1455 | + schedule_timeout_interruptible(msecs_to_jiffies(125)); /* Propagate thread->control */ | |
| 1457 | 1456 | ret = count; |
| 1458 | 1457 | sprintf(pg_result, "OK: rem_device_all"); |
| 1459 | 1458 | goto out; |
| ... | ... | @@ -1716,10 +1715,9 @@ |
| 1716 | 1715 | printk(KERN_INFO "sleeping for %d\n", (int)(spin_until_us - now)); |
| 1717 | 1716 | while (now < spin_until_us) { |
| 1718 | 1717 | /* TODO: optimise sleeping behavior */ |
| 1719 | - if (spin_until_us - now > (1000000/HZ)+1) { | |
| 1720 | - current->state = TASK_INTERRUPTIBLE; | |
| 1721 | - schedule_timeout(1); | |
| 1722 | - } else if (spin_until_us - now > 100) { | |
| 1718 | + if (spin_until_us - now > jiffies_to_usecs(1)+1) | |
| 1719 | + schedule_timeout_interruptible(1); | |
| 1720 | + else if (spin_until_us - now > 100) { | |
| 1723 | 1721 | do_softirq(); |
| 1724 | 1722 | if (!pkt_dev->running) |
| 1725 | 1723 | return; |
| ... | ... | @@ -2449,8 +2447,7 @@ |
| 2449 | 2447 | } |
| 2450 | 2448 | thread_unlock(); |
| 2451 | 2449 | |
| 2452 | - current->state = TASK_INTERRUPTIBLE; | |
| 2453 | - schedule_timeout(HZ/8); /* Propagate thread->control */ | |
| 2450 | + schedule_timeout_interruptible(msecs_to_jiffies(125)); /* Propagate thread->control */ | |
| 2454 | 2451 | |
| 2455 | 2452 | pktgen_wait_all_threads_run(); |
| 2456 | 2453 | } |
net/ipv4/ipconfig.c
| ... | ... | @@ -1103,10 +1103,8 @@ |
| 1103 | 1103 | #endif |
| 1104 | 1104 | |
| 1105 | 1105 | jiff = jiffies + (d->next ? CONF_INTER_TIMEOUT : timeout); |
| 1106 | - while (time_before(jiffies, jiff) && !ic_got_reply) { | |
| 1107 | - set_current_state(TASK_UNINTERRUPTIBLE); | |
| 1108 | - schedule_timeout(1); | |
| 1109 | - } | |
| 1106 | + while (time_before(jiffies, jiff) && !ic_got_reply) | |
| 1107 | + schedule_timeout_uninterruptible(1); | |
| 1110 | 1108 | #ifdef IPCONFIG_DHCP |
| 1111 | 1109 | /* DHCP isn't done until we get a DHCPACK. */ |
| 1112 | 1110 | if ((ic_got_reply & IC_BOOTP) |
net/irda/ircomm/ircomm_tty.c
| ... | ... | @@ -567,10 +567,8 @@ |
| 567 | 567 | self->tty = NULL; |
| 568 | 568 | |
| 569 | 569 | if (self->blocked_open) { |
| 570 | - if (self->close_delay) { | |
| 571 | - current->state = TASK_INTERRUPTIBLE; | |
| 572 | - schedule_timeout(self->close_delay); | |
| 573 | - } | |
| 570 | + if (self->close_delay) | |
| 571 | + schedule_timeout_interruptible(self->close_delay); | |
| 574 | 572 | wake_up_interruptible(&self->open_wait); |
| 575 | 573 | } |
| 576 | 574 | |
| ... | ... | @@ -863,8 +861,7 @@ |
| 863 | 861 | spin_lock_irqsave(&self->spinlock, flags); |
| 864 | 862 | while (self->tx_skb && self->tx_skb->len) { |
| 865 | 863 | spin_unlock_irqrestore(&self->spinlock, flags); |
| 866 | - current->state = TASK_INTERRUPTIBLE; | |
| 867 | - schedule_timeout(poll_time); | |
| 864 | + schedule_timeout_interruptible(poll_time); | |
| 868 | 865 | spin_lock_irqsave(&self->spinlock, flags); |
| 869 | 866 | if (signal_pending(current)) |
| 870 | 867 | break; |
net/sunrpc/svcsock.c
| ... | ... | @@ -1170,8 +1170,7 @@ |
| 1170 | 1170 | while (rqstp->rq_arghi < pages) { |
| 1171 | 1171 | struct page *p = alloc_page(GFP_KERNEL); |
| 1172 | 1172 | if (!p) { |
| 1173 | - set_current_state(TASK_UNINTERRUPTIBLE); | |
| 1174 | - schedule_timeout(HZ/2); | |
| 1173 | + schedule_timeout_uninterruptible(msecs_to_jiffies(500)); | |
| 1175 | 1174 | continue; |
| 1176 | 1175 | } |
| 1177 | 1176 | rqstp->rq_argpages[rqstp->rq_arghi++] = p; |