Patchwork [sparc32] fix last cpu timer initialization

login
register
mail settings
Submitter Artyom Tarasenko
Date Aug. 2, 2010, 5:58 p.m.
Message ID <1280771901-9758-1-git-send-email-atar4qemu@gmail.com>
Download mbox | patch
Permalink /patch/60561/
State New
Headers show

Comments

Artyom Tarasenko - Aug. 2, 2010, 5:58 p.m.
The timer #0 is the system timer, so the timer #num_cpu is the
timer of the last CPU, and it must be initialized in slavio_timer_reset.

Don't mark non-existing timers as running.
---
 hw/slavio_timer.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Blue Swirl - Aug. 2, 2010, 8:56 p.m.
Thanks, applied. Please remember to use Signed-off-by tag.


On Mon, Aug 2, 2010 at 5:58 PM, Artyom Tarasenko
<atar4qemu@googlemail.com> wrote:
> The timer #0 is the system timer, so the timer #num_cpu is the
> timer of the last CPU, and it must be initialized in slavio_timer_reset.
>
> Don't mark non-existing timers as running.
> ---
>  hw/slavio_timer.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/hw/slavio_timer.c b/hw/slavio_timer.c
> index d787553..c125de4 100644
> --- a/hw/slavio_timer.c
> +++ b/hw/slavio_timer.c
> @@ -377,12 +377,12 @@ static void slavio_timer_reset(DeviceState *d)
>         curr_timer->limit = 0;
>         curr_timer->count = 0;
>         curr_timer->reached = 0;
> -        if (i < s->num_cpus) {
> +        if (i <= s->num_cpus) {
>             ptimer_set_limit(curr_timer->timer,
>                              LIMIT_TO_PERIODS(TIMER_MAX_COUNT32), 1);
>             ptimer_run(curr_timer->timer, 0);
> +            curr_timer->running = 1;
>         }
> -        curr_timer->running = 1;
>     }
>     s->cputimer_mode = 0;
>  }
> --
> 1.6.2.5
>
>
Artyom Tarasenko - Aug. 2, 2010, 9:44 p.m.
Btw, it would be nice to get this patch applied for 0.13: it's a pure
fix, and it allows running the OBP v2.10 for LX and some older OBP
versions for SS-20 too.

2010/8/2 Blue Swirl <blauwirbel@gmail.com>:
> Thanks, applied. Please remember to use Signed-off-by tag.

Grrr. Git 1.6.2.5 seems to ignore the option signoff = true in the
config file. I'll update my git right now.

>
>
> On Mon, Aug 2, 2010 at 5:58 PM, Artyom Tarasenko
> <atar4qemu@googlemail.com> wrote:
>> The timer #0 is the system timer, so the timer #num_cpu is the
>> timer of the last CPU, and it must be initialized in slavio_timer_reset.
>>
>> Don't mark non-existing timers as running.
>> ---
>>  hw/slavio_timer.c |    4 ++--
>>  1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/slavio_timer.c b/hw/slavio_timer.c
>> index d787553..c125de4 100644
>> --- a/hw/slavio_timer.c
>> +++ b/hw/slavio_timer.c
>> @@ -377,12 +377,12 @@ static void slavio_timer_reset(DeviceState *d)
>>         curr_timer->limit = 0;
>>         curr_timer->count = 0;
>>         curr_timer->reached = 0;
>> -        if (i < s->num_cpus) {
>> +        if (i <= s->num_cpus) {
>>             ptimer_set_limit(curr_timer->timer,
>>                              LIMIT_TO_PERIODS(TIMER_MAX_COUNT32), 1);
>>             ptimer_run(curr_timer->timer, 0);
>> +            curr_timer->running = 1;
>>         }
>> -        curr_timer->running = 1;
>>     }
>>     s->cputimer_mode = 0;
>>  }
>> --
>> 1.6.2.5
>>
>>
>
Artyom Tarasenko - Aug. 6, 2010, 4:51 p.m.
2010/8/2 Artyom Tarasenko <atar4qemu@googlemail.com>:
> Btw, it would be nice to get this patch applied for 0.13: it's a pure
> fix, and it allows running the OBP v2.10 for LX and some older OBP
> versions for SS-20 too.

