[PATCH v1 0/8] zorro: Improve handling of pointers in zorro_device_id::driver_data

Uwe Kleine-König (The Capable Hub) posted 8 patches 1 week, 6 days ago
drivers/ata/pata_buddha.c             |  8 ++++----
drivers/i2c/busses/i2c-icy.c          |  4 ++--
drivers/net/ethernet/8390/hydra.c     |  4 ++--
drivers/net/ethernet/8390/xsurf100.c  |  4 ++--
drivers/net/ethernet/8390/zorro8390.c |  6 +++---
drivers/net/ethernet/amd/a2065.c      |  8 ++++----
drivers/net/ethernet/amd/ariadne.c    |  4 ++--
drivers/scsi/a2091.c                  |  6 +++---
drivers/scsi/gvp11.c                  | 17 ++++++++--------
drivers/scsi/zorro7xx.c               | 16 +++++++--------
drivers/scsi/zorro_esp.c              |  2 +-
drivers/video/fbdev/cirrusfb.c        | 28 +++++++++++++--------------
drivers/video/fbdev/fm2fb.c           |  6 +++---
include/linux/mod_devicetable.h       |  6 +++++-
14 files changed, 62 insertions(+), 57 deletions(-)
[PATCH v1 0/8] zorro: Improve handling of pointers in zorro_device_id::driver_data
Posted by Uwe Kleine-König (The Capable Hub) 1 week, 6 days ago
Hello,

this series is about improving the handling of pointers in struct
zorro_device_id's driver_data.

While it's ok on all current Linux platforms to store a pointer in an
unsigned long variable, it involves casting that loses type information.
This can be nicely seen in patch #7 where after profiting from patch #6
the compiler notices a missing const.

Preparing for that change, all zorro_device_ids are converted to use
named initializers, which is also a nice cleanup that could stand for
itself, as it improves readability for humans. (That is necessary
because an anonymous union can be initialized by name, but not using a
list initializer.)

My motivation for this series is the CHERI hardware extension. With that
pointers are bigger than longs and thus you cannot store pointers in
zorro_device_id::driver_data. So this series is also about getting
support for CHERI into the mainline, but I hope the clean up effects
mentioned above are justification enough to accept this series.

The dependencies in this series are as follows:

 - Patch #5 depends on #1, #2
 - Patches #7 and #8 depend on patch #6.

So if the ata maintainers agreed to merge their patch #1 via scsi, and
Geert agrees to patch #5 and that it's also merged via scsi, patches #1,
#2, #6 and #7 can go in without further coordination.

Patches #3, #4 and #5 are only about using the same initialization style
for all zorro_device_id and can go in without coordination.

Best regards
Uwe

Uwe Kleine-König (The Capable Hub) (8):
  ata: pata_budda: Use named initializer for zorro_device_id
  scsi: Use named initializer for zorro_device_id
  net: Use named initializer for zorro_device_id arrays
  i2c: icy: Use named initializer for zorro_device_id arrays
  video: fm2fb: Use named initializer for zorro_device_id array
  zorro: Simplify storing pointers in device id struct
  scsi: zorro7xx: Make use of struct zorro_device_id::driver_data_ptr
  video: cirrusfb: Make use of struct zorro_device_id::driver_data_ptr

 drivers/ata/pata_buddha.c             |  8 ++++----
 drivers/i2c/busses/i2c-icy.c          |  4 ++--
 drivers/net/ethernet/8390/hydra.c     |  4 ++--
 drivers/net/ethernet/8390/xsurf100.c  |  4 ++--
 drivers/net/ethernet/8390/zorro8390.c |  6 +++---
 drivers/net/ethernet/amd/a2065.c      |  8 ++++----
 drivers/net/ethernet/amd/ariadne.c    |  4 ++--
 drivers/scsi/a2091.c                  |  6 +++---
 drivers/scsi/gvp11.c                  | 17 ++++++++--------
 drivers/scsi/zorro7xx.c               | 16 +++++++--------
 drivers/scsi/zorro_esp.c              |  2 +-
 drivers/video/fbdev/cirrusfb.c        | 28 +++++++++++++--------------
 drivers/video/fbdev/fm2fb.c           |  6 +++---
 include/linux/mod_devicetable.h       |  6 +++++-
 14 files changed, 62 insertions(+), 57 deletions(-)


