Re: [PATCH] drm/i915/mtl: avoid stringop-overflow warning

From: Andi Shyti
Date: Tue Oct 24 2023 - 13:42:02 EST


Hi Jani,

> > static void rc6_res_reg_init(struct intel_rc6 *rc6)
> > {
> > - memset(rc6->res_reg, INVALID_MMIO_REG.reg, sizeof(rc6->res_reg));
>
> That's just bollocks. memset() is byte granularity, while
> INVALID_MMIO_REG.reg is u32. If the value was anything other than 0,
> this would break.

Actually it's:

void *memset(void *s, int c, size_t count)

> And you're not supposed to look at the guts of i915_reg_t to begin with,
> that's why it's a typedef. Basically any code that accesses the members
> of i915_reg_t outside of its implementation are doing it wrong.
>
> Reviewed-by: Jani Nikula <jani.nikula@xxxxxxxxx>

in any case, I agree with your argument, but why can't we simply
do:

memset(rc6->res_reg, 0, sizeof(rc6->res_reg));

?

The patch looks to me like it's being more complex that it
should.

Andi