lkml.org 
[lkml]   [2000]   [Dec]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: why volatile on vgacon.c?
On Wed, 29 Nov 2000, Andries Brouwer wrote:
> On Wed, Nov 29, 2000 at 05:24:15PM +0100, Santiago Garcia Mantinan wrote:
> > That was on 2.2 series, but since I moved it to 2.4 series I don't have that
> > cga card found anymore. I have looked on the kernel code and followed it to
> > the __init function in vgacon.c, more concretely this piece of code...

> > scr_writew(0xAA55, p);
> > scr_writew(0x55AA, p + 1);
> > if (scr_readw(p) != 0xAA55 || scr_readw(p + 1) != 0x55AA) {

> > Well, the thing is that this code and the code in this function is almost
> > the same in 2.4 as in 2.2, however reading returns the written values on 2.2
> > and different ones (0xffff) on 2.4

> Probably without the volatile the compiler optimizes the entire
> if statement away because it very well knows that it just wrote
> these values there. With the volatile it has to check, and finds
> that there is nothing there.

hmmm. That's why barriers exist, right?

Jeff



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:51    [W:0.068 / U:2.224 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site