public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] tpm/tpm_ibmvtpm: Fail in ibmvtpm_get_data if driver_data is bad
@ 2014-09-19 21:29 Anton Blanchard
  2014-09-19 21:30 ` [PATCH 2/2] tpm/tpm_ibmvtpm: Remove unnecessary casts Anton Blanchard
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Anton Blanchard @ 2014-09-19 21:29 UTC (permalink / raw)
  To: Peter Huewe, Ashley Lai, Marcel Selhorst; +Cc: tpmdd-devel, linux-kernel

I'm looking at an oops in tpm_ibmvtpm_get_desired_dma:

  28:	00 00 20 39 	li      r9,0
  2c:	10 00 01 e8 	ld      r0,16(r1)
  30:	28 00 69 80 	lwz     r3,40(r9)

We set r9 to 0 then load r9+40. The problem is actually in
ibmvtpm_get_data, it can return NULL but the rest of the driver
never expects it.

Add a BUG_ON in ibmvtpm_get_data. We still need to identify the root
cause but at least this makes it obvious what went wrong.

Cc: stable@vger.kernel.org
Signed-off-by: Anton Blanchard <anton@samba.org>
---

diff --git a/drivers/char/tpm/tpm_ibmvtpm.c b/drivers/char/tpm/tpm_ibmvtpm.c
index af74c57..0d1eeba 100644
--- a/drivers/char/tpm/tpm_ibmvtpm.c
+++ b/drivers/char/tpm/tpm_ibmvtpm.c
@@ -63,9 +63,9 @@ static int ibmvtpm_send_crq(struct vio_dev *vdev, u64 w1, u64 w2)
 static struct ibmvtpm_dev *ibmvtpm_get_data(const struct device *dev)
 {
 	struct tpm_chip *chip = dev_get_drvdata(dev);
-	if (chip)
-		return (struct ibmvtpm_dev *)TPM_VPRIV(chip);
-	return NULL;
+
+	BUG_ON(!chip);
+	return (struct ibmvtpm_dev *)TPM_VPRIV(chip);
 }
 
 /**

^ permalink raw reply related	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2014-12-03 23:11 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-19 21:29 [PATCH 1/2] tpm/tpm_ibmvtpm: Fail in ibmvtpm_get_data if driver_data is bad Anton Blanchard
2014-09-19 21:30 ` [PATCH 2/2] tpm/tpm_ibmvtpm: Remove unnecessary casts Anton Blanchard
2014-09-22 17:49   ` Ashley Lai
2014-09-24 16:18   ` [tpmdd-devel] " Jason Gunthorpe
2014-09-22 17:43 ` [PATCH 1/2] tpm/tpm_ibmvtpm: Fail in ibmvtpm_get_data if driver_data is bad Ashley Lai
2014-09-22 18:03   ` [tpmdd-devel] " Jason Gunthorpe
2014-09-22 17:45 ` Ashley Lai
2014-12-02 19:22 ` Ashley Lai
2014-12-02 19:46   ` Peter Hüwe
2014-12-02 20:09     ` Ashley Lai
2014-12-02 20:39 ` Peter Hüwe
2014-12-02 21:20   ` Anton Blanchard
2014-12-03 23:11     ` Hon Ching (Vicky) Lo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox