On Thu, 2005-05-19 at 18:30 -0500, Corey Minyard wrote:
> /* We already have irqsave on, so no need for it
> here. */
> - read_lock(&xtime_lock);
> + read_lock_irqsave(&xtime_lock, flags);
The comment is now wrong.
Lee
Lee Revell wrote:
>On Thu, 2005-05-19 at 18:30 -0500, Corey Minyard wrote:
>
>
>> /* We already have irqsave on, so no need for it
>> here. */
>>- read_lock(&xtime_lock);
>>+ read_lock_irqsave(&xtime_lock, flags);
>>
>>
>
>The comment is now wrong.
>
>Lee
>
>
I know I deleted that at least once. Oh well, here it is with the
comment removed.
Thanks.
-Corey
Corey Minyard wrote:
>
>
> ------------------------------------------------------------------------
>
> Fix some problems with the high-res timer support.
>
> Signed-off-by: Corey Minyard <[email protected]>
>
> Index: linux-2.6.12-rc4/drivers/char/ipmi/ipmi_si_intf.c
> ===================================================================
> --- linux-2.6.12-rc4.orig/drivers/char/ipmi/ipmi_si_intf.c
> +++ linux-2.6.12-rc4/drivers/char/ipmi/ipmi_si_intf.c
> @@ -769,10 +769,11 @@
>
> /* We already have irqsave on, so no need for it
> here. */
> - read_lock(&xtime_lock);
> + read_lock_irqsave(&xtime_lock, flags);
I rather hope this fails to compile :) xtime_lock is a sequence lock in the 2.6
kernel.
> jiffies_now = jiffies;
> smi_info->si_timer.expires = jiffies_now;
> smi_info->si_timer.sub_expires = get_arch_cycles(jiffies_now);
> + read_unlock_irqrestore(&xtime_lock, flags);
>
> add_usec_to_timer(&smi_info->si_timer, SI_SHORT_TIMEOUT_USEC);
>
> @@ -830,11 +831,11 @@
> smi_info->short_timeouts++;
> spin_unlock_irqrestore(&smi_info->count_lock, flags);
> #if defined(CONFIG_HIGH_RES_TIMERS)
> - read_lock(&xtime_lock);
> + read_lock_irqsave(&xtime_lock, flags);
> smi_info->si_timer.expires = jiffies;
> smi_info->si_timer.sub_expires
> = get_arch_cycles(smi_info->si_timer.expires);
> - read_unlock(&xtime_lock);
> + read_unlock_irqrestore(&xtime_lock, flags);
> add_usec_to_timer(&smi_info->si_timer, SI_SHORT_TIMEOUT_USEC);
> #else
> smi_info->si_timer.expires = jiffies + 1;
--
George Anzinger [email protected]
High-res-timers: http://sourceforge.net/projects/high-res-timers/
On Fri, 2005-05-20 at 18:14 -0700, George Anzinger wrote:
> > /* We already have irqsave on, so no need for it
> > here. */
> > - read_lock(&xtime_lock);
> > + read_lock_irqsave(&xtime_lock, flags);
>
> I rather hope this fails to compile :) xtime_lock is a sequence lock in the 2.6
> kernel.
>
> > jiffies_now = jiffies;
> > smi_info->si_timer.expires = jiffies_now;
> > smi_info->si_timer.sub_expires = get_arch_cycles(jiffies_now);
> > + read_unlock_irqrestore(&xtime_lock, flags);
The old code clearly has an unbalanced lock/unlock, maybe it's
sufficient to just fix that?
Lee
Lee Revell wrote:
>On Fri, 2005-05-20 at 18:14 -0700, George Anzinger wrote:
>
>
>>> /* We already have irqsave on, so no need for it
>>> here. */
>>>- read_lock(&xtime_lock);
>>>+ read_lock_irqsave(&xtime_lock, flags);
>>>
>>>
>>I rather hope this fails to compile :) xtime_lock is a sequence lock in the 2.6
>>kernel.
>>
>>
>>
>>> jiffies_now = jiffies;
>>> smi_info->si_timer.expires = jiffies_now;
>>> smi_info->si_timer.sub_expires = get_arch_cycles(jiffies_now);
>>>+ read_unlock_irqrestore(&xtime_lock, flags);
>>>
>>>
>
>The old code clearly has an unbalanced lock/unlock, maybe it's
>sufficient to just fix that?
>
>
Yes, probably just best to fix that up. When high-res timers make it
into the kernel, this can be fixed up, this is left over from the 2.4
high-res timers.
-Corey