public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jordan Crouse <jordan.crouse@amd.com>
To: David Brigada <brigad@rpi.edu>
Cc: Ingo Molnar <mingo@elte.hu>, Wim Van Sebroeck <wim@iguana.be>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Samuel Tardieu <sam@rfc1149.net>,
	Mike Frysinger <vapier.adi@gmail.com>,
	Mingarelli@infomag.amd.com
Subject: Re: drivers/watchdog/geodewdt.c: build fix
Date: Fri, 30 May 2008 10:05:05 -0600	[thread overview]
Message-ID: <20080530160505.GA12722@cosmic.amd.com> (raw)
In-Reply-To: <48402334.3000809@rpi.edu>

On 30/05/08 11:54 -0400, David Brigada wrote:
> I was trying to compile a kernel with this support, and noticed this bug, 
> too.  The interface was changed in commit 
> fa28e067c3b8af96c79c060e163b1387c172ae75, with the message:
>
> > We had planned to use the 'owner' field for allowing re-allocation of
> > MFGPTs; however, doing it by module owner name isn't flexible enough.  > 
> So, drop this for now.  If it turns out that we need timers in
> > modules, we'll need to come up with a scheme that matches the
> > write-once fields of the MFGPTx_SETUP register, and drops ponies from > 
> the sky.
>
> I may be reading this incorrectly, but it seems that to do this correctly, 
> we would either need to drop module support for this driver or rework the 
> MFGPT code.  I'm not sure there's a kernel hook for dropping ponies from 
> the sky quite yet.

I think the hamster dropping code is queued for 2.6.27, so at least we're
up to mammals.

The story here is that in an unfortunate instance of bad planning the
MFGPT timers can only be configured once, so a module can't allocate a
timer at init and release it when it is done.  The original object of this
code was to try give the timer back to a module if it happened to go away
and come back, but that is clearly a more complex process then just simply
storing the module name, and this code fell into bitrot.

So its not so much that we need to drop module support, rather it needs to
be understood that if you remove and insert your module on a regular basis
you will run out of timers, and deprive others of the timers too. I think
that is a reasonable restriction to impose, given the limited usefulness 
of these timers for general purpose use.

Jordan

> Jordan Crouse wrote:
>> On 30/05/08 17:02 +0200, Ingo Molnar wrote:
>>> * Wim Van Sebroeck <wim@iguana.be> wrote:
>>>
>>>> Author: Jordan Crouse <jordan.crouse@amd.com>
>>>> Date:   Mon Jan 21 10:07:00 2008 -0700
>>>>
>>>>     [WATCHDOG] Add a watchdog driver based on the CS5535/CS5536 MFGPT 
>>>> timers
>>> -tip testing found the following build failure on latest -git:
>>>
>>>   drivers/watchdog/geodewdt.c: In function 'geodewdt_probe':
>>>   drivers/watchdog/geodewdt.c:225: error: too many arguments to function 
>>> 'geode_mfgpt_alloc_timer'
>>>   make[1]: *** [drivers/watchdog/geodewdt.o] Error 1
>>>   make: *** [drivers/watchdog/geodewdt.o] Error 2
>>>
>>> with this config:
>>>
>>>   http://redhat.com/~mingo/misc/config-Fri_May_30_15_19_52_CEST_2008.bad
>>>
>>> find the fix below.
>>>
>>> Signed-off-by: Ingo Molnar <mingo@elte.hu>
>> Acked-by: Jordan Crouse <jordan.crouse@amd.com>
>>> ---
>>>  drivers/watchdog/geodewdt.c |    3 +--
>>>  1 file changed, 1 insertion(+), 2 deletions(-)
>>>
>>> Index: tip/drivers/watchdog/geodewdt.c
>>> ===================================================================
>>> --- tip.orig/drivers/watchdog/geodewdt.c
>>> +++ tip/drivers/watchdog/geodewdt.c
>>> @@ -221,8 +221,7 @@ geodewdt_probe(struct platform_device *d
>>>  {
>>>  	int ret, timer;
>>>  -	timer = geode_mfgpt_alloc_timer(MFGPT_TIMER_ANY,
>>> -					MFGPT_DOMAIN_WORKING, THIS_MODULE);
>>> +	timer = geode_mfgpt_alloc_timer(MFGPT_TIMER_ANY, MFGPT_DOMAIN_WORKING);
>>>   	if (timer == -1) {
>>>  		printk(KERN_ERR "geodewdt:  No timers were available\n");
>>>
>
>

-- 
Jordan Crouse
Systems Software Development Engineer 
Advanced Micro Devices, Inc.


  reply	other threads:[~2008-05-30 16:04 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-25 10:09 [WATCHDOG] v2.6.26-rc3 patches Wim Van Sebroeck
2008-05-25 10:08 ` Alan Cox
2008-05-25 17:05   ` Wim Van Sebroeck
2008-05-30 15:02 ` [patch] drivers/watchdog/geodewdt.c: build fix Ingo Molnar
2008-05-30 15:39   ` Jordan Crouse
2008-05-30 15:54     ` David Brigada
2008-05-30 16:05       ` Jordan Crouse [this message]
2008-05-30 16:24         ` Lennart Sorensen
2008-05-30 16:48           ` Jordan Crouse

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080530160505.GA12722@cosmic.amd.com \
    --to=jordan.crouse@amd.com \
    --cc=Mingarelli@infomag.amd.com \
    --cc=akpm@linux-foundation.org \
    --cc=brigad@rpi.edu \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=sam@rfc1149.net \
    --cc=torvalds@linux-foundation.org \
    --cc=vapier.adi@gmail.com \
    --cc=wim@iguana.be \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox