On Thu, May 09, 2024 at 07:17:26PM +0200, Christoph Fritz wrote: > Introduce a LIN (local interconnect network) abstraction on top of CAN. > This is a glue driver adapting CAN on one side while offering LIN > abstraction on the other side. So that upcoming LIN device drivers can > make use of it. > > Tested-by: Andreas Lauser <andreas.lauser@xxxxxxxxxxxxxxxxx> > Signed-off-by: Christoph Fritz <christoph.fritz@xxxxxxxxx> ... > +#define LID(_name) \ > + struct device_attribute linid_##_name = __ATTR(_name, 0644, \ > + lin_identifier_show, lin_identifier_store) > + > +LID(00); LID(01); LID(02); LID(03); LID(04); LID(05); LID(06); LID(07); > +LID(08); LID(09); LID(0a); LID(0b); LID(0c); LID(0d); LID(0e); LID(0f); > +LID(10); LID(11); LID(12); LID(13); LID(14); LID(15); LID(16); LID(17); > +LID(18); LID(19); LID(1a); LID(1b); LID(1c); LID(1d); LID(1e); LID(1f); > +LID(20); LID(21); LID(22); LID(23); LID(24); LID(25); LID(26); LID(27); > +LID(28); LID(29); LID(2a); LID(2b); LID(2c); LID(2d); LID(2e); LID(2f); > +LID(30); LID(31); LID(32); LID(33); LID(34); LID(35); LID(36); LID(37); > +LID(38); LID(39); LID(3a); LID(3b); LID(3c); LID(3d); LID(3e); LID(3f); Hi Christoph, Sparse flags that the structures defined by the above code are not declared elsewhere, and therefore likely should be static. > + > +static struct attribute *lin_sysfs_attrs[] = { > + &linid_00.attr, &linid_01.attr, &linid_02.attr, &linid_03.attr, > + &linid_04.attr, &linid_05.attr, &linid_06.attr, &linid_07.attr, > + &linid_08.attr, &linid_09.attr, &linid_0a.attr, &linid_0b.attr, > + &linid_0c.attr, &linid_0d.attr, &linid_0e.attr, &linid_0f.attr, > + &linid_10.attr, &linid_11.attr, &linid_12.attr, &linid_13.attr, > + &linid_14.attr, &linid_15.attr, &linid_16.attr, &linid_17.attr, > + &linid_18.attr, &linid_19.attr, &linid_1a.attr, &linid_1b.attr, > + &linid_1c.attr, &linid_1d.attr, &linid_1e.attr, &linid_1f.attr, > + &linid_20.attr, &linid_21.attr, &linid_22.attr, &linid_23.attr, > + &linid_24.attr, &linid_25.attr, &linid_26.attr, &linid_27.attr, > + &linid_28.attr, &linid_29.attr, &linid_2a.attr, &linid_2b.attr, > + &linid_2c.attr, &linid_2d.attr, &linid_2e.attr, &linid_2f.attr, > + &linid_30.attr, &linid_31.attr, &linid_32.attr, &linid_33.attr, > + &linid_34.attr, &linid_35.attr, &linid_36.attr, &linid_37.attr, > + &linid_38.attr, &linid_39.attr, &linid_3a.attr, &linid_3b.attr, > + &linid_3c.attr, &linid_3d.attr, &linid_3e.attr, &linid_3f.attr, > + NULL > +}; ...