lkml.org 
[lkml]   [2007]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH 1/2] irq_flags_t: intro and core annotations
From
On Thu, Oct 25, 2007 at 05:40:03PM +0200, Jan Engelhardt wrote:
> On Oct 21 2007, Alexey Dobriyan wrote:
> >
> >One of type of bugs steadily being fought is the following one:
> >
> > unsigned int flags;
> > spin_lock_irqsave(&lock, flags);
> >
> >where "flags" should be "unsigned long". Here is far from complete list
> >of commits fixing such bugs:
> >
>
> How about making spin_lock_irqsave actually take a pointer to flags?

How would you do it without flag day?

> (Which would be the logical choice if it were a function and not a
> macro...) That would flag up all violations ("without cast to different
> pointer" or so) while usually not breaking compilation.
>
> Of course, irq_flags_t is probably the best long-term solution if one
> wants to hide a struct. (Even then perhaps, use a pointer instead?)

IIRC, Christoph mentioned:

irq_flags_t flags;

flags = spin_lock_irqXXX(&lock);
spin_unlock_irqYYY(&lock, flags);

where XXX and YYY are still to be found good names :^) It's also a solution
without flag day and with more sane lock part -- "how flags are modified
if they are passed by value?"

I start to like this proposal but I can't come up with good names.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2007-10-27 22:27    [from the cache]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and my Meterkast|Read the blog