All of lore.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 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.