All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] misc: Return error on error path
@ 2017-08-01 13:25 Anton Vasilyev
  2017-08-01 13:29 ` Andy Shevchenko
  2017-10-12 13:37 ` Jiri Kosina
  0 siblings, 2 replies; 3+ messages in thread
From: Anton Vasilyev @ 2017-08-01 13:25 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Anton Vasilyev, Colin Ian King, Jiri Kosina, linux-kernel, ldv-project

If ibmasm_event_buffer_init() or ibmasm_heartbeat_init() fails,
then ibmasm_init_one() release all resources and return 0 on error path.

The patch adds corresponding error for fails.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Anton Vasilyev <vasilyev@ispras.ru>
---
v2: change ibmasm_event_buffer_init() to return corresponding error and
 check return values as Andy Shevchenko suggested.
---
 drivers/misc/ibmasm/event.c  | 2 +-
 drivers/misc/ibmasm/module.c | 6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/misc/ibmasm/event.c b/drivers/misc/ibmasm/event.c
index 8e540f4..7e33025 100644
--- a/drivers/misc/ibmasm/event.c
+++ b/drivers/misc/ibmasm/event.c
@@ -155,7 +155,7 @@ int ibmasm_event_buffer_init(struct service_processor *sp)
 
 	buffer = kmalloc(sizeof(struct event_buffer), GFP_KERNEL);
 	if (!buffer)
-		return 1;
+		return -ENOMEM;
 
 	buffer->next_index = 0;
 	buffer->next_serial_number = 1;
diff --git a/drivers/misc/ibmasm/module.c b/drivers/misc/ibmasm/module.c
index c5a456b..e914b8c 100644
--- a/drivers/misc/ibmasm/module.c
+++ b/drivers/misc/ibmasm/module.c
@@ -94,12 +94,14 @@ static int ibmasm_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
 	snprintf(sp->dirname, IBMASM_NAME_SIZE, "%d", sp->number);
 	snprintf(sp->devname, IBMASM_NAME_SIZE, "%s%d", DRIVER_NAME, sp->number);
 
