Message ID | 20250325-ublk_timeout-v1-1-262f0121a7bd@purestorage.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | ublk: improve handling of saturated queues when ublk server exits | expand |
On Tue, Mar 25, 2025 at 04:19:31PM -0600, Uday Shankar wrote: > There are a couple of places in the kublk selftests ublk server which > use the legacy ublk opcodes. These operations fail (with -EOPNOTSUPP) on > a kernel compiled without CONFIG_BLKDEV_UBLK_LEGACY_OPCODES set. We > could easily require it to be set as a prerequisite for these selftests, > but since new applications should not be using the legacy opcodes, use > the ioctl-encoded opcodes everywhere in kublk. Is it required to allow for the building of old userspace code (using legacy opcodes) against new kernel headers? Or do we only need to guarantee that old userspace code using legacy opcodes that is already compiled continues to work against newer ublk_drv? If it's the latter case, maybe we can consider removing the legacy opcode definitions from the userspace header as a follow-on change?
On Tue, Mar 25, 2025 at 04:19:31PM -0600, Uday Shankar wrote: > There are a couple of places in the kublk selftests ublk server which > use the legacy ublk opcodes. These operations fail (with -EOPNOTSUPP) on > a kernel compiled without CONFIG_BLKDEV_UBLK_LEGACY_OPCODES set. We > could easily require it to be set as a prerequisite for these selftests, > but since new applications should not be using the legacy opcodes, use > the ioctl-encoded opcodes everywhere in kublk. > > Signed-off-by: Uday Shankar <ushankar@purestorage.com> Reviewed-by: Ming Lei <ming.lei@redhat.com>
diff --git a/tools/testing/selftests/ublk/kublk.c b/tools/testing/selftests/ublk/kublk.c index 05147b53c3613a436e3a13848e146e0c66ca2525..b17eee643b2dbfd59903b61718afcbc21da91d97 100644 --- a/tools/testing/selftests/ublk/kublk.c +++ b/tools/testing/selftests/ublk/kublk.c @@ -99,7 +99,7 @@ static int __ublk_ctrl_cmd(struct ublk_dev *dev, static int ublk_ctrl_stop_dev(struct ublk_dev *dev) { struct ublk_ctrl_cmd_data data = { - .cmd_op = UBLK_CMD_STOP_DEV, + .cmd_op = UBLK_U_CMD_STOP_DEV, }; return __ublk_ctrl_cmd(dev, &data); @@ -169,7 +169,7 @@ static int ublk_ctrl_get_params(struct ublk_dev *dev, struct ublk_params *params) { struct ublk_ctrl_cmd_data data = { - .cmd_op = UBLK_CMD_GET_PARAMS, + .cmd_op = UBLK_U_CMD_GET_PARAMS, .flags = CTRL_CMD_HAS_BUF, .addr = (__u64)params, .len = sizeof(*params),
There are a couple of places in the kublk selftests ublk server which use the legacy ublk opcodes. These operations fail (with -EOPNOTSUPP) on a kernel compiled without CONFIG_BLKDEV_UBLK_LEGACY_OPCODES set. We could easily require it to be set as a prerequisite for these selftests, but since new applications should not be using the legacy opcodes, use the ioctl-encoded opcodes everywhere in kublk. Signed-off-by: Uday Shankar <ushankar@purestorage.com> --- tools/testing/selftests/ublk/kublk.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)