From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932143AbbDHNaf (ORCPT ); Wed, 8 Apr 2015 09:30:35 -0400 Received: from mail-pa0-f43.google.com ([209.85.220.43]:32774 "EHLO mail-pa0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754346AbbDHNac (ORCPT ); Wed, 8 Apr 2015 09:30:32 -0400 From: Sudip Mukherjee To: Arnd Bergmann , Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, dan.carpenter@oracle.com, Sudip Mukherjee Subject: [PATCH v2 2/2] ppdev: return proper error values from attach Date: Wed, 8 Apr 2015 19:00:17 +0530 Message-Id: <1428499817-12065-2-git-send-email-sudipm.mukherjee@gmail.com> X-Mailer: git-send-email 1.8.1.2 In-Reply-To: <1428499817-12065-1-git-send-email-sudipm.mukherjee@gmail.com> References: <1428499817-12065-1-git-send-email-sudipm.mukherjee@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org As of now, parport_register_driver() never fails, so even if device_create() fails for some reason we will still think that the module has initialized properly. lets start using attach_ret and return the proper return value from device_create(), so that if device_create fails for some reason then module_init will also fail. Signed-off-by: Sudip Mukherjee --- drivers/char/ppdev.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/char/ppdev.c b/drivers/char/ppdev.c index ae0b42b..ed38071 100644 --- a/drivers/char/ppdev.c +++ b/drivers/char/ppdev.c @@ -748,10 +748,14 @@ static const struct file_operations pp_fops = { .release = pp_release, }; -static void pp_attach(struct parport *port) +static int pp_attach(struct parport *port) { - device_create(ppdev_class, port->dev, MKDEV(PP_MAJOR, port->number), - NULL, "parport%d", port->number); + struct device *dev; + + dev = device_create(ppdev_class, port->dev, + MKDEV(PP_MAJOR, port->number), NULL, + "parport%d", port->number); + return PTR_ERR_OR_ZERO(dev); } static void pp_detach(struct parport *port) @@ -761,7 +765,7 @@ static void pp_detach(struct parport *port) static struct parport_driver pp_driver = { .name = CHRDEV, - .attach = pp_attach, + .attach_ret = pp_attach, .detach = pp_detach, }; -- 1.8.1.2