From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: dmaengine: rcar-dmac: Make rcar_dmac_of_xlate() more robust From: Geert Uytterhoeven Message-Id: <20180727084447.13984-1-geert+renesas@glider.be> Date: Fri, 27 Jul 2018 10:44:47 +0200 To: Dan Williams , Vinod Koul Cc: Laurent Pinchart , Yoshihiro Shimoda , dmaengine@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Geert Uytterhoeven List-ID: QWRkIGFuIHVwcGVyIGJvdW5kIGNoZWNrIGZvciB0aGUgTUlEL1JJRCB2YWx1ZSBwYXNzZWQgZnJv bSBEVCB2aWEgdGhlCkRNQSBzcGVjLgoKVGhpcyBhdm9pZHMgd3JpdGluZyB0byByZXNlcnZlZCBi aXRzIGluIHRoZSBETUFSUyByZWdpc3RlcnMgaW4gY2FzZSBvZgphbiBvdXQtb2YtcmFuZ2UgdmFs dWUgaW4gRFQuCgpTdWdnZXN0ZWQtYnk6IFJlbmVzYXMgQlNQIHRlYW0gdmlhIFlvc2hpaGlybyBT aGltb2RhIDx5b3NoaWhpcm8uc2hpbW9kYS51aEByZW5lc2FzLmNvbT4KU2lnbmVkLW9mZi1ieTog R2VlcnQgVXl0dGVyaG9ldmVuIDxnZWVydCtyZW5lc2FzQGdsaWRlci5iZT4KLS0tCiBkcml2ZXJz L2RtYS9zaC9yY2FyLWRtYWMuYyB8IDUgKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlv bnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS9zaC9yY2FyLWRt YWMuYyBiL2RyaXZlcnMvZG1hL3NoL3JjYXItZG1hYy5jCmluZGV4IDcyNTcyMzIwMjA4ZGJiOWEu LjczY2YxMDUzYmVkOTAyNDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hL3NoL3JjYXItZG1hYy5j CisrKyBiL2RyaXZlcnMvZG1hL3NoL3JjYXItZG1hYy5jCkBAIC0xNjQ0LDggKzE2NDQsMTEgQEAg c3RhdGljIHN0cnVjdCBkbWFfY2hhbiAqcmNhcl9kbWFjX29mX3hsYXRlKHN0cnVjdCBvZl9waGFu ZGxlX2FyZ3MgKmRtYV9zcGVjLAogCXN0cnVjdCBkbWFfY2hhbiAqY2hhbjsKIAlkbWFfY2FwX21h c2tfdCBtYXNrOwogCi0JaWYgKGRtYV9zcGVjLT5hcmdzX2NvdW50ICE9IDEpCisJaWYgKGRtYV9z cGVjLT5hcmdzX2NvdW50ICE9IDEgfHwgZG1hX3NwZWMtPmFyZ3NbMF0gPiAweGZmKSB7CisJCXBy X2luZm8oIiVzOiBpbnZhbGlkIE1JRC9SSUQgMHgleC4uLiBmb3IgJXBPRlxuIiwgX19mdW5jX18s CisJCQlkbWFfc3BlYy0+YXJnc1swXSwgZG1hX3NwZWMtPm5wKTsKIAkJcmV0dXJuIE5VTEw7CisJ fQogCiAJLyogT25seSBzbGF2ZSBETUEgY2hhbm5lbHMgY2FuIGJlIGFsbG9jYXRlZCB2aWEgRFQg Ki8KIAlkbWFfY2FwX3plcm8obWFzayk7Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from baptiste.telenet-ops.be ([195.130.132.51]:34316 "EHLO baptiste.telenet-ops.be" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730290AbeG0KFr (ORCPT ); Fri, 27 Jul 2018 06:05:47 -0400 From: Geert Uytterhoeven To: Dan Williams , Vinod Koul Cc: Laurent Pinchart , Yoshihiro Shimoda , dmaengine@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Geert Uytterhoeven Subject: [PATCH] dmaengine: rcar-dmac: Make rcar_dmac_of_xlate() more robust Date: Fri, 27 Jul 2018 10:44:47 +0200 Message-Id: <20180727084447.13984-1-geert+renesas@glider.be> Sender: linux-renesas-soc-owner@vger.kernel.org List-ID: Add an upper bound check for the MID/RID value passed from DT via the DMA spec. This avoids writing to reserved bits in the DMARS registers in case of an out-of-range value in DT. Suggested-by: Renesas BSP team via Yoshihiro Shimoda Signed-off-by: Geert Uytterhoeven --- drivers/dma/sh/rcar-dmac.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index 72572320208dbb9a..73cf1053bed90244 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -1644,8 +1644,11 @@ static struct dma_chan *rcar_dmac_of_xlate(struct of_phandle_args *dma_spec, struct dma_chan *chan; dma_cap_mask_t mask; - if (dma_spec->args_count != 1) + if (dma_spec->args_count != 1 || dma_spec->args[0] > 0xff) { + pr_info("%s: invalid MID/RID 0x%x... for %pOF\n", __func__, + dma_spec->args[0], dma_spec->np); return NULL; + } /* Only slave DMA channels can be allocated via DT */ dma_cap_zero(mask); -- 2.17.1