s390/cio: Remove unused inline assemblies
authorPeter Oberparleiter <oberpar@linux.vnet.ibm.com>
Fri, 18 Dec 2015 11:58:47 +0000 (12:58 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 18 Dec 2015 13:59:33 +0000 (14:59 +0100)
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>
drivers/s390/cio/chsc_sch.c
drivers/s390/cio/cio.c
drivers/s390/cio/css.c
drivers/s390/cio/device_fsm.c
drivers/s390/cio/ioasm.h

index 378c57178bb8dd126b13b852a8f3c7d43e2b35c8..b6f12c2bb114a66edab03ecd79789bf978bcf787 100644 (file)
@@ -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;
index 2d18205526b6640cbc8d2e266e1cddddf745d511..5f5c24030405cc0e44f14f0e530b69077bbdb50e 100644 (file)
@@ -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;
index 489e703dc82d85b49d33990bd3d5c2b687d9eb0f..3d2b20ee613f8e38843bde3a2fed32a5ba05e347 100644 (file)
@@ -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;
        }
index 92e03b42e661f009e5bd2ebb7f21833a2b4e8ea0..8327d47e08b6a0617b7ebc172ce91aafcb8c9283 100644 (file)
@@ -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());
index 4d80fc67a06b140639b6410f2668ff21e21e545f..be6e2f5e11f75595621c69b77aaf3b15ef732f8c 100644 (file)
@@ -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;