[S390] cio: inline assembly cleanup
Fix incorrect in- and output constraints, remove volatile declaration of inline assembly parameters and reformat constraint declarations to be more consistent. Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
1f4e7edabc
commit
f9c9fe3ecf
|
@ -901,7 +901,7 @@ static void cio_reset_pgm_check_handler(void)
|
||||||
pgm_check_occured = 1;
|
pgm_check_occured = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int stsch_reset(struct subchannel_id schid, volatile struct schib *addr)
|
static int stsch_reset(struct subchannel_id schid, struct schib *addr)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
|
|
|
@ -123,7 +123,7 @@ struct ccw_device_private {
|
||||||
void *cmb_wait; /* deferred cmb enable/disable */
|
void *cmb_wait; /* deferred cmb enable/disable */
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline int ssch(struct subchannel_id schid, volatile union orb *addr)
|
static inline int ssch(struct subchannel_id schid, union orb *addr)
|
||||||
{
|
{
|
||||||
register struct subchannel_id reg1 asm("1") = schid;
|
register struct subchannel_id reg1 asm("1") = schid;
|
||||||
int ccode = -EIO;
|
int ccode = -EIO;
|
||||||
|
@ -134,7 +134,9 @@ static inline int ssch(struct subchannel_id schid, volatile union orb *addr)
|
||||||
" srl %0,28\n"
|
" srl %0,28\n"
|
||||||
"1:\n"
|
"1:\n"
|
||||||
EX_TABLE(0b, 1b)
|
EX_TABLE(0b, 1b)
|
||||||
: "+d" (ccode) : "d" (reg1), "a" (addr), "m" (*addr) : "cc");
|
: "+d" (ccode)
|
||||||
|
: "d" (reg1), "a" (addr), "m" (*addr)
|
||||||
|
: "cc", "memory");
|
||||||
return ccode;
|
return ccode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -147,7 +149,9 @@ static inline int rsch(struct subchannel_id schid)
|
||||||
" rsch\n"
|
" rsch\n"
|
||||||
" ipm %0\n"
|
" ipm %0\n"
|
||||||
" srl %0,28"
|
" srl %0,28"
|
||||||
: "=d" (ccode) : "d" (reg1) : "cc");
|
: "=d" (ccode)
|
||||||
|
: "d" (reg1)
|
||||||
|
: "cc", "memory");
|
||||||
return ccode;
|
return ccode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -160,7 +164,9 @@ static inline int csch(struct subchannel_id schid)
|
||||||
" csch\n"
|
" csch\n"
|
||||||
" ipm %0\n"
|
" ipm %0\n"
|
||||||
" srl %0,28"
|
" srl %0,28"
|
||||||
: "=d" (ccode) : "d" (reg1) : "cc");
|
: "=d" (ccode)
|
||||||
|
: "d" (reg1)
|
||||||
|
: "cc");
|
||||||
return ccode;
|
return ccode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -173,7 +179,9 @@ static inline int hsch(struct subchannel_id schid)
|
||||||
" hsch\n"
|
" hsch\n"
|
||||||
" ipm %0\n"
|
" ipm %0\n"
|
||||||
" srl %0,28"
|
" srl %0,28"
|
||||||
: "=d" (ccode) : "d" (reg1) : "cc");
|
: "=d" (ccode)
|
||||||
|
: "d" (reg1)
|
||||||
|
: "cc");
|
||||||
return ccode;
|
return ccode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -186,7 +194,9 @@ static inline int xsch(struct subchannel_id schid)
|
||||||
" .insn rre,0xb2760000,%1,0\n"
|
" .insn rre,0xb2760000,%1,0\n"
|
||||||
" ipm %0\n"
|
" ipm %0\n"
|
||||||
" srl %0,28"
|
" srl %0,28"
|
||||||
: "=d" (ccode) : "d" (reg1) : "cc");
|
: "=d" (ccode)
|
||||||
|
: "d" (reg1)
|
||||||
|
: "cc");
|
||||||
return ccode;
|
return ccode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,38 +23,39 @@ struct tpi_info {
|
||||||
* Some S390 specific IO instructions as inline
|
* Some S390 specific IO instructions as inline
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline int stsch(struct subchannel_id schid,
|
static inline int stsch(struct subchannel_id schid, struct schib *addr)
|
||||||
volatile struct schib *addr)
|
|
||||||
{
|
{
|
||||||
register struct subchannel_id reg1 asm ("1") = schid;
|
register struct subchannel_id reg1 asm ("1") = schid;
|
||||||
int ccode;
|
int ccode;
|
||||||
|
|
||||||
asm volatile(
|
asm volatile(
|
||||||
" stsch 0(%2)\n"
|
" stsch 0(%3)\n"
|
||||||
" ipm %0\n"
|
" ipm %0\n"
|
||||||
" srl %0,28"
|
" srl %0,28"
|
||||||
: "=d" (ccode) : "d" (reg1), "a" (addr), "m" (*addr) : "cc");
|
: "=d" (ccode), "=m" (*addr)
|
||||||
|
: "d" (reg1), "a" (addr)
|
||||||
|
: "cc");
|
||||||
return ccode;
|
return ccode;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int stsch_err(struct subchannel_id schid,
|
static inline int stsch_err(struct subchannel_id schid, struct schib *addr)
|
||||||
volatile struct schib *addr)
|
|
||||||
{
|
{
|
||||||
register struct subchannel_id reg1 asm ("1") = schid;
|
register struct subchannel_id reg1 asm ("1") = schid;
|
||||||
int ccode = -EIO;
|
int ccode = -EIO;
|
||||||
|
|
||||||
asm volatile(
|
asm volatile(
|
||||||
" stsch 0(%2)\n"
|
" stsch 0(%3)\n"
|
||||||
"0: ipm %0\n"
|
"0: ipm %0\n"
|
||||||
" srl %0,28\n"
|
" srl %0,28\n"
|
||||||
"1:\n"
|
"1:\n"
|
||||||
EX_TABLE(0b,1b)
|
EX_TABLE(0b,1b)
|
||||||
: "+d" (ccode) : "d" (reg1), "a" (addr), "m" (*addr) : "cc");
|
: "+d" (ccode), "=m" (*addr)
|
||||||
|
: "d" (reg1), "a" (addr)
|
||||||
|
: "cc");
|
||||||
return ccode;
|
return ccode;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int msch(struct subchannel_id schid,
|
static inline int msch(struct subchannel_id schid, struct schib *addr)
|
||||||
volatile struct schib *addr)
|
|
||||||
{
|
{
|
||||||
register struct subchannel_id reg1 asm ("1") = schid;
|
register struct subchannel_id reg1 asm ("1") = schid;
|
||||||
int ccode;
|
int ccode;
|
||||||
|
@ -63,12 +64,13 @@ static inline int msch(struct subchannel_id schid,
|
||||||
" msch 0(%2)\n"
|
" msch 0(%2)\n"
|
||||||
" ipm %0\n"
|
" ipm %0\n"
|
||||||
" srl %0,28"
|
" srl %0,28"
|
||||||
: "=d" (ccode) : "d" (reg1), "a" (addr), "m" (*addr) : "cc");
|
: "=d" (ccode)
|
||||||
|
: "d" (reg1), "a" (addr), "m" (*addr)
|
||||||
|
: "cc");
|
||||||
return ccode;
|
return ccode;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int msch_err(struct subchannel_id schid,
|
static inline int msch_err(struct subchannel_id schid, struct schib *addr)
|
||||||
volatile struct schib *addr)
|
|
||||||
{
|
{
|
||||||
register struct subchannel_id reg1 asm ("1") = schid;
|
register struct subchannel_id reg1 asm ("1") = schid;
|
||||||
int ccode = -EIO;
|
int ccode = -EIO;
|
||||||
|
@ -79,33 +81,38 @@ static inline int msch_err(struct subchannel_id schid,
|
||||||
" srl %0,28\n"
|
" srl %0,28\n"
|
||||||
"1:\n"
|
"1:\n"
|
||||||
EX_TABLE(0b,1b)
|
EX_TABLE(0b,1b)
|
||||||
: "+d" (ccode) : "d" (reg1), "a" (addr), "m" (*addr) : "cc");
|
: "+d" (ccode)
|
||||||
|
: "d" (reg1), "a" (addr), "m" (*addr)
|
||||||
|
: "cc");
|
||||||
return ccode;
|
return ccode;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int tsch(struct subchannel_id schid,
|
static inline int tsch(struct subchannel_id schid, struct irb *addr)
|
||||||
volatile struct irb *addr)
|
|
||||||
{
|
{
|
||||||
register struct subchannel_id reg1 asm ("1") = schid;
|
register struct subchannel_id reg1 asm ("1") = schid;
|
||||||
int ccode;
|
int ccode;
|
||||||
|
|
||||||
asm volatile(
|
asm volatile(
|
||||||
" tsch 0(%2)\n"
|
" tsch 0(%3)\n"
|
||||||
" ipm %0\n"
|
" ipm %0\n"
|
||||||
" srl %0,28"
|
" srl %0,28"
|
||||||
: "=d" (ccode) : "d" (reg1), "a" (addr), "m" (*addr) : "cc");
|
: "=d" (ccode), "=m" (*addr)
|
||||||
|
: "d" (reg1), "a" (addr)
|
||||||
|
: "cc");
|
||||||
return ccode;
|
return ccode;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int tpi( volatile struct tpi_info *addr)
|
static inline int tpi(struct tpi_info *addr)
|
||||||
{
|
{
|
||||||
int ccode;
|
int ccode;
|
||||||
|
|
||||||
asm volatile(
|
asm volatile(
|
||||||
" tpi 0(%1)\n"
|
" tpi 0(%2)\n"
|
||||||
" ipm %0\n"
|
" ipm %0\n"
|
||||||
" srl %0,28"
|
" srl %0,28"
|
||||||
: "=d" (ccode) : "a" (addr), "m" (*addr) : "cc");
|
: "=d" (ccode), "=m" (*addr)
|
||||||
|
: "a" (addr)
|
||||||
|
: "cc");
|
||||||
return ccode;
|
return ccode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue