At the start of some IOCTLs we check if the device is disabled or in reset.
If it is, we return -EBUSY and print a message to kernel log.

Because these IOCTLs can be called at very high frequency, use ratelimit
to avoid spamming the kernel log. Also use the same type of message -
dev_warn - in all the relevant IOCTLs.

Signed-off-by: Oded Gabbay <oded.gab...@gmail.com>
---
 drivers/misc/habanalabs/command_submission.c | 2 +-
 drivers/misc/habanalabs/habanalabs_ioctl.c   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/misc/habanalabs/command_submission.c 
b/drivers/misc/habanalabs/command_submission.c
index 19c84214a7ea..f908643f871f 100644
--- a/drivers/misc/habanalabs/command_submission.c
+++ b/drivers/misc/habanalabs/command_submission.c
@@ -604,7 +604,7 @@ int hl_cs_ioctl(struct hl_fpriv *hpriv, void *data)
        bool need_soft_reset = false;
 
        if (hl_device_disabled_or_in_reset(hdev)) {
-               dev_warn(hdev->dev,
+               dev_warn_ratelimited(hdev->dev,
                        "Device is %s. Can't submit new CS\n",
                        atomic_read(&hdev->in_reset) ? "in_reset" : "disabled");
                rc = -EBUSY;
diff --git a/drivers/misc/habanalabs/habanalabs_ioctl.c 
b/drivers/misc/habanalabs/habanalabs_ioctl.c
index 2c2739a3c5ec..19b96afc0308 100644
--- a/drivers/misc/habanalabs/habanalabs_ioctl.c
+++ b/drivers/misc/habanalabs/habanalabs_ioctl.c
@@ -106,7 +106,7 @@ static int hl_info_ioctl(struct hl_fpriv *hpriv, void *data)
        int rc;
 
        if (hl_device_disabled_or_in_reset(hdev)) {
-               dev_err(hdev->dev,
+               dev_warn_ratelimited(hdev->dev,
                        "Device is disabled or in reset. Can't execute INFO 
IOCTL\n");
                return -EBUSY;
        }
-- 
2.17.1

Reply via email to