Re: [PATCH] misc: rtsx: Fix impossible condition

From: Greg KH
Date: Tue Nov 19 2019 - 02:59:06 EST


On Tue, Nov 19, 2019 at 03:33:45PM +0800, rui_feng@xxxxxxxxxxxxxx wrote:
> From: Rui Feng <rui_feng@xxxxxxxxxxxxxx>
>
> A u8 can only go up to 255, condition n > 396 is
> impossible, so change u8 to u16.
>
> Signed-off-by: Rui Feng <rui_feng@xxxxxxxxxxxxxx>
> ---
> drivers/misc/cardreader/rts5261.c | 11 ++++++-----
> 1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/misc/cardreader/rts5261.c b/drivers/misc/cardreader/rts5261.c
> index 32dcec2..8dba0bf 100644
> --- a/drivers/misc/cardreader/rts5261.c
> +++ b/drivers/misc/cardreader/rts5261.c
> @@ -628,7 +628,8 @@ int rts5261_pci_switch_clock(struct rtsx_pcr *pcr, unsigned int card_clock,
> u8 ssc_depth, bool initial_mode, bool double_clk, bool vpclk)
> {
> int err, clk;
> - u8 n, clk_divider, mcu_cnt, div;
> + u16 n;
> + u8 clk_divider, mcu_cnt, div;
> static const u8 depth[] = {
> [RTSX_SSC_DEPTH_4M] = RTS5261_SSC_DEPTH_4M,
> [RTSX_SSC_DEPTH_2M] = RTS5261_SSC_DEPTH_2M,
> @@ -661,9 +662,9 @@ int rts5261_pci_switch_clock(struct rtsx_pcr *pcr, unsigned int card_clock,
> return 0;
>
> if (pcr->ops->conv_clk_and_div_n)
> - n = (u8)pcr->ops->conv_clk_and_div_n(clk, CLK_TO_DIV_N);
> + n = (u16)pcr->ops->conv_clk_and_div_n(clk, CLK_TO_DIV_N);
> else
> - n = (u8)(clk - 4);
> + n = (u16)(clk - 4);

Why is the cast now needed? Same for everywhere else.

thanks,

greg k-h