Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mfd: cros_ec: Convert to managed resources for allocating memory

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>

authored by

Lee Jones and committed by
Samuel Ortiz
22f9ee75 1cee87fd

+9 -19
+9 -19
drivers/mfd/cros_ec.c
··· 104 104 ec_dev->command_sendrecv = cros_ec_command_sendrecv; 105 105 106 106 if (ec_dev->din_size) { 107 - ec_dev->din = kmalloc(ec_dev->din_size, GFP_KERNEL); 108 - if (!ec_dev->din) { 109 - err = -ENOMEM; 110 - goto fail_din; 111 - } 107 + ec_dev->din = devm_kzalloc(dev, ec_dev->din_size, GFP_KERNEL); 108 + if (!ec_dev->din) 109 + return -ENOMEM; 112 110 } 113 111 if (ec_dev->dout_size) { 114 - ec_dev->dout = kmalloc(ec_dev->dout_size, GFP_KERNEL); 115 - if (!ec_dev->dout) { 116 - err = -ENOMEM; 117 - goto fail_dout; 118 - } 112 + ec_dev->dout = devm_kzalloc(dev, ec_dev->dout_size, GFP_KERNEL); 113 + if (!ec_dev->dout) 114 + return -ENOMEM; 119 115 } 120 116 121 117 if (!ec_dev->irq) { 122 118 dev_dbg(dev, "no valid IRQ: %d\n", ec_dev->irq); 123 - goto fail_irq; 119 + return err; 124 120 } 125 121 126 122 err = request_threaded_irq(ec_dev->irq, NULL, ec_irq_thread, ··· 124 128 "chromeos-ec", ec_dev); 125 129 if (err) { 126 130 dev_err(dev, "request irq %d: error %d\n", ec_dev->irq, err); 127 - goto fail_irq; 131 + return err; 128 132 } 129 133 130 134 err = mfd_add_devices(dev, 0, cros_devs, ··· 141 145 142 146 fail_mfd: 143 147 free_irq(ec_dev->irq, ec_dev); 144 - fail_irq: 145 - kfree(ec_dev->dout); 146 - fail_dout: 147 - kfree(ec_dev->din); 148 - fail_din: 148 + 149 149 return err; 150 150 } 151 151 EXPORT_SYMBOL(cros_ec_register); ··· 150 158 { 151 159 mfd_remove_devices(ec_dev->dev); 152 160 free_irq(ec_dev->irq, ec_dev); 153 - kfree(ec_dev->dout); 154 - kfree(ec_dev->din); 155 161 156 162 return 0; 157 163 }