All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: kernel-janitors@vger.kernel.org
Subject: Re: [bug report] x86/sfi: Enable enumeration of SD devices
Date: Tue, 30 Aug 2016 11:13:25 +0000	[thread overview]
Message-ID: <1472555605.4887.383.camel@linux.intel.com> (raw)
In-Reply-To: <20160715192348.GA6521@mwanda>

On Tue, 2016-08-30 at 13:06 +0200, walter harms wrote:
> 
> Am 30.08.2016 11:46, schrieb Andy Shevchenko:
> > 
> > On Mon, 2016-08-29 at 20:59 +0000, Kuppuswamy, Sathyanarayanan
> > wrote:
> > > 
> > > Hi Andy/Dan,
> > > 
> > > Thanks for catching this bug. As Andy mentioned, this code is
> > > written
> > > in this manner to let the get_platform_data() function pointer to
> > > return the error value on initialization failure. But it has never
> > > been used properly in any of the existing code. So my suggestion
> > > is
> > > either change the platform_lib code to return ERR_PTR on failure
> > > or
> > > change the intel_mid_sfi_get_pdata to check for NULL as well.
> > > Since
> > > all the use case of intel_mid_sfi_get_pdata are void functions, I
> > > would prefer to go with second solution. Please let me know your
> > > comments.
> > > 
> > > diff --git a/arch/x86/platform/intel-mid/sfi.c
> > > b/arch/x86/platform/intel-mid/sfi.c
> > > index 051d264..a6bd275 100644
> > > --- a/arch/x86/platform/intel-mid/sfi.c
> > > +++ b/arch/x86/platform/intel-mid/sfi.c
> > > @@ -336,7 +336,7 @@ static void __init sfi_handle_ipc_dev(struct
> > > sfi_device_table_entry *pentry,
> > >         pr_debug("IPC bus, name = %16.16s, irq = 0x%2x\n",
> > >                 pentry->name, pentry->irq);
> > >         pdata = intel_mid_sfi_get_pdata(dev, pentry);
> > > -       if (IS_ERR(pdata))
> > > +       if (IS_ERR_OR_NULL(pdata))
> > 
> > But this looks wrong.
> > pdata = NULL is valid case for many devices! In other words pdata
> > is an
> > optional argument to the device drivers.
> > 
> 
> Yep, the way is wrong.
> NULL can say: get_platform_data does not exists
> or get_platform_data() returned NULL (what ever that means).
> 
> IMHO it feels better to drop the define and replace it
> with a proper function call and error.

Yeah, this direction looks better, thanks.

> 
> #define intel_mid_sfi_get_pdata(dev, priv)      \
>          ((dev)->get_platform_data ? (dev)->get_platform_data(priv) :
> NULL)
> 
> 
> void *fkt(struct devs_id *dev, void *info)
> {
>      if ( ! dev->get_platform_data)
> 	  return ERR_PTR(-ENOSYS);
> 
> 	return dev->get_platform_data(info);
> }
> 

> > > I've checked all upstreamed platform modules
> > > (arch/x86/platform/intel-
> > > mid/device_libs/) and noticed that not a single one returns
> > > ERR_PTR.
> > > 
> > > Though I think the idea was to provide a way to fail
> > > initialization in
> > > some cases where hardware must be initialized properly. Maybe
> > > David or
> > > Sathya can shed a light on this.
> > > 
> > > If we decide to change that it should be done for all so called
> > > device
> > > handlers in sfi.c.
> > > 
> > > --
> > > Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > > Intel Finland Oy
> > 

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

  parent reply	other threads:[~2016-08-30 11:13 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-15 19:23 [bug report] x86/sfi: Enable enumeration of SD devices Dan Carpenter
2016-08-09 15:32 ` Andy Shevchenko
2016-08-09 17:58 ` Dan Carpenter
2016-08-28 13:31 ` Andy Shevchenko
2016-08-29 20:59 ` Kuppuswamy, Sathyanarayanan
2016-08-30  9:46 ` Andy Shevchenko
2016-08-30 11:06 ` walter harms
2016-08-30 11:13 ` Andy Shevchenko [this message]
2016-08-30 18:18 ` Sathyanarayanan Kuppuswamy
2016-09-07  1:04   ` [PATCH 1/1] intel-mid: Fix sfi get_platform_data() return value issues Kuppuswamy Sathyanarayanan
2016-09-07  1:04     ` Kuppuswamy Sathyanarayanan
2016-09-07 12:15     ` Andy Shevchenko
2016-09-07 12:15       ` Andy Shevchenko
2016-09-08  0:04       ` sathyanarayanan kuppuswamy
2016-09-08  0:04         ` sathyanarayanan kuppuswamy
2016-09-08  9:49         ` Andy Shevchenko
2016-09-08  9:49           ` Andy Shevchenko
2016-09-08  0:05     ` [PATCH v2 " Kuppuswamy Sathyanarayanan
2016-09-08  0:05       ` Kuppuswamy Sathyanarayanan
2016-09-08 12:51       ` Andy Shevchenko
2016-09-08 12:51         ` Andy Shevchenko
2016-09-08 22:41         ` sathyanarayanan kuppuswamy
2016-09-08 22:41           ` sathyanarayanan kuppuswamy
2016-09-09 11:20           ` Andy Shevchenko
2016-09-09 11:20             ` Andy Shevchenko
2016-09-09  2:07     ` [PATCH v3 1/3] " Kuppuswamy Sathyanarayanan
2016-09-09  2:07       ` Kuppuswamy Sathyanarayanan
2016-09-09  2:07     ` [PATCH v3 2/3] intel-mid: Add valid error messages on init failure Kuppuswamy Sathyanarayanan
2016-09-09  2:07       ` Kuppuswamy Sathyanarayanan
2016-09-09 11:27       ` Andy Shevchenko
2016-09-09 11:27         ` Andy Shevchenko
2016-09-09  2:07     ` [PATCH v3 3/3] intel-mid: Move boundry check to the start of init code Kuppuswamy Sathyanarayanan
2016-09-09  2:07       ` Kuppuswamy Sathyanarayanan
2016-09-09 11:30       ` Andy Shevchenko
2016-09-09 11:30         ` Andy Shevchenko
2016-09-01 13:17 ` [bug report] x86/sfi: Enable enumeration of SD devices Andy Shevchenko
2016-09-07  0:51 ` Sathyanarayanan Kuppuswamy
2016-09-07 12:00 ` Andy Shevchenko

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=1472555605.4887.383.camel@linux.intel.com \
    --to=andriy.shevchenko@linux.intel.com \
    --cc=kernel-janitors@vger.kernel.org \
    /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.