Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 97eb6bfc authored by Sebastian Ott's avatar Sebastian Ott Committed by Martin Schwidefsky
Browse files

[S390] cio: move cdev pointer to io_subchannel_private



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: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent c513d07a
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -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