mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-30 08:04:13 +08:00
compat_ioctl: ppp: move simple commands into ppp_generic.c
All ppp commands that are not already handled in ppp_compat_ioctl() are compatible, so they can now handled by calling the native ppp_ioctl() directly. Without CONFIG_BLOCK, the generic compat_ioctl table is now empty, so add a check to avoid a build failure in the looking function for that configuration. Cc: netdev@vger.kernel.org Cc: linux-ppp@vger.kernel.org Cc: Paul Mackerras <paulus@samba.org> Cc: "David S. Miller" <davem@davemloft.net> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
parent
17c7e7f407
commit
8f5d9f2ce3
@ -903,6 +903,10 @@ static long ppp_compat_ioctl(struct file *file, unsigned int cmd, unsigned long
|
||||
}
|
||||
mutex_unlock(&ppp_mutex);
|
||||
|
||||
/* all other commands have compatible arguments */
|
||||
if (err == -ENOIOCTLCMD)
|
||||
err = ppp_ioctl(file, cmd, (unsigned long)compat_ptr(arg));
|
||||
|
||||
return err;
|
||||
}
|
||||
#endif
|
||||
|
@ -144,38 +144,6 @@ COMPATIBLE_IOCTL(SG_GET_REQUEST_TABLE)
|
||||
COMPATIBLE_IOCTL(SG_SET_KEEP_ORPHAN)
|
||||
COMPATIBLE_IOCTL(SG_GET_KEEP_ORPHAN)
|
||||
#endif
|
||||
/* PPP stuff */
|
||||
COMPATIBLE_IOCTL(PPPIOCGFLAGS)
|
||||
COMPATIBLE_IOCTL(PPPIOCSFLAGS)
|
||||
COMPATIBLE_IOCTL(PPPIOCGASYNCMAP)
|
||||
COMPATIBLE_IOCTL(PPPIOCSASYNCMAP)
|
||||
COMPATIBLE_IOCTL(PPPIOCGUNIT)
|
||||
COMPATIBLE_IOCTL(PPPIOCGRASYNCMAP)
|
||||
COMPATIBLE_IOCTL(PPPIOCSRASYNCMAP)
|
||||
COMPATIBLE_IOCTL(PPPIOCGMRU)
|
||||
COMPATIBLE_IOCTL(PPPIOCSMRU)
|
||||
COMPATIBLE_IOCTL(PPPIOCSMAXCID)
|
||||
COMPATIBLE_IOCTL(PPPIOCGXASYNCMAP)
|
||||
COMPATIBLE_IOCTL(PPPIOCSXASYNCMAP)
|
||||
COMPATIBLE_IOCTL(PPPIOCXFERUNIT)
|
||||
/* PPPIOCSCOMPRESS is translated */
|
||||
COMPATIBLE_IOCTL(PPPIOCGNPMODE)
|
||||
COMPATIBLE_IOCTL(PPPIOCSNPMODE)
|
||||
COMPATIBLE_IOCTL(PPPIOCGDEBUG)
|
||||
COMPATIBLE_IOCTL(PPPIOCSDEBUG)
|
||||
/* PPPIOCSPASS is translated */
|
||||
/* PPPIOCSACTIVE is translated */
|
||||
COMPATIBLE_IOCTL(PPPIOCGIDLE32)
|
||||
COMPATIBLE_IOCTL(PPPIOCGIDLE64)
|
||||
COMPATIBLE_IOCTL(PPPIOCNEWUNIT)
|
||||
COMPATIBLE_IOCTL(PPPIOCATTACH)
|
||||
COMPATIBLE_IOCTL(PPPIOCDETACH)
|
||||
COMPATIBLE_IOCTL(PPPIOCSMRRU)
|
||||
COMPATIBLE_IOCTL(PPPIOCCONNECT)
|
||||
COMPATIBLE_IOCTL(PPPIOCDISCONN)
|
||||
COMPATIBLE_IOCTL(PPPIOCATTCHAN)
|
||||
COMPATIBLE_IOCTL(PPPIOCGCHAN)
|
||||
COMPATIBLE_IOCTL(PPPIOCGL2TPSTATS)
|
||||
};
|
||||
|
||||
/*
|
||||
@ -202,6 +170,7 @@ static long do_ioctl_trans(unsigned int cmd,
|
||||
|
||||
static int compat_ioctl_check_table(unsigned int xcmd)
|
||||
{
|
||||
#ifdef CONFIG_BLOCK
|
||||
int i;
|
||||
const int max = ARRAY_SIZE(ioctl_pointer) - 1;
|
||||
|
||||
@ -220,6 +189,9 @@ static int compat_ioctl_check_table(unsigned int xcmd)
|
||||
i--;
|
||||
|
||||
return ioctl_pointer[i] == xcmd;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
COMPAT_SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd,
|
||||
|
Loading…
Reference in New Issue
Block a user