Re: [PATCH 3/8] rtc: make all reg_write callbacks take const void *
[email protected] Wed, 15 Jul 2026 18:01:23 +0000
| Newsgroups | org.infradead.lists.linux-amlogic,dev.linux.lists.imx,dev.linux.lists.linux-sunxi,dev.linux.lists.mfd,org.kernel.vger.linux-rtc |
|---|---|
| Message-ID | <[email protected]> |
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 _______________________________________________ linux-amlogic mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-amlogic