diff options
| author | Rafael J. Wysocki <rjw@sisk.pl> | 2011-12-21 03:51:23 -0500 |
|---|---|---|
| committer | Rafael J. Wysocki <rjw@sisk.pl> | 2011-12-21 03:51:23 -0500 |
| commit | dfa9d178cd28caf5d76bc4f37f4b3e7e8df8e697 (patch) | |
| tree | d97ca7790d8a622cba9fdd19832decdb0aa6418a /net/decnet/dn_timer.c | |
| parent | 3f19f08a7ec74cfc50fbad3c5e615760afbd23a0 (diff) | |
| parent | 7b4050381127ae11fcfc74a106d715a5fbbf888a (diff) | |
Merge branch 'devfreq-for-next' of git://git.infradead.org/users/kmpark/linux-samsung into pm-devfreq
* 'devfreq-for-next' of git://git.infradead.org/users/kmpark/linux-samsung: (765 commits)
PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412.
pci: Fix hotplug of Express Module with pci bridges
i2c-eg20t: correct the driver init order of pch_i2c_probe()
I2C: OMAP: fix FIFO usage for OMAP4
i2c-s3c2410: Fix return code of s3c24xx_i2c_parse_dt_gpio
i2c: i2c-s3c2410: Add a cpu_relax() to busy wait for bus idle
Linux 3.2-rc6
Revert "drm/i915: fix infinite recursion on unbind due to ilk vt-d w/a"
btrfs: lower the dirty balance poll interval
drm/i915/dp: Dither down to 6bpc if it makes the mode fit
drm/i915: enable semaphores on per-device defaults
drm/i915: don't set unpin_work if vblank_get fails
drm/i915: By default, enable RC6 on IVB and SNB when reasonable
iommu: Export intel_iommu_enabled to signal when iommu is in use
drm/i915/sdvo: Include LVDS panels for the IS_DIGITAL check
drm/i915: prevent division by zero when asking for chipset power
drm/i915: add PCH info to i915_capabilities
drm/i915: set the right SDVO transcoder for CPT
drm/i915: no-lvds quirk for ASUS AT5NM10T-I
sched: Fix select_idle_sibling() regression in selecting an idle SMT sibling
...
Diffstat (limited to 'net/decnet/dn_timer.c')
| -rw-r--r-- | net/decnet/dn_timer.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/net/decnet/dn_timer.c b/net/decnet/dn_timer.c index 67f691bd4acf..d9c150cc59a9 100644 --- a/net/decnet/dn_timer.c +++ b/net/decnet/dn_timer.c | |||
| @@ -36,16 +36,13 @@ static void dn_slow_timer(unsigned long arg); | |||
| 36 | 36 | ||
| 37 | void dn_start_slow_timer(struct sock *sk) | 37 | void dn_start_slow_timer(struct sock *sk) |
| 38 | { | 38 | { |
| 39 | sk->sk_timer.expires = jiffies + SLOW_INTERVAL; | 39 | setup_timer(&sk->sk_timer, dn_slow_timer, (unsigned long)sk); |
| 40 | sk->sk_timer.function = dn_slow_timer; | 40 | sk_reset_timer(sk, &sk->sk_timer, jiffies + SLOW_INTERVAL); |
| 41 | sk->sk_timer.data = (unsigned long)sk; | ||
| 42 | |||
| 43 | add_timer(&sk->sk_timer); | ||
| 44 | } | 41 | } |
| 45 | 42 | ||
| 46 | void dn_stop_slow_timer(struct sock *sk) | 43 | void dn_stop_slow_timer(struct sock *sk) |
| 47 | { | 44 | { |
| 48 | del_timer(&sk->sk_timer); | 45 | sk_stop_timer(sk, &sk->sk_timer); |
| 49 | } | 46 | } |
| 50 | 47 | ||
| 51 | static void dn_slow_timer(unsigned long arg) | 48 | static void dn_slow_timer(unsigned long arg) |
| @@ -53,12 +50,10 @@ static void dn_slow_timer(unsigned long arg) | |||
| 53 | struct sock *sk = (struct sock *)arg; | 50 | struct sock *sk = (struct sock *)arg; |
| 54 | struct dn_scp *scp = DN_SK(sk); | 51 | struct dn_scp *scp = DN_SK(sk); |
| 55 | 52 | ||
| 56 | sock_hold(sk); | ||
| 57 | bh_lock_sock(sk); | 53 | bh_lock_sock(sk); |
| 58 | 54 | ||
| 59 | if (sock_owned_by_user(sk)) { | 55 | if (sock_owned_by_user(sk)) { |
| 60 | sk->sk_timer.expires = jiffies + HZ / 10; | 56 | sk_reset_timer(sk, &sk->sk_timer, jiffies + HZ / 10); |
| 61 | add_timer(&sk->sk_timer); | ||
| 62 | goto out; | 57 | goto out; |
| 63 | } | 58 | } |
| 64 | 59 | ||
| @@ -100,9 +95,7 @@ static void dn_slow_timer(unsigned long arg) | |||
| 100 | scp->keepalive_fxn(sk); | 95 | scp->keepalive_fxn(sk); |
| 101 | } | 96 | } |
| 102 | 97 | ||
| 103 | sk->sk_timer.expires = jiffies + SLOW_INTERVAL; | 98 | sk_reset_timer(sk, &sk->sk_timer, jiffies + SLOW_INTERVAL); |
| 104 | |||
| 105 | add_timer(&sk->sk_timer); | ||
| 106 | out: | 99 | out: |
| 107 | bh_unlock_sock(sk); | 100 | bh_unlock_sock(sk); |
| 108 | sock_put(sk); | 101 | sock_put(sk); |
