Message ID | 1375969295-18929-14-git-send-email-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Hi On Thu, Aug 8, 2013 at 3:41 PM, Daniel Vetter <daniel.vetter@ffwll.ch> wrote: > So I've stumbled over drm_fasync and wondered what it does. Digging > that up is quite a story. > > First I've had to read up on what this does and ended up being rather > bewildered why peopled loved signals so much back in the days that > they've created SIGIO just for that ... > > Then I wondered how this ever works, and what that strange "No-op." > comment right above it should mean. After all calling the core fasync > helper is pretty obviously not a noop. After reading through the > kernels FASYNC implementation I've noticed that signals are only sent > out to the processes attached with FASYNC by calling kill_fasync. > > No merged drm driver has ever done that. > > After more digging I've found out that the only driver that ever used > this is the so called GAMMA driver. I've frankly never heard of such a > gpu brand ever before. Now FASYNC seems to not have been the only bad > thing with that driver, since Dave Airlie removed it from the drm > driver with prejudice: > > commit 1430163b4bbf7b00367ea1066c1c5fe85dbeefed > Author: Dave Airlie <airlied@linux.ie> > Date: Sun Aug 29 12:04:35 2004 +0000 > > Drop GAMMA DRM from a great height ... > > Long story short, the drm fasync support seems to be doing absolutely > nothing. And the only user of it was never merged into the upstream > kernel. And we don't need any fops->fasync callback since the fcntl > implementation in the kernel already implements the noop case > correctly. > > So stop this particular cargo-cult and rip it all out. > > v2: Kill drm_fasync assignments in rcar (newly added) and imx drivers > (somehow I've missed that one in staging). Also drop the reference in > the drm DocBook. ARM compile-fail reported by Rob Clark. > > v3: Move the removal of dev->buf_asnyc assignment in drm_setup to this > patch here. > > v4: Actually git add ... tsk. > > Cc: Dave Airlie <airlied@linux.ie> > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Cc: Rob Clark <robdclark@gmail.com> > Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Looks good now. It reminds me that I should resend the O_NONBLOCK implementation of drm_read() which would properly replace any SIGIO uses... Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Regards David > --- > Documentation/DocBook/drm.tmpl | 1 - > drivers/gpu/drm/ast/ast_drv.c | 1 - > drivers/gpu/drm/cirrus/cirrus_drv.c | 1 - > drivers/gpu/drm/drm_fops.c | 14 -------------- > drivers/gpu/drm/gma500/psb_drv.c | 1 - > drivers/gpu/drm/i810/i810_dma.c | 1 - > drivers/gpu/drm/i810/i810_drv.c | 1 - > drivers/gpu/drm/i915/i915_drv.c | 1 - > drivers/gpu/drm/mga/mga_drv.c | 1 - > drivers/gpu/drm/mgag200/mgag200_drv.c | 1 - > drivers/gpu/drm/nouveau/nouveau_drm.c | 1 - > drivers/gpu/drm/omapdrm/omap_drv.c | 1 - > drivers/gpu/drm/qxl/qxl_drv.c | 1 - > drivers/gpu/drm/r128/r128_drv.c | 1 - > drivers/gpu/drm/radeon/radeon_drv.c | 2 -- > drivers/gpu/drm/rcar-du/rcar_du_drv.c | 1 - > drivers/gpu/drm/savage/savage_drv.c | 1 - > drivers/gpu/drm/shmobile/shmob_drm_drv.c | 1 - > drivers/gpu/drm/sis/sis_drv.c | 1 - > drivers/gpu/drm/tdfx/tdfx_drv.c | 1 - > drivers/gpu/drm/tilcdc/tilcdc_drv.c | 1 - > drivers/gpu/drm/udl/udl_drv.c | 1 - > drivers/gpu/drm/via/via_drv.c | 1 - > drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 1 - > drivers/gpu/host1x/drm/drm.c | 1 - > drivers/staging/imx-drm/imx-drm-core.c | 1 - > include/drm/drmP.h | 3 --- > 27 files changed, 43 deletions(-) > > diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl > index c62d2d4..d51d157 100644 > --- a/Documentation/DocBook/drm.tmpl > +++ b/Documentation/DocBook/drm.tmpl > @@ -2509,7 +2509,6 @@ void (*postclose) (struct drm_device *, struct drm_file *);</synopsis> > <programlisting> > .poll = drm_poll, > .read = drm_read, > - .fasync = drm_fasync, > .llseek = no_llseek, > </programlisting> > </para> > diff --git a/drivers/gpu/drm/ast/ast_drv.c b/drivers/gpu/drm/ast/ast_drv.c > index a144fb0..60f1ce3 100644 > --- a/drivers/gpu/drm/ast/ast_drv.c > +++ b/drivers/gpu/drm/ast/ast_drv.c > @@ -190,7 +190,6 @@ static const struct file_operations ast_fops = { > .unlocked_ioctl = drm_ioctl, > .mmap = ast_mmap, > .poll = drm_poll, > - .fasync = drm_fasync, > #ifdef CONFIG_COMPAT > .compat_ioctl = drm_compat_ioctl, > #endif > diff --git a/drivers/gpu/drm/cirrus/cirrus_drv.c b/drivers/gpu/drm/cirrus/cirrus_drv.c > index d35d99c..dd9c908 100644 > --- a/drivers/gpu/drm/cirrus/cirrus_drv.c > +++ b/drivers/gpu/drm/cirrus/cirrus_drv.c > @@ -85,7 +85,6 @@ static const struct file_operations cirrus_driver_fops = { > #ifdef CONFIG_COMPAT > .compat_ioctl = drm_compat_ioctl, > #endif > - .fasync = drm_fasync, > }; > static struct drm_driver driver = { > .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_USE_MTRR, > diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c > index dd47fef..5679971 100644 > --- a/drivers/gpu/drm/drm_fops.c > +++ b/drivers/gpu/drm/drm_fops.c > @@ -74,8 +74,6 @@ static int drm_setup(struct drm_device * dev) > dev->last_context = 0; > dev->if_version = 0; > > - dev->buf_async = NULL; > - > DRM_DEBUG("\n"); > > /* > @@ -373,18 +371,6 @@ out_put_pid: > return ret; > } > > -/** No-op. */ > -int drm_fasync(int fd, struct file *filp, int on) > -{ > - struct drm_file *priv = filp->private_data; > - struct drm_device *dev = priv->minor->dev; > - > - DRM_DEBUG("fd = %d, device = 0x%lx\n", fd, > - (long)old_encode_dev(priv->minor->device)); > - return fasync_helper(fd, filp, on, &dev->buf_async); > -} > -EXPORT_SYMBOL(drm_fasync); > - > static void drm_master_release(struct drm_device *dev, struct file *filp) > { > struct drm_file *file_priv = filp->private_data; > diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c > index d13c2fc..99b5293 100644 > --- a/drivers/gpu/drm/gma500/psb_drv.c > +++ b/drivers/gpu/drm/gma500/psb_drv.c > @@ -622,7 +622,6 @@ static const struct file_operations psb_gem_fops = { > .unlocked_ioctl = psb_unlocked_ioctl, > .mmap = drm_gem_mmap, > .poll = drm_poll, > - .fasync = drm_fasync, > .read = drm_read, > }; > > diff --git a/drivers/gpu/drm/i810/i810_dma.c b/drivers/gpu/drm/i810/i810_dma.c > index eac755b..ab1892eb 100644 > --- a/drivers/gpu/drm/i810/i810_dma.c > +++ b/drivers/gpu/drm/i810/i810_dma.c > @@ -113,7 +113,6 @@ static const struct file_operations i810_buffer_fops = { > .release = drm_release, > .unlocked_ioctl = drm_ioctl, > .mmap = i810_mmap_buffers, > - .fasync = drm_fasync, > #ifdef CONFIG_COMPAT > .compat_ioctl = drm_compat_ioctl, > #endif > diff --git a/drivers/gpu/drm/i810/i810_drv.c b/drivers/gpu/drm/i810/i810_drv.c > index 2e91fc3..d85c05b 100644 > --- a/drivers/gpu/drm/i810/i810_drv.c > +++ b/drivers/gpu/drm/i810/i810_drv.c > @@ -49,7 +49,6 @@ static const struct file_operations i810_driver_fops = { > .unlocked_ioctl = drm_ioctl, > .mmap = drm_mmap, > .poll = drm_poll, > - .fasync = drm_fasync, > #ifdef CONFIG_COMPAT > .compat_ioctl = drm_compat_ioctl, > #endif > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c > index 13457e3e..9411a74 100644 > --- a/drivers/gpu/drm/i915/i915_drv.c > +++ b/drivers/gpu/drm/i915/i915_drv.c > @@ -994,7 +994,6 @@ static const struct file_operations i915_driver_fops = { > .unlocked_ioctl = drm_ioctl, > .mmap = drm_gem_mmap, > .poll = drm_poll, > - .fasync = drm_fasync, > .read = drm_read, > #ifdef CONFIG_COMPAT > .compat_ioctl = i915_compat_ioctl, > diff --git a/drivers/gpu/drm/mga/mga_drv.c b/drivers/gpu/drm/mga/mga_drv.c > index 17d0a63..fe71e1e 100644 > --- a/drivers/gpu/drm/mga/mga_drv.c > +++ b/drivers/gpu/drm/mga/mga_drv.c > @@ -50,7 +50,6 @@ static const struct file_operations mga_driver_fops = { > .unlocked_ioctl = drm_ioctl, > .mmap = drm_mmap, > .poll = drm_poll, > - .fasync = drm_fasync, > #ifdef CONFIG_COMPAT > .compat_ioctl = mga_compat_ioctl, > #endif > diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.c b/drivers/gpu/drm/mgag200/mgag200_drv.c > index bd91964..b570127 100644 > --- a/drivers/gpu/drm/mgag200/mgag200_drv.c > +++ b/drivers/gpu/drm/mgag200/mgag200_drv.c > @@ -81,7 +81,6 @@ static const struct file_operations mgag200_driver_fops = { > .unlocked_ioctl = drm_ioctl, > .mmap = mgag200_mmap, > .poll = drm_poll, > - .fasync = drm_fasync, > #ifdef CONFIG_COMPAT > .compat_ioctl = drm_compat_ioctl, > #endif > diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c > index 1faa75f..b29d04b 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_drm.c > +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c > @@ -673,7 +673,6 @@ nouveau_driver_fops = { > .unlocked_ioctl = drm_ioctl, > .mmap = nouveau_ttm_mmap, > .poll = drm_poll, > - .fasync = drm_fasync, > .read = drm_read, > #if defined(CONFIG_COMPAT) > .compat_ioctl = nouveau_compat_ioctl, > diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c > index 47e64f9..2603d90 100644 > --- a/drivers/gpu/drm/omapdrm/omap_drv.c > +++ b/drivers/gpu/drm/omapdrm/omap_drv.c > @@ -592,7 +592,6 @@ static const struct file_operations omapdriver_fops = { > .release = drm_release, > .mmap = omap_gem_mmap, > .poll = drm_poll, > - .fasync = drm_fasync, > .read = drm_read, > .llseek = noop_llseek, > }; > diff --git a/drivers/gpu/drm/qxl/qxl_drv.c b/drivers/gpu/drm/qxl/qxl_drv.c > index 48f2dfd..514118a 100644 > --- a/drivers/gpu/drm/qxl/qxl_drv.c > +++ b/drivers/gpu/drm/qxl/qxl_drv.c > @@ -84,7 +84,6 @@ static const struct file_operations qxl_fops = { > .release = drm_release, > .unlocked_ioctl = drm_ioctl, > .poll = drm_poll, > - .fasync = drm_fasync, > .mmap = qxl_mmap, > }; > > diff --git a/drivers/gpu/drm/r128/r128_drv.c b/drivers/gpu/drm/r128/r128_drv.c > index 472c38f..c2338cb 100644 > --- a/drivers/gpu/drm/r128/r128_drv.c > +++ b/drivers/gpu/drm/r128/r128_drv.c > @@ -48,7 +48,6 @@ static const struct file_operations r128_driver_fops = { > .unlocked_ioctl = drm_ioctl, > .mmap = drm_mmap, > .poll = drm_poll, > - .fasync = drm_fasync, > #ifdef CONFIG_COMPAT > .compat_ioctl = r128_compat_ioctl, > #endif > diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c > index 3585f22..3e52331 100644 > --- a/drivers/gpu/drm/radeon/radeon_drv.c > +++ b/drivers/gpu/drm/radeon/radeon_drv.c > @@ -266,7 +266,6 @@ static const struct file_operations radeon_driver_old_fops = { > .unlocked_ioctl = drm_ioctl, > .mmap = drm_mmap, > .poll = drm_poll, > - .fasync = drm_fasync, > .read = drm_read, > #ifdef CONFIG_COMPAT > .compat_ioctl = radeon_compat_ioctl, > @@ -375,7 +374,6 @@ static const struct file_operations radeon_driver_kms_fops = { > .unlocked_ioctl = drm_ioctl, > .mmap = radeon_mmap, > .poll = drm_poll, > - .fasync = drm_fasync, > .read = drm_read, > #ifdef CONFIG_COMPAT > .compat_ioctl = radeon_kms_compat_ioctl, > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c > index 5069d9c..c9f7fbd 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c > +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c > @@ -230,7 +230,6 @@ static const struct file_operations rcar_du_fops = { > #endif > .poll = drm_poll, > .read = drm_read, > - .fasync = drm_fasync, > .llseek = no_llseek, > .mmap = drm_gem_cma_mmap, > }; > diff --git a/drivers/gpu/drm/savage/savage_drv.c b/drivers/gpu/drm/savage/savage_drv.c > index 71b2081..9135c8b 100644 > --- a/drivers/gpu/drm/savage/savage_drv.c > +++ b/drivers/gpu/drm/savage/savage_drv.c > @@ -42,7 +42,6 @@ static const struct file_operations savage_driver_fops = { > .unlocked_ioctl = drm_ioctl, > .mmap = drm_mmap, > .poll = drm_poll, > - .fasync = drm_fasync, > #ifdef CONFIG_COMPAT > .compat_ioctl = drm_compat_ioctl, > #endif > diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/shmobile/shmob_drm_drv.c > index 7f2ea1a..0155518 100644 > --- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c > +++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c > @@ -257,7 +257,6 @@ static const struct file_operations shmob_drm_fops = { > #endif > .poll = drm_poll, > .read = drm_read, > - .fasync = drm_fasync, > .llseek = no_llseek, > .mmap = drm_gem_cma_mmap, > }; > diff --git a/drivers/gpu/drm/sis/sis_drv.c b/drivers/gpu/drm/sis/sis_drv.c > index 5a5325e..b88b2d3 100644 > --- a/drivers/gpu/drm/sis/sis_drv.c > +++ b/drivers/gpu/drm/sis/sis_drv.c > @@ -72,7 +72,6 @@ static const struct file_operations sis_driver_fops = { > .unlocked_ioctl = drm_ioctl, > .mmap = drm_mmap, > .poll = drm_poll, > - .fasync = drm_fasync, > #ifdef CONFIG_COMPAT > .compat_ioctl = drm_compat_ioctl, > #endif > diff --git a/drivers/gpu/drm/tdfx/tdfx_drv.c b/drivers/gpu/drm/tdfx/tdfx_drv.c > index ddfa743..951ec13 100644 > --- a/drivers/gpu/drm/tdfx/tdfx_drv.c > +++ b/drivers/gpu/drm/tdfx/tdfx_drv.c > @@ -48,7 +48,6 @@ static const struct file_operations tdfx_driver_fops = { > .unlocked_ioctl = drm_ioctl, > .mmap = drm_mmap, > .poll = drm_poll, > - .fasync = drm_fasync, > #ifdef CONFIG_COMPAT > .compat_ioctl = drm_compat_ioctl, > #endif > diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c > index 14801c2..116da19 100644 > --- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c > +++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c > @@ -497,7 +497,6 @@ static const struct file_operations fops = { > #endif > .poll = drm_poll, > .read = drm_read, > - .fasync = drm_fasync, > .llseek = no_llseek, > .mmap = drm_gem_cma_mmap, > }; > diff --git a/drivers/gpu/drm/udl/udl_drv.c b/drivers/gpu/drm/udl/udl_drv.c > index bb0af58..7650dc0 100644 > --- a/drivers/gpu/drm/udl/udl_drv.c > +++ b/drivers/gpu/drm/udl/udl_drv.c > @@ -65,7 +65,6 @@ static const struct file_operations udl_driver_fops = { > .read = drm_read, > .unlocked_ioctl = drm_ioctl, > .release = drm_release, > - .fasync = drm_fasync, > #ifdef CONFIG_COMPAT > .compat_ioctl = drm_compat_ioctl, > #endif > diff --git a/drivers/gpu/drm/via/via_drv.c b/drivers/gpu/drm/via/via_drv.c > index f4ae203..4487999 100644 > --- a/drivers/gpu/drm/via/via_drv.c > +++ b/drivers/gpu/drm/via/via_drv.c > @@ -64,7 +64,6 @@ static const struct file_operations via_driver_fops = { > .unlocked_ioctl = drm_ioctl, > .mmap = drm_mmap, > .poll = drm_poll, > - .fasync = drm_fasync, > #ifdef CONFIG_COMPAT > .compat_ioctl = drm_compat_ioctl, > #endif > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c > index 9c27d42..0dcfa6b 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c > @@ -1103,7 +1103,6 @@ static const struct file_operations vmwgfx_driver_fops = { > .mmap = vmw_mmap, > .poll = vmw_fops_poll, > .read = vmw_fops_read, > - .fasync = drm_fasync, > #if defined(CONFIG_COMPAT) > .compat_ioctl = drm_compat_ioctl, > #endif > diff --git a/drivers/gpu/host1x/drm/drm.c b/drivers/gpu/host1x/drm/drm.c > index b128b90..15684bf 100644 > --- a/drivers/gpu/host1x/drm/drm.c > +++ b/drivers/gpu/host1x/drm/drm.c > @@ -508,7 +508,6 @@ static const struct file_operations tegra_drm_fops = { > .unlocked_ioctl = drm_ioctl, > .mmap = tegra_drm_mmap, > .poll = drm_poll, > - .fasync = drm_fasync, > .read = drm_read, > #ifdef CONFIG_COMPAT > .compat_ioctl = drm_compat_ioctl, > diff --git a/drivers/staging/imx-drm/imx-drm-core.c b/drivers/staging/imx-drm/imx-drm-core.c > index 2c58533..e826086 100644 > --- a/drivers/staging/imx-drm/imx-drm-core.c > +++ b/drivers/staging/imx-drm/imx-drm-core.c > @@ -199,7 +199,6 @@ static const struct file_operations imx_drm_driver_fops = { > .unlocked_ioctl = drm_ioctl, > .mmap = drm_gem_cma_mmap, > .poll = drm_poll, > - .fasync = drm_fasync, > .read = drm_read, > .llseek = noop_llseek, > }; > diff --git a/include/drm/drmP.h b/include/drm/drmP.h > index d05beac..a79dcb0 100644 > --- a/include/drm/drmP.h > +++ b/include/drm/drmP.h > @@ -1168,8 +1168,6 @@ struct drm_device { > > /*@} */ > > - struct fasync_struct *buf_async;/**< Processes waiting for SIGIO */ > - > struct drm_agp_head *agp; /**< AGP data */ > > struct device *dev; /**< Device structure */ > @@ -1276,7 +1274,6 @@ extern int drm_lastclose(struct drm_device *dev); > extern struct mutex drm_global_mutex; > extern int drm_open(struct inode *inode, struct file *filp); > extern int drm_stub_open(struct inode *inode, struct file *filp); > -extern int drm_fasync(int fd, struct file *filp, int on); > extern ssize_t drm_read(struct file *filp, char __user *buffer, > size_t count, loff_t *offset); > extern int drm_release(struct inode *inode, struct file *filp); > -- > 1.8.3.2 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel
diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl index c62d2d4..d51d157 100644 --- a/Documentation/DocBook/drm.tmpl +++ b/Documentation/DocBook/drm.tmpl @@ -2509,7 +2509,6 @@ void (*postclose) (struct drm_device *, struct drm_file *);</synopsis> <programlisting> .poll = drm_poll, .read = drm_read, - .fasync = drm_fasync, .llseek = no_llseek, </programlisting> </para> diff --git a/drivers/gpu/drm/ast/ast_drv.c b/drivers/gpu/drm/ast/ast_drv.c index a144fb0..60f1ce3 100644 --- a/drivers/gpu/drm/ast/ast_drv.c +++ b/drivers/gpu/drm/ast/ast_drv.c @@ -190,7 +190,6 @@ static const struct file_operations ast_fops = { .unlocked_ioctl = drm_ioctl, .mmap = ast_mmap, .poll = drm_poll, - .fasync = drm_fasync, #ifdef CONFIG_COMPAT .compat_ioctl = drm_compat_ioctl, #endif diff --git a/drivers/gpu/drm/cirrus/cirrus_drv.c b/drivers/gpu/drm/cirrus/cirrus_drv.c index d35d99c..dd9c908 100644 --- a/drivers/gpu/drm/cirrus/cirrus_drv.c +++ b/drivers/gpu/drm/cirrus/cirrus_drv.c @@ -85,7 +85,6 @@ static const struct file_operations cirrus_driver_fops = { #ifdef CONFIG_COMPAT .compat_ioctl = drm_compat_ioctl, #endif - .fasync = drm_fasync, }; static struct drm_driver driver = { .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_USE_MTRR, diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c index dd47fef..5679971 100644 --- a/drivers/gpu/drm/drm_fops.c +++ b/drivers/gpu/drm/drm_fops.c @@ -74,8 +74,6 @@ static int drm_setup(struct drm_device * dev) dev->last_context = 0; dev->if_version = 0; - dev->buf_async = NULL; - DRM_DEBUG("\n"); /* @@ -373,18 +371,6 @@ out_put_pid: return ret; } -/** No-op. */ -int drm_fasync(int fd, struct file *filp, int on) -{ - struct drm_file *priv = filp->private_data; - struct drm_device *dev = priv->minor->dev; - - DRM_DEBUG("fd = %d, device = 0x%lx\n", fd, - (long)old_encode_dev(priv->minor->device)); - return fasync_helper(fd, filp, on, &dev->buf_async); -} -EXPORT_SYMBOL(drm_fasync); - static void drm_master_release(struct drm_device *dev, struct file *filp) { struct drm_file *file_priv = filp->private_data; diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c index d13c2fc..99b5293 100644 --- a/drivers/gpu/drm/gma500/psb_drv.c +++ b/drivers/gpu/drm/gma500/psb_drv.c @@ -622,7 +622,6 @@ static const struct file_operations psb_gem_fops = { .unlocked_ioctl = psb_unlocked_ioctl, .mmap = drm_gem_mmap, .poll = drm_poll, - .fasync = drm_fasync, .read = drm_read, }; diff --git a/drivers/gpu/drm/i810/i810_dma.c b/drivers/gpu/drm/i810/i810_dma.c index eac755b..ab1892eb 100644 --- a/drivers/gpu/drm/i810/i810_dma.c +++ b/drivers/gpu/drm/i810/i810_dma.c @@ -113,7 +113,6 @@ static const struct file_operations i810_buffer_fops = { .release = drm_release, .unlocked_ioctl = drm_ioctl, .mmap = i810_mmap_buffers, - .fasync = drm_fasync, #ifdef CONFIG_COMPAT .compat_ioctl = drm_compat_ioctl, #endif diff --git a/drivers/gpu/drm/i810/i810_drv.c b/drivers/gpu/drm/i810/i810_drv.c index 2e91fc3..d85c05b 100644 --- a/drivers/gpu/drm/i810/i810_drv.c +++ b/drivers/gpu/drm/i810/i810_drv.c @@ -49,7 +49,6 @@ static const struct file_operations i810_driver_fops = { .unlocked_ioctl = drm_ioctl, .mmap = drm_mmap, .poll = drm_poll, - .fasync = drm_fasync, #ifdef CONFIG_COMPAT .compat_ioctl = drm_compat_ioctl, #endif diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 13457e3e..9411a74 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -994,7 +994,6 @@ static const struct file_operations i915_driver_fops = { .unlocked_ioctl = drm_ioctl, .mmap = drm_gem_mmap, .poll = drm_poll, - .fasync = drm_fasync, .read = drm_read, #ifdef CONFIG_COMPAT .compat_ioctl = i915_compat_ioctl, diff --git a/drivers/gpu/drm/mga/mga_drv.c b/drivers/gpu/drm/mga/mga_drv.c index 17d0a63..fe71e1e 100644 --- a/drivers/gpu/drm/mga/mga_drv.c +++ b/drivers/gpu/drm/mga/mga_drv.c @@ -50,7 +50,6 @@ static const struct file_operations mga_driver_fops = { .unlocked_ioctl = drm_ioctl, .mmap = drm_mmap, .poll = drm_poll, - .fasync = drm_fasync, #ifdef CONFIG_COMPAT .compat_ioctl = mga_compat_ioctl, #endif diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.c b/drivers/gpu/drm/mgag200/mgag200_drv.c index bd91964..b570127 100644 --- a/drivers/gpu/drm/mgag200/mgag200_drv.c +++ b/drivers/gpu/drm/mgag200/mgag200_drv.c @@ -81,7 +81,6 @@ static const struct file_operations mgag200_driver_fops = { .unlocked_ioctl = drm_ioctl, .mmap = mgag200_mmap, .poll = drm_poll, - .fasync = drm_fasync, #ifdef CONFIG_COMPAT .compat_ioctl = drm_compat_ioctl, #endif diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c index 1faa75f..b29d04b 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drm.c +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c @@ -673,7 +673,6 @@ nouveau_driver_fops = { .unlocked_ioctl = drm_ioctl, .mmap = nouveau_ttm_mmap, .poll = drm_poll, - .fasync = drm_fasync, .read = drm_read, #if defined(CONFIG_COMPAT) .compat_ioctl = nouveau_compat_ioctl, diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c index 47e64f9..2603d90 100644 --- a/drivers/gpu/drm/omapdrm/omap_drv.c +++ b/drivers/gpu/drm/omapdrm/omap_drv.c @@ -592,7 +592,6 @@ static const struct file_operations omapdriver_fops = { .release = drm_release, .mmap = omap_gem_mmap, .poll = drm_poll, - .fasync = drm_fasync, .read = drm_read, .llseek = noop_llseek, }; diff --git a/drivers/gpu/drm/qxl/qxl_drv.c b/drivers/gpu/drm/qxl/qxl_drv.c index 48f2dfd..514118a 100644 --- a/drivers/gpu/drm/qxl/qxl_drv.c +++ b/drivers/gpu/drm/qxl/qxl_drv.c @@ -84,7 +84,6 @@ static const struct file_operations qxl_fops = { .release = drm_release, .unlocked_ioctl = drm_ioctl, .poll = drm_poll, - .fasync = drm_fasync, .mmap = qxl_mmap, }; diff --git a/drivers/gpu/drm/r128/r128_drv.c b/drivers/gpu/drm/r128/r128_drv.c index 472c38f..c2338cb 100644 --- a/drivers/gpu/drm/r128/r128_drv.c +++ b/drivers/gpu/drm/r128/r128_drv.c @@ -48,7 +48,6 @@ static const struct file_operations r128_driver_fops = { .unlocked_ioctl = drm_ioctl, .mmap = drm_mmap, .poll = drm_poll, - .fasync = drm_fasync, #ifdef CONFIG_COMPAT .compat_ioctl = r128_compat_ioctl, #endif diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c index 3585f22..3e52331 100644 --- a/drivers/gpu/drm/radeon/radeon_drv.c +++ b/drivers/gpu/drm/radeon/radeon_drv.c @@ -266,7 +266,6 @@ static const struct file_operations radeon_driver_old_fops = { .unlocked_ioctl = drm_ioctl, .mmap = drm_mmap, .poll = drm_poll, - .fasync = drm_fasync, .read = drm_read, #ifdef CONFIG_COMPAT .compat_ioctl = radeon_compat_ioctl, @@ -375,7 +374,6 @@ static const struct file_operations radeon_driver_kms_fops = { .unlocked_ioctl = drm_ioctl, .mmap = radeon_mmap, .poll = drm_poll, - .fasync = drm_fasync, .read = drm_read, #ifdef CONFIG_COMPAT .compat_ioctl = radeon_kms_compat_ioctl, diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c index 5069d9c..c9f7fbd 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c @@ -230,7 +230,6 @@ static const struct file_operations rcar_du_fops = { #endif .poll = drm_poll, .read = drm_read, - .fasync = drm_fasync, .llseek = no_llseek, .mmap = drm_gem_cma_mmap, }; diff --git a/drivers/gpu/drm/savage/savage_drv.c b/drivers/gpu/drm/savage/savage_drv.c index 71b2081..9135c8b 100644 --- a/drivers/gpu/drm/savage/savage_drv.c +++ b/drivers/gpu/drm/savage/savage_drv.c @@ -42,7 +42,6 @@ static const struct file_operations savage_driver_fops = { .unlocked_ioctl = drm_ioctl, .mmap = drm_mmap, .poll = drm_poll, - .fasync = drm_fasync, #ifdef CONFIG_COMPAT .compat_ioctl = drm_compat_ioctl, #endif diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/shmobile/shmob_drm_drv.c index 7f2ea1a..0155518 100644 --- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c +++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c @@ -257,7 +257,6 @@ static const struct file_operations shmob_drm_fops = { #endif .poll = drm_poll, .read = drm_read, - .fasync = drm_fasync, .llseek = no_llseek, .mmap = drm_gem_cma_mmap, }; diff --git a/drivers/gpu/drm/sis/sis_drv.c b/drivers/gpu/drm/sis/sis_drv.c index 5a5325e..b88b2d3 100644 --- a/drivers/gpu/drm/sis/sis_drv.c +++ b/drivers/gpu/drm/sis/sis_drv.c @@ -72,7 +72,6 @@ static const struct file_operations sis_driver_fops = { .unlocked_ioctl = drm_ioctl, .mmap = drm_mmap, .poll = drm_poll, - .fasync = drm_fasync, #ifdef CONFIG_COMPAT .compat_ioctl = drm_compat_ioctl, #endif diff --git a/drivers/gpu/drm/tdfx/tdfx_drv.c b/drivers/gpu/drm/tdfx/tdfx_drv.c index ddfa743..951ec13 100644 --- a/drivers/gpu/drm/tdfx/tdfx_drv.c +++ b/drivers/gpu/drm/tdfx/tdfx_drv.c @@ -48,7 +48,6 @@ static const struct file_operations tdfx_driver_fops = { .unlocked_ioctl = drm_ioctl, .mmap = drm_mmap, .poll = drm_poll, - .fasync = drm_fasync, #ifdef CONFIG_COMPAT .compat_ioctl = drm_compat_ioctl, #endif diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c index 14801c2..116da19 100644 --- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c +++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c @@ -497,7 +497,6 @@ static const struct file_operations fops = { #endif .poll = drm_poll, .read = drm_read, - .fasync = drm_fasync, .llseek = no_llseek, .mmap = drm_gem_cma_mmap, }; diff --git a/drivers/gpu/drm/udl/udl_drv.c b/drivers/gpu/drm/udl/udl_drv.c index bb0af58..7650dc0 100644 --- a/drivers/gpu/drm/udl/udl_drv.c +++ b/drivers/gpu/drm/udl/udl_drv.c @@ -65,7 +65,6 @@ static const struct file_operations udl_driver_fops = { .read = drm_read, .unlocked_ioctl = drm_ioctl, .release = drm_release, - .fasync = drm_fasync, #ifdef CONFIG_COMPAT .compat_ioctl = drm_compat_ioctl, #endif diff --git a/drivers/gpu/drm/via/via_drv.c b/drivers/gpu/drm/via/via_drv.c index f4ae203..4487999 100644 --- a/drivers/gpu/drm/via/via_drv.c +++ b/drivers/gpu/drm/via/via_drv.c @@ -64,7 +64,6 @@ static const struct file_operations via_driver_fops = { .unlocked_ioctl = drm_ioctl, .mmap = drm_mmap, .poll = drm_poll, - .fasync = drm_fasync, #ifdef CONFIG_COMPAT .compat_ioctl = drm_compat_ioctl, #endif diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c index 9c27d42..0dcfa6b 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c @@ -1103,7 +1103,6 @@ static const struct file_operations vmwgfx_driver_fops = { .mmap = vmw_mmap, .poll = vmw_fops_poll, .read = vmw_fops_read, - .fasync = drm_fasync, #if defined(CONFIG_COMPAT) .compat_ioctl = drm_compat_ioctl, #endif diff --git a/drivers/gpu/host1x/drm/drm.c b/drivers/gpu/host1x/drm/drm.c index b128b90..15684bf 100644 --- a/drivers/gpu/host1x/drm/drm.c +++ b/drivers/gpu/host1x/drm/drm.c @@ -508,7 +508,6 @@ static const struct file_operations tegra_drm_fops = { .unlocked_ioctl = drm_ioctl, .mmap = tegra_drm_mmap, .poll = drm_poll, - .fasync = drm_fasync, .read = drm_read, #ifdef CONFIG_COMPAT .compat_ioctl = drm_compat_ioctl, diff --git a/drivers/staging/imx-drm/imx-drm-core.c b/drivers/staging/imx-drm/imx-drm-core.c index 2c58533..e826086 100644 --- a/drivers/staging/imx-drm/imx-drm-core.c +++ b/drivers/staging/imx-drm/imx-drm-core.c @@ -199,7 +199,6 @@ static const struct file_operations imx_drm_driver_fops = { .unlocked_ioctl = drm_ioctl, .mmap = drm_gem_cma_mmap, .poll = drm_poll, - .fasync = drm_fasync, .read = drm_read, .llseek = noop_llseek, }; diff --git a/include/drm/drmP.h b/include/drm/drmP.h index d05beac..a79dcb0 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -1168,8 +1168,6 @@ struct drm_device { /*@} */ - struct fasync_struct *buf_async;/**< Processes waiting for SIGIO */ - struct drm_agp_head *agp; /**< AGP data */ struct device *dev; /**< Device structure */ @@ -1276,7 +1274,6 @@ extern int drm_lastclose(struct drm_device *dev); extern struct mutex drm_global_mutex; extern int drm_open(struct inode *inode, struct file *filp); extern int drm_stub_open(struct inode *inode, struct file *filp); -extern int drm_fasync(int fd, struct file *filp, int on); extern ssize_t drm_read(struct file *filp, char __user *buffer, size_t count, loff_t *offset); extern int drm_release(struct inode *inode, struct file *filp);