Linus and Michel, Here is a proposed patch for fixing the compile-warning that shows up when compiling radeon_state.c on a 64-bit platform (Itanium, in my case). According to Michel, RADEON_PARAM_SAREA_HANDLE is used only on embedded platforms and since it is not possible to fix the problem without breaking backwards-compatibility for those platforms, the interim fix is to simply desupport this particular ioctl() on 64-bit platforms (i.e., make it fail with EINVAL). If there are no objections, please apply. --david ===== drivers/char/drm/radeon_state.c 1.23 vs edited ===== --- 1.23/drivers/char/drm/radeon_state.c Tue Feb 3 21:29:26 2004 +++ edited/drivers/char/drm/radeon_state.c Tue Feb 17 15:23:01 2004 @@ -2186,9 +2186,24 @@ value = dev_priv->ring_rptr_offset; break; case RADEON_PARAM_SAREA_HANDLE: - /* The lock is the first dword in the sarea. */ - value = (int)dev->lock.hw_lock; - break; + /* + * This ioctl() doesn't work on 64-bit platforms because hw_lock is a + * pointer which can't fit into an int-sized variable. According to + * Michael Dänzer, the ioctl() is only used on embedded platforms, so not + * supporting it shouldn't be a problem. If the same functionality is + * needed on 64-bit platforms, a new ioctl() would have to be added, so + * backwards-compatibility for the embedded platforms can be maintained. + * --davidm 4-Feb-2004. + */ + if (sizeof (dev->lock.hw_lock) <= sizeof (int)) + /* + * The lock is the first dword in the sarea. Cast to "long" so it + * compiles without warning on 64-bit platforms. + */ + value = (long)dev->lock.hw_lock; + else + return DRM_ERR(EINVAL); + break; case RADEON_PARAM_GART_TEX_HANDLE: value = dev_priv->gart_textures_offset; break; - To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.htmlReceived on Tue Feb 17 18:34:31 2004
This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:22 EST