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: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
@@ -284,7 +284,7 @@ claw_probe(struct ccwgroup_device *cgdev)
|
||||
if (!get_device(&cgdev->dev))
|
||||
return -ENODEV;
|
||||
privptr = kzalloc(sizeof(struct claw_privbk), GFP_KERNEL);
|
||||
cgdev->dev.driver_data = privptr;
|
||||
dev_set_drvdata(&cgdev->dev, privptr);
|
||||
if (privptr == NULL) {
|
||||
probe_error(cgdev);
|
||||
put_device(&cgdev->dev);
|
||||
@@ -591,14 +591,14 @@ claw_irq_handler(struct ccw_device *cdev,
|
||||
|
||||
CLAW_DBF_TEXT(4, trace, "clawirq");
|
||||
/* Bypass all 'unsolicited interrupts' */
|
||||
if (!cdev->dev.driver_data) {
|
||||
privptr = dev_get_drvdata(&cdev->dev);
|
||||
if (!privptr) {
|
||||
dev_warn(&cdev->dev, "An uninitialized CLAW device received an"
|
||||
" IRQ, c-%02x d-%02x\n",
|
||||
irb->scsw.cmd.cstat, irb->scsw.cmd.dstat);
|
||||
CLAW_DBF_TEXT(2, trace, "badirq");
|
||||
return;
|
||||
}
|
||||
privptr = (struct claw_privbk *)cdev->dev.driver_data;
|
||||
|
||||
/* Try to extract channel from driver data. */
|
||||
if (privptr->channel[READ].cdev == cdev)
|
||||
@@ -1980,9 +1980,9 @@ probe_error( struct ccwgroup_device *cgdev)
|
||||
struct claw_privbk *privptr;
|
||||
|
||||
CLAW_DBF_TEXT(4, trace, "proberr");
|
||||
privptr = (struct claw_privbk *) cgdev->dev.driver_data;
|
||||
privptr = dev_get_drvdata(&cgdev->dev);
|
||||
if (privptr != NULL) {
|
||||
cgdev->dev.driver_data = NULL;
|
||||
dev_set_drvdata(&cgdev->dev, NULL);
|
||||
kfree(privptr->p_env);
|
||||
kfree(privptr->p_mtc_envelope);
|
||||
kfree(privptr);
|
||||
@@ -2911,9 +2911,9 @@ claw_new_device(struct ccwgroup_device *cgdev)
|
||||
dev_info(&cgdev->dev, "add for %s\n",
|
||||
dev_name(&cgdev->cdev[READ]->dev));
|
||||
CLAW_DBF_TEXT(2, setup, "new_dev");
|
||||
privptr = cgdev->dev.driver_data;
|
||||
cgdev->cdev[READ]->dev.driver_data = privptr;
|
||||
cgdev->cdev[WRITE]->dev.driver_data = privptr;
|
||||
privptr = dev_get_drvdata(&cgdev->dev);
|
||||
dev_set_drvdata(&cgdev->cdev[READ]->dev, privptr);
|
||||
dev_set_drvdata(&cgdev->cdev[WRITE]->dev, privptr);
|
||||
if (!privptr)
|
||||
return -ENODEV;
|
||||
p_env = privptr->p_env;
|
||||
@@ -2950,9 +2950,9 @@ claw_new_device(struct ccwgroup_device *cgdev)
|
||||
goto out;
|
||||
}
|
||||
dev->ml_priv = privptr;
|
||||
cgdev->dev.driver_data = privptr;
|
||||
cgdev->cdev[READ]->dev.driver_data = privptr;
|
||||
cgdev->cdev[WRITE]->dev.driver_data = privptr;
|
||||
dev_set_drvdata(&cgdev->dev, privptr);
|
||||
dev_set_drvdata(&cgdev->cdev[READ]->dev, privptr);
|
||||
dev_set_drvdata(&cgdev->cdev[WRITE]->dev, privptr);
|
||||
/* sysfs magic */
|
||||
SET_NETDEV_DEV(dev, &cgdev->dev);
|
||||
if (register_netdev(dev) != 0) {
|
||||
@@ -3018,7 +3018,7 @@ claw_shutdown_device(struct ccwgroup_device *cgdev)
|
||||
int ret;
|
||||
|
||||
CLAW_DBF_TEXT_(2, setup, "%s", dev_name(&cgdev->dev));
|
||||
priv = cgdev->dev.driver_data;
|
||||
priv = dev_get_drvdata(&cgdev->dev);
|
||||
if (!priv)
|
||||
return -ENODEV;
|
||||
ndev = priv->channel[READ].ndev;
|
||||
@@ -3048,7 +3048,7 @@ claw_remove_device(struct ccwgroup_device *cgdev)
|
||||
|
||||
BUG_ON(!cgdev);
|
||||
CLAW_DBF_TEXT_(2, setup, "%s", dev_name(&cgdev->dev));
|
||||
priv = cgdev->dev.driver_data;
|
||||
priv = dev_get_drvdata(&cgdev->dev);
|
||||
BUG_ON(!priv);
|
||||
dev_info(&cgdev->dev, " will be removed.\n");
|
||||
if (cgdev->state == CCWGROUP_ONLINE)
|
||||
@@ -3063,9 +3063,9 @@ claw_remove_device(struct ccwgroup_device *cgdev)
|
||||
kfree(priv->channel[1].irb);
|
||||
priv->channel[1].irb=NULL;
|
||||
kfree(priv);
|
||||
cgdev->dev.driver_data=NULL;
|
||||
cgdev->cdev[READ]->dev.driver_data = NULL;
|
||||
cgdev->cdev[WRITE]->dev.driver_data = NULL;
|
||||
dev_set_drvdata(&cgdev->dev, NULL);
|
||||
dev_set_drvdata(&cgdev->cdev[READ]->dev, NULL);
|
||||
dev_set_drvdata(&cgdev->cdev[WRITE]->dev, NULL);
|
||||
put_device(&cgdev->dev);
|
||||
|
||||
return;
|
||||
@@ -3081,7 +3081,7 @@ claw_hname_show(struct device *dev, struct device_attribute *attr, char *buf)
|
||||
struct claw_privbk *priv;
|
||||
struct claw_env * p_env;
|
||||
|
||||
priv = dev->driver_data;
|
||||
priv = dev_get_drvdata(dev);
|
||||
if (!priv)
|
||||
return -ENODEV;
|
||||
p_env = priv->p_env;
|
||||
@@ -3095,7 +3095,7 @@ claw_hname_write(struct device *dev, struct device_attribute *attr,
|
||||
struct claw_privbk *priv;
|
||||
struct claw_env * p_env;
|
||||
|
||||
priv = dev->driver_data;
|
||||
priv = dev_get_drvdata(dev);
|
||||
if (!priv)
|
||||
return -ENODEV;
|
||||
p_env = priv->p_env;
|
||||
@@ -3119,7 +3119,7 @@ claw_adname_show(struct device *dev, struct device_attribute *attr, char *buf)
|
||||
struct claw_privbk *priv;
|
||||
struct claw_env * p_env;
|
||||
|
||||
priv = dev->driver_data;
|
||||
priv = dev_get_drvdata(dev);
|
||||
if (!priv)
|
||||
return -ENODEV;
|
||||
p_env = priv->p_env;
|
||||
@@ -3133,7 +3133,7 @@ claw_adname_write(struct device *dev, struct device_attribute *attr,
|
||||
struct claw_privbk *priv;
|
||||
struct claw_env * p_env;
|
||||
|
||||
priv = dev->driver_data;
|
||||
priv = dev_get_drvdata(dev);
|
||||
if (!priv)
|
||||
return -ENODEV;
|
||||
p_env = priv->p_env;
|
||||
@@ -3157,7 +3157,7 @@ claw_apname_show(struct device *dev, struct device_attribute *attr, char *buf)
|
||||
struct claw_privbk *priv;
|
||||
struct claw_env * p_env;
|
||||
|
||||
priv = dev->driver_data;
|
||||
priv = dev_get_drvdata(dev);
|
||||
if (!priv)
|
||||
return -ENODEV;
|
||||
p_env = priv->p_env;
|
||||
@@ -3172,7 +3172,7 @@ claw_apname_write(struct device *dev, struct device_attribute *attr,
|
||||
struct claw_privbk *priv;
|
||||
struct claw_env * p_env;
|
||||
|
||||
priv = dev->driver_data;
|
||||
priv = dev_get_drvdata(dev);
|
||||
if (!priv)
|
||||
return -ENODEV;
|
||||
p_env = priv->p_env;
|
||||
@@ -3206,7 +3206,7 @@ claw_wbuff_show(struct device *dev, struct device_attribute *attr, char *buf)
|
||||
struct claw_privbk *priv;
|
||||
struct claw_env * p_env;
|
||||
|
||||
priv = dev->driver_data;
|
||||
priv = dev_get_drvdata(dev);
|
||||
if (!priv)
|
||||
return -ENODEV;
|
||||
p_env = priv->p_env;
|
||||
@@ -3221,7 +3221,7 @@ claw_wbuff_write(struct device *dev, struct device_attribute *attr,
|
||||
struct claw_env * p_env;
|
||||
int nnn,max;
|
||||
|
||||
priv = dev->driver_data;
|
||||
priv = dev_get_drvdata(dev);
|
||||
if (!priv)
|
||||
return -ENODEV;
|
||||
p_env = priv->p_env;
|
||||
@@ -3248,7 +3248,7 @@ claw_rbuff_show(struct device *dev, struct device_attribute *attr, char *buf)
|
||||
struct claw_privbk *priv;
|
||||
struct claw_env * p_env;
|
||||
|
||||
priv = dev->driver_data;
|
||||
priv = dev_get_drvdata(dev);
|
||||
if (!priv)
|
||||
return -ENODEV;
|
||||
p_env = priv->p_env;
|
||||
@@ -3263,7 +3263,7 @@ claw_rbuff_write(struct device *dev, struct device_attribute *attr,
|
||||
struct claw_env *p_env;
|
||||
int nnn,max;
|
||||
|
||||
priv = dev->driver_data;
|
||||
priv = dev_get_drvdata(dev);
|
||||
if (!priv)
|
||||
return -ENODEV;
|
||||
p_env = priv->p_env;
|
||||
|
Reference in New Issue
Block a user