| From 8b9013a078fba4807ec669b57f2a76c45d9ceb36 Mon Sep 17 00:00:00 2001 |
| From: Thomas Gleixner <tglx@linutronix.de> |
| Date: Tue, 10 Apr 2012 11:14:55 +0200 |
| Subject: [PATCH 243/274] ntp: Make ntp_lock raw. |
| |
| This needs to be revisited. Not sure whether we can avoid to make this |
| lock raw, but it'd really like to. |
| |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| --- |
| kernel/time/ntp.c | 26 +++++++++++++------------- |
| 1 file changed, 13 insertions(+), 13 deletions(-) |
| |
| diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c |
| index 8b70710..96db12f 100644 |
| --- a/kernel/time/ntp.c |
| +++ b/kernel/time/ntp.c |
| @@ -22,7 +22,7 @@ |
| * NTP timekeeping variables: |
| */ |
| |
| -DEFINE_SPINLOCK(ntp_lock); |
| +DEFINE_RAW_SPINLOCK(ntp_lock); |
| |
| |
| /* USER_HZ period (usecs): */ |
| @@ -347,7 +347,7 @@ void ntp_clear(void) |
| { |
| unsigned long flags; |
| |
| - spin_lock_irqsave(&ntp_lock, flags); |
| + raw_spin_lock_irqsave(&ntp_lock, flags); |
| |
| time_adjust = 0; /* stop active adjtime() */ |
| time_status |= STA_UNSYNC; |
| @@ -361,7 +361,7 @@ void ntp_clear(void) |
| |
| /* Clear PPS state variables */ |
| pps_clear(); |
| - spin_unlock_irqrestore(&ntp_lock, flags); |
| + raw_spin_unlock_irqrestore(&ntp_lock, flags); |
| |
| } |
| |
| @@ -371,9 +371,9 @@ u64 ntp_tick_length(void) |
| unsigned long flags; |
| s64 ret; |
| |
| - spin_lock_irqsave(&ntp_lock, flags); |
| + raw_spin_lock_irqsave(&ntp_lock, flags); |
| ret = tick_length; |
| - spin_unlock_irqrestore(&ntp_lock, flags); |
| + raw_spin_unlock_irqrestore(&ntp_lock, flags); |
| return ret; |
| } |
| |
| @@ -394,7 +394,7 @@ int second_overflow(unsigned long secs) |
| int leap = 0; |
| unsigned long flags; |
| |
| - spin_lock_irqsave(&ntp_lock, flags); |
| + raw_spin_lock_irqsave(&ntp_lock, flags); |
| |
| /* |
| * Leap second processing. If in leap-insert state at the end of the |
| @@ -480,7 +480,7 @@ int second_overflow(unsigned long secs) |
| |
| |
| out: |
| - spin_unlock_irqrestore(&ntp_lock, flags); |
| + raw_spin_unlock_irqrestore(&ntp_lock, flags); |
| |
| return leap; |
| } |
| @@ -662,7 +662,7 @@ int do_adjtimex(struct timex *txc) |
| |
| getnstimeofday(&ts); |
| |
| - spin_lock_irq(&ntp_lock); |
| + raw_spin_lock_irq(&ntp_lock); |
| |
| if (txc->modes & ADJ_ADJTIME) { |
| long save_adjust = time_adjust; |
| @@ -704,7 +704,7 @@ int do_adjtimex(struct timex *txc) |
| /* fill PPS status fields */ |
| pps_fill_timex(txc); |
| |
| - spin_unlock_irq(&ntp_lock); |
| + raw_spin_unlock_irq(&ntp_lock); |
| |
| txc->time.tv_sec = ts.tv_sec; |
| txc->time.tv_usec = ts.tv_nsec; |
| @@ -902,7 +902,7 @@ void hardpps(const struct timespec *phase_ts, const struct timespec *raw_ts) |
| |
| pts_norm = pps_normalize_ts(*phase_ts); |
| |
| - spin_lock_irqsave(&ntp_lock, flags); |
| + raw_spin_lock_irqsave(&ntp_lock, flags); |
| |
| /* clear the error bits, they will be set again if needed */ |
| time_status &= ~(STA_PPSJITTER | STA_PPSWANDER | STA_PPSERROR); |
| @@ -915,7 +915,7 @@ void hardpps(const struct timespec *phase_ts, const struct timespec *raw_ts) |
| * just start the frequency interval */ |
| if (unlikely(pps_fbase.tv_sec == 0)) { |
| pps_fbase = *raw_ts; |
| - spin_unlock_irqrestore(&ntp_lock, flags); |
| + raw_spin_unlock_irqrestore(&ntp_lock, flags); |
| return; |
| } |
| |
| @@ -930,7 +930,7 @@ void hardpps(const struct timespec *phase_ts, const struct timespec *raw_ts) |
| time_status |= STA_PPSJITTER; |
| /* restart the frequency calibration interval */ |
| pps_fbase = *raw_ts; |
| - spin_unlock_irqrestore(&ntp_lock, flags); |
| + raw_spin_unlock_irqrestore(&ntp_lock, flags); |
| pr_err("hardpps: PPSJITTER: bad pulse\n"); |
| return; |
| } |
| @@ -947,7 +947,7 @@ void hardpps(const struct timespec *phase_ts, const struct timespec *raw_ts) |
| |
| hardpps_update_phase(pts_norm.nsec); |
| |
| - spin_unlock_irqrestore(&ntp_lock, flags); |
| + raw_spin_unlock_irqrestore(&ntp_lock, flags); |
| } |
| EXPORT_SYMBOL(hardpps); |
| |
| -- |
| 1.7.10.4 |
| |