Thread (18 messages) 18 messages, 5 authors, 2016-09-27

Re: [PATCH v2 7/7] blk-zoned: implement ioctls

From: Shaun Tancheff <hidden>
Date: 2016-09-26 23:12:24
Also in: linux-scsi

On Mon, Sep 26, 2016 at 11:37 AM, Christoph Hellwig [off-list ref] wrote:
quoted
+     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.
Ah. yes. Will fix that.
quoted
+     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..
Except our source locations are disjoint (stack and kcalloc'd).
quoted
-/*
- * 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.
Sounds good. Will reshuffle the patchset tonight.

Thanks!
-- 
Shaun Tancheff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help