Commit 69d516c0 authored by David Herrmann's avatar David Herrmann Committed by Dave Airlie

drm: inline "struct drm_sigdata"

The sigdata structure is only used to group two fields in drm_device.
Inline it and make it an unnamed object.
Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
Reviewed-by: default avatarThierry Reding <treding@nvidia.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent edf0ac7c
...@@ -120,7 +120,7 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv) ...@@ -120,7 +120,7 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
sigaddset(&dev->sigmask, SIGTTOU); sigaddset(&dev->sigmask, SIGTTOU);
dev->sigdata.context = lock->context; dev->sigdata.context = lock->context;
dev->sigdata.lock = master->lock.hw_lock; dev->sigdata.lock = master->lock.hw_lock;
block_all_signals(drm_notifier, &dev->sigdata, &dev->sigmask); block_all_signals(drm_notifier, dev, &dev->sigmask);
} }
if (dev->driver->dma_quiescent && (lock->flags & _DRM_LOCK_QUIESCENT)) if (dev->driver->dma_quiescent && (lock->flags & _DRM_LOCK_QUIESCENT))
...@@ -286,26 +286,27 @@ int drm_lock_free(struct drm_lock_data *lock_data, unsigned int context) ...@@ -286,26 +286,27 @@ int drm_lock_free(struct drm_lock_data *lock_data, unsigned int context)
* If the lock is not held, then let the signal proceed as usual. If the lock * If the lock is not held, then let the signal proceed as usual. If the lock
* is held, then set the contended flag and keep the signal blocked. * is held, then set the contended flag and keep the signal blocked.
* *
* \param priv pointer to a drm_sigdata structure. * \param priv pointer to a drm_device structure.
* \return one if the signal should be delivered normally, or zero if the * \return one if the signal should be delivered normally, or zero if the
* signal should be blocked. * signal should be blocked.
*/ */
static int drm_notifier(void *priv) static int drm_notifier(void *priv)
{ {
struct drm_sigdata *s = (struct drm_sigdata *) priv; struct drm_device *dev = priv;
struct drm_hw_lock *lock = dev->sigdata.lock;
unsigned int old, new, prev; unsigned int old, new, prev;
/* Allow signal delivery if lock isn't held */ /* Allow signal delivery if lock isn't held */
if (!s->lock || !_DRM_LOCK_IS_HELD(s->lock->lock) if (!lock || !_DRM_LOCK_IS_HELD(lock->lock)
|| _DRM_LOCKING_CONTEXT(s->lock->lock) != s->context) || _DRM_LOCKING_CONTEXT(lock->lock) != dev->sigdata.context)
return 1; return 1;
/* Otherwise, set flag to force call to /* Otherwise, set flag to force call to
drmUnlock */ drmUnlock */
do { do {
old = s->lock->lock; old = lock->lock;
new = old | _DRM_LOCK_CONT; new = old | _DRM_LOCK_CONT;
prev = cmpxchg(&s->lock->lock, old, new); prev = cmpxchg(&lock->lock, old, new);
} while (prev != old); } while (prev != old);
return 0; return 0;
} }
......
...@@ -432,12 +432,6 @@ struct drm_sg_mem { ...@@ -432,12 +432,6 @@ struct drm_sg_mem {
dma_addr_t *busaddr; dma_addr_t *busaddr;
}; };
struct drm_sigdata {
int context;
struct drm_hw_lock *lock;
};
/** /**
* Kernel side of a mapping * Kernel side of a mapping
*/ */
...@@ -1035,9 +1029,13 @@ struct drm_device { ...@@ -1035,9 +1029,13 @@ struct drm_device {
struct drm_sg_mem *sg; /**< Scatter gather memory */ struct drm_sg_mem *sg; /**< Scatter gather memory */
unsigned int num_crtcs; /**< Number of CRTCs on this device */ unsigned int num_crtcs; /**< Number of CRTCs on this device */
struct drm_sigdata sigdata; /**< For block_all_signals */
sigset_t sigmask; sigset_t sigmask;
struct {
int context;
struct drm_hw_lock *lock;
} sigdata;
struct drm_local_map *agp_buffer_map; struct drm_local_map *agp_buffer_map;
unsigned int agp_buffer_token; unsigned int agp_buffer_token;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment