This issue is still present in the latest 6.5.0-21-generic kernel. /var/lib/dkms/r8168/8.049.02/build/r8168_n.c: In function ‘rtl8168_set_mac_address’: /var/lib/dkms/r8168/8.049.02/build/r8168_n.c:24197:19: warning: passing argument 1 of ‘__builtin_memcpy’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qua lifiers] 24197 | memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); | ~~~^~~~~~~~~~ ./include/linux/fortify-string.h:648:27: note: in definition of macro ‘__fortify_memcpy_chk’ 648 | __underlying_##op(p, q, __fortify_size); \ | ^ /var/lib/dkms/r8168/8.049.02/build/r8168_n.c:24197:9: note: in expansion of macro ‘memcpy’ 24197 | memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); | ^~~~~~ /var/lib/dkms/r8168/8.049.02/build/r8168_n.c:24197:19: note: expected ‘void *’ but argument is of type ‘const unsigned char *’ 24197 | memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); | ~~~^~~~~~~~~~ ./include/linux/fortify-string.h:648:27: note: in definition of macro ‘__fortify_memcpy_chk’ 648 | __underlying_##op(p, q, __fortify_size); \ | ^ /var/lib/dkms/r8168/8.049.02/build/r8168_n.c:24197:9: note: in expansion of macro ‘memcpy’ 24197 | memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); | ^~~~~~ /var/lib/dkms/r8168/8.049.02/build/r8168_n.c:24199:32: warning: passing argument 2 of ‘rtl8168_rar_set’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 24199 | rtl8168_rar_set(tp, dev->dev_addr); | ~~~^~~~~~~~~~ /var/lib/dkms/r8168/8.049.02/build/r8168_n.c:575:59: note: expected ‘uint8_t *’ {aka ‘unsigned char *’} but argument is of type ‘const unsigned char *’ 575 | void rtl8168_rar_set(struct rtl8168_private *tp, uint8_t *addr); | ~~~~~~~~~^~~~ /var/lib/dkms/r8168/8.049.02/build/r8168_n.c: In function ‘r8168_csum_workaround’: /var/lib/dkms/r8168/8.049.02/build/r8168_n.c:27733:24: error: implicit declaration of function ‘skb_gso_segment’; did you mean ‘skb_gso_reset’? [-Werror=implicit-function-declaration] 27733 | segs = skb_gso_segment(skb, features); | ^~~~~~~~~~~~~~~ | skb_gso_reset /var/lib/dkms/r8168/8.049.02/build/r8168_n.c:27733:22: warning: assignment to ‘struct sk_buff *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion] 27733 | segs = skb_gso_segment(skb, features); | ^ /var/lib/dkms/r8168/8.049.02/build/r8168_n.c: In function ‘rtl8168_resume’: /var/lib/dkms/r8168/8.049.02/build/r8168_n.c:28693:32: warning: passing argument 2 of ‘rtl8168_rar_set’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] 28693 | rtl8168_rar_set(tp, dev->dev_addr); | ~~~^~~~~~~~~~ /var/lib/dkms/r8168/8.049.02/build/r8168_n.c:24214:26: note: expected ‘uint8_t *’ {aka ‘unsigned char *’} but argument is of type ‘const unsigned char *’ 24214 | uint8_t *addr) | ~~~~~~~~~^~~~ Parts of the kernel have changed and the r8168 source needs to be updated for compatibility.