diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-06-10 05:30:17 -0300 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-06-10 05:30:17 -0300 |
commit | d635711daa98be86d4c7fd01499c34f566b54ccb (patch) | |
tree | aa5cc3760a27c3d57146498cb82fa549547de06c /drivers/staging/vme | |
parent | c91265cd0efb83778f015b4d4b1129bd2cfd075e (diff) |
Linux-libre 4.6.2-gnu
Diffstat (limited to 'drivers/staging/vme')
-rw-r--r-- | drivers/staging/vme/devices/vme_pio2_core.c | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/drivers/staging/vme/devices/vme_pio2_core.c b/drivers/staging/vme/devices/vme_pio2_core.c index 4f3cdbced..28a45689e 100644 --- a/drivers/staging/vme/devices/vme_pio2_core.c +++ b/drivers/staging/vme/devices/vme_pio2_core.c @@ -215,11 +215,9 @@ static int pio2_probe(struct vme_dev *vdev) u8 reg; int vec; - card = kzalloc(sizeof(*card), GFP_KERNEL); - if (!card) { - retval = -ENOMEM; - goto err_struct; - } + card = devm_kzalloc(&vdev->dev, sizeof(*card), GFP_KERNEL); + if (!card) + return -ENOMEM; card->id = vdev->num; card->bus = bus[card->id]; @@ -232,8 +230,7 @@ static int pio2_probe(struct vme_dev *vdev) for (i = 0; i < PIO2_VARIANT_LENGTH; i++) { if (!isdigit(card->variant[i])) { dev_err(&card->vdev->dev, "Variant invalid\n"); - retval = -EINVAL; - goto err_variant; + return -EINVAL; } } @@ -244,8 +241,7 @@ static int pio2_probe(struct vme_dev *vdev) if (card->irq_vector & ~PIO2_VME_VECTOR_MASK) { dev_err(&card->vdev->dev, "Invalid VME IRQ Vector, vector must not use lower 4 bits\n"); - retval = -EINVAL; - goto err_vector; + return -EINVAL; } /* @@ -284,8 +280,7 @@ static int pio2_probe(struct vme_dev *vdev) if (!card->window) { dev_err(&card->vdev->dev, "Unable to assign VME master resource\n"); - retval = -EIO; - goto err_window; + return -EIO; } retval = vme_master_set(card->window, 1, card->base, 0x10000, VME_A24, @@ -430,11 +425,6 @@ err_read: vme_master_set(card->window, 0, 0, 0, VME_A16, 0, VME_D16); err_set: vme_master_free(card->window); -err_window: -err_vector: -err_variant: - kfree(card); -err_struct: return retval; } @@ -466,8 +456,6 @@ static int pio2_remove(struct vme_dev *vdev) vme_master_free(card->window); - kfree(card); - return 0; } |