From 28da9dc480467f721c0f9d5823b6fa98312f3ae8 Mon Sep 17 00:00:00 2001 From: Eric Brower Date: Tue, 28 Oct 2003 20:38:58 -0800 Subject: [SPARC]: Fix _IOC_SIZE() macro when direction is _IOC_NONE. --- include/asm-sparc/ioctl.h | 4 +++- include/asm-sparc64/ioctl.h | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/asm-sparc/ioctl.h b/include/asm-sparc/ioctl.h index 9485a8e0fd50..e6fc4de19940 100644 --- a/include/asm-sparc/ioctl.h +++ b/include/asm-sparc/ioctl.h @@ -54,7 +54,9 @@ (((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK) ) #define _IOC_TYPE(nr) (((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK) #define _IOC_NR(nr) (((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK) -#define _IOC_SIZE(nr) (((nr) >> _IOC_SIZESHIFT) & _IOC_XSIZEMASK) +#define _IOC_SIZE(nr) \ + ((((((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK) & (_IOC_WRITE|_IOC_READ)) == 0)? \ + 0: (((nr) >> _IOC_SIZESHIFT) & _IOC_XSIZEMASK)) /* ...and for the PCMCIA and sound. */ #define IOC_IN (_IOC_WRITE << _IOC_DIRSHIFT) diff --git a/include/asm-sparc64/ioctl.h b/include/asm-sparc64/ioctl.h index b86952fafa7c..253d0b57b316 100644 --- a/include/asm-sparc64/ioctl.h +++ b/include/asm-sparc64/ioctl.h @@ -54,7 +54,9 @@ (((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK) ) #define _IOC_TYPE(nr) (((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK) #define _IOC_NR(nr) (((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK) -#define _IOC_SIZE(nr) (((nr) >> _IOC_SIZESHIFT) & _IOC_XSIZEMASK) +#define _IOC_SIZE(nr) \ + ((((((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK) & (_IOC_WRITE|_IOC_READ)) == 0)? \ + 0: (((nr) >> _IOC_SIZESHIFT) & _IOC_XSIZEMASK)) /* ...and for the PCMCIA and sound. */ #define IOC_IN (_IOC_WRITE << _IOC_DIRSHIFT) -- cgit v1.2.3