Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932457AbcDSRKE (ORCPT ); Tue, 19 Apr 2016 13:10:04 -0400 Received: from quartz.orcorp.ca ([184.70.90.242]:39834 "EHLO quartz.orcorp.ca" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932404AbcDSRKC (ORCPT ); Tue, 19 Apr 2016 13:10:02 -0400 Date: Tue, 19 Apr 2016 11:09:53 -0600 From: Jason Gunthorpe To: Jarkko Sakkinen Cc: Peter Huewe , linux-security-module@vger.kernel.org, stable@vger.kernel.org, Marcel Selhorst , "moderated list:TPM DEVICE DRIVER" , open list Subject: Re: [PATCH] tpm_crb: fix mapping of the buffers Message-ID: <20160419170953.GB20844@obsidianresearch.com> References: <1461059658-8884-1-git-send-email-jarkko.sakkinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1461059658-8884-1-git-send-email-jarkko.sakkinen@linux.intel.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Broken-Reverse-DNS: no host name found for IP address 10.0.0.160 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1113 Lines: 41 On Tue, Apr 19, 2016 at 12:54:18PM +0300, Jarkko Sakkinen wrote: > Cc: stable@vger.kernel.org > Fixes: 1bd047be37d9 ("tpm_crb: Use devm_ioremap_resource") > Signed-off-by: Jarkko Sakkinen > drivers/char/tpm/tpm_crb.c | 39 ++++++++++++++++++++++++++++----------- > 1 file changed, 28 insertions(+), 11 deletions(-) This looks OK Reviewed-by: Jason Gunthorpe > + if (cmd_pa != rsp_pa) { > + priv->rsp = crb_map_res(dev, priv, &io_res, rsp_pa, rsp_size); > + return PTR_ERR_OR_ZERO(priv->rsp); > + } I would use an else here, 'exit on success' is considered an anti-pattern. Eg: if (cmd_pa == rsp_pa) { /* According to the PTP specification, overlapping command and response * buffer sizes must be identical. */ if (cmd_size != rsp_size) { dev_err(dev, FW_BUG "overlapping command and response buffer sizes are not identical"); return -EINVAL; } priv->rsp = priv->cmd; } else { priv->rsp = crb_map_res(dev, priv, &io_res, rsp_pa, rsp_size); if (IS_ERR(priv->rsp)) return PTR_ERR(priv->rsp); } return 0; Jason