Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 19a91dd4 authored by Heinrich Schuchardt's avatar Heinrich Schuchardt Committed by Ulf Hansson
Browse files

MMC: meson: avoid possible NULL dereference



No actual segmentation faults were observed but the coding is
at least inconsistent.

irqreturn_t meson_mmc_irq():

We should not dereference host before checking it.

meson_mmc_irq_thread():

If cmd or mrq are NULL we should not dereference them after
writing a warning.

Fixes: 51c5d844 MMC: meson: initial support for GX platforms
Signed-off-by: default avatarHeinrich Schuchardt <xypron.glpk@gmx.de>
Acked-by: default avatarKevin Hilman <khilman@baylibre.com>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent a121103c
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -578,13 +578,15 @@ static irqreturn_t meson_mmc_irq(int irq, void *dev_id)
{
	struct meson_host *host = dev_id;
	struct mmc_request *mrq;
	struct mmc_command *cmd = host->cmd;
	struct mmc_command *cmd;
	u32 irq_en, status, raw_status;
	irqreturn_t ret = IRQ_HANDLED;

	if (WARN_ON(!host))
		return IRQ_NONE;

	cmd = host->cmd;

	mrq = host->mrq;

	if (WARN_ON(!mrq))
@@ -670,10 +672,10 @@ static irqreturn_t meson_mmc_irq_thread(int irq, void *dev_id)
	int ret = IRQ_HANDLED;

	if (WARN_ON(!mrq))
		ret = IRQ_NONE;
		return IRQ_NONE;

	if (WARN_ON(!cmd))
		ret = IRQ_NONE;
		return IRQ_NONE;

	data = cmd->data;
	if (data) {