2020-02-20 03:40:29

by chenzhou

[permalink] [raw]
Subject: [PATCH -next] platform/x86: intel_pmc_core: fix build error without CONFIG_DEBUG_FS

If CONFIG_DEBUG_FS is n, build fails:

drivers/platform/x86/intel_pmc_core.c: In function pmc_core_resume:
drivers/platform/x86/intel_pmc_core.c:1327:3: error: implicit declaration of function pmc_core_slps0_display; did you mean pmc_core_is_pc10_failed? [-Werror=implicit-function-declaration]
pmc_core_slps0_display(pmcdev, dev, NULL);
^~~~~~~~~~~~~~~~~~~~~~

Function pmc_core_slps0_display() is responsible for displaying debug
registers, which is under CONFIG_DEBUG_FS.

Providing the static inline stub whenever CONFIG_DEBUG_FS is disabled
to fix this. Function pmc_core_lpm_display() is the same.

Reported-by: Hulk Robot <[email protected]>
Signed-off-by: Chen Zhou <[email protected]>
---
drivers/platform/x86/intel_pmc_core.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)

diff --git a/drivers/platform/x86/intel_pmc_core.c b/drivers/platform/x86/intel_pmc_core.c
index f4a36fb..939f8e0 100644
--- a/drivers/platform/x86/intel_pmc_core.c
+++ b/drivers/platform/x86/intel_pmc_core.c
@@ -1117,6 +1117,20 @@ static void pmc_core_dbgfs_register(struct pmc_dev *pmcdev)
}
}
#else
+static inline void pmc_core_slps0_display(struct pmc_dev *pmcdev,
+ struct device *dev,
+ struct seq_file *s)
+{
+}
+
+static inline void pmc_core_lpm_display(struct pmc_dev *pmcdev,
+ struct device *dev,
+ struct seq_file *s, u32 offset,
+ const char *str,
+ const struct pmc_bit_map **maps)
+{
+}
+
static inline void pmc_core_dbgfs_register(struct pmc_dev *pmcdev)
{
}
--
2.7.4


2020-02-25 10:14:10

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH -next] platform/x86: intel_pmc_core: fix build error without CONFIG_DEBUG_FS

On Thu, Feb 20, 2020 at 5:40 AM Chen Zhou <[email protected]> wrote:
>
> If CONFIG_DEBUG_FS is n, build fails:
>
> drivers/platform/x86/intel_pmc_core.c: In function pmc_core_resume:
> drivers/platform/x86/intel_pmc_core.c:1327:3: error: implicit declaration of function pmc_core_slps0_display; did you mean pmc_core_is_pc10_failed? [-Werror=implicit-function-declaration]
> pmc_core_slps0_display(pmcdev, dev, NULL);
> ^~~~~~~~~~~~~~~~~~~~~~
>
> Function pmc_core_slps0_display() is responsible for displaying debug
> registers, which is under CONFIG_DEBUG_FS.
>
> Providing the static inline stub whenever CONFIG_DEBUG_FS is disabled
> to fix this. Function pmc_core_lpm_display() is the same.

Thank you for the patch, but I think it's not the right approach.
Basically we need to move those functions outside of #if
IS_ENABLED(CONFIG_DEBUG_FS).
(Move them upper).

Also I have noticed another issue in pmc_core_lpm_display(). It uses
tgl_lpm_maps directly. It shouldn't.

Cc: Gayatri.

Gayatri, care to fix?

> Reported-by: Hulk Robot <[email protected]>
> Signed-off-by: Chen Zhou <[email protected]>
> ---
> drivers/platform/x86/intel_pmc_core.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/drivers/platform/x86/intel_pmc_core.c b/drivers/platform/x86/intel_pmc_core.c
> index f4a36fb..939f8e0 100644
> --- a/drivers/platform/x86/intel_pmc_core.c
> +++ b/drivers/platform/x86/intel_pmc_core.c
> @@ -1117,6 +1117,20 @@ static void pmc_core_dbgfs_register(struct pmc_dev *pmcdev)
> }
> }
> #else
> +static inline void pmc_core_slps0_display(struct pmc_dev *pmcdev,
> + struct device *dev,
> + struct seq_file *s)
> +{
> +}
> +
> +static inline void pmc_core_lpm_display(struct pmc_dev *pmcdev,
> + struct device *dev,
> + struct seq_file *s, u32 offset,
> + const char *str,
> + const struct pmc_bit_map **maps)
> +{
> +}
> +
> static inline void pmc_core_dbgfs_register(struct pmc_dev *pmcdev)
> {
> }
> --
> 2.7.4
>


--
With Best Regards,
Andy Shevchenko

