Vince Busam wrote:
Julius Volz wrote:
Ah, but the set/get-sockopt calls also pass a size argument, which is
the size of the passed structs. If the kernel and userspace struct
sizes don't match, it is treated as an error. Is this in case
different compilers pad the structs differently, even if the IPVS
version stays the same?
So we could disable the size checks of the passed structs, or key on it
to determine if the older ABI was used, keeping a list of the structs
that had different sizes around, but that sounds like a gross hack which
would get worse if any other fields are added. It would also mean new
userspace binaries with the new fields wouldn't work with older kernels,
is that a problem? Is this better than the alternatives of breaking the
ABI, or duplicating code into a separate ABI?
You can have the kernel ignore any data it doesn't understand (ie, if struct is
24 bytes,
but the kernel expects 20 bytes, just ignore the last 4). This way it should
work with newer binaries.
Thanks,
Ben
Vince
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Ben Greear <greearb@xxxxxxxxxxxxxxx>
Candela Technologies Inc http://www.candelatech.com
--
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
|