mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 13:41:51 +00:00
CRIS: fix I/O macros
The inb/outb macros for CRIS are broken from a number of points of view, missing () around parameters and they have an unprotected if statement in them. This was breaking the compile of IPMI on CRIS and thus I was being annoyed by build regressions, so I fixed them. Plus I don't think they would have worked at all, since the data values were missing "&" and the outsl had a "3" instead of a "4" for the size. From what I can tell, this stuff is not used at all, so this can't be any more broken than it was before, anyway. Signed-off-by: Corey Minyard <cminyard@mvista.com> Cc: Jesper Nilsson <jesper.nilsson@axis.com> Cc: Mikael Starvik <starvik@axis.com> Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
9f67675a24
commit
c24bf9b4cc
@ -133,12 +133,39 @@ static inline void writel(unsigned int b, volatile void __iomem *addr)
|
||||
#define insb(port,addr,count) (cris_iops ? cris_iops->read_io(port,addr,1,count) : 0)
|
||||
#define insw(port,addr,count) (cris_iops ? cris_iops->read_io(port,addr,2,count) : 0)
|
||||
#define insl(port,addr,count) (cris_iops ? cris_iops->read_io(port,addr,4,count) : 0)
|
||||
#define outb(data,port) if (cris_iops) cris_iops->write_io(port,(void*)(unsigned)data,1,1)
|
||||
#define outw(data,port) if (cris_iops) cris_iops->write_io(port,(void*)(unsigned)data,2,1)
|
||||
#define outl(data,port) if (cris_iops) cris_iops->write_io(port,(void*)(unsigned)data,4,1)
|
||||
#define outsb(port,addr,count) if(cris_iops) cris_iops->write_io(port,(void*)addr,1,count)
|
||||
#define outsw(port,addr,count) if(cris_iops) cris_iops->write_io(port,(void*)addr,2,count)
|
||||
#define outsl(port,addr,count) if(cris_iops) cris_iops->write_io(port,(void*)addr,3,count)
|
||||
static inline void outb(unsigned char data, unsigned int port)
|
||||
{
|
||||
if (cris_iops)
|
||||
cris_iops->write_io(port, (void *) &data, 1, 1);
|
||||
}
|
||||
static inline void outw(unsigned short data, unsigned int port)
|
||||
{
|
||||
if (cris_iops)
|
||||
cris_iops->write_io(port, (void *) &data, 2, 1);
|
||||
}
|
||||
static inline void outl(unsigned int data, unsigned int port)
|
||||
{
|
||||
if (cris_iops)
|
||||
cris_iops->write_io(port, (void *) &data, 4, 1);
|
||||
}
|
||||
static inline void outsb(unsigned int port, const void *addr,
|
||||
unsigned long count)
|
||||
{
|
||||
if (cris_iops)
|
||||
cris_iops->write_io(port, (void *)addr, 1, count);
|
||||
}
|
||||
static inline void outsw(unsigned int port, const void *addr,
|
||||
unsigned long count)
|
||||
{
|
||||
if (cris_iops)
|
||||
cris_iops->write_io(port, (void *)addr, 2, count);
|
||||
}
|
||||
static inline void outsl(unsigned int port, const void *addr,
|
||||
unsigned long count)
|
||||
{
|
||||
if (cris_iops)
|
||||
cris_iops->write_io(port, (void *)addr, 4, count);
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert a physical pointer to a virtual kernel pointer for /dev/mem
|
||||
|
Loading…
Reference in New Issue
Block a user