Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] Implicit pointer conversions discard the 'const' qualifier, causing compiler warnings.
--
--- Patch [3]: [PATCH 3/8] rtc: make all reg_write callbacks take const void * ---
commit dcceba66c45aeb1e0da5dfaf4cd7b3e0828ec69e
Author: Link Mauve <[email protected]>
rtc: make all reg_write callbacks take const void *
This commit updates various RTC drivers to use a const void * parameter for
their nvmem_config write callbacks, aligning with the updated nvmem_config API.
> diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
> index fa04ece151b8b..09da71a0009e8 100644
> --- a/drivers/rtc/rtc-cmos.c
> +++ b/drivers/rtc/rtc-cmos.c
[ ... ]
> @@ -659,7 +659,7 @@ static int cmos_nvram_read(void *priv, unsigned int off, void *val,
> return 0;
> }
>
> -static int cmos_nvram_write(void *priv, unsigned int off, void *val,
> +static int cmos_nvram_write(void *priv, unsigned int off, const void *val,
> size_t count)
> {
> struct cmos_rtc *cmos = priv;
[Severity: Low]
Does this cause a compiler warning for discarded qualifiers?
In the body of cmos_nvram_write(), the code assigns val to a non-const
pointer just below the diff context:
unsigned char *buf = val;
Should buf also be declared as const unsigned char * to avoid breaking
builds where warnings are treated as errors?
> diff --git a/drivers/rtc/rtc-rv3032.c b/drivers/rtc/rtc-rv3032.c
> index 6bafdec637aea..b6b401be09bb5 100644
> --- a/drivers/rtc/rtc-rv3032.c
> +++ b/drivers/rtc/rtc-rv3032.c
[ ... ]
> @@ -493,7 +493,7 @@ static int rv3032_nvram_read(void *priv, unsigned int offset, void *val, size_t
> return regmap_bulk_read(priv, RV3032_RAM1 + offset, val, bytes);
> }
>
> -static int rv3032_eeprom_write(void *priv, unsigned int offset, void *val, size_t bytes)
> +static int rv3032_eeprom_write(void *priv, unsigned int offset, const void *val, size_t bytes)
> {
> struct rv3032_data *rv3032 = priv;
> u32 status, eerd;
[Severity: Low]
Similar to the cmos driver, does this discard the const qualifier?
The rv3032_eeprom_write() function assigns the new const void *val to a
non-const pointer just below the quoted diff context:
u8 *buf = val;
Should this be updated to const u8 *buf as well?
> diff --git a/drivers/rtc/rtc-s35390a.c b/drivers/rtc/rtc-s35390a.c
> index b72eef4fb0997..73ff0491f6750 100644
> --- a/drivers/rtc/rtc-s35390a.c
> +++ b/drivers/rtc/rtc-s35390a.c
[ ... ]
> @@ -67,7 +67,7 @@ struct s35390a {
> int twentyfourhour;
> };
>
> -static int s35390a_set_reg(struct s35390a *s35390a, int reg, u8 *buf, int len)
> +static int s35390a_set_reg(struct s35390a *s35390a, int reg, const u8 *buf, int len)
> {
> struct i2c_client *client = s35390a->client[reg];
> struct i2c_msg msg[] = {
[Severity: Low]
Does this assignment in s35390a_set_reg() trigger a discarded qualifiers
warning?
The struct i2c_msg defines its buf member as __u8 * (non-const). When the
msg array is initialized just below this hunk:
struct i2c_msg msg[] = {
{
.addr = client->addr,
.len = len,
.buf = buf
},
};
Will assigning the const u8 *buf to the non-const .buf field cause a compiler
warning? Would it be better to explicitly cast it like (u8 *)buf to satisfy
the i2c_msg struct definition?
--
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=3
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.