2020-02-25 17:27:15

by Kammela, Gayatri

[permalink] [raw]
Subject: RE: [PATCH -next] platform/x86: intel_pmc_core: fix build error without CONFIG_DEBUG_FS

> -----Original Message-----
> From: Andy Shevchenko <[email protected]>
> Sent: Tuesday, February 25, 2020 2:13 AM
> To: Chen Zhou <[email protected]>; Kammela, Gayatri
> <[email protected]>
> Cc: Rajneesh Bhardwaj <[email protected]>; Somayaji,
> Vishwanath <[email protected]>; Darren Hart
> <[email protected]>; Andy Shevchenko <[email protected]>;
> Platform Driver <[email protected]>; Linux Kernel Mailing
> List <[email protected]>
> Subject: Re: [PATCH -next] platform/x86: intel_pmc_core: fix build error
> without CONFIG_DEBUG_FS
>
> On Thu, Feb 20, 2020 at 5:40 AM Chen Zhou <[email protected]>
> wrote:
> >
> > If CONFIG_DEBUG_FS is n, build fails:
> >
> > drivers/platform/x86/intel_pmc_core.c: In function pmc_core_resume:
> > drivers/platform/x86/intel_pmc_core.c:1327:3: error: implicit declaration
> of function pmc_core_slps0_display; did you mean
> pmc_core_is_pc10_failed? [-Werror=implicit-function-declaration]
> > pmc_core_slps0_display(pmcdev, dev, NULL);
> > ^~~~~~~~~~~~~~~~~~~~~~
> >
> > Function pmc_core_slps0_display() is responsible for displaying debug
> > registers, which is under CONFIG_DEBUG_FS.
> >
> > Providing the static inline stub whenever CONFIG_DEBUG_FS is disabled
> > to fix this. Function pmc_core_lpm_display() is the same.
>
> Thank you for the patch, but I think it's not the right approach.
> Basically we need to move those functions outside of #if
> IS_ENABLED(CONFIG_DEBUG_FS).
> (Move them upper).
Agreed
>
> Also I have noticed another issue in pmc_core_lpm_display(). It uses
> tgl_lpm_maps directly. It shouldn't.
>
> Cc: Gayatri.
>
> Gayatri, care to fix?
Hi Andy, caught this bug in our internal regression too. I will send the patch shortly. Thanks!
>
> > Reported-by: Hulk Robot <[email protected]>
> > Signed-off-by: Chen Zhou <[email protected]>
> > ---
> > drivers/platform/x86/intel_pmc_core.c | 14 ++++++++++++++
> > 1 file changed, 14 insertions(+)
> >
> > diff --git a/drivers/platform/x86/intel_pmc_core.c
> > b/drivers/platform/x86/intel_pmc_core.c
> > index f4a36fb..939f8e0 100644
> > --- a/drivers/platform/x86/intel_pmc_core.c
> > +++ b/drivers/platform/x86/intel_pmc_core.c
> > @@ -1117,6 +1117,20 @@ static void pmc_core_dbgfs_register(struct
> pmc_dev *pmcdev)
> > }
> > }
> > #else
> > +static inline void pmc_core_slps0_display(struct pmc_dev *pmcdev,
> > + struct device *dev,
> > + struct seq_file *s) { }
> > +
> > +static inline void pmc_core_lpm_display(struct pmc_dev *pmcdev,
> > + struct device *dev,
> > + struct seq_file *s, u32 offset,
> > + const char *str,
> > + const struct pmc_bit_map
> > +**maps) { }
> > +
> > static inline void pmc_core_dbgfs_register(struct pmc_dev *pmcdev) {
> > }
> > --
> > 2.7.4
> >
>
>
> --
> With Best Regards,
> Andy Shevchenko

2020-02-26 01:56:58

by Kammela, Gayatri

[permalink] [raw]
Subject: RE: [PATCH -next] platform/x86: intel_pmc_core: fix build error without CONFIG_DEBUG_FS

