Commit 3e8c3d46 authored by Jakub Kicinski's avatar Jakub Kicinski
Browse files

ethtool: cmis: fix u16-to-u8 truncation of msleep_pre_rpl



ethtool_cmis_cdb_compose_args() accepts msleep_pre_rpl as u16 but stores
it into the u8 field ethtool_cmis_cdb_cmd_args::msleep_pre_rpl, silently
truncating values >= 256. Seven of the nine call sites pass 1000 ms
(it's the third argument from the end).

Fixes: a39c84d7 ("ethtool: cmis_cdb: Add a layer for supporting CDB commands")
Reviewed-by: default avatarMaxime Chevallier <maxime.chevallier@bootlin.com>
Reviewed-by: default avatarDanielle Ratson <danieller@nvidia.com>
Link: https://patch.msgid.link/20260522231312.1710836-8-kuba@kernel.org


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 6c3f999a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -63,9 +63,9 @@ struct ethtool_cmis_cdb_request {
 * struct ethtool_cmis_cdb_cmd_args - CDB commands execution arguments
 * @req: CDB command fields as described in the CMIS standard.
 * @max_duration: Maximum duration time for command completion in msec.
 * @msleep_pre_rpl: Waiting time before checking reply in msec.
 * @read_write_len_ext: Allowable additional number of byte octets to the LPL
 *			in a READ or a WRITE commands.
 * @msleep_pre_rpl: Waiting time before checking reply in msec.
 * @rpl_exp_len: Expected reply length in bytes.
 * @flags: Validation flags for CDB commands.
 * @err_msg: Error message to be sent to user space.
@@ -73,8 +73,8 @@ struct ethtool_cmis_cdb_request {
struct ethtool_cmis_cdb_cmd_args {
	struct ethtool_cmis_cdb_request req;
	u16				max_duration;
	u16				msleep_pre_rpl;
	u8				read_write_len_ext;
	u8				msleep_pre_rpl;
	u8                              rpl_exp_len;
	u8				flags;
	char				*err_msg;