The DRM code in Linux 2.5.73 has a new radeon getparam that is clearly
not 64bit clean. It tries to return a pointer to an lock in an int,
which clearly cannot work. The AMD64 compiler prints a warning for this.
RADEON_PARAM_SAREA_HANDLE does not seem to be used in the code, so I
just disabled it.
Another issue I noticed is that the padding of the hw_lock is wrong
on P4. It only pads to 64bytes, but the L2 cache size there is
128 bytes. Use the Linux ____cacheline_aligned macro for that.
-Andi
diff -u linux-2.5-amd64/drivers/char/drm/radeon_state.c-o
linux-2.5-amd64/drivers/char/drm/radeon_state.c
--- linux-2.5-amd64/drivers/char/drm/radeon_state.c-o 2003-07-01 16:17:09.000000000
+0200
+++ linux-2.5-amd64/drivers/char/drm/radeon_state.c 2003-07-01 16:18:40.000000000
+0200
@@ -2195,10 +2195,12 @@
case RADEON_PARAM_STATUS_HANDLE:
value = dev_priv->ring_rptr_offset;
break;
+#if 0 /* broken. not 64bit clean */
case RADEON_PARAM_SAREA_HANDLE:
/* The lock is the first dword in the sarea. */
value = (int)dev->lock.hw_lock;
break;
+#endif
case RADEON_PARAM_AGP_TEX_HANDLE:
value = dev_priv->agp_textures_offset;
break;
diff -u linux-2.5-amd64/drivers/char/drm/drmP.h-o
linux-2.5-amd64/drivers/char/drm/drmP.h
--- linux-2.5-amd64/drivers/char/drm/drmP.h-o 2003-05-24 21:57:47.000000000 +0200
+++ linux-2.5-amd64/drivers/char/drm/drmP.h 2003-07-01 16:19:08.000000000 +0200
@@ -377,8 +377,7 @@
typedef struct drm_hw_lock {
__volatile__ unsigned int lock;
- char padding[60]; /* Pad to cache line */
-} drm_hw_lock_t;
+} drm_hw_lock_t ____cacheline_aligned;
typedef struct drm_file {
int authenticated;
-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_061203_01/01
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel