From: Caleb Sander Date: Fri, 15 Sep 2023 01:22:58 +0000 (-0600) Subject: ioctl: implement nvme_set_features_lba_range() X-Git-Tag: v1.6~13 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=7c483bcd6de0dd4ea218716b47888a9973f8fe1c;p=users%2Fsagi%2Flibnvme.git ioctl: implement nvme_set_features_lba_range() nvme_set_features_lba_range() was missing an implementation, so add one. Change nr_ranges to a u8 since its maximum value is 64. Signed-off-by: Caleb Sander --- diff --git a/src/nvme/ioctl.c b/src/nvme/ioctl.c index e75fd318..14d186a7 100644 --- a/src/nvme/ioctl.c +++ b/src/nvme/ioctl.c @@ -591,10 +591,12 @@ int nvme_set_features_power_mgmt(int fd, __u8 ps, __u8 wh, bool save, result); } -int nvme_set_features_lba_range(int fd, __u32 nsid, __u32 nr_ranges, bool save, +int nvme_set_features_lba_range(int fd, __u32 nsid, __u8 nr_ranges, bool save, struct nvme_lba_range_type *data, __u32 *result) { - return -1; + return nvme_set_features_data( + fd, NVME_FEAT_FID_LBA_RANGE, nsid, nr_ranges - 1, save, + sizeof(*data), data, result); } int nvme_set_features_temp_thresh(int fd, __u16 tmpth, __u8 tmpsel, diff --git a/src/nvme/ioctl.h b/src/nvme/ioctl.h index 2570668e..97280cb7 100644 --- a/src/nvme/ioctl.h +++ b/src/nvme/ioctl.h @@ -2240,7 +2240,7 @@ int nvme_set_features_power_mgmt(int fd, __u8 ps, __u8 wh, bool save, * Return: The nvme command status if a response was received (see * &enum nvme_status_field) or -1 with errno set otherwise. */ -int nvme_set_features_lba_range(int fd, __u32 nsid, __u32 nr_ranges, bool save, +int nvme_set_features_lba_range(int fd, __u32 nsid, __u8 nr_ranges, bool save, struct nvme_lba_range_type *data, __u32 *result); /**