Message ID | 20241230014242.14562-1-suhui@nfschina.com (mailing list archive) |
---|---|
State | New |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [v2] eth: fbnic: Avoid garbage value in fbnic_mac_get_sensor_asic() | expand |
On Mon, Dec 30, 2024 at 09:42:43AM +0800, Su Hui wrote: > 'fw_cmpl' is uninitialized which makes 'sensor' and '*val' to be stored > garbage value. Remove the whole body of fbnic_mac_get_sensor_asic() and > return -EOPNOTSUPP to fix this problem. > > Fixes: d85ebade02e8 ("eth: fbnic: Add hardware monitoring support via HWMON interface") > Signed-off-by: Su Hui <suhui@nfschina.com> > Suggested-by: Jakub Kicinski <kuba@kernel.org> > --- > drivers/net/ethernet/meta/fbnic/fbnic_mac.c | 18 +----------------- > 1 file changed, 1 insertion(+), 17 deletions(-) > > diff --git a/drivers/net/ethernet/meta/fbnic/fbnic_mac.c b/drivers/net/ethernet/meta/fbnic/fbnic_mac.c > index 80b82ff12c4d..dd28c0f4c4b0 100644 > --- a/drivers/net/ethernet/meta/fbnic/fbnic_mac.c > +++ b/drivers/net/ethernet/meta/fbnic/fbnic_mac.c > @@ -688,23 +688,7 @@ fbnic_mac_get_eth_mac_stats(struct fbnic_dev *fbd, bool reset, > > static int fbnic_mac_get_sensor_asic(struct fbnic_dev *fbd, int id, long *val) > { > - struct fbnic_fw_completion fw_cmpl; Probably it should be: *fw_cmpl = fbd->cmpl_data but it is also never initialized. > - s32 *sensor; > - > - switch (id) { > - case FBNIC_SENSOR_TEMP: > - sensor = &fw_cmpl.tsene.millidegrees; > - break; > - case FBNIC_SENSOR_VOLTAGE: > - sensor = &fw_cmpl.tsene.millivolts; > - break; > - default: > - return -EINVAL; > - } > - > - *val = *sensor; > - > - return 0; > + return -EOPNOTSUPP; It is more like removing broken functionality than fixing (maybe whole commit should be reverted). Anyway returning not support is also fine. Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> > } > > static const struct fbnic_mac fbnic_mac_asic = { > -- > 2.30.2
On Mon, 30 Dec 2024 09:00:20 +0100 Michal Swiatkowski wrote: > > @@ -688,23 +688,7 @@ fbnic_mac_get_eth_mac_stats(struct fbnic_dev *fbd, bool reset, > > > > static int fbnic_mac_get_sensor_asic(struct fbnic_dev *fbd, int id, long *val) > > { > > - struct fbnic_fw_completion fw_cmpl; > Probably it should be: > *fw_cmpl = fbd->cmpl_data > but it is also never initialized. The other way around, the completion declared on the stack should be the thing that gets assigned to the pointer in fbd :S > > - s32 *sensor; > > - > > - switch (id) { > > - case FBNIC_SENSOR_TEMP: > > - sensor = &fw_cmpl.tsene.millidegrees; > > - break; > > - case FBNIC_SENSOR_VOLTAGE: > > - sensor = &fw_cmpl.tsene.millivolts; > > - break; > > - default: > > - return -EINVAL; > > - } > > - > > - *val = *sensor; > > - > > - return 0; > > + return -EOPNOTSUPP; > > It is more like removing broken functionality than fixing (maybe whole > commit should be reverted). Anyway returning not support is also fine. I defer to other maintainers. The gaps are trivial to fill in, we'll do so as soon as this patch makes it to net-next (this patch needs to target net).
diff --git a/drivers/net/ethernet/meta/fbnic/fbnic_mac.c b/drivers/net/ethernet/meta/fbnic/fbnic_mac.c index 80b82ff12c4d..dd28c0f4c4b0 100644 --- a/drivers/net/ethernet/meta/fbnic/fbnic_mac.c +++ b/drivers/net/ethernet/meta/fbnic/fbnic_mac.c @@ -688,23 +688,7 @@ fbnic_mac_get_eth_mac_stats(struct fbnic_dev *fbd, bool reset, static int fbnic_mac_get_sensor_asic(struct fbnic_dev *fbd, int id, long *val) { - struct fbnic_fw_completion fw_cmpl; - s32 *sensor; - - switch (id) { - case FBNIC_SENSOR_TEMP: - sensor = &fw_cmpl.tsene.millidegrees; - break; - case FBNIC_SENSOR_VOLTAGE: - sensor = &fw_cmpl.tsene.millivolts; - break; - default: - return -EINVAL; - } - - *val = *sensor; - - return 0; + return -EOPNOTSUPP; } static const struct fbnic_mac fbnic_mac_asic = {
'fw_cmpl' is uninitialized which makes 'sensor' and '*val' to be stored garbage value. Remove the whole body of fbnic_mac_get_sensor_asic() and return -EOPNOTSUPP to fix this problem. Fixes: d85ebade02e8 ("eth: fbnic: Add hardware monitoring support via HWMON interface") Signed-off-by: Su Hui <suhui@nfschina.com> Suggested-by: Jakub Kicinski <kuba@kernel.org> --- drivers/net/ethernet/meta/fbnic/fbnic_mac.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-)