| From 07891900f6cc460dc5db7669f3c7ae1587e09e42 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 2 Mar 2021 18:57:57 +0530 |
| Subject: mtd: rawnand: qcom: Return actual error code instead of -ENODEV |
| |
| From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> |
| |
| [ Upstream commit 55fbb9ba4f06cb6aff32daca1e1910173c13ec51 ] |
| |
| In qcom_probe_nand_devices() function, the error code returned by |
| qcom_nand_host_init_and_register() is converted to -ENODEV in the case |
| of failure. This poses issue if -EPROBE_DEFER is returned when the |
| dependency is not available for a component like parser. |
| |
| So let's restructure the error handling logic a bit and return the |
| actual error code in case of qcom_nand_host_init_and_register() failure. |
| |
| Fixes: c76b78d8ec05 ("mtd: nand: Qualcomm NAND controller driver") |
| Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> |
| Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/mtd/nand/raw/qcom_nandc.c | 7 ++----- |
| 1 file changed, 2 insertions(+), 5 deletions(-) |
| |
| diff --git a/drivers/mtd/nand/raw/qcom_nandc.c b/drivers/mtd/nand/raw/qcom_nandc.c |
| index 667e4bfe369f..0d2d4ec476fc 100644 |
| --- a/drivers/mtd/nand/raw/qcom_nandc.c |
| +++ b/drivers/mtd/nand/raw/qcom_nandc.c |
| @@ -2896,7 +2896,7 @@ static int qcom_probe_nand_devices(struct qcom_nand_controller *nandc) |
| struct device *dev = nandc->dev; |
| struct device_node *dn = dev->of_node, *child; |
| struct qcom_nand_host *host; |
| - int ret; |
| + int ret = -ENODEV; |
| |
| for_each_available_child_of_node(dn, child) { |
| host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL); |
| @@ -2914,10 +2914,7 @@ static int qcom_probe_nand_devices(struct qcom_nand_controller *nandc) |
| list_add_tail(&host->node, &nandc->host_list); |
| } |
| |
| - if (list_empty(&nandc->host_list)) |
| - return -ENODEV; |
| - |
| - return 0; |
| + return ret; |
| } |
| |
| /* parse custom DT properties here */ |
| -- |
| 2.30.2 |
| |