Change the type of the res2 parameter in io_uring_cmd_done from ssize_t to u64. This aligns the parameter type with io_req_set_cqe32_extra, which expects u64 arguments. The change eliminates potential issues on 32-bit architectures where ssize_t might be 32-bit. Only user of passing res2 is drivers/nvme/host/ioctl.c and it actually passes u64.
Unified · Split
| @@ -43,7 +43,7 @@ int io_uring_cmd_import_fixed(u64 ubuf, unsigned long len, int rw, · 42 unmodified lines | |||
| 43 | * Note: the caller should never hard code @issue_flags and is only allowed | 43 | * Note: the caller should never hard code @issue_flags and is only allowed |
| 44 | * to pass the mask provided by the core io_uring code. | 44 | * to pass the mask provided by the core io_uring code. |
| 45 | */ | 45 | */ |
| 46 | void io_uring_cmd_done(struct io_uring_cmd *cmd, ssize_t ret, ssize_t res2, | 46 | void io_uring_cmd_done(struct io_uring_cmd *cmd, ssize_t ret, u64 res2, |
| 47 | unsigned issue_flags); | 47 | unsigned issue_flags); |
| 48 | 48 | ||
| 49 | void __io_uring_cmd_do_in_task(struct io_uring_cmd *ioucmd, | 49 | void __io_uring_cmd_do_in_task(struct io_uring_cmd *ioucmd, |
| @@ -67,7 +67,7 @@ static inline int io_uring_cmd_import_fixed(u64 ubuf, unsigned long len, int rw, · 17 unmodified lines | |||
| 67 | return -EOPNOTSUPP; | 67 | return -EOPNOTSUPP; |
| 68 | } | 68 | } |
| 69 | static inline void io_uring_cmd_done(struct io_uring_cmd *cmd, ssize_t ret, | 69 | static inline void io_uring_cmd_done(struct io_uring_cmd *cmd, ssize_t ret, |
| 70 | ssize_t ret2, unsigned issue_flags) | 70 | u64 ret2, unsigned issue_flags) |
| 71 | { | 71 | { |
| 72 | } | 72 | } |
| 73 | static inline void __io_uring_cmd_do_in_task(struct io_uring_cmd *ioucmd, | 73 | static inline void __io_uring_cmd_do_in_task(struct io_uring_cmd *ioucmd, |
| @@ -151,7 +151,7 @@ static inline void io_req_set_cqe32_extra(struct io_kiocb *req, · 150 unmodified lines | |||
| 151 | * Called by consumers of io_uring_cmd, if they originally returned | 151 | * Called by consumers of io_uring_cmd, if they originally returned |
| 152 | * -EIOCBQUEUED upon receiving the command. | 152 | * -EIOCBQUEUED upon receiving the command. |
| 153 | */ | 153 | */ |
| 154 | void io_uring_cmd_done(struct io_uring_cmd *ioucmd, ssize_t ret, ssize_t res2, | 154 | void io_uring_cmd_done(struct io_uring_cmd *ioucmd, ssize_t ret, u64 res2, |
| 155 | unsigned issue_flags) | 155 | unsigned issue_flags) |
| 156 | { | 156 | { |
| 157 | struct io_kiocb *req = cmd_to_io_kiocb(ioucmd); | 157 | struct io_kiocb *req = cmd_to_io_kiocb(ioucmd); |