From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752639AbbKWLyp (ORCPT ); Mon, 23 Nov 2015 06:54:45 -0500 Received: from mail-pa0-f49.google.com ([209.85.220.49]:33281 "EHLO mail-pa0-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751577AbbKWLyn (ORCPT ); Mon, 23 Nov 2015 06:54:43 -0500 From: Sudip Mukherjee To: Sudeep Dutt , Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, Sudip Mukherjee Subject: [PATCH char-misc-next 2/4] misc: mic: return error properly Date: Mon, 23 Nov 2015 17:24:30 +0530 Message-Id: <1448279672-12208-2-git-send-email-sudipm.mukherjee@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1448279672-12208-1-git-send-email-sudipm.mukherjee@gmail.com> References: <1448279672-12208-1-git-send-email-sudipm.mukherjee@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If request_firmware() succeeds then rc becomes 0. After that if the test for strcmp() fails then we were jumping to label done: and returning rc. But rc being 0 we returned success whereas we have failed here and we were supposed to return an error. Signed-off-by: Sudip Mukherjee --- I am not sure if this was intentional. Another case might be that if the string bootmode is "flash" then mic_x100_load_command_line() was intentionally skipped and success was returned. drivers/misc/mic/host/mic_x100.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/misc/mic/host/mic_x100.c b/drivers/misc/mic/host/mic_x100.c index cd5208d..317e25f 100644 --- a/drivers/misc/mic/host/mic_x100.c +++ b/drivers/misc/mic/host/mic_x100.c @@ -468,8 +468,13 @@ mic_x100_load_firmware(struct mic_device *mdev, const char *buf) } memcpy_toio(mdev->aper.va + mdev->bootaddr, fw->data, fw->size); mdev->ops->write_spad(mdev, MIC_X100_FW_SIZE, fw->size); - if (!strcmp(mdev->cosm_dev->bootmode, "flash")) + if (!strcmp(mdev->cosm_dev->bootmode, "flash")) { + rc = -EINVAL; + dev_err(&mdev->pdev->dev, "%s %d rc %d\n", + __func__, __LINE__, rc); + release_firmware(fw); goto done; + } /* load command line */ rc = mic_x100_load_command_line(mdev, fw); if (rc) { -- 1.9.1