linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH/RFC] m68k/bitops: Make bitmap data pointer of atomic ops volatile
       [not found] ` <201106062211.15247.arnd@arndb.de>
@ 2011-06-07  7:09   ` Geert Uytterhoeven
  2011-06-07 11:22     ` Arnd Bergmann
  0 siblings, 1 reply; 4+ messages in thread
From: Geert Uytterhoeven @ 2011-06-07  7:09 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: linux-m68k, Akinobu Mita, linux-kernel, Ben Hutchings, linux-ide,
	dri-devel

On Mon, Jun 6, 2011 at 22:11, Arnd Bergmann <arnd@arndb.de> wrote:
> On Monday 06 June 2011 22:07:53 Geert Uytterhoeven wrote:
>>
>> This fixes a.o.
>>
>> drivers/ide/ide-io.c: In function ‘ide_lock_host’:
>> drivers/ide/ide-io.c:415: warning: passing argument 2 of ‘__constant_test_and_set_bit’ discards qualifiers from pointer target type
>> drivers/ide/ide-io.c:415: warning: passing argument 2 of ‘__generic_test_and_set_bit’ discards qualifiers from pointer target type
>>
>> Suggested-by: Ben Hutchings <ben@decadent.org.uk>
>> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
>
> I think the correct fix would be to mark the variable not volatile, as it
> clearly has no business be marked as such. That doesn't mean your patch

You mean the host_busy variable in the IDE code?
That would also apply to context_flag in the DRM code:

drivers/gpu/drm/drm_context.c:233: warning: passing argument 2 of
‘__constant_test_and_set_bit’ discards qualifiers from pointer target
type
drivers/gpu/drm/drm_context.c:233: warning: passing argument 2 of
‘__generic_test_and_set_bit’ discards qualifiers from pointer target
type

> is wrong, though. It probably doesn't hurt to do both.

asm-generic/bitops/atomic.h has the volatiles everywhere. That's why
I'm wondering.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH/RFC] m68k/bitops: Make bitmap data pointer of atomic ops volatile
  2011-06-07  7:09   ` [PATCH/RFC] m68k/bitops: Make bitmap data pointer of atomic ops volatile Geert Uytterhoeven
@ 2011-06-07 11:22     ` Arnd Bergmann
  2011-06-07 13:35       ` Ben Hutchings
  0 siblings, 1 reply; 4+ messages in thread
From: Arnd Bergmann @ 2011-06-07 11:22 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: linux-m68k, Akinobu Mita, linux-kernel, Ben Hutchings, linux-ide,
	dri-devel

On Tuesday 07 June 2011, Geert Uytterhoeven wrote:
> You mean the host_busy variable in the IDE code?
> That would also apply to context_flag in the DRM code:
> 
> drivers/gpu/drm/drm_context.c:233: warning: passing argument 2 of
> ‘__constant_test_and_set_bit’ discards qualifiers from pointer target
> type
> drivers/gpu/drm/drm_context.c:233: warning: passing argument 2 of
> ‘__generic_test_and_set_bit’ discards qualifiers from pointer target
> type

Yes, that fits the same category.

> > is wrong, though. It probably doesn't hurt to do both.
> 
> asm-generic/bitops/atomic.h has the volatiles everywhere. That's why
> I'm wondering.

I guess what happened is that some variables are traditionally marked
as volatile although they shouldn't be, and most architectures have
adapted their bitops to make the warnings go away. If you see more
warnings of that kind, it's probably fine to just do the same on m68k.
The volatile modifier doesn't really hurt in this case.

	Arnd

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH/RFC] m68k/bitops: Make bitmap data pointer of atomic ops volatile
  2011-06-07 11:22     ` Arnd Bergmann
@ 2011-06-07 13:35       ` Ben Hutchings
  2011-06-07 13:56         ` Arnd Bergmann
  0 siblings, 1 reply; 4+ messages in thread
From: Ben Hutchings @ 2011-06-07 13:35 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Geert Uytterhoeven, linux-m68k, Akinobu Mita, linux-kernel,
	linux-ide, dri-devel

On Tue, Jun 07, 2011 at 01:22:29PM +0200, Arnd Bergmann wrote:
> On Tuesday 07 June 2011, Geert Uytterhoeven wrote:
> > You mean the host_busy variable in the IDE code?
> > That would also apply to context_flag in the DRM code:
> > 
> > drivers/gpu/drm/drm_context.c:233: warning: passing argument 2 of
> > ‘__constant_test_and_set_bit’ discards qualifiers from pointer target
> > type
> > drivers/gpu/drm/drm_context.c:233: warning: passing argument 2 of
> > ‘__generic_test_and_set_bit’ discards qualifiers from pointer target
> > type
> 
> Yes, that fits the same category.
> 
> > > is wrong, though. It probably doesn't hurt to do both.
> > 
> > asm-generic/bitops/atomic.h has the volatiles everywhere. That's why
> > I'm wondering.
> 
> I guess what happened is that some variables are traditionally marked
> as volatile although they shouldn't be, and most architectures have
> adapted their bitops to make the warnings go away. If you see more
> warnings of that kind, it's probably fine to just do the same on m68k.
> The volatile modifier doesn't really hurt in this case.
 
These operations are required to be atomic and therefore they
must be suitable for use with volatile-qualified variables.

Ben.

-- 
Ben Hutchings
We get into the habit of living before acquiring the habit of thinking.
                                                              - Albert Camus

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH/RFC] m68k/bitops: Make bitmap data pointer of atomic ops volatile
  2011-06-07 13:35       ` Ben Hutchings
@ 2011-06-07 13:56         ` Arnd Bergmann
  0 siblings, 0 replies; 4+ messages in thread
From: Arnd Bergmann @ 2011-06-07 13:56 UTC (permalink / raw)
  To: Ben Hutchings
  Cc: Geert Uytterhoeven, linux-m68k, Akinobu Mita, linux-kernel,
	linux-ide, dri-devel

On Tuesday 07 June 2011, Ben Hutchings wrote:
> On Tue, Jun 07, 2011 at 01:22:29PM +0200, Arnd Bergmann wrote:

> > I guess what happened is that some variables are traditionally marked
> > as volatile although they shouldn't be, and most architectures have
> > adapted their bitops to make the warnings go away. If you see more
> > warnings of that kind, it's probably fine to just do the same on m68k.
> > The volatile modifier doesn't really hurt in this case.
>  
> These operations are required to be atomic and therefore they
> must be suitable for use with volatile-qualified variables.

As I said, it's not wrong for them to have a volatile qualifier in the
argument list. However, there should also not be the need for the
qualifier in any of the callers, because the bitops only work if
all accesses to the data are done through bitops functions, and that
means that the qualifier on the variable is completely meaningless.

	Arnd

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-06-07 13:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1307390873-29687-1-git-send-email-geert@linux-m68k.org>
     [not found] ` <201106062211.15247.arnd@arndb.de>
2011-06-07  7:09   ` [PATCH/RFC] m68k/bitops: Make bitmap data pointer of atomic ops volatile Geert Uytterhoeven
2011-06-07 11:22     ` Arnd Bergmann
2011-06-07 13:35       ` Ben Hutchings
2011-06-07 13:56         ` Arnd Bergmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).