Re: [Spice-devel] [PATCH 27/59] drm/qxl: Don't use drm_device->dev_private
On Wed, Apr 15, 2020 at 09:40:02AM +0200, Daniel Vetter wrote: > Upcasting using a container_of macro is more typesafe, faster and > easier for the compiler to optimize. > > Acked-by: Gerd Hoffmann > Signed-off-by: Daniel Vetter > Cc: Dave Airlie > Cc: Gerd Hoffmann > Cc: virtualizat...@lists.linux-foundation.org > Cc: spice-devel@lists.freedesktop.org Acked-by: Sam Ravnborg > --- > drivers/gpu/drm/qxl/qxl_debugfs.c | 7 +++ > drivers/gpu/drm/qxl/qxl_display.c | 32 +++ > drivers/gpu/drm/qxl/qxl_drv.c | 8 > drivers/gpu/drm/qxl/qxl_drv.h | 4 ++-- > drivers/gpu/drm/qxl/qxl_dumb.c| 2 +- > drivers/gpu/drm/qxl/qxl_gem.c | 2 +- > drivers/gpu/drm/qxl/qxl_ioctl.c | 14 +++--- > drivers/gpu/drm/qxl/qxl_irq.c | 2 +- > drivers/gpu/drm/qxl/qxl_kms.c | 1 - > drivers/gpu/drm/qxl/qxl_object.c | 2 +- > drivers/gpu/drm/qxl/qxl_release.c | 2 +- > drivers/gpu/drm/qxl/qxl_ttm.c | 2 +- > 12 files changed, 38 insertions(+), 40 deletions(-) > > diff --git a/drivers/gpu/drm/qxl/qxl_debugfs.c > b/drivers/gpu/drm/qxl/qxl_debugfs.c > index 88123047fdd4..524d35b648d8 100644 > --- a/drivers/gpu/drm/qxl/qxl_debugfs.c > +++ b/drivers/gpu/drm/qxl/qxl_debugfs.c > @@ -39,7 +39,7 @@ static int > qxl_debugfs_irq_received(struct seq_file *m, void *data) > { > struct drm_info_node *node = (struct drm_info_node *) m->private; > - struct qxl_device *qdev = node->minor->dev->dev_private; > + struct qxl_device *qdev = to_qxl(node->minor->dev); > > seq_printf(m, "%d\n", atomic_read(>irq_received)); > seq_printf(m, "%d\n", atomic_read(>irq_received_display)); > @@ -53,7 +53,7 @@ static int > qxl_debugfs_buffers_info(struct seq_file *m, void *data) > { > struct drm_info_node *node = (struct drm_info_node *) m->private; > - struct qxl_device *qdev = node->minor->dev->dev_private; > + struct qxl_device *qdev = to_qxl(node->minor->dev); > struct qxl_bo *bo; > > list_for_each_entry(bo, >gem.objects, list) { > @@ -83,8 +83,7 @@ void > qxl_debugfs_init(struct drm_minor *minor) > { > #if defined(CONFIG_DEBUG_FS) > - struct qxl_device *dev = > - (struct qxl_device *) minor->dev->dev_private; > + struct qxl_device *dev = to_qxl(minor->dev); > > drm_debugfs_create_files(qxl_debugfs_list, QXL_DEBUGFS_ENTRIES, >minor->debugfs_root, minor); > diff --git a/drivers/gpu/drm/qxl/qxl_display.c > b/drivers/gpu/drm/qxl/qxl_display.c > index 09583a08e141..1082cd5d2fd4 100644 > --- a/drivers/gpu/drm/qxl/qxl_display.c > +++ b/drivers/gpu/drm/qxl/qxl_display.c > @@ -221,7 +221,7 @@ static int qxl_add_mode(struct drm_connector *connector, > bool preferred) > { > struct drm_device *dev = connector->dev; > - struct qxl_device *qdev = dev->dev_private; > + struct qxl_device *qdev = to_qxl(dev); > struct drm_display_mode *mode = NULL; > int rc; > > @@ -242,7 +242,7 @@ static int qxl_add_mode(struct drm_connector *connector, > static int qxl_add_monitors_config_modes(struct drm_connector *connector) > { > struct drm_device *dev = connector->dev; > - struct qxl_device *qdev = dev->dev_private; > + struct qxl_device *qdev = to_qxl(dev); > struct qxl_output *output = drm_connector_to_qxl_output(connector); > int h = output->index; > struct qxl_head *head; > @@ -310,7 +310,7 @@ static void qxl_crtc_update_monitors_config(struct > drm_crtc *crtc, > const char *reason) > { > struct drm_device *dev = crtc->dev; > - struct qxl_device *qdev = dev->dev_private; > + struct qxl_device *qdev = to_qxl(dev); > struct qxl_crtc *qcrtc = to_qxl_crtc(crtc); > struct qxl_head head; > int oldcount, i = qcrtc->index; > @@ -400,7 +400,7 @@ static int qxl_framebuffer_surface_dirty(struct > drm_framebuffer *fb, >unsigned int num_clips) > { > /* TODO: vmwgfx where this was cribbed from had locking. Why? */ > - struct qxl_device *qdev = fb->dev->dev_private; > + struct qxl_device *qdev = to_qxl(fb->dev); > struct drm_clip_rect norect; > struct qxl_bo *qobj; > bool is_primary; > @@ -462,7 +462,7 @@ static const struct drm_crtc_helper_funcs > qxl_crtc_helper_funcs = { > static int qxl_primary_atomic_check(struct drm_plane *plane, > struct drm_plane_state *state) > { > - struct qxl_device *qdev = plane->dev->dev_private; > + struct qxl_device *qdev = to_qxl(plane->dev); > struct qxl_bo *bo; > > if (!state->crtc || !state->fb) > @@ -476,7 +476,7 @@ static int qxl_primary_atomic_check(struct drm_plane > *plane, > static int qxl_primary_apply_cursor(struct drm_plane *plane) > { > struct drm_device *dev = plane->dev; > - struct qxl_device *qdev = dev->dev_private; > + struct
[Spice-devel] [PATCH 27/59] drm/qxl: Don't use drm_device->dev_private
Upcasting using a container_of macro is more typesafe, faster and easier for the compiler to optimize. Acked-by: Gerd Hoffmann Signed-off-by: Daniel Vetter Cc: Dave Airlie Cc: Gerd Hoffmann Cc: virtualizat...@lists.linux-foundation.org Cc: spice-devel@lists.freedesktop.org --- drivers/gpu/drm/qxl/qxl_debugfs.c | 7 +++ drivers/gpu/drm/qxl/qxl_display.c | 32 +++ drivers/gpu/drm/qxl/qxl_drv.c | 8 drivers/gpu/drm/qxl/qxl_drv.h | 4 ++-- drivers/gpu/drm/qxl/qxl_dumb.c| 2 +- drivers/gpu/drm/qxl/qxl_gem.c | 2 +- drivers/gpu/drm/qxl/qxl_ioctl.c | 14 +++--- drivers/gpu/drm/qxl/qxl_irq.c | 2 +- drivers/gpu/drm/qxl/qxl_kms.c | 1 - drivers/gpu/drm/qxl/qxl_object.c | 2 +- drivers/gpu/drm/qxl/qxl_release.c | 2 +- drivers/gpu/drm/qxl/qxl_ttm.c | 2 +- 12 files changed, 38 insertions(+), 40 deletions(-) diff --git a/drivers/gpu/drm/qxl/qxl_debugfs.c b/drivers/gpu/drm/qxl/qxl_debugfs.c index 88123047fdd4..524d35b648d8 100644 --- a/drivers/gpu/drm/qxl/qxl_debugfs.c +++ b/drivers/gpu/drm/qxl/qxl_debugfs.c @@ -39,7 +39,7 @@ static int qxl_debugfs_irq_received(struct seq_file *m, void *data) { struct drm_info_node *node = (struct drm_info_node *) m->private; - struct qxl_device *qdev = node->minor->dev->dev_private; + struct qxl_device *qdev = to_qxl(node->minor->dev); seq_printf(m, "%d\n", atomic_read(>irq_received)); seq_printf(m, "%d\n", atomic_read(>irq_received_display)); @@ -53,7 +53,7 @@ static int qxl_debugfs_buffers_info(struct seq_file *m, void *data) { struct drm_info_node *node = (struct drm_info_node *) m->private; - struct qxl_device *qdev = node->minor->dev->dev_private; + struct qxl_device *qdev = to_qxl(node->minor->dev); struct qxl_bo *bo; list_for_each_entry(bo, >gem.objects, list) { @@ -83,8 +83,7 @@ void qxl_debugfs_init(struct drm_minor *minor) { #if defined(CONFIG_DEBUG_FS) - struct qxl_device *dev = - (struct qxl_device *) minor->dev->dev_private; + struct qxl_device *dev = to_qxl(minor->dev); drm_debugfs_create_files(qxl_debugfs_list, QXL_DEBUGFS_ENTRIES, minor->debugfs_root, minor); diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c index 09583a08e141..1082cd5d2fd4 100644 --- a/drivers/gpu/drm/qxl/qxl_display.c +++ b/drivers/gpu/drm/qxl/qxl_display.c @@ -221,7 +221,7 @@ static int qxl_add_mode(struct drm_connector *connector, bool preferred) { struct drm_device *dev = connector->dev; - struct qxl_device *qdev = dev->dev_private; + struct qxl_device *qdev = to_qxl(dev); struct drm_display_mode *mode = NULL; int rc; @@ -242,7 +242,7 @@ static int qxl_add_mode(struct drm_connector *connector, static int qxl_add_monitors_config_modes(struct drm_connector *connector) { struct drm_device *dev = connector->dev; - struct qxl_device *qdev = dev->dev_private; + struct qxl_device *qdev = to_qxl(dev); struct qxl_output *output = drm_connector_to_qxl_output(connector); int h = output->index; struct qxl_head *head; @@ -310,7 +310,7 @@ static void qxl_crtc_update_monitors_config(struct drm_crtc *crtc, const char *reason) { struct drm_device *dev = crtc->dev; - struct qxl_device *qdev = dev->dev_private; + struct qxl_device *qdev = to_qxl(dev); struct qxl_crtc *qcrtc = to_qxl_crtc(crtc); struct qxl_head head; int oldcount, i = qcrtc->index; @@ -400,7 +400,7 @@ static int qxl_framebuffer_surface_dirty(struct drm_framebuffer *fb, unsigned int num_clips) { /* TODO: vmwgfx where this was cribbed from had locking. Why? */ - struct qxl_device *qdev = fb->dev->dev_private; + struct qxl_device *qdev = to_qxl(fb->dev); struct drm_clip_rect norect; struct qxl_bo *qobj; bool is_primary; @@ -462,7 +462,7 @@ static const struct drm_crtc_helper_funcs qxl_crtc_helper_funcs = { static int qxl_primary_atomic_check(struct drm_plane *plane, struct drm_plane_state *state) { - struct qxl_device *qdev = plane->dev->dev_private; + struct qxl_device *qdev = to_qxl(plane->dev); struct qxl_bo *bo; if (!state->crtc || !state->fb) @@ -476,7 +476,7 @@ static int qxl_primary_atomic_check(struct drm_plane *plane, static int qxl_primary_apply_cursor(struct drm_plane *plane) { struct drm_device *dev = plane->dev; - struct qxl_device *qdev = dev->dev_private; + struct qxl_device *qdev = to_qxl(dev); struct drm_framebuffer *fb = plane->state->fb; struct qxl_crtc *qcrtc = to_qxl_crtc(plane->state->crtc); struct qxl_cursor_cmd *cmd; @@ -523,7 +523,7 @@ static int