base-commit: d387b06f7c15b4639244ad66b4b0900c6a02b430
-- 
2.47.3

Re: [PATCH v1 0/8] zorro: Improve handling of pointers in zorro_device_id::driver_data
Posted by Helge Deller 3 days, 21 hours ago
Hi Uwe,

On 5/26/26 16:17, Uwe Kleine-König (The Capable Hub) wrote:
> Hello,
> 
> this series is about improving the handling of pointers in struct
> zorro_device_id's driver_data.
> 
> While it's ok on all current Linux platforms to store a pointer in an
> unsigned long variable, it involves casting that loses type information.
> This can be nicely seen in patch #7 where after profiting from patch #6
> the compiler notices a missing const.
> 
> Preparing for that change, all zorro_device_ids are converted to use
> named initializers, which is also a nice cleanup that could stand for
> itself, as it improves readability for humans. (That is necessary
> because an anonymous union can be initialized by name, but not using a
> list initializer.)
> 
> My motivation for this series is the CHERI hardware extension. With that
> pointers are bigger than longs and thus you cannot store pointers in
> zorro_device_id::driver_data. So this series is also about getting
> support for CHERI into the mainline, but I hope the clean up effects
> mentioned above are justification enough to accept this series.
> 
> The dependencies in this series are as follows:
> 
>   - Patch #5 depends on #1, #2
>   - Patches #7 and #8 depend on patch #6.
> 
> So if the ata maintainers agreed to merge their patch #1 via scsi, and
> Geert agrees to patch #5 and that it's also merged via scsi, patches #1,
> #2, #6 and #7 can go in without further coordination.
> 
> Patches #3, #4 and #5 are only about using the same initialization style
> for all zorro_device_id and can go in without coordination.
> 
> Best regards
> Uwe
> 
> Uwe Kleine-König (The Capable Hub) (8):
>    ata: pata_budda: Use named initializer for zorro_device_id
>    scsi: Use named initializer for zorro_device_id
>    net: Use named initializer for zorro_device_id arrays
>    i2c: icy: Use named initializer for zorro_device_id arrays
>    video: fm2fb: Use named initializer for zorro_device_id array
>    zorro: Simplify storing pointers in device id struct
>    scsi: zorro7xx: Make use of struct zorro_device_id::driver_data_ptr
>    video: cirrusfb: Make use of struct zorro_device_id::driver_data_ptr
> 
>   drivers/ata/pata_buddha.c             |  8 ++++----
>   drivers/i2c/busses/i2c-icy.c          |  4 ++--
>   drivers/net/ethernet/8390/hydra.c     |  4 ++--
>   drivers/net/ethernet/8390/xsurf100.c  |  4 ++--
>   drivers/net/ethernet/8390/zorro8390.c |  6 +++---
>   drivers/net/ethernet/amd/a2065.c      |  8 ++++----
>   drivers/net/ethernet/amd/ariadne.c    |  4 ++--
>   drivers/scsi/a2091.c                  |  6 +++---
>   drivers/scsi/gvp11.c                  | 17 ++++++++--------
>   drivers/scsi/zorro7xx.c               | 16 +++++++--------
>   drivers/scsi/zorro_esp.c              |  2 +-
>   drivers/video/fbdev/cirrusfb.c        | 28 +++++++++++++--------------
>   drivers/video/fbdev/fm2fb.c           |  6 +++---
>   include/linux/mod_devicetable.h       |  6 +++++-
>   14 files changed, 62 insertions(+), 57 deletions(-)

you may add to the series:
Acked-by: Helge Deller <deller@gmx.de>

Since it touches various subtrees, I assume you will merge it though your tree?

Helge
Re: [PATCH v1 0/8] zorro: Improve handling of pointers in zorro_device_id::driver_data
Posted by Uwe Kleine-König (The Capable Hub) 3 days, 7 hours ago
Hello Helge,

On Fri, Jun 05, 2026 at 12:44:04AM +0200, Helge Deller wrote:
> On 5/26/26 16:17, Uwe Kleine-König (The Capable Hub) wrote:

Your MUA seems to interpret my UTF-8 encoded name as latin1 and
converted it to UTF-8 making my ö appear as ö. I *think* the problem is
on your side.

