> +     zones = kzalloc(sizeof(struct blk_zone) * rep.nr_zones,
> +                     GFP_KERNEL);
> +     if (!zones)
> +             return -ENOMEM;

This should use kcalloc to get us underflow checking for the user
controlled allocation size.

> +     if (copy_to_user(argp, &rep, sizeof(struct blk_zone_report))) {
> +             ret = -EFAULT;
> +             goto out;
> +     }
> +
> +     if (rep.nr_zones) {
> +             if (copy_to_user(argp + sizeof(struct blk_zone_report), zones,
> +                              sizeof(struct blk_zone) * rep.nr_zones))
> +                     ret = -EFAULT;
> +     }

We could actually do this with a single big copy_to_user.  Not that
it really matters, though..

> -/*
> - * Zone type.
> - */
> -enum blk_zone_type {
> -     BLK_ZONE_TYPE_UNKNOWN,
> -     BLK_ZONE_TYPE_CONVENTIONAL,
> -     BLK_ZONE_TYPE_SEQWRITE_REQ,
> -     BLK_ZONE_TYPE_SEQWRITE_PREF,
> -};

Please don't move this code around after it was added just two
patches earlier.  I'd say just split adding the new blkzoned.h
uapi header into a patch of it's own and add that before the
core block code.
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to