Coverity: tc358746_g_register(): Integer handling issues

From: coverity-bot
Date: Thu Nov 10 2022 - 11:29:02 EST


Hello!

This is an experimental semi-automated report about issues detected by
Coverity from a scan of next-20221110 as part of the linux-next scan project:
https://scan.coverity.com/projects/linux-next-weekly-scan

You're getting this email because you were associated with the identified
lines of code (noted below) that were touched by commits:

Thu Oct 27 14:48:40 2022 +0300
80a21da36051 ("media: tc358746: add Toshiba TC358746 Parallel to CSI-2 bridge driver")

Coverity reported the following:

*** CID 1527256: Integer handling issues (INCOMPATIBLE_CAST)
drivers/media/i2c/tc358746.c:998 in tc358746_g_register()
992 /* 32-bit registers starting from CLW_DPHYCONTTX */
993 reg->size = reg->reg < CLW_DPHYCONTTX_REG ? 2 : 4;
994
995 if (!pm_runtime_get_if_in_use(sd->dev))
996 return 0;
997
vvv CID 1527256: Integer handling issues (INCOMPATIBLE_CAST)
vvv Pointer "&reg->val" points to an object whose effective type is "unsigned long long" (64 bits, unsigned) but is dereferenced as a narrower "unsigned int" (32 bits, unsigned). This may lead to unexpected results depending on machine endianness.
998 tc358746_read(tc358746, reg->reg, (u32 *)&reg->val);
999
1000 pm_runtime_mark_last_busy(sd->dev);
1001 pm_runtime_put_sync_autosuspend(sd->dev);
1002
1003 return 0;

If this is a false positive, please let us know so we can mark it as
such, or teach the Coverity rules to be smarter. If not, please make
sure fixes get into linux-next. :) For patches fixing this, please
include these lines (but double-check the "Fixes" first):

Reported-by: coverity-bot <keescook+coverity-bot@xxxxxxxxxxxx>
Addresses-Coverity-ID: 1527256 ("Integer handling issues")
Fixes: 80a21da36051 ("media: tc358746: add Toshiba TC358746 Parallel to CSI-2 bridge driver")

Thanks for your attention!

--
Coverity-bot