mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2026-04-21 14:50:40 +02:00
Fix DRM to compile cleanly with recent kernel changes in PCI IO and
DRM_COPY_FROM_USER. PCI IO changes in 2.6.9-rc1 bk currently.
This commit is contained in:
parent
e6d468ad7f
commit
36050cc958
4 changed files with 38 additions and 4 deletions
|
|
@ -15,6 +15,7 @@
|
|||
/** Current process ID */
|
||||
#define DRM_CURRENTPID current->pid
|
||||
#define DRM_UDELAY(d) udelay(d)
|
||||
#if LINUX_VERSION_CODE <= 0x020608 /* KERNEL_VERSION(2,4,14) */
|
||||
/** Read a byte from a MMIO region */
|
||||
#define DRM_READ8(map, offset) readb(((unsigned long)(map)->handle) + (offset))
|
||||
/** Read a word from a MMIO region */
|
||||
|
|
@ -27,6 +28,20 @@
|
|||
#define DRM_WRITE16(map, offset, val) writew(val, ((unsigned long)(map)->handle) + (offset))
|
||||
/** Write a dword into a MMIO region */
|
||||
#define DRM_WRITE32(map, offset, val) writel(val, ((unsigned long)(map)->handle) + (offset))
|
||||
#else
|
||||
/** Read a byte from a MMIO region */
|
||||
#define DRM_READ8(map, offset) readb((map)->handle + (offset))
|
||||
/** Read a word from a MMIO region */
|
||||
#define DRM_READ16(map, offset) readw((map)->handle + (offset))
|
||||
/** Read a dword from a MMIO region */
|
||||
#define DRM_READ32(map, offset) readl((map)->handle + (offset))
|
||||
/** Write a byte into a MMIO region */
|
||||
#define DRM_WRITE8(map, offset, val) writeb(val, (map)->handle + (offset))
|
||||
/** Write a word into a MMIO region */
|
||||
#define DRM_WRITE16(map, offset, val) writew(val, (map)->handle + (offset))
|
||||
/** Write a dword into a MMIO region */
|
||||
#define DRM_WRITE32(map, offset, val) writel(val, (map)->handle + (offset))
|
||||
#endif
|
||||
/** Read memory barrier */
|
||||
#define DRM_READMEMORYBARRIER() rmb()
|
||||
/** Write memory barrier */
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
/** Current process ID */
|
||||
#define DRM_CURRENTPID current->pid
|
||||
#define DRM_UDELAY(d) udelay(d)
|
||||
#if LINUX_VERSION_CODE <= 0x020608 /* KERNEL_VERSION(2,4,14) */
|
||||
/** Read a byte from a MMIO region */
|
||||
#define DRM_READ8(map, offset) readb(((unsigned long)(map)->handle) + (offset))
|
||||
/** Read a word from a MMIO region */
|
||||
|
|
@ -27,6 +28,20 @@
|
|||
#define DRM_WRITE16(map, offset, val) writew(val, ((unsigned long)(map)->handle) + (offset))
|
||||
/** Write a dword into a MMIO region */
|
||||
#define DRM_WRITE32(map, offset, val) writel(val, ((unsigned long)(map)->handle) + (offset))
|
||||
#else
|
||||
/** Read a byte from a MMIO region */
|
||||
#define DRM_READ8(map, offset) readb((map)->handle + (offset))
|
||||
/** Read a word from a MMIO region */
|
||||
#define DRM_READ16(map, offset) readw((map)->handle + (offset))
|
||||
/** Read a dword from a MMIO region */
|
||||
#define DRM_READ32(map, offset) readl((map)->handle + (offset))
|
||||
/** Write a byte into a MMIO region */
|
||||
#define DRM_WRITE8(map, offset, val) writeb(val, (map)->handle + (offset))
|
||||
/** Write a word into a MMIO region */
|
||||
#define DRM_WRITE16(map, offset, val) writew(val, (map)->handle + (offset))
|
||||
/** Write a dword into a MMIO region */
|
||||
#define DRM_WRITE32(map, offset, val) writel(val, (map)->handle + (offset))
|
||||
#endif
|
||||
/** Read memory barrier */
|
||||
#define DRM_READMEMORYBARRIER() rmb()
|
||||
/** Write memory barrier */
|
||||
|
|
|
|||
|
|
@ -275,11 +275,13 @@ static int via_dispatch_pci_cmdbuffer(drm_device_t *dev,
|
|||
} else if ( cmd->size > VIA_PREALLOCATED_PCI_SIZE ) {
|
||||
if (NULL == (hugebuf = (char *) kmalloc( cmd-> size, GFP_KERNEL )))
|
||||
return DRM_ERR( ENOMEM );
|
||||
DRM_COPY_FROM_USER( hugebuf, cmd->buf, cmd->size );
|
||||
if (DRM_COPY_FROM_USER( hugebuf, cmd->buf, cmd->size ))
|
||||
return DRM_ERR(EFAULT);
|
||||
ret = via_parse_pci_cmdbuffer( dev, hugebuf, cmd->size );
|
||||
kfree( hugebuf );
|
||||
} else {
|
||||
DRM_COPY_FROM_USER( dev_priv->pci_buf, cmd->buf, cmd->size );
|
||||
if (DRM_COPY_FROM_USER( dev_priv->pci_buf, cmd->buf, cmd->size ))
|
||||
return DRM_ERR(EFAULT);
|
||||
ret = via_parse_pci_cmdbuffer( dev, dev_priv->pci_buf, cmd->size );
|
||||
}
|
||||
return ret;
|
||||
|
|
|
|||
|
|
@ -275,11 +275,13 @@ static int via_dispatch_pci_cmdbuffer(drm_device_t *dev,
|
|||
} else if ( cmd->size > VIA_PREALLOCATED_PCI_SIZE ) {
|
||||
if (NULL == (hugebuf = (char *) kmalloc( cmd-> size, GFP_KERNEL )))
|
||||
return DRM_ERR( ENOMEM );
|
||||
DRM_COPY_FROM_USER( hugebuf, cmd->buf, cmd->size );
|
||||
if (DRM_COPY_FROM_USER( hugebuf, cmd->buf, cmd->size ))
|
||||
return DRM_ERR(EFAULT);
|
||||
ret = via_parse_pci_cmdbuffer( dev, hugebuf, cmd->size );
|
||||
kfree( hugebuf );
|
||||
} else {
|
||||
DRM_COPY_FROM_USER( dev_priv->pci_buf, cmd->buf, cmd->size );
|
||||
if (DRM_COPY_FROM_USER( dev_priv->pci_buf, cmd->buf, cmd->size ))
|
||||
return DRM_ERR(EFAULT);
|
||||
ret = via_parse_pci_cmdbuffer( dev, dev_priv->pci_buf, cmd->size );
|
||||
}
|
||||
return ret;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue