Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1248052 > unrolled thread
| Started by | Insu Yun <wuninsu@gmail.com> |
|---|---|
| First post | 2015-10-15 20:10 +0200 |
| Last post | 2015-10-16 11:50 +0200 |
| Articles | 4 — 3 participants |
Back to article view | Back to linux.kernel
[PATCH] xen-netback: correctly check failed allocation Insu Yun <wuninsu@gmail.com> - 2015-10-15 20:10 +0200
Re: [PATCH] xen-netback: correctly check failed allocation Wei Liu <wei.liu2@citrix.com> - 2015-10-16 11:10 +0200
Re: [PATCH] xen-netback: correctly check failed allocation Wei Liu <wei.liu2@citrix.com> - 2015-10-16 11:30 +0200
Re: [Xen-devel] [PATCH] xen-netback: correctly check failed allocation David Vrabel <david.vrabel@citrix.com> - 2015-10-16 11:50 +0200
| From | Insu Yun <wuninsu@gmail.com> |
|---|---|
| Date | 2015-10-15 20:10 +0200 |
| Subject | [PATCH] xen-netback: correctly check failed allocation |
| Message-ID | <qjV8u-5Jg-23@gated-at.bofh.it> |
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;
+ }
+
be->vif->num_queues = requested_num_queues;
be->vif->stalled_queues = requested_num_queues;
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Wei Liu <wei.liu2@citrix.com> |
|---|---|
| Date | 2015-10-16 11:10 +0200 |
| Message-ID | <qk9bs-1EB-5@gated-at.bofh.it> |
| In reply to | #1248052 |
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.
The existing code is not perfect, but that doesn't mean we should follow
bad example.
Wei.
>
> > + }
> > +
> > be->vif->num_queues = requested_num_queues;
> > be->vif->stalled_queues = requested_num_queues;
> >
> > --
> > 1.9.1
> >
> >
>
>
> --
> Regards
> Insu Yun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Wei Liu <wei.liu2@citrix.com> |
|---|---|
| Date | 2015-10-16 11:30 +0200 |
| Message-ID | <qk9uP-22l-15@gated-at.bofh.it> |
| In reply to | #1248495 |
On Fri, Oct 16, 2015 at 10:05:21AM +0100, 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.
>
> The existing code is not perfect, but that doesn't mean we should follow
> bad example.
And to be clear, I don't want to block this patch just because of this
coding style thing. It's still an improvement and fix a real problem.
So:
Acked-by: Wei Liu <wei.liu2@citrix.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | David Vrabel <david.vrabel@citrix.com> |
|---|---|
| Date | 2015-10-16 11:50 +0200 |
| Subject | Re: [Xen-devel] [PATCH] xen-netback: correctly check failed allocation |
| Message-ID | <qk9Ob-2oP-23@gated-at.bofh.it> |
| In reply to | #1248495 |
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web