* [PATCH v2 1/5] xen/gntdev: Fix dmabuf import with non-zero sgt offset
[not found] <20200813062113.11030-1-andr2000@gmail.com>
@ 2020-08-13 6:21 ` Oleksandr Andrushchenko
2020-08-13 6:21 ` [PATCH v2 2/5] drm/xen-front: Fix misused IS_ERR_OR_NULL checks Oleksandr Andrushchenko
1 sibling, 0 replies; 4+ messages in thread
From: Oleksandr Andrushchenko @ 2020-08-13 6:21 UTC (permalink / raw)
To: xen-devel, dri-devel, linux-kernel, boris.ostrovsky, jgross,
airlied, daniel
Cc: sstabellini, dan.carpenter, intel-gfx, Oleksandr Andrushchenko, stable
From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
It is possible that the scatter-gather table during dmabuf import has
non-zero offset of the data, but user-space doesn't expect that.
Fix this by failing the import, so user-space doesn't access wrong data.
Fixes: bf8dc55b1358 ("xen/gntdev: Implement dma-buf import functionality")
Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Acked-by: Juergen Gross <jgross@suse.com>
Cc: <stable@vger.kernel.org>
---
drivers/xen/gntdev-dmabuf.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/xen/gntdev-dmabuf.c b/drivers/xen/gntdev-dmabuf.c
index 75d3bb948bf3..b1b6eebafd5d 100644
--- a/drivers/xen/gntdev-dmabuf.c
+++ b/drivers/xen/gntdev-dmabuf.c
@@ -613,6 +613,14 @@ dmabuf_imp_to_refs(struct gntdev_dmabuf_priv *priv, struct device *dev,
goto fail_detach;
}
+ /* Check that we have zero offset. */
+ if (sgt->sgl->offset) {
+ ret = ERR_PTR(-EINVAL);
+ pr_debug("DMA buffer has %d bytes offset, user-space expects 0\n",
+ sgt->sgl->offset);
+ goto fail_unmap;
+ }
+
/* Check number of pages that imported buffer has. */
if (attach->dmabuf->size != gntdev_dmabuf->nr_pages << PAGE_SHIFT) {
ret = ERR_PTR(-EINVAL);
--
2.17.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 2/5] drm/xen-front: Fix misused IS_ERR_OR_NULL checks
[not found] <20200813062113.11030-1-andr2000@gmail.com>
2020-08-13 6:21 ` [PATCH v2 1/5] xen/gntdev: Fix dmabuf import with non-zero sgt offset Oleksandr Andrushchenko
@ 2020-08-13 6:21 ` Oleksandr Andrushchenko
2020-08-19 23:56 ` Sasha Levin
1 sibling, 1 reply; 4+ messages in thread
From: Oleksandr Andrushchenko @ 2020-08-13 6:21 UTC (permalink / raw)
To: xen-devel, dri-devel, linux-kernel, boris.ostrovsky, jgross,
airlied, daniel
Cc: sstabellini, dan.carpenter, intel-gfx, Oleksandr Andrushchenko, stable
From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
The patch c575b7eeb89f: "drm/xen-front: Add support for Xen PV
display frontend" from Apr 3, 2018, leads to the following static
checker warning:
drivers/gpu/drm/xen/xen_drm_front_gem.c:140 xen_drm_front_gem_create()
warn: passing zero to 'ERR_CAST'
drivers/gpu/drm/xen/xen_drm_front_gem.c
133 struct drm_gem_object *xen_drm_front_gem_create(struct drm_device *dev,
134 size_t size)
135 {
136 struct xen_gem_object *xen_obj;
137
138 xen_obj = gem_create(dev, size);
139 if (IS_ERR_OR_NULL(xen_obj))
140 return ERR_CAST(xen_obj);
Fix this and the rest of misused places with IS_ERR_OR_NULL in the
driver.
Fixes: c575b7eeb89f: "drm/xen-front: Add support for Xen PV display frontend"
Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Cc: <stable@vger.kernel.org>
---
drivers/gpu/drm/xen/xen_drm_front.c | 4 ++--
drivers/gpu/drm/xen/xen_drm_front_gem.c | 8 ++++----
drivers/gpu/drm/xen/xen_drm_front_kms.c | 2 +-
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/xen/xen_drm_front.c b/drivers/gpu/drm/xen/xen_drm_front.c
index 1fd458e877ca..51818e76facd 100644
--- a/drivers/gpu/drm/xen/xen_drm_front.c
+++ b/drivers/gpu/drm/xen/xen_drm_front.c
@@ -400,8 +400,8 @@ static int xen_drm_drv_dumb_create(struct drm_file *filp,
args->size = args->pitch * args->height;
obj = xen_drm_front_gem_create(dev, args->size);
- if (IS_ERR_OR_NULL(obj)) {
- ret = PTR_ERR_OR_ZERO(obj);
+ if (IS_ERR(obj)) {
+ ret = PTR_ERR(obj);
goto fail;
}
diff --git a/drivers/gpu/drm/xen/xen_drm_front_gem.c b/drivers/gpu/drm/xen/xen_drm_front_gem.c
index f0b85e094111..4ec8a49241e1 100644
--- a/drivers/gpu/drm/xen/xen_drm_front_gem.c
+++ b/drivers/gpu/drm/xen/xen_drm_front_gem.c
@@ -83,7 +83,7 @@ static struct xen_gem_object *gem_create(struct drm_device *dev, size_t size)
size = round_up(size, PAGE_SIZE);
xen_obj = gem_create_obj(dev, size);
- if (IS_ERR_OR_NULL(xen_obj))
+ if (IS_ERR(xen_obj))
return xen_obj;
if (drm_info->front_info->cfg.be_alloc) {
@@ -117,7 +117,7 @@ static struct xen_gem_object *gem_create(struct drm_device *dev, size_t size)
*/
xen_obj->num_pages = DIV_ROUND_UP(size, PAGE_SIZE);
xen_obj->pages = drm_gem_get_pages(&xen_obj->base);
- if (IS_ERR_OR_NULL(xen_obj->pages)) {
+ if (IS_ERR(xen_obj->pages)) {
ret = PTR_ERR(xen_obj->pages);
xen_obj->pages = NULL;
goto fail;
@@ -136,7 +136,7 @@ struct drm_gem_object *xen_drm_front_gem_create(struct drm_device *dev,
struct xen_gem_object *xen_obj;
xen_obj = gem_create(dev, size);
- if (IS_ERR_OR_NULL(xen_obj))
+ if (IS_ERR(xen_obj))
return ERR_CAST(xen_obj);
return &xen_obj->base;
@@ -194,7 +194,7 @@ xen_drm_front_gem_import_sg_table(struct drm_device *dev,
size = attach->dmabuf->size;
xen_obj = gem_create_obj(dev, size);
- if (IS_ERR_OR_NULL(xen_obj))
+ if (IS_ERR(xen_obj))
return ERR_CAST(xen_obj);
ret = gem_alloc_pages_array(xen_obj, size);
diff --git a/drivers/gpu/drm/xen/xen_drm_front_kms.c b/drivers/gpu/drm/xen/xen_drm_front_kms.c
index 78096bbcd226..ef11b1e4de39 100644
--- a/drivers/gpu/drm/xen/xen_drm_front_kms.c
+++ b/drivers/gpu/drm/xen/xen_drm_front_kms.c
@@ -60,7 +60,7 @@ fb_create(struct drm_device *dev, struct drm_file *filp,
int ret;
fb = drm_gem_fb_create_with_funcs(dev, filp, mode_cmd, &fb_funcs);
- if (IS_ERR_OR_NULL(fb))
+ if (IS_ERR(fb))
return fb;
gem_obj = fb->obj[0];
--
2.17.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2 2/5] drm/xen-front: Fix misused IS_ERR_OR_NULL checks
2020-08-13 6:21 ` [PATCH v2 2/5] drm/xen-front: Fix misused IS_ERR_OR_NULL checks Oleksandr Andrushchenko
@ 2020-08-19 23:56 ` Sasha Levin
2020-08-20 7:14 ` Oleksandr Andrushchenko
0 siblings, 1 reply; 4+ messages in thread
From: Sasha Levin @ 2020-08-19 23:56 UTC (permalink / raw)
To: Sasha Levin, Oleksandr Andrushchenko, Oleksandr Andrushchenko,
xen-devel, dri-devel
Cc: sstabellini, dan.carpenter, stable, stable
Hi
[This is an automated email]
This commit has been processed because it contains a "Fixes:" tag
fixing commit: c575b7eeb89f ("drm/xen-front: Add support for Xen PV display frontend").
The bot has tested the following trees: v5.8.1, v5.7.15, v5.4.58, v4.19.139.
v5.8.1: Build OK!
v5.7.15: Build OK!
v5.4.58: Failed to apply! Possible dependencies:
4c1cb04e0e7a ("drm/xen: fix passing zero to 'PTR_ERR' warning")
93adc0c2cb72 ("drm/xen: Simplify fb_create")
v4.19.139: Failed to apply! Possible dependencies:
4c1cb04e0e7a ("drm/xen: fix passing zero to 'PTR_ERR' warning")
93adc0c2cb72 ("drm/xen: Simplify fb_create")
NOTE: The patch will not be queued to stable trees until it is upstream.
How should we proceed with this patch?
--
Thanks
Sasha
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 2/5] drm/xen-front: Fix misused IS_ERR_OR_NULL checks
2020-08-19 23:56 ` Sasha Levin
@ 2020-08-20 7:14 ` Oleksandr Andrushchenko
0 siblings, 0 replies; 4+ messages in thread
From: Oleksandr Andrushchenko @ 2020-08-20 7:14 UTC (permalink / raw)
To: Sasha Levin, Oleksandr Andrushchenko, xen-devel, dri-devel
Cc: sstabellini, dan.carpenter, stable
Hi,
On 8/20/20 2:56 AM, Sasha Levin wrote:
> Hi
>
> [This is an automated email]
>
> This commit has been processed because it contains a "Fixes:" tag
> fixing commit: c575b7eeb89f ("drm/xen-front: Add support for Xen PV display frontend").
>
> The bot has tested the following trees: v5.8.1, v5.7.15, v5.4.58, v4.19.139.
>
> v5.8.1: Build OK!
> v5.7.15: Build OK!
> v5.4.58: Failed to apply! Possible dependencies:
> 4c1cb04e0e7a ("drm/xen: fix passing zero to 'PTR_ERR' warning")
> 93adc0c2cb72 ("drm/xen: Simplify fb_create")
>
> v4.19.139: Failed to apply! Possible dependencies:
> 4c1cb04e0e7a ("drm/xen: fix passing zero to 'PTR_ERR' warning")
> 93adc0c2cb72 ("drm/xen: Simplify fb_create")
>
>
> NOTE: The patch will not be queued to stable trees until it is upstream.
>
> How should we proceed with this patch?
>
This is because of commit 4c1cb04e0e7ac4ba1ef5457929ef9b5671d9eed3
was not CCed to stable. So, if we want the patch to be applied to older stable
kernels we also need this patch as well.
Thank you,
Oleksandr
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-08-20 7:51 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20200813062113.11030-1-andr2000@gmail.com>
2020-08-13 6:21 ` [PATCH v2 1/5] xen/gntdev: Fix dmabuf import with non-zero sgt offset Oleksandr Andrushchenko
2020-08-13 6:21 ` [PATCH v2 2/5] drm/xen-front: Fix misused IS_ERR_OR_NULL checks Oleksandr Andrushchenko
2020-08-19 23:56 ` Sasha Levin
2020-08-20 7:14 ` Oleksandr Andrushchenko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).