@@ -874,32 +874,35 @@ static int snd_mts64_probe_port(struct parport *p)
return res;
}
-static void snd_mts64_attach(struct parport *p)
+static int snd_mts64_attach(struct parport *p)
{
struct platform_device *device;
+ int ret;
device = platform_device_alloc(PLATFORM_DRIVER, device_count);
if (!device)
- return;
+ return -ENOMEM;
/* Temporary assignment to forward the parport */
platform_set_drvdata(device, p);
- if (platform_device_add(device) < 0) {
+ ret = platform_device_add(device);
+ if (ret < 0) {
platform_device_put(device);
- return;
+ return ret;
}
/* Since we dont get the return value of probe
* We need to check if device probing succeeded or not */
if (!platform_get_drvdata(device)) {
platform_device_unregister(device);
- return;
+ return -ENODEV;
}
/* register device in global table */
platform_devices[device_count] = device;
device_count++;
+ return 0;
}
static void snd_mts64_detach(struct parport *p)
now that we are monitoring the return value from attach, make the required changes to return proper value from its attach function. Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> --- sound/drivers/mts64.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)