vTPM: fix memory allocation flag for rtce buffer at kernel boot
authorHon Ching \(Vicky\) Lo <honclo@linux.vnet.ibm.com>
Thu, 8 Oct 2015 00:11:51 +0000 (20:11 -0400)
committerPeter Huewe <peterhuewe@gmx.de>
Sun, 18 Oct 2015 23:00:49 +0000 (01:00 +0200)
At ibm vtpm initialzation, tpm_ibmvtpm_probe() registers its interrupt
handler, ibmvtpm_interrupt, which calls ibmvtpm_crq_process to allocate
memory for rtce buffer.  The current code uses 'GFP_KERNEL' as the
type of kernel memory allocation, which resulted a warning at
kernel/lockdep.c.  This patch uses 'GFP_ATOMIC' instead so that the
allocation is high-priority and does not sleep.

Cc: stable@kernel.org
Signed-off-by: Hon Ching(Vicky) Lo <honclo@linux.vnet.ibm.com>
Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
drivers/char/tpm/tpm_ibmvtpm.c

index 27ebf9511cb41cdf5e26fc1f82a65ecab9a60d33..3e6a22658b63b46acfcdd58f7f9bbe2df31e1498 100644 (file)
@@ -491,7 +491,7 @@ static void ibmvtpm_crq_process(struct ibmvtpm_crq *crq,
                        }
                        ibmvtpm->rtce_size = be16_to_cpu(crq->len);
                        ibmvtpm->rtce_buf = kmalloc(ibmvtpm->rtce_size,
-                                                   GFP_KERNEL);
+                                                   GFP_ATOMIC);
                        if (!ibmvtpm->rtce_buf) {
                                dev_err(ibmvtpm->dev, "Failed to allocate memory for rtce buffer\n");
                                return;