Check for NULL map before calling DRM(ioremapfree) on cleanup. Prevents an
oops if a map wasn't found (e.g. XFree86 Bugzilla #108)main
parent
da35a90d99
commit
46e06192a8
|
@ -263,7 +263,8 @@ static int i810_dma_cleanup(drm_device_t *dev)
|
|||
for (i = 0; i < dma->buf_count; i++) {
|
||||
drm_buf_t *buf = dma->buflist[ i ];
|
||||
drm_i810_buf_priv_t *buf_priv = buf->dev_private;
|
||||
DRM(ioremapfree)(buf_priv->kernel_virtual, buf->total);
|
||||
if ( buf_priv->kernel_virtual && buf->total )
|
||||
DRM(ioremapfree)(buf_priv->kernel_virtual, buf->total);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
|
|
@ -280,7 +280,8 @@ static int i830_dma_cleanup(drm_device_t *dev)
|
|||
for (i = 0; i < dma->buf_count; i++) {
|
||||
drm_buf_t *buf = dma->buflist[ i ];
|
||||
drm_i830_buf_priv_t *buf_priv = buf->dev_private;
|
||||
DRM(ioremapfree)(buf_priv->kernel_virtual, buf->total);
|
||||
if ( buf_priv->kernel_virtual && buf->total )
|
||||
DRM(ioremapfree)(buf_priv->kernel_virtual, buf->total);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
|
|
@ -673,7 +673,8 @@ int gamma_do_cleanup_dma( drm_device_t *dev )
|
|||
if ( dev->dev_private ) {
|
||||
drm_gamma_private_t *dev_priv = dev->dev_private;
|
||||
|
||||
DRM_IOREMAPFREE( dev_priv->buffers );
|
||||
if ( dev_priv->buffers != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->buffers );
|
||||
|
||||
DRM(free)( dev->dev_private, sizeof(drm_gamma_private_t),
|
||||
DRM_MEM_DRIVER );
|
||||
|
|
|
@ -263,7 +263,8 @@ static int i810_dma_cleanup(drm_device_t *dev)
|
|||
for (i = 0; i < dma->buf_count; i++) {
|
||||
drm_buf_t *buf = dma->buflist[ i ];
|
||||
drm_i810_buf_priv_t *buf_priv = buf->dev_private;
|
||||
DRM(ioremapfree)(buf_priv->kernel_virtual, buf->total);
|
||||
if ( buf_priv->kernel_virtual && buf->total )
|
||||
DRM(ioremapfree)(buf_priv->kernel_virtual, buf->total);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
|
|
@ -280,7 +280,8 @@ static int i830_dma_cleanup(drm_device_t *dev)
|
|||
for (i = 0; i < dma->buf_count; i++) {
|
||||
drm_buf_t *buf = dma->buflist[ i ];
|
||||
drm_i830_buf_priv_t *buf_priv = buf->dev_private;
|
||||
DRM(ioremapfree)(buf_priv->kernel_virtual, buf->total);
|
||||
if ( buf_priv->kernel_virtual && buf->total )
|
||||
DRM(ioremapfree)(buf_priv->kernel_virtual, buf->total);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
|
|
@ -642,9 +642,12 @@ int mga_do_cleanup_dma( drm_device_t *dev )
|
|||
if ( dev->dev_private ) {
|
||||
drm_mga_private_t *dev_priv = dev->dev_private;
|
||||
|
||||
DRM_IOREMAPFREE( dev_priv->warp );
|
||||
DRM_IOREMAPFREE( dev_priv->primary );
|
||||
DRM_IOREMAPFREE( dev_priv->buffers );
|
||||
if ( dev_priv->warp != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->warp );
|
||||
if ( dev_priv->primary != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->primary );
|
||||
if ( dev_priv->buffers != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->buffers );
|
||||
|
||||
if ( dev_priv->head != NULL ) {
|
||||
mga_freelist_cleanup( dev );
|
||||
|
|
|
@ -619,9 +619,12 @@ int r128_do_cleanup_cce( drm_device_t *dev )
|
|||
#if __REALLY_HAVE_SG
|
||||
if ( !dev_priv->is_pci ) {
|
||||
#endif
|
||||
DRM_IOREMAPFREE( dev_priv->cce_ring );
|
||||
DRM_IOREMAPFREE( dev_priv->ring_rptr );
|
||||
DRM_IOREMAPFREE( dev_priv->buffers );
|
||||
if ( dev_priv->cce_ring != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->cce_ring );
|
||||
if ( dev_priv->ring_rptr != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->ring_rptr );
|
||||
if ( dev_priv->buffers != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->buffers );
|
||||
#if __REALLY_HAVE_SG
|
||||
} else {
|
||||
if (!DRM(ati_pcigart_cleanup)( dev,
|
||||
|
|
|
@ -1279,9 +1279,12 @@ int radeon_do_cleanup_cp( drm_device_t *dev )
|
|||
drm_radeon_private_t *dev_priv = dev->dev_private;
|
||||
|
||||
if ( !dev_priv->is_pci ) {
|
||||
DRM_IOREMAPFREE( dev_priv->cp_ring );
|
||||
DRM_IOREMAPFREE( dev_priv->ring_rptr );
|
||||
DRM_IOREMAPFREE( dev_priv->buffers );
|
||||
if ( dev_priv->cp_ring != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->cp_ring );
|
||||
if ( dev_priv->ring_rptr != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->ring_rptr );
|
||||
if ( dev_priv->buffers != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->buffers );
|
||||
} else {
|
||||
#if __REALLY_HAVE_SG
|
||||
if (!DRM(ati_pcigart_cleanup)( dev,
|
||||
|
|
|
@ -642,9 +642,12 @@ int mga_do_cleanup_dma( drm_device_t *dev )
|
|||
if ( dev->dev_private ) {
|
||||
drm_mga_private_t *dev_priv = dev->dev_private;
|
||||
|
||||
DRM_IOREMAPFREE( dev_priv->warp );
|
||||
DRM_IOREMAPFREE( dev_priv->primary );
|
||||
DRM_IOREMAPFREE( dev_priv->buffers );
|
||||
if ( dev_priv->warp != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->warp );
|
||||
if ( dev_priv->primary != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->primary );
|
||||
if ( dev_priv->buffers != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->buffers );
|
||||
|
||||
if ( dev_priv->head != NULL ) {
|
||||
mga_freelist_cleanup( dev );
|
||||
|
|
|
@ -619,9 +619,12 @@ int r128_do_cleanup_cce( drm_device_t *dev )
|
|||
#if __REALLY_HAVE_SG
|
||||
if ( !dev_priv->is_pci ) {
|
||||
#endif
|
||||
DRM_IOREMAPFREE( dev_priv->cce_ring );
|
||||
DRM_IOREMAPFREE( dev_priv->ring_rptr );
|
||||
DRM_IOREMAPFREE( dev_priv->buffers );
|
||||
if ( dev_priv->cce_ring != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->cce_ring );
|
||||
if ( dev_priv->ring_rptr != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->ring_rptr );
|
||||
if ( dev_priv->buffers != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->buffers );
|
||||
#if __REALLY_HAVE_SG
|
||||
} else {
|
||||
if (!DRM(ati_pcigart_cleanup)( dev,
|
||||
|
|
|
@ -1279,9 +1279,12 @@ int radeon_do_cleanup_cp( drm_device_t *dev )
|
|||
drm_radeon_private_t *dev_priv = dev->dev_private;
|
||||
|
||||
if ( !dev_priv->is_pci ) {
|
||||
DRM_IOREMAPFREE( dev_priv->cp_ring );
|
||||
DRM_IOREMAPFREE( dev_priv->ring_rptr );
|
||||
DRM_IOREMAPFREE( dev_priv->buffers );
|
||||
if ( dev_priv->cp_ring != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->cp_ring );
|
||||
if ( dev_priv->ring_rptr != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->ring_rptr );
|
||||
if ( dev_priv->buffers != NULL )
|
||||
DRM_IOREMAPFREE( dev_priv->buffers );
|
||||
} else {
|
||||
#if __REALLY_HAVE_SG
|
||||
if (!DRM(ati_pcigart_cleanup)( dev,
|
||||
|
|
Loading…
Reference in New Issue