> > this series is about improving the handling of pointers in struct
> > zorro_device_id's driver_data.
> > 
> > While it's ok on all current Linux platforms to store a pointer in an
> > unsigned long variable, it involves casting that loses type information.
> > This can be nicely seen in patch #7 where after profiting from patch #6
> > the compiler notices a missing const.
> > 
> > Preparing for that change, all zorro_device_ids are converted to use
> > named initializers, which is also a nice cleanup that could stand for
> > itself, as it improves readability for humans. (That is necessary
> > because an anonymous union can be initialized by name, but not using a
> > list initializer.)
> > 
> > My motivation for this series is the CHERI hardware extension. With that
> > pointers are bigger than longs and thus you cannot store pointers in
> > zorro_device_id::driver_data. So this series is also about getting
> > support for CHERI into the mainline, but I hope the clean up effects
> > mentioned above are justification enough to accept this series.
> > 
> > The dependencies in this series are as follows:
> > 
> >   - Patch #5 depends on #1, #2
> >   - Patches #7 and #8 depend on patch #6.
> > 
> > So if the ata maintainers agreed to merge their patch #1 via scsi, and
> > Geert agrees to patch #5 and that it's also merged via scsi, patches #1,
> > #2, #6 and #7 can go in without further coordination.
> > 
> > Patches #3, #4 and #5 are only about using the same initialization style
> > for all zorro_device_id and can go in without coordination.
> > 
> > Best regards
> > Uwe
> > 
> > Uwe Kleine-König (The Capable Hub) (8):
> >    ata: pata_budda: Use named initializer for zorro_device_id
> >    scsi: Use named initializer for zorro_device_id
> >    net: Use named initializer for zorro_device_id arrays
> >    i2c: icy: Use named initializer for zorro_device_id arrays
> >    video: fm2fb: Use named initializer for zorro_device_id array
> >    zorro: Simplify storing pointers in device id struct
> >    scsi: zorro7xx: Make use of struct zorro_device_id::driver_data_ptr
> >    video: cirrusfb: Make use of struct zorro_device_id::driver_data_ptr
> > 
> >   drivers/ata/pata_buddha.c             |  8 ++++----
> >   drivers/i2c/busses/i2c-icy.c          |  4 ++--
> >   drivers/net/ethernet/8390/hydra.c     |  4 ++--
> >   drivers/net/ethernet/8390/xsurf100.c  |  4 ++--
> >   drivers/net/ethernet/8390/zorro8390.c |  6 +++---
> >   drivers/net/ethernet/amd/a2065.c      |  8 ++++----
> >   drivers/net/ethernet/amd/ariadne.c    |  4 ++--
> >   drivers/scsi/a2091.c                  |  6 +++---
> >   drivers/scsi/gvp11.c                  | 17 ++++++++--------
> >   drivers/scsi/zorro7xx.c               | 16 +++++++--------
> >   drivers/scsi/zorro_esp.c              |  2 +-
> >   drivers/video/fbdev/cirrusfb.c        | 28 +++++++++++++--------------
> >   drivers/video/fbdev/fm2fb.c           |  6 +++---
> >   include/linux/mod_devicetable.h       |  6 +++++-
> >   14 files changed, 62 insertions(+), 57 deletions(-)
> 
> you may add to the series:
> Acked-by: Helge Deller <deller@gmx.de>

Thanks!

> Since it touches various subtrees, I assume you will merge it though your tree?

Well, my plan is that the scsi maintainers pick up patches #1, #2, #6
and #7 and I remind you once #6 (i.e. the dependency for #8) is in
Linus' tree. But with your ack the two fb patches can also go in via
scsi.

