diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-03-03 14:49:51 +0000 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-03-03 17:47:22 +0000 |
commit | d13c46c67e546bb1dc1c4dc7c43e388d0119276b (patch) | |
tree | b65236b49a452b789fd87ea342657656d7661f93 | |
parent | bed86f15bdc23436fb30d09e2faa3dfb7d3834e1 (diff) | |
download | blackbird-op-linux-d13c46c67e546bb1dc1c4dc7c43e388d0119276b.tar.gz blackbird-op-linux-d13c46c67e546bb1dc1c4dc7c43e388d0119276b.zip |
DRM: armada: fix use of kfifo_put()
The kfifo_put() API changed in 498d319bb512 (kfifo API type safety)
which now results in the wrong pointer being added to the kfifo ring,
which then causes an oops. Fix this.
Cc: <stable@vger.kernel.org> # 3.13
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | drivers/gpu/drm/armada/armada_drv.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/drivers/gpu/drm/armada/armada_drv.c b/drivers/gpu/drm/armada/armada_drv.c index 62d0ff3efddf..073dbf300725 100644 --- a/drivers/gpu/drm/armada/armada_drv.c +++ b/drivers/gpu/drm/armada/armada_drv.c @@ -68,15 +68,7 @@ void __armada_drm_queue_unref_work(struct drm_device *dev, { struct armada_private *priv = dev->dev_private; - /* - * Yes, we really must jump through these hoops just to store a - * _pointer_ to something into the kfifo. This is utterly insane - * and idiotic, because it kfifo requires the _data_ pointed to by - * the pointer const, not the pointer itself. Not only that, but - * you have to pass a pointer _to_ the pointer you want stored. - */ - const struct drm_framebuffer *silly_api_alert = fb; - WARN_ON(!kfifo_put(&priv->fb_unref, &silly_api_alert)); + WARN_ON(!kfifo_put(&priv->fb_unref, fb)); schedule_work(&priv->fb_unref_work); } |