2005-05-19 23:34:24

by Corey Minyard

[permalink] [raw]
Subject: [PATCH] Fixes for IPMI use of timers



Attachments:
ipmi_hrt_fixes.diff (1.33 kB)

2005-05-19 23:51:51

by Lee Revell

[permalink] [raw]
Subject: Re: [PATCH] Fixes for IPMI use of timers

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

2005-05-20 02:20:40

by Corey Minyard

[permalink] [raw]
Subject: Re: [PATCH] Fixes for IPMI use of timers

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



Attachments:
ipmi_hrt_fixes.diff (1.42 kB)

2005-05-21 01:15:04

by George Anzinger

[permalink] [raw]
Subject: Re: [PATCH] Fixes for IPMI use of timers

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/

2005-05-21 01:30:25

by Lee Revell

[permalink] [raw]
Subject: Re: [PATCH] Fixes for IPMI use of 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

2005-05-21 02:00:25

by Corey Minyard

[permalink] [raw]
Subject: Re: [PATCH] Fixes for IPMI use of timers

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