Skip to content

Commit

Permalink
Revert "drm/i810: cleanup reclaim_buffers"
Browse files Browse the repository at this point in the history
This reverts commit 87499ff.

Where is that paper bag ... ah here.

I've failed to take an odd interaction between my other cleanups and
this reclaim_buffers patch into account and also failed to properly
test it. Looks like there are more dragons and hidden trapdoors in the
drm release path than actual lines of code.

Until I get a clue, let's just revert this.

Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Signed-off-by: Dave Airlie <airlied@redhat.com>
  • Loading branch information
Daniel Vetter authored and Dave Airlie committed Jan 30, 2012
1 parent 0a96265 commit 6e877b5
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 13 deletions.
17 changes: 6 additions & 11 deletions drivers/gpu/drm/i810/i810_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -886,7 +886,7 @@ static int i810_flush_queue(struct drm_device *dev)
}

/* Must be called with the lock held */
void i810_driver_reclaim_buffers(struct drm_device *dev,
static void i810_reclaim_buffers(struct drm_device *dev,
struct drm_file *file_priv)
{
struct drm_device_dma *dma = dev->dma;
Expand Down Expand Up @@ -1223,17 +1223,12 @@ void i810_driver_preclose(struct drm_device *dev, struct drm_file *file_priv)
if (dev_priv->page_flipping)
i810_do_cleanup_pageflip(dev);
}
}

if (file_priv->master && file_priv->master->lock.hw_lock) {
drm_idlelock_take(&file_priv->master->lock);
i810_driver_reclaim_buffers(dev, file_priv);
drm_idlelock_release(&file_priv->master->lock);
} else {
/* master disappeared, clean up stuff anyway and hope nothing
* goes wrong */
i810_driver_reclaim_buffers(dev, file_priv);
}

void i810_driver_reclaim_buffers_locked(struct drm_device *dev,
struct drm_file *file_priv)
{
i810_reclaim_buffers(dev, file_priv);
}

int i810_driver_dma_quiescent(struct drm_device *dev)
Expand Down
1 change: 1 addition & 0 deletions drivers/gpu/drm/i810/i810_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ static struct drm_driver driver = {
.lastclose = i810_driver_lastclose,
.preclose = i810_driver_preclose,
.device_is_agp = i810_driver_device_is_agp,
.reclaim_buffers_locked = i810_driver_reclaim_buffers_locked,
.dma_quiescent = i810_driver_dma_quiescent,
.ioctls = i810_ioctls,
.fops = &i810_driver_fops,
Expand Down
6 changes: 4 additions & 2 deletions drivers/gpu/drm/i810/i810_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -116,12 +116,14 @@ typedef struct drm_i810_private {

/* i810_dma.c */
extern int i810_driver_dma_quiescent(struct drm_device *dev);
void i810_driver_reclaim_buffers(struct drm_device *dev,
struct drm_file *file_priv);
extern void i810_driver_reclaim_buffers_locked(struct drm_device *dev,
struct drm_file *file_priv);
extern int i810_driver_load(struct drm_device *, unsigned long flags);
extern void i810_driver_lastclose(struct drm_device *dev);
extern void i810_driver_preclose(struct drm_device *dev,
struct drm_file *file_priv);
extern void i810_driver_reclaim_buffers_locked(struct drm_device *dev,
struct drm_file *file_priv);
extern int i810_driver_device_is_agp(struct drm_device *dev);

extern long i810_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
Expand Down

0 comments on commit 6e877b5

Please sign in to comment.