mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jean Delvare <khali@linux-fr.org>
To: Giel van Schijndel <me@mortis.eu>
Cc: Hans de Goede <hdegoede@redhat.com>,
	Jonathan Cameron <jic23@cam.ac.uk>,
	Laurens Leemans <laurens@signips.com>,
	lm-sensors@lm-sensors.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] hwmon: f71882fg: properly acquire I/O regions while  probing
Date: Wed, 24 Mar 2010 10:28:16 +0100	[thread overview]
Message-ID: <20100324102816.36d70c18@hyperion.delvare> (raw)
In-Reply-To: <20100324084643.GB6368@salidar.me.mortis.eu>

Hi Giel,

On Wed, 24 Mar 2010 09:46:43 +0100, Giel van Schijndel wrote:
> On Wed, Mar 24, 2010 at 09:14:14AM +0100, Hans de Goede wrote:
> > I don't have any objections against the proposed changes, but there
> > are 3 unrelated changes in this patch, please break them up in
> > separate patches:
> > 
> > 1) code cleanup: properly using, previously defined, functions rather
> >    than duplicating their code.
> > 2) properly acquire I/O regions while probing
> > 3) Make the addresses to probe an array
> > 
> > And IMHO you might just as well drop number 3, it does not really make
> > the code any better readable, and the old way is how all superio hwmon
> > drivers do things.
> 
> Okay, broken up patches will follow as replies to this message.
> 
> Regarding number (3), my goal wasn't to put the probe addresses in an
> array. My goal (as I think should have been made clear by the commit
> message I had added) was to make sure that upon failure f71882fg_find's
> return value gets passed back from the module's init function. This to
> make sure the *proper* error code gets passed back to the user of
> insmod/modprobe (as opposed to it being replaced by -ENODEV).

This doesn't make much sense. We call f71882fg_find up to twice, so we
can get up to 2 error codes, but the module init function can only
return one. There is no rationale for favoring the value returned by
the second call over the value returned by the first call. So it seems
reasonable to return an arbitrary error code. Of course we could spend
code comparing the error values and returning the right one if the two
functions returned the same error value, and only use the arbitrary
default if they returned different values. But honestly I don't see any
point in doing this in practice. Let's just log errors other than
-ENODEV so that the user can see the exact cause of failure in the
kernel log.

> Further I think non -ENODEV errors should probably immediately result in
> module initialisation failing (rather than retrying a probe), that's a
> design choice though (which my patch doesn't bother addressing right
> now).

I disagree. If the probe of 0x2e/0x2f fails because that region was busy,
this should not prevent us from giving a try to region 0x4e/0x4f. I
can't think of any error that would warrant avoiding the probe at
0x4e/0x4f. Worse thing that can happen is that the second probe fails
too. No big deal.

