From: Charles Keepax <ckeepax@opensource.cirrus.com>
To: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Cc: Mika Westerberg <mika.westerberg@linux.intel.com>,
Wolfram Sang <wsa@the-dreams.de>,
Jarkko Nikula <jarkko.nikula@linux.intel.com>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Linux I2C <linux-i2c@vger.kernel.org>,
<linux-acpi@vger.kernel.org>, lkml <linux-kernel@vger.kernel.org>,
Jim Broadus <jbroadus@gmail.com>, <patches@opensource.cirrus.com>
Subject: Re: [PATCH v4 4/7] i2c: core: Make i2c_acpi_get_irq available to the rest of the I2C core
Date: Thu, 13 Jun 2019 16:06:11 +0100 [thread overview]
Message-ID: <20190613150611.GV28362@ediswmail.ad.cirrus.com> (raw)
In-Reply-To: <CAO-hwJL-U0n5oFP-QXX8rD2Fxt9mDOKp-AknRN6QwXEhZsUBYg@mail.gmail.com>
On Thu, Jun 13, 2019 at 11:32:47AM +0200, Benjamin Tissoires wrote:
> On Thu, Jun 13, 2019 at 10:49 AM Charles Keepax
> <ckeepax@opensource.cirrus.com> wrote:
> >
> > On Wed, Jun 12, 2019 at 06:27:18PM +0300, Mika Westerberg wrote:
> > > On Tue, Jun 11, 2019 at 01:30:58PM +0100, Charles Keepax wrote:
> > > > In preparation for more refactoring make i2c_acpi_get_irq available
> > > > outside i2c-core-acpi.c.
> > > >
> > > > Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
> > > > ---
> > > >
> > > > Changes since v3:
> > > > - Move the change to use the helper function from i2c-core-base into its own patch.
> > > >
> > > > Thanks,
> > > > Charles
> > > >
> > > > drivers/i2c/i2c-core-acpi.c | 15 +++++++++++++--
> > > > drivers/i2c/i2c-core.h | 7 +++++++
> > > > 2 files changed, 20 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
> > > > index 7d4d66ba752d4..35966cc337dde 100644
> > > > --- a/drivers/i2c/i2c-core-acpi.c
> > > > +++ b/drivers/i2c/i2c-core-acpi.c
> > > > @@ -144,8 +144,17 @@ static int i2c_acpi_add_resource(struct acpi_resource *ares, void *data)
> > > > return 1; /* No need to add resource to the list */
> > > > }
> > > >
> > > > -static int i2c_acpi_get_irq(struct acpi_device *adev)
> > > > +/**
> > > > + * i2c_acpi_get_irq - get device IRQ number from ACPI
> > > > + * @client: Pointer to the I2C client device
> > > > + *
> > > > + * Find the IRQ number used by a specific client device.
> > > > + *
> > > > + * Return: The IRQ number or an error code.
> > > > + */
> > > > +int i2c_acpi_get_irq(struct i2c_client *client)
> > > > {
> > > > + struct acpi_device *adev = ACPI_COMPANION(&client->adapter->dev);
> > >
> > > Is this adev checked for being NULL somewhere below before it is being
> > > dereferenced?
> > >
> > > It could explain the issue Benjamin is seeing.
> > >
> >
> > Yeah could be that or just for some reason this isn't returning
> > the same adev as we previously had. I will do some digging see if
> > I can find any likely culprits.
>
> That was almost the culprit: client is NULL here.
> So the call of i2c_acpi_find_client_by_adev(adev) fails.
>
> I guess this explains why the next commit is also not working :)
>
Ah.. yeah because at this stage this code is probably running
before that client has been created I think, this crept in on
that last splitting of the patch into two. Let me see if I can
come up with a new solution and do a new version. Thank you very
much for the help going through this.
Thanks,
Charles
WARNING: multiple messages have this Message-ID (diff)
From: Charles Keepax <ckeepax@opensource.cirrus.com>
To: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Cc: Mika Westerberg <mika.westerberg@linux.intel.com>,
Wolfram Sang <wsa@the-dreams.de>,
Jarkko Nikula <jarkko.nikula@linux.intel.com>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Linux I2C <linux-i2c@vger.kernel.org>,
linux-acpi@vger.kernel.org, lkml <linux-kernel@vger.kernel.org>,
Jim Broadus <jbroadus@gmail.com>,
patches@opensource.cirrus.com
Subject: Re: [PATCH v4 4/7] i2c: core: Make i2c_acpi_get_irq available to the rest of the I2C core
Date: Thu, 13 Jun 2019 16:06:11 +0100 [thread overview]
Message-ID: <20190613150611.GV28362@ediswmail.ad.cirrus.com> (raw)
In-Reply-To: <CAO-hwJL-U0n5oFP-QXX8rD2Fxt9mDOKp-AknRN6QwXEhZsUBYg@mail.gmail.com>
On Thu, Jun 13, 2019 at 11:32:47AM +0200, Benjamin Tissoires wrote:
> On Thu, Jun 13, 2019 at 10:49 AM Charles Keepax
> <ckeepax@opensource.cirrus.com> wrote:
> >
> > On Wed, Jun 12, 2019 at 06:27:18PM +0300, Mika Westerberg wrote:
> > > On Tue, Jun 11, 2019 at 01:30:58PM +0100, Charles Keepax wrote:
> > > > In preparation for more refactoring make i2c_acpi_get_irq available
> > > > outside i2c-core-acpi.c.
> > > >
> > > > Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
> > > > ---
> > > >
> > > > Changes since v3:
> > > > - Move the change to use the helper function from i2c-core-base into its own patch.
> > > >
> > > > Thanks,
> > > > Charles
> > > >
> > > > drivers/i2c/i2c-core-acpi.c | 15 +++++++++++++--
> > > > drivers/i2c/i2c-core.h | 7 +++++++
> > > > 2 files changed, 20 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
> > > > index 7d4d66ba752d4..35966cc337dde 100644
> > > > --- a/drivers/i2c/i2c-core-acpi.c
> > > > +++ b/drivers/i2c/i2c-core-acpi.c
> > > > @@ -144,8 +144,17 @@ static int i2c_acpi_add_resource(struct acpi_resource *ares, void *data)
> > > > return 1; /* No need to add resource to the list */
> > > > }
> > > >
> > > > -static int i2c_acpi_get_irq(struct acpi_device *adev)
> > > > +/**
> > > > + * i2c_acpi_get_irq - get device IRQ number from ACPI
> > > > + * @client: Pointer to the I2C client device
> > > > + *
> > > > + * Find the IRQ number used by a specific client device.
> > > > + *
> > > > + * Return: The IRQ number or an error code.
> > > > + */
> > > > +int i2c_acpi_get_irq(struct i2c_client *client)
> > > > {
> > > > + struct acpi_device *adev = ACPI_COMPANION(&client->adapter->dev);
> > >
> > > Is this adev checked for being NULL somewhere below before it is being
> > > dereferenced?
> > >
> > > It could explain the issue Benjamin is seeing.
> > >
> >
> > Yeah could be that or just for some reason this isn't returning
> > the same adev as we previously had. I will do some digging see if
> > I can find any likely culprits.
>
> That was almost the culprit: client is NULL here.
> So the call of i2c_acpi_find_client_by_adev(adev) fails.
>
> I guess this explains why the next commit is also not working :)
>
Ah.. yeah because at this stage this code is probably running
before that client has been created I think, this crept in on
that last splitting of the patch into two. Let me see if I can
come up with a new solution and do a new version. Thank you very
much for the help going through this.
Thanks,
Charles
next prev parent reply other threads:[~2019-06-13 15:06 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-11 12:30 [PATCH v4 0/7] I2C IRQ Probe Improvements Charles Keepax
2019-06-11 12:30 ` Charles Keepax
2019-06-11 12:30 ` [PATCH v4 1/7] i2c: core: Allow whole core to use i2c_dev_irq_from_resources Charles Keepax
2019-06-11 12:30 ` Charles Keepax
2019-06-11 12:30 ` [PATCH v4 2/7] i2c: acpi: Use available IRQ helper functions Charles Keepax
2019-06-11 12:30 ` Charles Keepax
2019-06-11 12:47 ` Andy Shevchenko
2019-06-11 12:30 ` [PATCH v4 3/7] i2c: acpi: Factor out getting the IRQ from ACPI Charles Keepax
2019-06-11 12:30 ` Charles Keepax
2019-06-11 12:30 ` [PATCH v4 4/7] i2c: core: Make i2c_acpi_get_irq available to the rest of the I2C core Charles Keepax
2019-06-11 12:30 ` Charles Keepax
2019-06-12 7:20 ` Mika Westerberg
2019-06-12 15:11 ` Benjamin Tissoires
2019-06-12 15:27 ` Mika Westerberg
2019-06-13 8:48 ` Charles Keepax
2019-06-13 8:48 ` Charles Keepax
2019-06-13 9:32 ` Benjamin Tissoires
2019-06-13 15:06 ` Charles Keepax [this message]
2019-06-13 15:06 ` Charles Keepax
2019-06-11 12:30 ` [PATCH v4 5/7] i2c: core: Move ACPI IRQ handling to probe time Charles Keepax
2019-06-11 12:30 ` Charles Keepax
2019-06-11 12:31 ` [PATCH v4 6/7] i2c: core: Move ACPI gpio IRQ handling into i2c_acpi_get_irq Charles Keepax
2019-06-11 12:31 ` Charles Keepax
2019-06-11 12:31 ` [PATCH v4 7/7] i2c: core: Tidy up handling of init_irq Charles Keepax
2019-06-11 12:31 ` Charles Keepax
2019-06-11 12:51 ` [PATCH v4 0/7] I2C IRQ Probe Improvements Andy Shevchenko
2019-06-11 15:16 ` Benjamin Tissoires
2019-06-11 15:28 ` Charles Keepax
2019-06-11 15:28 ` Charles Keepax
2019-06-12 15:13 ` Benjamin Tissoires
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=20190613150611.GV28362@ediswmail.ad.cirrus.com \
--to=ckeepax@opensource.cirrus.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=benjamin.tissoires@redhat.com \
--cc=jarkko.nikula@linux.intel.com \
--cc=jbroadus@gmail.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=patches@opensource.cirrus.com \
--cc=wsa@the-dreams.de \
/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.