drm/exynos: make sure to handle an error case to vm_mmap call
vm_mmap function returns unsigned long so addr type should be unsigned long. a pointer or address variable is required to use unsigned long or uint64_t type for 64bits address support. So this patch makes sure that addr has unsigned long type and also exynos_drm_gem_mmap_ioctl returns correct error type. Signed-off-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
This commit is contained in:
parent
2fa7b74c7b
commit
23f340e031
1 changed files with 3 additions and 3 deletions
|
@ -420,7 +420,7 @@ int exynos_drm_gem_mmap_ioctl(struct drm_device *dev, void *data,
|
||||||
{
|
{
|
||||||
struct drm_exynos_gem_mmap *args = data;
|
struct drm_exynos_gem_mmap *args = data;
|
||||||
struct drm_gem_object *obj;
|
struct drm_gem_object *obj;
|
||||||
unsigned int addr;
|
unsigned long addr;
|
||||||
|
|
||||||
if (!(dev->driver->driver_features & DRIVER_GEM)) {
|
if (!(dev->driver->driver_features & DRIVER_GEM)) {
|
||||||
DRM_ERROR("does not support GEM.\n");
|
DRM_ERROR("does not support GEM.\n");
|
||||||
|
@ -462,14 +462,14 @@ int exynos_drm_gem_mmap_ioctl(struct drm_device *dev, void *data,
|
||||||
|
|
||||||
drm_gem_object_unreference(obj);
|
drm_gem_object_unreference(obj);
|
||||||
|
|
||||||
if (IS_ERR((void *)addr)) {
|
if (IS_ERR_VALUE(addr)) {
|
||||||
/* check filp->f_op, filp->private_data are restored */
|
/* check filp->f_op, filp->private_data are restored */
|
||||||
if (file_priv->filp->f_op == &exynos_drm_gem_fops) {
|
if (file_priv->filp->f_op == &exynos_drm_gem_fops) {
|
||||||
file_priv->filp->f_op = fops_get(dev->driver->fops);
|
file_priv->filp->f_op = fops_get(dev->driver->fops);
|
||||||
file_priv->filp->private_data = file_priv;
|
file_priv->filp->private_data = file_priv;
|
||||||
}
|
}
|
||||||
mutex_unlock(&dev->struct_mutex);
|
mutex_unlock(&dev->struct_mutex);
|
||||||
return PTR_ERR((void *)addr);
|
return (int)addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_unlock(&dev->struct_mutex);
|
mutex_unlock(&dev->struct_mutex);
|
||||||
|
|
Loading…
Add table
Reference in a new issue