From: Arnd Bergmann <arnd@xxxxxxxx> Date: Tue, 30 Jul 2019 21:25:20 +0200 > Support for handling the PPPOEIOCSFWD ioctl in compat mode was added in > linux-2.5.69 along with hundreds of other commands, but was always broken > sincen only the structure is compatible, but the command number is not, > due to the size being sizeof(size_t), or at first sizeof(sizeof((struct > sockaddr_pppox)), which is different on 64-bit architectures. > > Guillaume Nault adds: > > And the implementation was broken until 2016 (see 29e73269aa4d ("pppoe: > fix reference counting in PPPoE proxy")), and nobody ever noticed. I > should probably have removed this ioctl entirely instead of fixing it. > Clearly, it has never been used. > > Fix it by adding a compat_ioctl handler for all pppoe variants that > translates the command number and then calls the regular ioctl function. > > All other ioctl commands handled by pppoe are compatible between 32-bit > and 64-bit, and require compat_ptr() conversion. > > This should apply to all stable kernels. > > Acked-by: Guillaume Nault <g.nault@xxxxxxxxxxxx> > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> Applied and queued up for -stable, thanks everyone.