2013-05-27 19:46:17

by Peter Huewe

[permalink] [raw]
Subject: [PATCH] tpm: fix regression caused by section type conflict of tpm_dev_release() in ppc builds

The 8119807 commit reintroduced a regression
(error: __ksymtab_tpm_dev_release causes a section type conflict) that was fixed by commit
cbb2ed4.
Fix it for good by adding the prototype to tpm.h so sparse doesn't
complain about it anymore.

Reported-by: Tony Camuso <[email protected]>
Signed-off-by: Peter Huewe <[email protected]>
---
James, can you please take this one directly and push it to next please?
As it causes a build failure on ppc

drivers/char/tpm/tpm.c | 2 +-
drivers/char/tpm/tpm.h | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/char/tpm/tpm.c b/drivers/char/tpm/tpm.c
index 7c3b3dc..e3c974a 100644
--- a/drivers/char/tpm/tpm.c
+++ b/drivers/char/tpm/tpm.c
@@ -1472,7 +1472,7 @@ EXPORT_SYMBOL_GPL(tpm_dev_vendor_release);
* Once all references to platform device are down to 0,
* release all allocated structures.
*/
-static void tpm_dev_release(struct device *dev)
+void tpm_dev_release(struct device *dev)
{
struct tpm_chip *chip = dev_get_drvdata(dev);

diff --git a/drivers/char/tpm/tpm.h b/drivers/char/tpm/tpm.h
index 4334232..a7bfc17 100644
--- a/drivers/char/tpm/tpm.h
+++ b/drivers/char/tpm/tpm.h
@@ -332,6 +332,7 @@ extern struct tpm_chip* tpm_register_hardware(struct device *,
const struct tpm_vendor_specific *);
extern int tpm_open(struct inode *, struct file *);
extern int tpm_release(struct inode *, struct file *);
+extern void tpm_dev_release(struct device *dev);
extern void tpm_dev_vendor_release(struct tpm_chip *);
extern ssize_t tpm_write(struct file *, const char __user *, size_t,
loff_t *);
--
1.8.1.5


2013-05-27 20:02:21

by Tony Camuso

[permalink] [raw]
Subject: Re: [PATCH] tpm: fix regression caused by section type conflict of tpm_dev_release() in ppc builds

On 05/27/2013 03:51 PM, Peter Huewe wrote:
> The 8119807 commit reintroduced a regression
> (error: __ksymtab_tpm_dev_release causes a section type conflict) that was fixed by commit
> cbb2ed4.
> Fix it for good by adding the prototype to tpm.h so sparse doesn't
> complain about it anymore.
>
> Reported-by: Tony Camuso <[email protected]>
> Signed-off-by: Peter Huewe <[email protected]>
> ---
> James, can you please take this one directly and push it to next please?
> As it causes a build failure on ppc
>
> drivers/char/tpm/tpm.c | 2 +-
> drivers/char/tpm/tpm.h | 1 +
> 2 files changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/char/tpm/tpm.c b/drivers/char/tpm/tpm.c
> index 7c3b3dc..e3c974a 100644
> --- a/drivers/char/tpm/tpm.c
> +++ b/drivers/char/tpm/tpm.c
> @@ -1472,7 +1472,7 @@ EXPORT_SYMBOL_GPL(tpm_dev_vendor_release);
> * Once all references to platform device are down to 0,
> * release all allocated structures.
> */
> -static void tpm_dev_release(struct device *dev)
> +void tpm_dev_release(struct device *dev)
> {
> struct tpm_chip *chip = dev_get_drvdata(dev);
>
> diff --git a/drivers/char/tpm/tpm.h b/drivers/char/tpm/tpm.h
> index 4334232..a7bfc17 100644
> --- a/drivers/char/tpm/tpm.h
> +++ b/drivers/char/tpm/tpm.h
> @@ -332,6 +332,7 @@ extern struct tpm_chip* tpm_register_hardware(struct device *,
> const struct tpm_vendor_specific *);
> extern int tpm_open(struct inode *, struct file *);
> extern int tpm_release(struct inode *, struct file *);
> +extern void tpm_dev_release(struct device *dev);
> extern void tpm_dev_vendor_release(struct tpm_chip *);
> extern ssize_t tpm_write(struct file *, const char __user *, size_t,
> loff_t *);
>

Thanks, Peter. I should've mentioned that it didn't cause problems
with x86 build, only with ppc.



2013-05-27 20:13:09

by Peter Huewe

[permalink] [raw]
Subject: [PULL] TPM: fix regression caused by section type conflict of tpm_dev_release() in ppc builds

Hi James,

The following changes since commit 5b88e270253db6d817e6a2f61909d1e53620e990:

maintainers: Remove Kent from maintainers

are available in the git repository at:

git://github.com/PeterHuewe/linux-tpmdd.git for-james

for you to fetch changes up to e2fa3d799b7471f00adae59ff36260ad8237929f:

tpm: fix regression caused by section type conflict of tpm_dev_release() in ppc builds

----------------------------------------------------------------
Peter Huewe (1):
tpm: fix regression caused by section type conflict of tpm_dev_release() in ppc builds

drivers/char/tpm/tpm.c | 2 +-
drivers/char/tpm/tpm.h | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)

Thanks,
Peter

2013-05-29 01:24:52

by James Morris

[permalink] [raw]
Subject: Re: [PULL] TPM: fix regression caused by section type conflict of tpm_dev_release() in ppc builds

On Mon, 27 May 2013, Peter H?we wrote:

> Hi James,
>
> The following changes since commit 5b88e270253db6d817e6a2f61909d1e53620e990:
>
> maintainers: Remove Kent from maintainers
>
> are available in the git repository at:
>
> git://github.com/PeterHuewe/linux-tpmdd.git for-james
>
> for you to fetch changes up to e2fa3d799b7471f00adae59ff36260ad8237929f:
>
> tpm: fix regression caused by section type conflict of tpm_dev_release() in ppc builds

Pulled, thanks.


--
James Morris
<[email protected]>