From: Cyrill Gorcunov <gorcunov@gmail.com>
To: Pete Zaitcev <zaitcev@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
linux-kernel-list <linux-kernel@vger.kernel.org>,
"Luiz Fernando N. Capitulino" <lcapitulino@mandriva.com.br>
Subject: Re: [PATCH] USB Elan FTDI: check for driver registration status
Date: Tue, 27 Mar 2007 22:16:08 +0400 [thread overview]
Message-ID: <20070327181608.GC11753@cvg> (raw)
In-Reply-To: <20070327105116.d3eea47a.zaitcev@redhat.com>
[Pete Zaitcev - Tue, Mar 27, 2007 at 10:51:16AM -0700]
| On Tue, 27 Mar 2007 19:14:05 +0400, Cyrill Gorcunov <gorcunov@gmail.com> wrote:
|
| > --- a/drivers/usb/misc/ftdi-elan.c
| > @@ -2903,7 +2903,7 @@ static struct usb_driver ftdi_elan_driver = {
| > };
| > static int __init ftdi_elan_init(void)
| > {
| > - int result;
| > + int result = 0;
|
| Why do you need this?
Setting result to 0 indicate that there is no errors. Pete, look
this init code does the following -
1) creates 3 workqueues
2) register usb driver
So we have:
- at each step of creating worqueue we have to check if it was
succsessfull
- if all workqeues were successfully created we need to check if
usb registration failed
So we can get error on any step and there is a question how to properly
and eleganly handle them... the solution I proposed maybe is not ideal
but you may help me supposing your own patch :)
And as result I set 'results=0' to prevent from printing message about
worqueue fails if the error _really_ occured in usb_register. Just
review the function at whole and you will find the reason.
| > @@ -2918,18 +2918,25 @@ static int __init ftdi_elan_init(void)
| > if (!respond_queue)
| > goto err3;
| > result = usb_register(&ftdi_elan_driver);
| > - if (result)
| > + if (result) {
| > printk(KERN_ERR "usb_register failed. Error number %d\n",
| > result);
| > + goto err4;
| > + }
| > return result;
| >
| > + err4:
| > + destroy_workqueue(respond_queue);
| > err3:
|
| This is fine, although I do wish you wouldn't number the exception labels.
| If anything is changed, someone might try to rearrange and renumber them
| and that leads to bugs.
Agree, may be the labels could be like:
err_respond_queue:
and so on?
|
| > err1:
| > - printk(KERN_ERR "%s couldn't create workqueue\n", ftdi_elan_driver.name);
| > - return -ENOMEM;
| > + if (result == 0) {
| > + result = -ENOMEM;
| > + printk(KERN_ERR "%s couldn't create workqueue\n", ftdi_elan_driver.name);
| > + }
| > + return result;
|
| What in the world is this supposed to do? Under what conditions can
| result be zero here?
If error was in worqueue creation then there will be 0.
|
| Personally, I would get rid of the printk. If your modprobe fails,
| it's a good enough indication. Or at least, change the text to
| something more neutral, like "unable to initialize (%d)" and print
| the error code. It's not just about workqueues now.
|
| -- Pete
|
Can't agree... if modprobe failed I wonna know _where_ it happens and
why :) Or maybe I misunderstood you...
Cyrill
prev parent reply other threads:[~2007-03-27 18:20 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-25 7:27 [PATCH] USB Elan FTDI: check for driver registration status Cyrill Gorcunov
2007-03-26 18:43 ` Luiz Fernando N. Capitulino
2007-03-26 19:33 ` Cyrill Gorcunov
2007-03-26 19:56 ` Luiz Fernando N. Capitulino
2007-03-28 16:00 ` Cyrill Gorcunov
2007-03-28 18:41 ` Pete Zaitcev
2007-03-26 22:17 ` Pete Zaitcev
2007-03-27 15:14 ` Cyrill Gorcunov
2007-03-27 16:28 ` Luiz Fernando N. Capitulino
2007-03-27 17:01 ` Cyrill Gorcunov
2007-03-27 17:29 ` Luiz Fernando N. Capitulino
2007-03-27 17:37 ` Cyrill Gorcunov
2007-03-27 17:51 ` Pete Zaitcev
2007-03-27 18:16 ` Cyrill Gorcunov [this message]
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=20070327181608.GC11753@cvg \
--to=gorcunov@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=lcapitulino@mandriva.com.br \
--cc=linux-kernel@vger.kernel.org \
--cc=zaitcev@redhat.com \
/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.