]> git.karo-electronics.de Git - linux-beck.git/commitdiff
s390/cio: fix multiple structure definitions
authorSebastian Ott <sebott@linux.vnet.ibm.com>
Wed, 7 May 2014 11:27:21 +0000 (13:27 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 20 May 2014 06:58:53 +0000 (08:58 +0200)
Fix multiple definitions of struct channel_path_desc by moving it
to asm/chpid.h . Also change ccw_device_get_chp_desc to use proper
types.

Reviewed-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/include/asm/ccwdev.h
arch/s390/include/asm/chpid.h
drivers/s390/cio/chp.c
drivers/s390/cio/chp.h
drivers/s390/cio/chsc.h
drivers/s390/cio/device_ops.c
drivers/s390/net/qeth_core_main.c

index a9c2c06861772f63b52988cc98afa80058fc0f22..b80e456d6428f5800e8bd32baf56499baa91a409 100644 (file)
@@ -229,5 +229,5 @@ int ccw_device_siosl(struct ccw_device *);
 
 extern void ccw_device_get_schid(struct ccw_device *, struct subchannel_id *);
 
-extern void *ccw_device_get_chp_desc(struct ccw_device *, int);
+struct channel_path_desc *ccw_device_get_chp_desc(struct ccw_device *, int);
 #endif /* _S390_CCWDEV_H_ */
index 38c405ef89cee13a1790308de7d32382bf316548..7298eec9854194406d98367b21a3c6a220a4bd49 100644 (file)
@@ -8,6 +8,17 @@
 #include <uapi/asm/chpid.h>
 #include <asm/cio.h>
 
+struct channel_path_desc {
+       u8 flags;
+       u8 lsn;
+       u8 desc;
+       u8 chpid;
+       u8 swla;
+       u8 zeroes;
+       u8 chla;
+       u8 chpp;
+} __packed;
+
 static inline void chp_id_init(struct chp_id *chpid)
 {
        memset(chpid, 0, sizeof(struct chp_id));
index 6c440d4349d4f69506fc2615074d6989d37a7c3b..d497aa05a72f1da5f2e4b56091c06329696d0130 100644 (file)
@@ -509,7 +509,7 @@ out:
  * On success return a newly allocated copy of the channel-path description
  * data associated with the given channel-path ID. Return %NULL on error.
  */
-void *chp_get_chp_desc(struct chp_id chpid)
+struct channel_path_desc *chp_get_chp_desc(struct chp_id chpid)
 {
        struct channel_path *chp;
        struct channel_path_desc *desc;
index 9284b785a06ff05bcb172f3916d09b999c43270f..4efd5b867cc390780a18c2f983a2215ed05dcd72 100644 (file)
@@ -60,7 +60,7 @@ static inline struct channel_path *chpid_to_chp(struct chp_id chpid)
 int chp_get_status(struct chp_id chpid);
 u8 chp_get_sch_opm(struct subchannel *sch);
 int chp_is_registered(struct chp_id chpid);
-void *chp_get_chp_desc(struct chp_id chpid);
+struct channel_path_desc *chp_get_chp_desc(struct chp_id chpid);
 void chp_remove_cmg_attr(struct channel_path *chp);
 int chp_add_cmg_attr(struct channel_path *chp);
 int chp_update_desc(struct channel_path *chp);
index 7e53a9c8b0b991fce45e9cc488ddcc73a0e14be4..76c9b50700b24975842713560b4d4fce2e9ddba6 100644 (file)
@@ -21,17 +21,6 @@ struct cmg_entry {
        u32 values[NR_MEASUREMENT_ENTRIES];
 } __attribute__ ((packed));
 
-struct channel_path_desc {
-       u8 flags;
-       u8 lsn;
-       u8 desc;
-       u8 chpid;
-       u8 swla;
-       u8 zeroes;
-       u8 chla;
-       u8 chpp;
-} __attribute__ ((packed));
-
 struct channel_path_desc_fmt1 {
        u8 flags;
        u8 lsn;
index 4845d64f2842cd45dfa72aa360f513fd5683876f..f3c417943dad5510594930f2deef6e2f21f5c59a 100644 (file)
@@ -563,14 +563,23 @@ out_unlock:
        return rc;
 }
 
-void *ccw_device_get_chp_desc(struct ccw_device *cdev, int chp_no)
+/**
+ * chp_get_chp_desc - return newly allocated channel-path descriptor
+ * @cdev: device to obtain the descriptor for
+ * @chp_idx: index of the channel path
+ *
+ * On success return a newly allocated copy of the channel-path description
+ * data associated with the given channel path. Return %NULL on error.
+ */
+struct channel_path_desc *ccw_device_get_chp_desc(struct ccw_device *cdev,
+                                                 int chp_idx)
 {
        struct subchannel *sch;
        struct chp_id chpid;
 
        sch = to_subchannel(cdev->dev.parent);
        chp_id_init(&chpid);
-       chpid.id = sch->schib.pmcw.chpid[chp_no];
+       chpid.id = sch->schib.pmcw.chpid[chp_idx];
        return chp_get_chp_desc(chpid);
 }
 
index 22470a3b182f0ba04c9a724d1fb26fc716bc19de..e89f38c3117606dd8d4a83226c44baf2e4f22bb1 100644 (file)
@@ -22,6 +22,7 @@
 #include <net/iucv/af_iucv.h>
 
 #include <asm/ebcdic.h>
+#include <asm/chpid.h>
 #include <asm/io.h>
 #include <asm/sysinfo.h>
 #include <asm/compat.h>
@@ -1344,16 +1345,7 @@ static void qeth_set_multiple_write_queues(struct qeth_card *card)
 static void qeth_update_from_chp_desc(struct qeth_card *card)
 {
        struct ccw_device *ccwdev;
-       struct channelPath_dsc {
-               u8 flags;
-               u8 lsn;
-               u8 desc;
-               u8 chpid;
-               u8 swla;
-               u8 zeroes;
-               u8 chla;
-               u8 chpp;
-       } *chp_dsc;
+       struct channel_path_desc *chp_dsc;
 
        QETH_DBF_TEXT(SETUP, 2, "chp_desc");