[PATCH libdrm 1/3] xf86drm: adjust device node path for minor base

Emil Velikov emil.l.velikov at gmail.com
Mon Dec 12 14:10:31 UTC 2016


On 10 December 2016 at 05:52, Jonathan Gray <jsg at jsg.id.au> wrote:
> When constructing a path to a device node the minor number retrieved
> from fstat needs to have the offset of the node type subtracted from it.
> Control and render node types have the same major as the primary node
> but each has their own block of minor types at fixed offsets.
>
> Signed-off-by: Jonathan Gray <jsg at jsg.id.au>
> ---
>  xf86drm.c | 16 ++++++++++++----
>  1 file changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/xf86drm.c b/xf86drm.c
> index 2e8c956..6705605 100644
> --- a/xf86drm.c
> +++ b/xf86drm.c
> @@ -2838,7 +2838,7 @@ out_close_dir:
>      char buf[PATH_MAX + 1];
>      const char *dev_name;
>      unsigned int maj, min;
> -    int n;
> +    int n, base;
>
>      if (fstat(fd, &sbuf))
>          return NULL;
> @@ -2863,7 +2863,11 @@ out_close_dir:
>          return NULL;
>      };
>
> -    n = snprintf(buf, sizeof(buf), dev_name, DRM_DIR_NAME, min);
> +    base = drmGetMinorBase(type);
> +    if (base < 0 || min < base)
min < base seems bogus, since it will never be true, right ? If so can
we drop it please.

Same goes below and in 2/3.
Emil


More information about the dri-devel mailing list