-	if (ibmasm_event_buffer_init(sp)) {
+	result = ibmasm_event_buffer_init(sp);
+	if (result) {
 		dev_err(sp->dev, "Failed to allocate event buffer\n");
 		goto error_eventbuffer;
 	}
 
-	if (ibmasm_heartbeat_init(sp)) {
+	result = ibmasm_heartbeat_init(sp);
+	if (result) {
 		dev_err(sp->dev, "Failed to allocate heartbeat command\n");
 		goto error_heartbeat;
 	}
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] misc: Return error on error path
  2017-08-01 13:25 [PATCH v2] misc: Return error on error path Anton Vasilyev
@ 2017-08-01 13:29 ` Andy Shevchenko
  2017-10-12 13:37 ` Jiri Kosina
  1 sibling, 0 replies; 3+ messages in thread
From: Andy Shevchenko @ 2017-08-01 13:29 UTC (permalink / raw)
  To: Anton Vasilyev; +Cc: Colin Ian King, Jiri Kosina, linux-kernel, ldv-project

On Tue, Aug 1, 2017 at 4:25 PM, Anton Vasilyev <vasilyev@ispras.ru> wrote:
> If ibmasm_event_buffer_init() or ibmasm_heartbeat_init() fails,
> then ibmasm_init_one() release all resources and return 0 on error path.
>
> The patch adds corresponding error for fails.
>
> Found by Linux Driver Verification project (linuxtesting.org).

Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>

> Signed-off-by: Anton Vasilyev <vasilyev@ispras.ru>
> ---
> v2: change ibmasm_event_buffer_init() to return corresponding error and
>  check return values as Andy Shevchenko suggested.
> ---
>  drivers/misc/ibmasm/event.c  | 2 +-
>  drivers/misc/ibmasm/module.c | 6 ++++--
>  2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/misc/ibmasm/event.c b/drivers/misc/ibmasm/event.c
> index 8e540f4..7e33025 100644
> --- a/drivers/misc/ibmasm/event.c
> +++ b/drivers/misc/ibmasm/event.c
> @@ -155,7 +155,7 @@ int ibmasm_event_buffer_init(struct service_processor *sp)
>
>         buffer = kmalloc(sizeof(struct event_buffer), GFP_KERNEL);
>         if (!buffer)
> -               return 1;
> +               return -ENOMEM;
>
>         buffer->next_index = 0;
>         buffer->next_serial_number = 1;
> diff --git a/drivers/misc/ibmasm/module.c b/drivers/misc/ibmasm/module.c
> index c5a456b..e914b8c 100644
> --- a/drivers/misc/ibmasm/module.c
> +++ b/drivers/misc/ibmasm/module.c
> @@ -94,12 +94,14 @@ static int ibmasm_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
>         snprintf(sp->dirname, IBMASM_NAME_SIZE, "%d", sp->number);
>         snprintf(sp->devname, IBMASM_NAME_SIZE, "%s%d", DRIVER_NAME, sp->number);
>
> -       if (ibmasm_event_buffer_init(sp)) {
> +       result = ibmasm_event_buffer_init(sp);
> +       if (result) {
>                 dev_err(sp->dev, "Failed to allocate event buffer\n");
>                 goto error_eventbuffer;
>         }
>
> -       if (ibmasm_heartbeat_init(sp)) {
> +       result = ibmasm_heartbeat_init(sp);
> +       if (result) {
>                 dev_err(sp->dev, "Failed to allocate heartbeat command\n");
>                 goto error_heartbeat;
>         }
> --
> 2.7.4
>



-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] misc: Return error on error path
  2017-08-01 13:25 [PATCH v2] misc: Return error on error path Anton Vasilyev
  2017-08-01 13:29 ` Andy Shevchenko
@ 2017-10-12 13:37 ` Jiri Kosina
  1 sibling, 0 replies; 3+ messages in thread
From: Jiri Kosina @ 2017-10-12 13:37 UTC (permalink / raw)
  To: Anton Vasilyev; +Cc: Andy Shevchenko, Colin Ian King, linux-kernel, ldv-project

On Tue, 1 Aug 2017, Anton Vasilyev wrote:

> If ibmasm_event_buffer_init() or ibmasm_heartbeat_init() fails,
> then ibmasm_init_one() release all resources and return 0 on error path.
> 
> The patch adds corresponding error for fails.
> 
> Found by Linux Driver Verification project (linuxtesting.org).
> 
> Signed-off-by: Anton Vasilyev <vasilyev@ispras.ru>
> ---
> v2: change ibmasm_event_buffer_init() to return corresponding error and
>  check return values as Andy Shevchenko suggested.
> ---
>  drivers/misc/ibmasm/event.c  | 2 +-
>  drivers/misc/ibmasm/module.c | 6 ++++--
>  2 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/misc/ibmasm/event.c b/drivers/misc/ibmasm/event.c
> index 8e540f4..7e33025 100644
> --- a/drivers/misc/ibmasm/event.c
> +++ b/drivers/misc/ibmasm/event.c
> @@ -155,7 +155,7 @@ int ibmasm_event_buffer_init(struct service_processor *sp)
>  
>  	buffer = kmalloc(sizeof(struct event_buffer), GFP_KERNEL);
>  	if (!buffer)
> -		return 1;
> +		return -ENOMEM;
>  
>  	buffer->next_index = 0;
>  	buffer->next_serial_number = 1;
> diff --git a/drivers/misc/ibmasm/module.c b/drivers/misc/ibmasm/module.c
> index c5a456b..e914b8c 100644
> --- a/drivers/misc/ibmasm/module.c
> +++ b/drivers/misc/ibmasm/module.c
> @@ -94,12 +94,14 @@ static int ibmasm_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
>  	snprintf(sp->dirname, IBMASM_NAME_SIZE, "%d", sp->number);
>  	snprintf(sp->devname, IBMASM_NAME_SIZE, "%s%d", DRIVER_NAME, sp->number);
>  
> -	if (ibmasm_event_buffer_init(sp)) {
> +	result = ibmasm_event_buffer_init(sp);
> +	if (result) {
>  		dev_err(sp->dev, "Failed to allocate event buffer\n");
>  		goto error_eventbuffer;
>  	}
>  
> -	if (ibmasm_heartbeat_init(sp)) {
> +	result = ibmasm_heartbeat_init(sp);
> +	if (result) {
>  		dev_err(sp->dev, "Failed to allocate heartbeat command\n");
>  		goto error_heartbeat;

Seems like this hasn't been picked up by anybody; applied to trivial.git 
now.

-- 
Jiri Kosina
SUSE Labs

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-10-12 13:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-01 13:25 [PATCH v2] misc: Return error on error path Anton Vasilyev
2017-08-01 13:29 ` Andy Shevchenko
2017-10-12 13:37 ` Jiri Kosina

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.