All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Vrabel <david.vrabel@citrix.com>
To: Wei Liu <wei.liu2@citrix.com>, Insu Yun <wuninsu@gmail.com>
Cc: Yeongjin Jang <yeongjin.jang@gatech.edu>,
	Taesoo Kim <taesoo@gatech.edu>,
	Ian Campbell <ian.campbell@citrix.com>, <netdev@vger.kernel.org>,
	"Yun, Insu" <insu@gatech.edu>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [Xen-devel] [PATCH] xen-netback: correctly check failed allocation
Date: Fri, 16 Oct 2015 10:40:59 +0100	[thread overview]
Message-ID: <5620C62B.4000001@citrix.com> (raw)
In-Reply-To: <20151016090521.GJ32638@zion.uk.xensource.com>

On 16/10/15 10:05, Wei Liu wrote:
> On Thu, Oct 15, 2015 at 02:02:47PM -0400, Insu Yun wrote:
>> I changed patch with valid format.
>>
>> On Thu, Oct 15, 2015 at 2:02 PM, Insu Yun <wuninsu@gmail.com> wrote:
>>
>>> Since vzalloc can be failed in memory pressure,
>>> writes -ENOMEM to xenstore to indicate error.
>>>
>>> Signed-off-by: Insu Yun <wuninsu@gmail.com>
>>> ---
>>>  drivers/net/xen-netback/xenbus.c | 6 ++++++
>>>  1 file changed, 6 insertions(+)
>>>
>>> diff --git a/drivers/net/xen-netback/xenbus.c
>>> b/drivers/net/xen-netback/xenbus.c
>>> index 929a6e7..56ebd82 100644
>>> --- a/drivers/net/xen-netback/xenbus.c
>>> +++ b/drivers/net/xen-netback/xenbus.c
>>> @@ -788,6 +788,12 @@ static void connect(struct backend_info *be)
>>>         /* Use the number of queues requested by the frontend */
>>>         be->vif->queues = vzalloc(requested_num_queues *
>>>                                   sizeof(struct xenvif_queue));
>>> +       if (!be->vif->queues) {
>>> +               xenbus_dev_fatal(dev, -ENOMEM,
>>> +                                "allocating queues");
>>> +               return;
>>>
>>
>> I didn't use goto err, because another error handling is not required
>>
> 
> It's recommended in kernel coding style to use "goto" style error
> handling. I personally prefer that to arbitrary return in function body,
> too.
> 
> It's not a matter of whether another error handling is required or not,
> it's about cleaner code that is easy to reason about and consistent
> coding style.

Using xenbus_dev_fatal(); return; throughout would be consistent and
easy to reason about.

Also, the goto err path should raise a fatal error (instead of
disconnecting).  I also note that failures in the xen_net_read_rate(),
xen_register_watchers() and read_xenbus_vif_flags() are also not handled.

David

  parent reply	other threads:[~2015-10-16  9:41 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-15 18:02 [PATCH] xen-netback: correctly check failed allocation Insu Yun
2015-10-15 18:02 ` Insu Yun
2015-10-16  9:05   ` Wei Liu
2015-10-16  9:28     ` Wei Liu
2015-10-16  9:28     ` Wei Liu
2015-10-16  9:40     ` David Vrabel
2015-10-16  9:40     ` David Vrabel [this message]
2015-10-16 12:48       ` Insu Yun
2015-10-16  9:05   ` Wei Liu
2015-10-19  2:37 ` David Miller
2015-10-19  2:37 ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5620C62B.4000001@citrix.com \
    --to=david.vrabel@citrix.com \
    --cc=ian.campbell@citrix.com \
    --cc=insu@gatech.edu \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=taesoo@gatech.edu \
    --cc=wei.liu2@citrix.com \
    --cc=wuninsu@gmail.com \
    --cc=xen-devel@lists.xenproject.org \
    --cc=yeongjin.jang@gatech.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.