On Thursday 03 of April 2014 23:38:54 Jeff Mahoney wrote:
That leaves some other breakage: KABI: symbol ipv6_recv_error(vmlinux) changed crc from 0x0c79e6de to 0xd4840844 KABI: symbol pingv6_ops(vmlinux) changed crc from 0x79f2b65e to 0x20e4c907
These are changed due to legitimate bug fixes and can have exceptions added for them trivially, but I wanted to leave that open for discussion.
struct pingv6_ops is IMHO safe, this seems to be only used as type for callbacks provided by ipv6 module and fake versions of those to be used if IPv6 is built as a module and not loaded. I can't imagine any use for this type in a third party module. On the other hand, ipv6_recv_error() might not be as safe; it is already used by IPv6 L2TP implementation and there might be uses for it in third party modules. But we could work around this by renaming the function and providing a wrapper without the addr_len parameter under the original name which would call the new function with addr_len = NULL (and modifying it so that it doesn't assign into *addr_len if addr_len is null). That way our code would work as intended and third party modules calling ipv6_recv_error() would work (as bad) as before. We could, of course, use a similar trick for struct pingv6_ops and pingv6_ops as well. Michal Kubeček -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org