To James and Martin: I didn't hear from you about my merge suggestion up
to now. The other affected maintainers agreed so far that (assuming
you're using b4) and interpreting Helge's ack as agreement that you also
pick up the fb patches, you can go for

	b4 am -l -t -3 -P1,2,5-8 cover.1779803053.git.u.kleine-koenig@baylibre.com

If you like I can also pick up these patches (then with your ack please)
and send them to Linus for the next merge window. Just tell me about
your preference.

Best regards
Uwe
Re: [PATCH v1 0/8] zorro: Improve handling of pointers in zorro_device_id::driver_data
Posted by Geert Uytterhoeven 1 week, 6 days ago
Hi Uwe,

On Tue, 26 May 2026 at 16:17, Uwe Kleine-König (The Capable Hub)
<u.kleine-koenig@baylibre.com> wrote:
> this series is about improving the handling of pointers in struct
> zorro_device_id's driver_data.
>
> While it's ok on all current Linux platforms to store a pointer in an
> unsigned long variable, it involves casting that loses type information.
> This can be nicely seen in patch #7 where after profiting from patch #6
> the compiler notices a missing const.
>
> Preparing for that change, all zorro_device_ids are converted to use
> named initializers, which is also a nice cleanup that could stand for
> itself, as it improves readability for humans. (That is necessary
> because an anonymous union can be initialized by name, but not using a
> list initializer.)
>
> My motivation for this series is the CHERI hardware extension. With that
> pointers are bigger than longs and thus you cannot store pointers in
> zorro_device_id::driver_data. So this series is also about getting
> support for CHERI into the mainline, but I hope the clean up effects
> mentioned above are justification enough to accept this series.

Thanks for your series!

> The dependencies in this series are as follows:
>
>  - Patch #5 depends on #1, #2

s/5/6/?

>  - Patches #7 and #8 depend on patch #6.
>
> So if the ata maintainers agreed to merge their patch #1 via scsi, and
> Geert agrees to patch #5 and that it's also merged via scsi, patches #1,

s/5/6/?

> #2, #6 and #7 can go in without further coordination.
>
> Patches #3, #4 and #5 are only about using the same initialization style
> for all zorro_device_id and can go in without coordination.
>
> Best regards
> Uwe
>
> Uwe Kleine-König (The Capable Hub) (8):
>   ata: pata_budda: Use named initializer for zorro_device_id
>   scsi: Use named initializer for zorro_device_id
>   net: Use named initializer for zorro_device_id arrays
>   i2c: icy: Use named initializer for zorro_device_id arrays
>   video: fm2fb: Use named initializer for zorro_device_id array
>   zorro: Simplify storing pointers in device id struct
>   scsi: zorro7xx: Make use of struct zorro_device_id::driver_data_ptr
>   video: cirrusfb: Make use of struct zorro_device_id::driver_data_ptr

Gr{oetje,eeting}s,

                        Geert


--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Re: [PATCH v1 0/8] zorro: Improve handling of pointers in zorro_device_id::driver_data
Posted by Uwe Kleine-König (The Capable Hub) 1 week, 6 days ago
On Tue, May 26, 2026 at 05:01:48PM +0200, Geert Uytterhoeven wrote:
> Hi Uwe,
> 
> On Tue, 26 May 2026 at 16:17, Uwe Kleine-König (The Capable Hub)
> <u.kleine-koenig@baylibre.com> wrote:
> > this series is about improving the handling of pointers in struct
> > zorro_device_id's driver_data.
> >
> > While it's ok on all current Linux platforms to store a pointer in an
> > unsigned long variable, it involves casting that loses type information.
> > This can be nicely seen in patch #7 where after profiting from patch #6
> > the compiler notices a missing const.
> >
> > Preparing for that change, all zorro_device_ids are converted to use
> > named initializers, which is also a nice cleanup that could stand for
> > itself, as it improves readability for humans. (That is necessary
> > because an anonymous union can be initialized by name, but not using a
> > list initializer.)
> >
> > My motivation for this series is the CHERI hardware extension. With that
> > pointers are bigger than longs and thus you cannot store pointers in
> > zorro_device_id::driver_data. So this series is also about getting
> > support for CHERI into the mainline, but I hope the clean up effects
> > mentioned above are justification enough to accept this series.
> 
> Thanks for your series!
> 
> > The dependencies in this series are as follows:
> >
> >  - Patch #5 depends on #1, #2
> 
> s/5/6/?
> 
> >  - Patches #7 and #8 depend on patch #6.
> >
> > So if the ata maintainers agreed to merge their patch #1 via scsi, and
> > Geert agrees to patch #5 and that it's also merged via scsi, patches #1,
> 
> s/5/6/?

Yes, indeed. And I tried so hard to get all the numbers right :-\

Best regards
Uwe