]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
[S390] cio: move cdev pointer to io_subchannel_private
authorSebastian Ott <sebott@linux.vnet.ibm.com>
Tue, 15 Mar 2011 16:08:26 +0000 (17:08 +0100)
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>
Tue, 15 Mar 2011 16:08:23 +0000 (17:08 +0100)
Move the subchannels ccw device pointer from drv_data to
the private data for I/O subchannels, since it is not the
only drv_data for I/O subchannels. The next step will be
to make io_subchannel_private the new drv_data for I/O
subchannels.

Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/cio/io_sch.h

index 8271a1f9860cf14ba9e6c97a0f4941ecb3311acd..23f50ba50392ec6dcde86795245c694e1ed8f3ee 100644 (file)
@@ -10,6 +10,7 @@
 struct io_subchannel_private {
        union orb orb;          /* operation request block */
        struct ccw1 sense_ccw;  /* static ccw for sense command */
+       struct ccw_device *cdev;/* pointer to the child ccw device */
        struct {
                unsigned int suspend:1; /* allow suspend */
                unsigned int prefetch:1;/* deny prefetch */
@@ -18,8 +19,20 @@ struct io_subchannel_private {
 } __aligned(8);
 
 #define to_io_private(n) ((struct io_subchannel_private *)n->private)
-#define sch_get_cdev(n) (dev_get_drvdata(&n->dev))
-#define sch_set_cdev(n, c) (dev_set_drvdata(&n->dev, c))
+
+static inline struct ccw_device *sch_get_cdev(struct subchannel *sch)
+{
+       struct io_subchannel_private *priv = to_io_private(sch);
+       return priv ? priv->cdev : NULL;
+}
+
+static inline void sch_set_cdev(struct subchannel *sch,
+                               struct ccw_device *cdev)
+{
+       struct io_subchannel_private *priv = to_io_private(sch);
+       if (priv)
+               priv->cdev = cdev;
+}
 
 #define MAX_CIWS 8