diff options
author | Francisco Jerez <[email protected]> | 2015-07-29 15:37:52 +0300 |
---|---|---|
committer | Francisco Jerez <[email protected]> | 2015-07-29 16:17:17 +0300 |
commit | e42d2948d3c58b86d3770d296b96fafcd1218858 (patch) | |
tree | 0347169d36ce63c79de74625089c8c243e9eace6 /src | |
parent | 5e645e68d6672cac2872fa509fb22bc2581f4b67 (diff) |
Revert "pipe-loader: simplify pipe_loader_drm_probe"
This reverts commit a27ec5dc460b91dc44675f48cddbbb2631ee824f. It
breaks the intended behaviour of pipe_loader_probe() with ndev==0 as
relied upon by clover to query the number of devices available to the
pipe loader in the system.
Acked-by: Emil Velikov <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c index cc6d74a964b..1799df7e4c5 100644 --- a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c @@ -101,13 +101,12 @@ open_drm_render_node_minor(int minor) int pipe_loader_drm_probe(struct pipe_loader_device **devs, int ndev) { - struct pipe_loader_device *dev; int i, j, fd; for (i = DRM_RENDER_NODE_MIN_MINOR, j = 0; - i <= DRM_RENDER_NODE_MAX_MINOR && j < ndev; i++) { - + i <= DRM_RENDER_NODE_MAX_MINOR; i++) { fd = open_drm_render_node_minor(i); + struct pipe_loader_device *dev; if (fd < 0) continue; @@ -116,7 +115,13 @@ pipe_loader_drm_probe(struct pipe_loader_device **devs, int ndev) continue; } - devs[j++] = dev; + if (j < ndev) { + devs[j] = dev; + } else { + close(fd); + dev->ops->release(&dev); + } + j++; } return j; |