At Tue, 7 Jun 2005 17:16:02 +0200, Alien wrote: > > [1 <text/plain; iso-8859-1 (quoted-printable)>] > Op dinsdag 7 juni 2005 17:05, schreef Raymond: > > The patch (diff11.diff) cause segmenation fault on my 32bit machine > > during /etc/init.d/alsasound start > > > > http://savannah.nongnu.org/patch/?func=detailitem&item_id=3948 > > > > Do anyone know why readl() and writel() behave different in i386 > > (32bits) and AMD64 (64bits) ? > > > > http://sourceforge.net/mailarchive/message.php?msg_id=10773530 > > > > > > #ifndef CONFIG_X86_64 > > > > #define hwread(x,y) readl((x)+((y)>>2)) > > #define hwwrite(x,y,z) writel((z),(x)+((y)>>2)) > > > > #else > > > > #define hwread(x,y) readl((x)+(y)) > > #define hwwrite(x,y,z) writel((z),(x)+(y)) > > > > #endif > > that doesn't look good, unless the mmio is void* in 32bit and unsigned long* > in x86_64... > > 'unsigned long* mmio' should be preferred and together with '#define > hwread(x,y) readl((x)+(y))' , this works for both platforms
I guess using "unsigned long" for both architectures is broken, too. Should be "u32" to be arch-independent. Takashi _______________________________________________ Openvortex-dev mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/openvortex-dev
