In all the pre-existing call sites both @iomem and @iobase_ptr are either NULL or non-NULL.
Thus, add invariant for this and remove a dead basic block. Signed-off-by: Jarkko Sakkinen <[email protected]> --- drivers/char/tpm/tpm_crb.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/char/tpm/tpm_crb.c b/drivers/char/tpm/tpm_crb.c index ceb4100ba400..e7a61f36c58b 100644 --- a/drivers/char/tpm/tpm_crb.c +++ b/drivers/char/tpm/tpm_crb.c @@ -570,15 +570,12 @@ static void __iomem *crb_map_res(struct device *dev, struct resource *iores, if (start != new_res.start) return IOMEM_ERR_PTR(-EINVAL); + if ((iores == NULL) != (iobase_ptr == NULL)) + return IOMEM_ERR_PTR(-EINVAL); + if (!iores) return devm_ioremap_resource(dev, &new_res); - if (!*iobase_ptr) { - *iobase_ptr = devm_ioremap_resource(dev, iores); - if (IS_ERR(*iobase_ptr)) - return *iobase_ptr; - } - return *iobase_ptr + (new_res.start - iores->start); } -- 2.47.3

