From: Li Zefan The casting is safe only when the list_head member is the first member of the structure. Signed-off-by: Li Zefan Cc: Dave Airlie Signed-off-by: Andrew Morton --- drivers/char/drm/i915_irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/char/drm/i915_irq.c~drm-dont-cast-a-pointer-to-pointer-of-list_head drivers/char/drm/i915_irq.c --- a/drivers/char/drm/i915_irq.c~drm-dont-cast-a-pointer-to-pointer-of-list_head +++ a/drivers/char/drm/i915_irq.c @@ -699,7 +699,7 @@ int i915_vblank_swap(struct drm_device * spin_lock_irqsave(&dev_priv->swaps_lock, irqflags); - list_add_tail((struct list_head *)vbl_swap, &dev_priv->vbl_swaps.head); + list_add_tail(&vbl_swap->head, &dev_priv->vbl_swaps.head); dev_priv->swaps_pending++; spin_unlock_irqrestore(&dev_priv->swaps_lock, irqflags); _