> -----Original Message-----
> From: Kammela, Gayatri
> Sent: Tuesday, February 25, 2020 9:11 AM
> To: Andy Shevchenko <[email protected]>; Chen Zhou
> <[email protected]>
> Cc: Rajneesh Bhardwaj <[email protected]>; Somayaji,
> Vishwanath <[email protected]>; Darren Hart
> <[email protected]>; Andy Shevchenko <[email protected]>;
> Platform Driver <[email protected]>; Linux Kernel Mailing
> List <[email protected]>
> Subject: RE: [PATCH -next] platform/x86: intel_pmc_core: fix build error
> without CONFIG_DEBUG_FS
>
> > -----Original Message-----
> > From: Andy Shevchenko <[email protected]>
> > Sent: Tuesday, February 25, 2020 2:13 AM
> > To: Chen Zhou <[email protected]>; Kammela, Gayatri
> > <[email protected]>
> > Cc: Rajneesh Bhardwaj <[email protected]>; Somayaji,
> > Vishwanath <[email protected]>; Darren Hart
> > <[email protected]>; Andy Shevchenko <[email protected]>;
> Platform
> > Driver <[email protected]>; Linux Kernel Mailing
> > List <[email protected]>
> > Subject: Re: [PATCH -next] platform/x86: intel_pmc_core: fix build
> > error without CONFIG_DEBUG_FS
> >
> > On Thu, Feb 20, 2020 at 5:40 AM Chen Zhou <[email protected]>
> > wrote:
> > >
> > > If CONFIG_DEBUG_FS is n, build fails:
> > >
> > > drivers/platform/x86/intel_pmc_core.c: In function pmc_core_resume:
> > > drivers/platform/x86/intel_pmc_core.c:1327:3: error: implicit
> > > declaration
> > of function pmc_core_slps0_display; did you mean
> > pmc_core_is_pc10_failed? [-Werror=implicit-function-declaration]
> > > pmc_core_slps0_display(pmcdev, dev, NULL);
> > > ^~~~~~~~~~~~~~~~~~~~~~
> > >
> > > Function pmc_core_slps0_display() is responsible for displaying
> > > debug registers, which is under CONFIG_DEBUG_FS.
> > >
> > > Providing the static inline stub whenever CONFIG_DEBUG_FS is
> > > disabled to fix this. Function pmc_core_lpm_display() is the same.
> >
> > Thank you for the patch, but I think it's not the right approach.
> > Basically we need to move those functions outside of #if
> > IS_ENABLED(CONFIG_DEBUG_FS).
> > (Move them upper).
> Agreed
> >
> > Also I have noticed another issue in pmc_core_lpm_display(). It uses
> > tgl_lpm_maps directly. It shouldn't.
> >
> > Cc: Gayatri.
> >
> > Gayatri, care to fix?
> Hi Andy, caught this bug in our internal regression too. I will send the patch
> shortly. Thanks!

Update: Andy, I have 4 small fixes for the patch series merged in for-next branch. I am wondering if I should send the fixup patches or if you drop the patch series from for-next branch, I can send out the new version that includes all these fixes. Please suggest. Thanks!

> >
> > > Reported-by: Hulk Robot <[email protected]>
> > > Signed-off-by: Chen Zhou <[email protected]>
> > > ---
> > > drivers/platform/x86/intel_pmc_core.c | 14 ++++++++++++++
> > > 1 file changed, 14 insertions(+)
> > >
> > > diff --git a/drivers/platform/x86/intel_pmc_core.c
> > > b/drivers/platform/x86/intel_pmc_core.c
> > > index f4a36fb..939f8e0 100644
> > > --- a/drivers/platform/x86/intel_pmc_core.c
> > > +++ b/drivers/platform/x86/intel_pmc_core.c
> > > @@ -1117,6 +1117,20 @@ static void pmc_core_dbgfs_register(struct
> > pmc_dev *pmcdev)
> > > }
> > > }
> > > #else
> > > +static inline void pmc_core_slps0_display(struct pmc_dev *pmcdev,
> > > + struct device *dev,
> > > + struct seq_file *s) { }
> > > +
> > > +static inline void pmc_core_lpm_display(struct pmc_dev *pmcdev,
> > > + struct device *dev,
> > > + struct seq_file *s, u32 offset,
> > > + const char *str,
> > > + const struct pmc_bit_map
> > > +**maps) { }
> > > +
> > > static inline void pmc_core_dbgfs_register(struct pmc_dev *pmcdev)
> > > { }
> > > --
> > > 2.7.4
> > >
> >
> >
> > --
> > With Best Regards,
> > Andy Shevchenko

2020-02-26 08:34:45

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH -next] platform/x86: intel_pmc_core: fix build error without CONFIG_DEBUG_FS

