Message ID | 20250215131843.228905-1-claudiu.beznea.uj@bp.renesas.com (mailing list archive) |
---|---|
State | Under Review |
Delegated to: | Geert Uytterhoeven |
Headers | show |
Series | soc: renesas: rz-sysc: Suppress binding attributes | expand |
On Sat, Feb 15, 2025 at 1:18 PM Claudiu <claudiu.beznea@tuxon.dev> wrote: > > From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> > > The matching data for the rz-sysc driver is marked with __initconst, which > means it is discarded after initialization. Because of this, attempting to > unbind/bind the driver through sysfs after system boot can lead to "Unable > to handle kernel paging request at virtual address" errors due to accessing > freed memory. > > Since the System Controller (SYSC) is an essential block for Renesas SoCs, > suppress binding attributes to prevent them being exposed in sysfs, > avoiding potential issues. > > Fixes: 1660e5ea6a3e ("soc: renesas: Add SYSC driver for Renesas RZ family") > Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> > --- > drivers/soc/renesas/rz-sysc.c | 1 + > 1 file changed, 1 insertion(+) > Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Cheers, Prabhakar > diff --git a/drivers/soc/renesas/rz-sysc.c b/drivers/soc/renesas/rz-sysc.c > index 1c98da37b7d1..14db508f669f 100644 > --- a/drivers/soc/renesas/rz-sysc.c > +++ b/drivers/soc/renesas/rz-sysc.c > @@ -120,6 +120,7 @@ static int rz_sysc_probe(struct platform_device *pdev) > static struct platform_driver rz_sysc_driver = { > .driver = { > .name = "renesas-rz-sysc", > + .suppress_bind_attrs = true, > .of_match_table = rz_sysc_match > }, > .probe = rz_sysc_probe > -- > 2.43.0 > >
On Sat, 15 Feb 2025 at 14:18, Claudiu <claudiu.beznea@tuxon.dev> wrote: > From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> > > The matching data for the rz-sysc driver is marked with __initconst, which > means it is discarded after initialization. Because of this, attempting to > unbind/bind the driver through sysfs after system boot can lead to "Unable > to handle kernel paging request at virtual address" errors due to accessing > freed memory. > > Since the System Controller (SYSC) is an essential block for Renesas SoCs, > suppress binding attributes to prevent them being exposed in sysfs, > avoiding potential issues. > > Fixes: 1660e5ea6a3e ("soc: renesas: Add SYSC driver for Renesas RZ family") > Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> i.e. will queue in renesas-devel for v6.15. > drivers/soc/renesas/rz-sysc.c | 1 + Looks like there are more opportunities for similar changes? Gr{oetje,eeting}s, Geert
Hi Claudiu, On Thu, 20 Feb 2025 at 17:00, Geert Uytterhoeven <geert@linux-m68k.org> wrote: > On Sat, 15 Feb 2025 at 14:18, Claudiu <claudiu.beznea@tuxon.dev> wrote: > > From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> > > > > The matching data for the rz-sysc driver is marked with __initconst, which > > means it is discarded after initialization. Because of this, attempting to > > unbind/bind the driver through sysfs after system boot can lead to "Unable > > to handle kernel paging request at virtual address" errors due to accessing > > freed memory. > > > > Since the System Controller (SYSC) is an essential block for Renesas SoCs, > > suppress binding attributes to prevent them being exposed in sysfs, > > avoiding potential issues. > > > > Fixes: 1660e5ea6a3e ("soc: renesas: Add SYSC driver for Renesas RZ family") > > Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> > > Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> > i.e. will queue in renesas-devel for v6.15. As the offending commit is only in renesas-devel, I'll fold the fix into the original commit. Gr{oetje,eeting}s, Geert
Hi, Geert, On 2/20/25 18:37, Geert Uytterhoeven wrote: > Hi Claudiu, > > On Thu, 20 Feb 2025 at 17:00, Geert Uytterhoeven <geert@linux-m68k.org> wrote: >> On Sat, 15 Feb 2025 at 14:18, Claudiu <claudiu.beznea@tuxon.dev> wrote: >>> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> >>> >>> The matching data for the rz-sysc driver is marked with __initconst, which >>> means it is discarded after initialization. Because of this, attempting to >>> unbind/bind the driver through sysfs after system boot can lead to "Unable >>> to handle kernel paging request at virtual address" errors due to accessing >>> freed memory. >>> >>> Since the System Controller (SYSC) is an essential block for Renesas SoCs, >>> suppress binding attributes to prevent them being exposed in sysfs, >>> avoiding potential issues. >>> >>> Fixes: 1660e5ea6a3e ("soc: renesas: Add SYSC driver for Renesas RZ family") >>> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> >> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> >> i.e. will queue in renesas-devel for v6.15. > As the offending commit is only in renesas-devel, I'll fold the fix into > the original commit. Sure, thank you! > > Gr{oetje,eeting}s, > > Geert >
Hi, Geert, On 2/20/25 18:00, Geert Uytterhoeven wrote: > On Sat, 15 Feb 2025 at 14:18, Claudiu <claudiu.beznea@tuxon.dev> wrote: >> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> >> >> The matching data for the rz-sysc driver is marked with __initconst, which >> means it is discarded after initialization. Because of this, attempting to >> unbind/bind the driver through sysfs after system boot can lead to "Unable >> to handle kernel paging request at virtual address" errors due to accessing >> freed memory. >> >> Since the System Controller (SYSC) is an essential block for Renesas SoCs, >> suppress binding attributes to prevent them being exposed in sysfs, >> avoiding potential issues. >> >> Fixes: 1660e5ea6a3e ("soc: renesas: Add SYSC driver for Renesas RZ family") >> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> > Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> > i.e. will queue in renesas-devel for v6.15. > >> drivers/soc/renesas/rz-sysc.c | 1 + > Looks like there are more opportunities for similar changes? For the other Renesas drivers I wasn't sure if this is the desired way. Thank you, Claudiu > > Gr{oetje,eeting}s, > > Geert >
diff --git a/drivers/soc/renesas/rz-sysc.c b/drivers/soc/renesas/rz-sysc.c index 1c98da37b7d1..14db508f669f 100644 --- a/drivers/soc/renesas/rz-sysc.c +++ b/drivers/soc/renesas/rz-sysc.c @@ -120,6 +120,7 @@ static int rz_sysc_probe(struct platform_device *pdev) static struct platform_driver rz_sysc_driver = { .driver = { .name = "renesas-rz-sysc", + .suppress_bind_attrs = true, .of_match_table = rz_sysc_match }, .probe = rz_sysc_probe