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

Commit dff59b64 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

s390: remove driver_data direct access of struct device



In the near future, the driver core is going to not allow direct access
to the driver_data pointer in struct device.  Instead, the functions
dev_get_drvdata() and dev_set_drvdata() should be used.  These functions
have been around since the beginning, so are backwards compatible with
all older kernel versions.

Thanks to Sebastian Ott <sebott@linux.vnet.ibm.com> for fixing a few
typos in my original version of this patch.

Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Sebastian Ott <sebott@linux.vnet.ibm.com>
Cc: linux-s390@vger.kernel.org
Cc: linux390@de.ibm.com
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 61616115
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -368,7 +368,7 @@ raw3215_irq(struct ccw_device *cdev, unsigned long intparm, struct irb *irb)
	int cstat, dstat;
	int count;

	raw = cdev->dev.driver_data;
	raw = dev_get_drvdata(&cdev->dev);
	req = (struct raw3215_req *) intparm;
	cstat = irb->scsw.cmd.cstat;
	dstat = irb->scsw.cmd.dstat;
@@ -635,7 +635,7 @@ raw3215_probe (struct ccw_device *cdev)
	int line;

	/* Console is special. */
	if (raw3215[0] && (cdev->dev.driver_data == raw3215[0]))
	if (raw3215[0] && (raw3215[0] == dev_get_drvdata(&cdev->dev)))
		return 0;
	raw = kmalloc(sizeof(struct raw3215_info) +
		      RAW3215_INBUF_SIZE, GFP_KERNEL|GFP_DMA);
@@ -669,7 +669,7 @@ raw3215_probe (struct ccw_device *cdev)
	}
	init_waitqueue_head(&raw->empty_wait);

	cdev->dev.driver_data = raw;
	dev_set_drvdata(&cdev->dev, raw);
	cdev->handler = raw3215_irq;

	return 0;
@@ -681,9 +681,9 @@ raw3215_remove (struct ccw_device *cdev)
	struct raw3215_info *raw;

	ccw_device_set_offline(cdev);
	raw = cdev->dev.driver_data;
	raw = dev_get_drvdata(&cdev->dev);
	if (raw) {
		cdev->dev.driver_data = NULL;
		dev_set_drvdata(&cdev->dev, NULL);
		kfree(raw->buffer);
		kfree(raw);
	}
@@ -694,7 +694,7 @@ raw3215_set_online (struct ccw_device *cdev)
{
	struct raw3215_info *raw;

	raw = cdev->dev.driver_data;
	raw = dev_get_drvdata(&cdev->dev);
	if (!raw)
		return -ENODEV;

@@ -706,7 +706,7 @@ raw3215_set_offline (struct ccw_device *cdev)
{
	struct raw3215_info *raw;

	raw = cdev->dev.driver_data;
	raw = dev_get_drvdata(&cdev->dev);
	if (!raw)
		return -ENODEV;

@@ -848,7 +848,7 @@ con3215_init(void)
	raw->buffer = (char *) alloc_bootmem_low(RAW3215_BUFFER_SIZE);
	raw->inbuf = (char *) alloc_bootmem_low(RAW3215_INBUF_SIZE);
	raw->cdev = cdev;
	cdev->dev.driver_data = raw;
	dev_set_drvdata(&cdev->dev, raw);
	cdev->handler = raw3215_irq;

	raw->flags |= RAW3215_FIXED;
+8 −8
Original line number Diff line number Diff line
@@ -355,7 +355,7 @@ raw3270_irq (struct ccw_device *cdev, unsigned long intparm, struct irb *irb)
	struct raw3270_request *rq;
	int rc;

	rp = (struct raw3270 *) cdev->dev.driver_data;
	rp = dev_get_drvdata(&cdev->dev);
	if (!rp)
		return;
	rq = (struct raw3270_request *) intparm;
@@ -828,7 +828,7 @@ raw3270_setup_device(struct ccw_device *cdev, struct raw3270 *rp, char *ascebc)
	if (rp->minor == -1)
		return -EUSERS;
	rp->cdev = cdev;
	cdev->dev.driver_data = rp;
	dev_set_drvdata(&cdev->dev, rp);
	cdev->handler = raw3270_irq;
	return 0;
}
@@ -1105,7 +1105,7 @@ raw3270_delete_device(struct raw3270 *rp)
	/* Disconnect from ccw_device. */
	cdev = rp->cdev;
	rp->cdev = NULL;
	cdev->dev.driver_data = NULL;
	dev_set_drvdata(&cdev->dev, NULL);
	cdev->handler = NULL;

	/* Put ccw_device structure. */
@@ -1129,7 +1129,7 @@ static ssize_t
raw3270_model_show(struct device *dev, struct device_attribute *attr, char *buf)
{
	return snprintf(buf, PAGE_SIZE, "%i\n",
			((struct raw3270 *) dev->driver_data)->model);
			((struct raw3270 *) dev_get_drvdata(dev))->model);
}
static DEVICE_ATTR(model, 0444, raw3270_model_show, NULL);

@@ -1137,7 +1137,7 @@ static ssize_t
raw3270_rows_show(struct device *dev, struct device_attribute *attr, char *buf)
{
	return snprintf(buf, PAGE_SIZE, "%i\n",
			((struct raw3270 *) dev->driver_data)->rows);
			((struct raw3270 *) dev_get_drvdata(dev))->rows);
}
static DEVICE_ATTR(rows, 0444, raw3270_rows_show, NULL);

@@ -1145,7 +1145,7 @@ static ssize_t
raw3270_columns_show(struct device *dev, struct device_attribute *attr, char *buf)
{
	return snprintf(buf, PAGE_SIZE, "%i\n",
			((struct raw3270 *) dev->driver_data)->cols);
			((struct raw3270 *) dev_get_drvdata(dev))->cols);
}
static DEVICE_ATTR(columns, 0444, raw3270_columns_show, NULL);

@@ -1282,7 +1282,7 @@ raw3270_remove (struct ccw_device *cdev)
	struct raw3270_view *v;
	struct raw3270_notifier *np;

	rp = cdev->dev.driver_data;
	rp = dev_get_drvdata(&cdev->dev);
	/*
	 * _remove is the opposite of _probe; it's probe that
	 * should set up rp.  raw3270_remove gets entered for
@@ -1330,7 +1330,7 @@ raw3270_set_offline (struct ccw_device *cdev)
{
	struct raw3270 *rp;

	rp = cdev->dev.driver_data;
	rp = dev_get_drvdata(&cdev->dev);
	if (test_bit(RAW3270_FLAGS_CONSOLE, &rp->flags))
		return -EBUSY;
	raw3270_remove(cdev);
+1 −1
Original line number Diff line number Diff line
@@ -1289,7 +1289,7 @@ static int
tape_34xx_online(struct ccw_device *cdev)
{
	return tape_generic_online(
		cdev->dev.driver_data,
		dev_get_drvdata(&cdev->dev),
		&tape_discipline_34xx
	);
}
+1 −1
Original line number Diff line number Diff line
@@ -1703,7 +1703,7 @@ static struct ccw_device_id tape_3590_ids[] = {
static int
tape_3590_online(struct ccw_device *cdev)
{
	return tape_generic_online(cdev->dev.driver_data,
	return tape_generic_online(dev_get_drvdata(&cdev->dev),
				   &tape_discipline_3590);
}

+11 −11
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ tape_medium_state_show(struct device *dev, struct device_attribute *attr, char *
{
	struct tape_device *tdev;

	tdev = (struct tape_device *) dev->driver_data;
	tdev = dev_get_drvdata(dev);
	return scnprintf(buf, PAGE_SIZE, "%i\n", tdev->medium_state);
}

@@ -104,7 +104,7 @@ tape_first_minor_show(struct device *dev, struct device_attribute *attr, char *b
{
	struct tape_device *tdev;

	tdev = (struct tape_device *) dev->driver_data;
	tdev = dev_get_drvdata(dev);
	return scnprintf(buf, PAGE_SIZE, "%i\n", tdev->first_minor);
}

@@ -116,7 +116,7 @@ tape_state_show(struct device *dev, struct device_attribute *attr, char *buf)
{
	struct tape_device *tdev;

	tdev = (struct tape_device *) dev->driver_data;
	tdev = dev_get_drvdata(dev);
	return scnprintf(buf, PAGE_SIZE, "%s\n", (tdev->first_minor < 0) ?
		"OFFLINE" : tape_state_verbose[tdev->tape_state]);
}
@@ -130,7 +130,7 @@ tape_operation_show(struct device *dev, struct device_attribute *attr, char *buf
	struct tape_device *tdev;
	ssize_t rc;

	tdev = (struct tape_device *) dev->driver_data;
	tdev = dev_get_drvdata(dev);
	if (tdev->first_minor < 0)
		return scnprintf(buf, PAGE_SIZE, "N/A\n");

@@ -156,7 +156,7 @@ tape_blocksize_show(struct device *dev, struct device_attribute *attr, char *buf
{
	struct tape_device *tdev;

	tdev = (struct tape_device *) dev->driver_data;
	tdev = dev_get_drvdata(dev);

	return scnprintf(buf, PAGE_SIZE, "%i\n", tdev->char_data.block_size);
}
@@ -391,7 +391,7 @@ tape_generic_offline(struct ccw_device *cdev)
{
	struct tape_device *device;

	device = cdev->dev.driver_data;
	device = dev_get_drvdata(&cdev->dev);
	if (!device) {
		return -ENODEV;
	}
@@ -534,7 +534,7 @@ tape_generic_probe(struct ccw_device *cdev)
		tape_put_device(device);
		return ret;
	}
	cdev->dev.driver_data = device;
	dev_set_drvdata(&cdev->dev, device);
	cdev->handler = __tape_do_irq;
	device->cdev = cdev;
	ccw_device_get_id(cdev, &dev_id);
@@ -573,7 +573,7 @@ tape_generic_remove(struct ccw_device *cdev)
{
	struct tape_device *	device;

	device = cdev->dev.driver_data;
	device = dev_get_drvdata(&cdev->dev);
	if (!device) {
		return;
	}
@@ -613,9 +613,9 @@ tape_generic_remove(struct ccw_device *cdev)
			tape_cleanup_device(device);
	}

	if (cdev->dev.driver_data != NULL) {
	if (!dev_get_drvdata(&cdev->dev)) {
		sysfs_remove_group(&cdev->dev.kobj, &tape_attr_group);
		cdev->dev.driver_data = tape_put_device(cdev->dev.driver_data);
		dev_set_drvdata(&cdev->dev, tape_put_device(dev_get_drvdata(&cdev->dev)));
	}
}

@@ -1011,7 +1011,7 @@ __tape_do_irq (struct ccw_device *cdev, unsigned long intparm, struct irb *irb)
	struct tape_request *request;
	int rc;

	device = (struct tape_device *) cdev->dev.driver_data;
	device = dev_get_drvdata(&cdev->dev);
	if (device == NULL) {
		return;
	}
Loading