On Wed, Feb 26, 2020 at 3:56 AM Kammela, Gayatri
<[email protected]> wrote:
> > -----Original Message-----
> > From: Kammela, Gayatri
> > Sent: Tuesday, February 25, 2020 9:11 AM
> > To: Andy Shevchenko <[email protected]>; Chen Zhou
> > <[email protected]>
> > Cc: Rajneesh Bhardwaj <[email protected]>; Somayaji,
> > Vishwanath <[email protected]>; Darren Hart
> > <[email protected]>; Andy Shevchenko <[email protected]>;
> > Platform Driver <[email protected]>; Linux Kernel Mailing
> > List <[email protected]>
> > Subject: RE: [PATCH -next] platform/x86: intel_pmc_core: fix build error
> > without CONFIG_DEBUG_FS
> >
> > > -----Original Message-----
> > > From: Andy Shevchenko <[email protected]>
> > > Sent: Tuesday, February 25, 2020 2:13 AM
> > > To: Chen Zhou <[email protected]>; Kammela, Gayatri
> > > <[email protected]>
> > > Cc: Rajneesh Bhardwaj <[email protected]>; Somayaji,
> > > Vishwanath <[email protected]>; Darren Hart
> > > <[email protected]>; Andy Shevchenko <[email protected]>;
> > Platform
> > > Driver <[email protected]>; Linux Kernel Mailing
> > > List <[email protected]>
> > > Subject: Re: [PATCH -next] platform/x86: intel_pmc_core: fix build
> > > error without CONFIG_DEBUG_FS
> > >
> > > On Thu, Feb 20, 2020 at 5:40 AM Chen Zhou <[email protected]>
> > > wrote:
> > > >
> > > > If CONFIG_DEBUG_FS is n, build fails:
> > > >
> > > > drivers/platform/x86/intel_pmc_core.c: In function pmc_core_resume:
> > > > drivers/platform/x86/intel_pmc_core.c:1327:3: error: implicit
> > > > declaration
> > > of function pmc_core_slps0_display; did you mean
> > > pmc_core_is_pc10_failed? [-Werror=implicit-function-declaration]
> > > > pmc_core_slps0_display(pmcdev, dev, NULL);
> > > > ^~~~~~~~~~~~~~~~~~~~~~
> > > >
> > > > Function pmc_core_slps0_display() is responsible for displaying
> > > > debug registers, which is under CONFIG_DEBUG_FS.
> > > >
> > > > Providing the static inline stub whenever CONFIG_DEBUG_FS is
> > > > disabled to fix this. Function pmc_core_lpm_display() is the same.
> > >
> > > Thank you for the patch, but I think it's not the right approach.
> > > Basically we need to move those functions outside of #if
> > > IS_ENABLED(CONFIG_DEBUG_FS).
> > > (Move them upper).
> > Agreed
> > >
> > > Also I have noticed another issue in pmc_core_lpm_display(). It uses
> > > tgl_lpm_maps directly. It shouldn't.
> > >
> > > Cc: Gayatri.
> > >
> > > Gayatri, care to fix?
> > Hi Andy, caught this bug in our internal regression too. I will send the patch
> > shortly. Thanks!
>
> Update: Andy, I have 4 small fixes for the patch series merged in for-next branch.

I don't see it in the mailing list.
Please check if you send them correctly.

There are more bug reports coming. We must fix this ASAP.

> I am wondering if I should send the fixup patches or if you drop the patch series from for-next branch, I can send out the new version that includes all these fixes. Please suggest. Thanks!
>
> > >
> > > > Reported-by: Hulk Robot <[email protected]>
> > > > Signed-off-by: Chen Zhou <[email protected]>
> > > > ---
> > > > drivers/platform/x86/intel_pmc_core.c | 14 ++++++++++++++
> > > > 1 file changed, 14 insertions(+)
> > > >
> > > > diff --git a/drivers/platform/x86/intel_pmc_core.c
> > > > b/drivers/platform/x86/intel_pmc_core.c
> > > > index f4a36fb..939f8e0 100644
> > > > --- a/drivers/platform/x86/intel_pmc_core.c
> > > > +++ b/drivers/platform/x86/intel_pmc_core.c
> > > > @@ -1117,6 +1117,20 @@ static void pmc_core_dbgfs_register(struct
> > > pmc_dev *pmcdev)
> > > > }
> > > > }
> > > > #else
> > > > +static inline void pmc_core_slps0_display(struct pmc_dev *pmcdev,
> > > > + struct device *dev,
> > > > + struct seq_file *s) { }
> > > > +
> > > > +static inline void pmc_core_lpm_display(struct pmc_dev *pmcdev,
> > > > + struct device *dev,
> > > > + struct seq_file *s, u32 offset,
> > > > + const char *str,
> > > > + const struct pmc_bit_map
> > > > +**maps) { }
> > > > +
> > > > static inline void pmc_core_dbgfs_register(struct pmc_dev *pmcdev)
> > > > { }
> > > > --
> > > > 2.7.4
> > > >
> > >
> > >
> > > --
> > > With Best Regards,
> > > Andy Shevchenko



--
With Best Regards,
Andy Shevchenko