Kernel modules for generic device fail to build with linux 6.19-rc1

EtherCAT 1.6.8

devices/generic.c: In function ‘ec_gen_device_create_socket’:
devices/generic.c:237:36: error: passing argument 2 of ‘kernel_bind’ from incompatible pointer type [-Wincompatible-pointer-types]
  237 |     ret = kernel_bind(dev->socket, (struct sockaddr *) &sa, sizeof(sa));
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~
      |                                    |
      |                                    struct sockaddr *
In file included from /usr/lib/modules/6.19.0-rc1-1-mainline/build/include/net/scm.h:6,
                 from /usr/lib/modules/6.19.0-rc1-1-mainline/build/include/linux/netlink.h:9,
                 from /usr/lib/modules/6.19.0-rc1-1-mainline/build/include/uapi/linux/neighbour.h:6,
                 from /usr/lib/modules/6.19.0-rc1-1-mainline/build/include/linux/netdevice.h:44,
                 from /usr/lib/modules/6.19.0-rc1-1-mainline/build/include/uapi/linux/if_arp.h:27,
                 from /usr/lib/modules/6.19.0-rc1-1-mainline/build/include/linux/if_arp.h:23,
                 from devices/generic.c:32:
/usr/lib/modules/6.19.0-rc1-1-mainline/build/include/linux/net.h:347:63: note: expected ‘struct sockaddr_unsized *’ but argument is of type ‘struct sockaddr *’
  347 | int kernel_bind(struct socket *sock, struct sockaddr_unsized *addr, int addrlen);
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~

This is due to these changes, struct sockaddr was removed

https://github.com/torvalds/linux/compare/bf33247a90d3e85d53a9b55bb276b725456ff0bf...3d39d34146f2b38127eadf36a0513e130eaa7eec

https://lore.kernel.org/all/20251104002617.2752303-1-kees@kernel.org/

Edited by Michał