firmware_loader: Suppress warning on FW_OPT_NO_WARN flag
authorMukesh Ojha <quic_mojha@quicinc.com>
Mon, 19 Feb 2024 16:39:54 +0000 (22:09 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 7 Mar 2024 22:05:09 +0000 (22:05 +0000)
Some of the warnings are still being printed even if FW_OPT_NO_WARN
is passed for some of the function e.g., firmware_request_nowarn().
Fix it by adding a check for FW_OPT_NO_WARN before printing the warning.

Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com>
Reviewed-by: Luis Chamberlain <mcgrof@kernel.org>
Link: https://lore.kernel.org/r/20240219163954.7719-1-quic_mojha@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/firmware_loader/main.c

index ea28102d421ebf2d3d611d77547816e48368ab5c..da8ca01d011c3f3694a381e1c98d0b3a8301663b 100644 (file)
@@ -551,12 +551,16 @@ fw_get_filesystem_firmware(struct device *device, struct fw_priv *fw_priv,
                                                       file_size_ptr,
                                                       READING_FIRMWARE);
                if (rc < 0) {
-                       if (rc != -ENOENT)
-                               dev_warn(device, "loading %s failed with error %d\n",
-                                        path, rc);
-                       else
-                               dev_dbg(device, "loading %s failed for no such file or directory.\n",
-                                        path);
+                       if (!(fw_priv->opt_flags & FW_OPT_NO_WARN)) {
+                               if (rc != -ENOENT)
+                                       dev_warn(device,
+                                                "loading %s failed with error %d\n",
+                                                path, rc);
+                               else
+                                       dev_dbg(device,
+                                               "loading %s failed for no such file or directory.\n",
+                                               path);
+                       }
                        continue;
                }
                size = rc;