> However, regarding the for-loop/array thing, the same behaviour can be
> aqcuired with a patch like the one following this line. (Please tell me
> if you like this approach or something similar better. Though,
> personally, I think it's "hackisher"/dirtier).
> 
> diff --git a/drivers/hwmon/f71882fg.c b/drivers/hwmon/f71882fg.c
> index 4230729..42d6304 100644
> --- a/drivers/hwmon/f71882fg.c
> +++ b/drivers/hwmon/f71882fg.c
> @@ -2295,9 +2295,11 @@ static int __init f71882fg_init(void)
>  
>         memset(&sio_data, 0, sizeof(sio_data));
>  
> -       if (f71882fg_find(0x2e, &address, &sio_data) &&
> -           f71882fg_find(0x4e, &address, &sio_data))
> -               goto exit;
> +       if (f71882fg_find(0x2e, &address, &sio_data)) {
> +               err = f71882fg_find(0x4e, &address, &sio_data);
> +               if (err)
> +                       goto exit;
> +       }
>  
>         err = platform_driver_register(&f71882fg_driver);
>         if (err)
> 

I don't like either implementation, I would leave the code as it is
today.

-- 
Jean Delvare

  parent reply	other threads:[~2010-03-24  9:28 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-23 14:12 Giel van Schijndel
2010-03-23 14:17 ` Giel van Schijndel
2010-03-23 23:12   ` [PATCH 1/4] [RFC] hwmon: f71882fg: Add support for the Fintek F71808E Giel van Schijndel
2010-03-23 23:12     ` [PATCH 2/4] hwmon: f71882fg: prepare for addition of watchdog support Giel van Schijndel
2010-03-23 23:12       ` [PATCH 3/4] hwmon: f71882fg: add watchdog detection code Giel van Schijndel
2010-03-23 23:12         ` [PATCH 4/4] [RFC] hwmon: f71882fg: Add watchdog API for F71808E and F71889 Giel van Schijndel
2010-03-23 23:26           ` Giel van Schijndel
2010-03-24  8:37           ` Hans de Goede
2010-03-24  9:36             ` Giel van Schijndel
2010-03-24 10:33               ` Hans de Goede
2010-03-24 15:35                 ` Giel van Schijndel
2010-03-24 15:51                   ` Alan Cox
2010-03-24 16:20                     ` Hans de Goede
2010-03-24 20:35                       ` Giel van Schijndel
2010-04-25 21:20                         ` [lm-sensors] " Jim Cromie
2010-03-25  8:54                     ` Giel van Schijndel
2010-03-25 10:40                       ` Giel van Schijndel
2010-03-25 12:50                         ` Alan Cox
2010-03-25 13:06                           ` Hans de Goede
2010-03-25 13:17                           ` [PATCH 1/3] resource: shared I/O region support Giel van Schijndel
2010-03-25 13:17                             ` [PATCH 2/3] hwmon: f71882fg: use a muxed resource lock for the Super I/O port Giel van Schijndel
2010-03-25 13:17                               ` [PATCH 3/3] [RFC] watchdog: f71808e_wdt: new watchdog driver for Fintek F71808E Giel van Schijndel
2010-03-30  9:06                                 ` Giel van Schijndel
2010-05-20  7:52                                   ` Wim Van Sebroeck
2010-05-25 21:08                                     ` Giel van Schijndel
2010-05-26  7:38                                       ` Wim Van Sebroeck
2010-07-31 21:36                                         ` Giel van Schijndel
2010-03-25 21:10                               ` [PATCH 2/3] hwmon: f71882fg: use a muxed resource lock for the Super I/O port Hans de Goede
2010-04-25 10:35                               ` Giel van Schijndel
2010-07-31 21:21                                 ` Giel van Schijndel
2010-03-25 15:57                             ` [PATCH 1/3] resource: shared I/O region support Alan Cox
2010-03-25 18:03                               ` Giel van Schijndel
2010-03-25 18:16                                 ` Alan Cox
2010-03-29  8:18                                   ` Giel van Schijndel
2010-03-29 16:07                                     ` Jesse Barnes
2010-03-29 17:38                                       ` Giel van Schijndel
2010-03-29 17:44                                         ` Giel van Schijndel
2010-03-29 17:45                                         ` H. Peter Anvin
2010-03-29 18:06                                           ` Jesse Barnes
2010-03-29 18:17                                             ` H. Peter Anvin
2010-03-29 18:29                                             ` Alan Cox
2010-04-02 20:29                                               ` Jesse Barnes
2010-03-29 18:39                                           ` Alan Cox
2010-03-29 18:56                                             ` H. Peter Anvin
2010-03-29 17:59                                         ` Jesse Barnes
2010-03-29 17:59                                         ` Jesse Barnes
2010-03-24  8:26       ` [PATCH 2/4] hwmon: f71882fg: prepare for addition of watchdog support Hans de Goede
2010-03-24  8:36       ` Hans de Goede
2010-03-24  8:25     ` [PATCH 1/4] [RFC] hwmon: f71882fg: Add support for the Fintek F71808E Hans de Goede
2010-03-24  9:23       ` [PATCH 1/4] " Giel van Schijndel
2010-03-24 10:31         ` Hans de Goede
2010-07-31 23:31           ` Giel van Schijndel
2010-08-01  6:12             ` Hans de Goede
2010-08-01 13:22               ` Giel van Schijndel
2010-08-01 13:30                 ` [PATCH] " Giel van Schijndel
2010-08-04 11:36                   ` Hans de Goede
2010-08-04 15:44                     ` Giel van Schijndel
2010-08-13 10:56                       ` Hans de Goede
2010-08-10 19:11                     ` Giel van Schijndel
2010-08-13 10:01                       ` Hans de Goede
2010-08-18 18:24                         ` Andrew Morton
2010-08-22 18:04                           ` Hans de Goede
2010-08-22 18:28                             ` Giel van Schijndel
2010-08-01 13:30                 ` [PATCH 1/2] hwmon: f71882fg: use a muxed resource lock for the Super I/O port Giel van Schijndel
2010-08-01 13:30                   ` [PATCH 2/2] watchdog: f71808e_wdt: new watchdog driver for Fintek F71808E and F71882FG Giel van Schijndel
2010-08-04 11:38                   ` [PATCH 1/2] hwmon: f71882fg: use a muxed resource lock for the Super I/O port Hans de Goede
2010-10-02 22:59                     ` Giel van Schijndel
2010-10-03  1:06                       ` Guenter Roeck
2010-10-03  9:01                         ` Jean Delvare
2010-10-03 12:09                         ` [PATCH] " Giel van Schijndel
2010-10-03 13:31                           ` Guenter Roeck
2010-03-23 23:01 ` [PATCH] hwmon: f71882fg: properly acquire I/O regions while probing Giel van Schijndel
2010-03-24  8:14 ` Hans de Goede
2010-03-24  8:46   ` Giel van Schijndel
2010-03-24  9:09     ` [PATCH] hwmon: f71882fg: code cleanup Giel van Schijndel
2010-03-24 12:54       ` Jean Delvare
2010-03-24  9:09     ` [PATCH] hwmon: f71882fg: acquire I/O regions while we're working with them Giel van Schijndel
2010-03-24  9:28     ` Jean Delvare [this message]
2010-03-24  9:29 ` [PATCH] hwmon: f71882fg: properly acquire I/O regions while probing Jean Delvare
2010-03-24  9:34   ` Giel van Schijndel
2010-03-24 12:54     ` Jean Delvare

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=20100324102816.36d70c18@hyperion.delvare \
    --to=khali@linux-fr.org \
    --cc=hdegoede@redhat.com \
    --cc=jic23@cam.ac.uk \
    --cc=laurens@signips.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lm-sensors@lm-sensors.org \
    --cc=me@mortis.eu \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome