linux/net/atm
David Woodhouse 8865c418ca atm: 32-bit ioctl compatibility
We lack compat ioctl support through most of the ATM code. This patch
deals with most of it, and I can now at least use BR2684 and PPPoATM
with 32-bit userspace.

I haven't added a .compat_ioctl method to struct atm_ioctl, because
AFAICT none of the current users need any conversion -- so we can just
call the ->ioctl() method in every case. I looked at br2684, clip, lec,
mpc, pppoatm and atmtcp.

In svc_compat_ioctl() the only mangling which is needed is to change
COMPAT_ATM_ADDPARTY to ATM_ADDPARTY. Although it's defined as
	_IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf)
it doesn't actually _take_ a struct atm_iobuf as an argument -- it takes
a struct sockaddr_atmsvc, which _is_ the same between 32-bit and 64-bit
code, so doesn't need conversion.

Almost all of vcc_ioctl() would have been identical, so I converted that
into a core do_vcc_ioctl() function with an 'int compat' argument.

I've done the same with atm_dev_ioctl(), where there _are_ a few
differences, but still it's relatively contained and there would
otherwise have been a lot of duplication.

I haven't done any of the actual device-specific ioctls, although I've
added a compat_ioctl method to struct atmdev_ops.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-03 22:12:38 -08:00
..
addr.c atm: use const where reasonable 2008-06-17 16:20:06 -07:00
addr.h atm: use const where reasonable 2008-06-17 16:20:06 -07:00
atm_misc.c
atm_sysfs.c net: struct device - replace bus_id with dev_name(), dev_set_name() 2008-11-10 13:55:14 -08:00
br2684.c netdevice: safe convert to netdev_priv() #part-4 2008-11-12 23:39:10 -08:00
clip.c net: replace NIPQUAD() in net/*/ 2008-10-31 00:54:56 -07:00
common.c atm: use const where reasonable 2008-06-17 16:20:06 -07:00
common.h atm: 32-bit ioctl compatibility 2008-12-03 22:12:38 -08:00
ioctl.c atm: 32-bit ioctl compatibility 2008-12-03 22:12:38 -08:00
Kconfig [ATM]: atm is no longer experimental 2008-01-28 15:00:11 -08:00
lec_arpc.h [ATM]: [lec] add reference counting to lec_arp entries 2006-09-29 17:16:48 -07:00
lec.c netdevice: safe convert to netdev_priv() #part-4 2008-11-12 23:39:10 -08:00
lec.h atm: use const where reasonable 2008-06-17 16:20:06 -07:00
Makefile [ATM]: Kill ipcommon.[ch] 2006-12-02 21:32:08 -08:00
mpc.c netdevice: safe convert to netdev_priv() #part-4 2008-11-12 23:39:10 -08:00
mpc.h [NET] ATM: Fix whitespace errors. 2007-02-10 23:19:16 -08:00
mpoa_caches.c net: replace NIPQUAD() in net/*/ 2008-10-31 00:54:56 -07:00
mpoa_caches.h [NET] ATM: Fix whitespace errors. 2007-02-10 23:19:16 -08:00
mpoa_proc.c [ATM]: Use proc_create() to setup ->proc_fops first 2008-02-28 13:55:45 -08:00
pppoatm.c [ATM]: Replace DPRINTK() with pr_debug(). 2007-10-10 16:48:27 -07:00
proc.c atm: assign PDE->data before gluing PDE into /proc tree 2008-05-02 04:08:30 -07:00
protocols.h
pvc.c atm: 32-bit ioctl compatibility 2008-12-03 22:12:38 -08:00
raw.c [ATM]: Replace DPRINTK() with pr_debug(). 2007-10-10 16:48:27 -07:00
resources.c atm: 32-bit ioctl compatibility 2008-12-03 22:12:38 -08:00
resources.h atm: 32-bit ioctl compatibility 2008-12-03 22:12:38 -08:00
signaling.c [NET]: sparse warning fixes 2007-10-10 16:54:48 -07:00
signaling.h [NET] ATM: Fix whitespace errors. 2007-02-10 23:19:16 -08:00
svc.c atm: 32-bit ioctl compatibility 2008-12-03 22:12:38 -08:00