s390/cio: Remove unused inline assemblies
There is no longer a need to maintain two versions of the same inline assembly - one with exception handling, and one without - so get rid of the duplicates and adjust names accordingly. This applies to stsch_err and msch_err which are now renamed to stsch and msch respectively, while the original msch function is removed. Signed-off-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com> Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
Родитель
d7ae65aec0
Коммит
62e65da994
|
@ -133,7 +133,7 @@ static int chsc_subchannel_prepare(struct subchannel *sch)
|
|||
* since we don't have a way to clear the subchannel and
|
||||
* cannot disable it with a request running.
|
||||
*/
|
||||
cc = stsch_err(sch->schid, &schib);
|
||||
cc = stsch(sch->schid, &schib);
|
||||
if (!cc && scsw_stctl(&schib.scsw))
|
||||
return -EAGAIN;
|
||||
return 0;
|
||||
|
|
|
@ -345,18 +345,18 @@ int cio_commit_config(struct subchannel *sch)
|
|||
struct schib schib;
|
||||
struct irb irb;
|
||||
|
||||
if (stsch_err(sch->schid, &schib) || !css_sch_is_valid(&schib))
|
||||
if (stsch(sch->schid, &schib) || !css_sch_is_valid(&schib))
|
||||
return -ENODEV;
|
||||
|
||||
for (retry = 0; retry < 5; retry++) {
|
||||
/* copy desired changes to local schib */
|
||||
cio_apply_config(sch, &schib);
|
||||
ccode = msch_err(sch->schid, &schib);
|
||||
ccode = msch(sch->schid, &schib);
|
||||
if (ccode < 0) /* -EIO if msch gets a program check. */
|
||||
return ccode;
|
||||
switch (ccode) {
|
||||
case 0: /* successful */
|
||||
if (stsch_err(sch->schid, &schib) ||
|
||||
if (stsch(sch->schid, &schib) ||
|
||||
!css_sch_is_valid(&schib))
|
||||
return -ENODEV;
|
||||
if (cio_check_config(sch, &schib)) {
|
||||
|
@ -391,7 +391,7 @@ int cio_update_schib(struct subchannel *sch)
|
|||
{
|
||||
struct schib schib;
|
||||
|
||||
if (stsch_err(sch->schid, &schib) || !css_sch_is_valid(&schib))
|
||||
if (stsch(sch->schid, &schib) || !css_sch_is_valid(&schib))
|
||||
return -ENODEV;
|
||||
|
||||
memcpy(&sch->schib, &schib, sizeof(schib));
|
||||
|
@ -500,7 +500,7 @@ int cio_validate_subchannel(struct subchannel *sch, struct subchannel_id schid)
|
|||
* If stsch gets an exception, it means the current subchannel set
|
||||
* is not valid.
|
||||
*/
|
||||
ccode = stsch_err(schid, &sch->schib);
|
||||
ccode = stsch(schid, &sch->schib);
|
||||
if (ccode) {
|
||||
err = (ccode == 3) ? -ENXIO : ccode;
|
||||
goto out;
|
||||
|
@ -616,7 +616,7 @@ static int cio_test_for_console(struct subchannel_id schid, void *data)
|
|||
{
|
||||
struct schib schib;
|
||||
|
||||
if (stsch_err(schid, &schib) != 0)
|
||||
if (stsch(schid, &schib) != 0)
|
||||
return -ENXIO;
|
||||
if ((schib.pmcw.st == SUBCHANNEL_TYPE_IO) && schib.pmcw.dnv &&
|
||||
(schib.pmcw.dev == console_devno)) {
|
||||
|
@ -635,7 +635,7 @@ static int cio_get_console_sch_no(void)
|
|||
if (console_irq != -1) {
|
||||
/* VM provided us with the irq number of the console. */
|
||||
schid.sch_no = console_irq;
|
||||
if (stsch_err(schid, &schib) != 0 ||
|
||||
if (stsch(schid, &schib) != 0 ||
|
||||
(schib.pmcw.st != SUBCHANNEL_TYPE_IO) || !schib.pmcw.dnv)
|
||||
return -1;
|
||||
console_devno = schib.pmcw.dev;
|
||||
|
@ -705,10 +705,10 @@ __disable_subchannel_easy(struct subchannel_id schid, struct schib *schib)
|
|||
cc = 0;
|
||||
for (retry=0;retry<3;retry++) {
|
||||
schib->pmcw.ena = 0;
|
||||
cc = msch_err(schid, schib);
|
||||
cc = msch(schid, schib);
|
||||
if (cc)
|
||||
return (cc==3?-ENODEV:-EBUSY);
|
||||
if (stsch_err(schid, schib) || !css_sch_is_valid(schib))
|
||||
if (stsch(schid, schib) || !css_sch_is_valid(schib))
|
||||
return -ENODEV;
|
||||
if (!schib->pmcw.ena)
|
||||
return 0;
|
||||
|
@ -755,7 +755,7 @@ static int stsch_reset(struct subchannel_id schid, struct schib *addr)
|
|||
|
||||
pgm_check_occured = 0;
|
||||
s390_base_pgm_handler_fn = cio_reset_pgm_check_handler;
|
||||
rc = stsch_err(schid, addr);
|
||||
rc = stsch(schid, addr);
|
||||
s390_base_pgm_handler_fn = NULL;
|
||||
|
||||
/* The program check handler could have changed pgm_check_occured. */
|
||||
|
@ -792,7 +792,7 @@ static int __shutdown_subchannel_easy(struct subchannel_id schid, void *data)
|
|||
/* No default clear strategy */
|
||||
break;
|
||||
}
|
||||
stsch_err(schid, &schib);
|
||||
stsch(schid, &schib);
|
||||
__disable_subchannel_easy(schid, &schib);
|
||||
}
|
||||
out:
|
||||
|
@ -940,7 +940,7 @@ int __init cio_get_iplinfo(struct cio_iplinfo *iplinfo)
|
|||
if (__chsc_enable_facility(&sda_area, CHSC_SDA_OC_MSS))
|
||||
return -ENODEV;
|
||||
}
|
||||
if (stsch_err(schid, &schib))
|
||||
if (stsch(schid, &schib))
|
||||
return -ENODEV;
|
||||
if (schib.pmcw.st != SUBCHANNEL_TYPE_IO)
|
||||
return -ENODEV;
|
||||
|
|
|
@ -390,7 +390,7 @@ static int css_evaluate_new_subchannel(struct subchannel_id schid, int slow)
|
|||
/* Will be done on the slow path. */
|
||||
return -EAGAIN;
|
||||
}
|
||||
if (stsch_err(schid, &schib)) {
|
||||
if (stsch(schid, &schib)) {
|
||||
/* Subchannel is not provided. */
|
||||
return -ENXIO;
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ static void ccw_timeout_log(struct ccw_device *cdev)
|
|||
sch = to_subchannel(cdev->dev.parent);
|
||||
private = to_io_private(sch);
|
||||
orb = &private->orb;
|
||||
cc = stsch_err(sch->schid, &schib);
|
||||
cc = stsch(sch->schid, &schib);
|
||||
|
||||
printk(KERN_WARNING "cio: ccw device timeout occurred at %llx, "
|
||||
"device information:\n", get_tod_clock());
|
||||
|
|
|
@ -25,7 +25,7 @@ struct tpi_info {
|
|||
* Some S390 specific IO instructions as inline
|
||||
*/
|
||||
|
||||
static inline int stsch_err(struct subchannel_id schid, struct schib *addr)
|
||||
static inline int stsch(struct subchannel_id schid, struct schib *addr)
|
||||
{
|
||||
register struct subchannel_id reg1 asm ("1") = schid;
|
||||
int ccode = -EIO;
|
||||
|
@ -43,21 +43,6 @@ static inline int stsch_err(struct subchannel_id schid, struct schib *addr)
|
|||
}
|
||||
|
||||
static inline int msch(struct subchannel_id schid, struct schib *addr)
|
||||
{
|
||||
register struct subchannel_id reg1 asm ("1") = schid;
|
||||
int ccode;
|
||||
|
||||
asm volatile(
|
||||
" msch 0(%2)\n"
|
||||
" ipm %0\n"
|
||||
" srl %0,28"
|
||||
: "=d" (ccode)
|
||||
: "d" (reg1), "a" (addr), "m" (*addr)
|
||||
: "cc");
|
||||
return ccode;
|
||||
}
|
||||
|
||||
static inline int msch_err(struct subchannel_id schid, struct schib *addr)
|
||||
{
|
||||
register struct subchannel_id reg1 asm ("1") = schid;
|
||||
int ccode = -EIO;
|
||||
|
|
Загрузка…
Ссылка в новой задаче