ping? Objections?

> 2010/8/2 Blue Swirl <blauwirbel@gmail.com>:
>> Thanks, applied. Please remember to use Signed-off-by tag.
>
> Grrr. Git 1.6.2.5 seems to ignore the option signoff = true in the
> config file. I'll update my git right now.
>
>>
>>
>> On Mon, Aug 2, 2010 at 5:58 PM, Artyom Tarasenko
>> <atar4qemu@googlemail.com> wrote:
>>> The timer #0 is the system timer, so the timer #num_cpu is the
>>> timer of the last CPU, and it must be initialized in slavio_timer_reset.
>>>
>>> Don't mark non-existing timers as running.
>>> ---
>>>  hw/slavio_timer.c |    4 ++--
>>>  1 files changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/hw/slavio_timer.c b/hw/slavio_timer.c
>>> index d787553..c125de4 100644
>>> --- a/hw/slavio_timer.c
>>> +++ b/hw/slavio_timer.c
>>> @@ -377,12 +377,12 @@ static void slavio_timer_reset(DeviceState *d)
>>>         curr_timer->limit = 0;
>>>         curr_timer->count = 0;
>>>         curr_timer->reached = 0;
>>> -        if (i < s->num_cpus) {
>>> +        if (i <= s->num_cpus) {
>>>             ptimer_set_limit(curr_timer->timer,
>>>                              LIMIT_TO_PERIODS(TIMER_MAX_COUNT32), 1);
>>>             ptimer_run(curr_timer->timer, 0);
>>> +            curr_timer->running = 1;
>>>         }
>>> -        curr_timer->running = 1;
>>>     }
>>>     s->cputimer_mode = 0;
>>>  }
>>> --
>>> 1.6.2.5
>>>
>>>
>>
Artyom Tarasenko - Aug. 13, 2010, 8:29 p.m.
2010/8/6 Artyom Tarasenko <atar4qemu@googlemail.com>:
> 2010/8/2 Artyom Tarasenko <atar4qemu@googlemail.com>:
>> Btw, it would be nice to get this patch applied for 0.13: it's a pure
>> fix, and it allows running the OBP v2.10 for LX and some older OBP
>> versions for SS-20 too.
>
> ping? Objections?
>

No feedback? Are 0.13 patches only accepted with "0.13" in the subject
line? Are sparc patches generally not welcome for the stable release?

>> 2010/8/2 Blue Swirl <blauwirbel@gmail.com>:
>>> Thanks, applied. Please remember to use Signed-off-by tag.
>>
>> Grrr. Git 1.6.2.5 seems to ignore the option signoff = true in the
>> config file. I'll update my git right now.
>>
>>>
>>>
>>> On Mon, Aug 2, 2010 at 5:58 PM, Artyom Tarasenko
>>> <atar4qemu@googlemail.com> wrote:
>>>> The timer #0 is the system timer, so the timer #num_cpu is the
>>>> timer of the last CPU, and it must be initialized in slavio_timer_reset.
>>>>
>>>> Don't mark non-existing timers as running.
>>>> ---
>>>>  hw/slavio_timer.c |    4 ++--
>>>>  1 files changed, 2 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/hw/slavio_timer.c b/hw/slavio_timer.c
>>>> index d787553..c125de4 100644
>>>> --- a/hw/slavio_timer.c
>>>> +++ b/hw/slavio_timer.c
>>>> @@ -377,12 +377,12 @@ static void slavio_timer_reset(DeviceState *d)
>>>>         curr_timer->limit = 0;
>>>>         curr_timer->count = 0;
>>>>         curr_timer->reached = 0;
>>>> -        if (i < s->num_cpus) {
>>>> +        if (i <= s->num_cpus) {
>>>>             ptimer_set_limit(curr_timer->timer,
>>>>                              LIMIT_TO_PERIODS(TIMER_MAX_COUNT32), 1);
>>>>             ptimer_run(curr_timer->timer, 0);
>>>> +            curr_timer->running = 1;
>>>>         }
>>>> -        curr_timer->running = 1;
>>>>     }
>>>>     s->cputimer_mode = 0;
>>>>  }
>>>> --
>>>> 1.6.2.5
>>>>
>>>>
>>>
>
>
> --
> Regards,
> Artyom Tarasenko
>
> solaris/sparc under qemu blog: http://tyom.blogspot.com/
>
Blue Swirl - Aug. 15, 2010, 9:59 a.m.
On Fri, Aug 13, 2010 at 8:29 PM, Artyom Tarasenko
<atar4qemu@googlemail.com> wrote:
> 2010/8/6 Artyom Tarasenko <atar4qemu@googlemail.com>:
>> 2010/8/2 Artyom Tarasenko <atar4qemu@googlemail.com>:
>>> Btw, it would be nice to get this patch applied for 0.13: it's a pure
>>> fix, and it allows running the OBP v2.10 for LX and some older OBP
>>> versions for SS-20 too.
>>
>> ping? Objections?
>>
>
> No feedback? Are 0.13 patches only accepted with "0.13" in the subject
> line? Are sparc patches generally not welcome for the stable release?

This depends on 0.13 release strategy. I suppose that there will be
another -rc, but it can be based on master or it can be based on -rc0
with cherry picking from master.

>>> 2010/8/2 Blue Swirl <blauwirbel@gmail.com>:
>>>> Thanks, applied. Please remember to use Signed-off-by tag.
>>>
>>> Grrr. Git 1.6.2.5 seems to ignore the option signoff = true in the
>>> config file. I'll update my git right now.
>>>
>>>>
>>>>
>>>> On Mon, Aug 2, 2010 at 5:58 PM, Artyom Tarasenko
>>>> <atar4qemu@googlemail.com> wrote:
>>>>> The timer #0 is the system timer, so the timer #num_cpu is the
>>>>> timer of the last CPU, and it must be initialized in slavio_timer_reset.
>>>>>
>>>>> Don't mark non-existing timers as running.
>>>>> ---
>>>>>  hw/slavio_timer.c |    4 ++--
>>>>>  1 files changed, 2 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/hw/slavio_timer.c b/hw/slavio_timer.c
>>>>> index d787553..c125de4 100644
>>>>> --- a/hw/slavio_timer.c
>>>>> +++ b/hw/slavio_timer.c
>>>>> @@ -377,12 +377,12 @@ static void slavio_timer_reset(DeviceState *d)
>>>>>         curr_timer->limit = 0;
>>>>>         curr_timer->count = 0;
>>>>>         curr_timer->reached = 0;
>>>>> -        if (i < s->num_cpus) {
>>>>> +        if (i <= s->num_cpus) {
>>>>>             ptimer_set_limit(curr_timer->timer,
>>>>>                              LIMIT_TO_PERIODS(TIMER_MAX_COUNT32), 1);
>>>>>             ptimer_run(curr_timer->timer, 0);
>>>>> +            curr_timer->running = 1;
>>>>>         }
>>>>> -        curr_timer->running = 1;
>>>>>     }
>>>>>     s->cputimer_mode = 0;
>>>>>  }
>>>>> --
>>>>> 1.6.2.5
>>>>>
>>>>>
>>>>
>>
>>
>> --
>> Regards,
>> Artyom Tarasenko
>>
>> solaris/sparc under qemu blog: http://tyom.blogspot.com/
>>
>
>
>
> --
> Regards,
> Artyom Tarasenko
>
> solaris/sparc under qemu blog: http://tyom.blogspot.com/
>

Patch

diff --git a/hw/slavio_timer.c b/hw/slavio_timer.c
index d787553..c125de4 100644
--- a/hw/slavio_timer.c
+++ b/hw/slavio_timer.c
@@ -377,12 +377,12 @@  static void slavio_timer_reset(DeviceState *d)
         curr_timer->limit = 0;
         curr_timer->count = 0;
         curr_timer->reached = 0;
-        if (i < s->num_cpus) {
+        if (i <= s->num_cpus) {
             ptimer_set_limit(curr_timer->timer,
                              LIMIT_TO_PERIODS(TIMER_MAX_COUNT32), 1);
             ptimer_run(curr_timer->timer, 0);
+            curr_timer->running = 1;
         }
-        curr_timer->running = 1;
     }
     s->cputimer_mode = 0;
 }