The HW IP information is relevant even if the device is disabled or in
reset, so always handle the corresponding INFO IOCTL opcode.
Signed-off-by: Tomer Tayar <[email protected]>
---
drivers/misc/habanalabs/habanalabs_ioctl.c | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/drivers/misc/habanalabs/habanalabs_ioctl.c b/drivers/misc/habanalabs/habanalabs_ioctl.c
index 3ce65459b01c..589324ac19d0 100644
--- a/drivers/misc/habanalabs/habanalabs_ioctl.c
+++ b/drivers/misc/habanalabs/habanalabs_ioctl.c
@@ -204,10 +204,21 @@ static int _hl_info_ioctl(struct hl_fpriv *hpriv, void *data,
struct hl_device *hdev = hpriv->hdev;
int rc;
- /* We want to return device status even if it disabled or in reset */
- if (args->op == HL_INFO_DEVICE_STATUS)
+ /*
+ * Information is returned for the following opcodes even if the device
+ * is disabled or in reset.
+ */
+ switch (args->op) {
+ case HL_INFO_HW_IP_INFO:
+ return hw_ip_info(hdev, args);
+
+ case HL_INFO_DEVICE_STATUS:
return device_status_info(hdev, args);
+ default:
+ break;
+ }
+
if (hl_device_disabled_or_in_reset(hdev)) {
dev_warn_ratelimited(dev,
"Device is %s. Can't execute INFO IOCTL\n",
@@ -216,10 +227,6 @@ static int _hl_info_ioctl(struct hl_fpriv *hpriv, void *data,
}
switch (args->op) {
- case HL_INFO_HW_IP_INFO:
- rc = hw_ip_info(hdev, args);
- break;
-
case HL_INFO_HW_EVENTS:
rc = hw_events_info(hdev, args);
break;
--
2.17.1
On Thu, Aug 8, 2019 at 3:30 PM Tomer Tayar <[email protected]> wrote:
>
> The HW IP information is relevant even if the device is disabled or in
> reset, so always handle the corresponding INFO IOCTL opcode.
>
> Signed-off-by: Tomer Tayar <[email protected]>
> ---
> drivers/misc/habanalabs/habanalabs_ioctl.c | 19 +++++++++++++------
> 1 file changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/misc/habanalabs/habanalabs_ioctl.c b/drivers/misc/habanalabs/habanalabs_ioctl.c
> index 3ce65459b01c..589324ac19d0 100644
> --- a/drivers/misc/habanalabs/habanalabs_ioctl.c
> +++ b/drivers/misc/habanalabs/habanalabs_ioctl.c
> @@ -204,10 +204,21 @@ static int _hl_info_ioctl(struct hl_fpriv *hpriv, void *data,
> struct hl_device *hdev = hpriv->hdev;
> int rc;
>
> - /* We want to return device status even if it disabled or in reset */
> - if (args->op == HL_INFO_DEVICE_STATUS)
> + /*
> + * Information is returned for the following opcodes even if the device
> + * is disabled or in reset.
> + */
> + switch (args->op) {
> + case HL_INFO_HW_IP_INFO:
> + return hw_ip_info(hdev, args);
> +
> + case HL_INFO_DEVICE_STATUS:
> return device_status_info(hdev, args);
>
> + default:
> + break;
> + }
> +
> if (hl_device_disabled_or_in_reset(hdev)) {
> dev_warn_ratelimited(dev,
> "Device is %s. Can't execute INFO IOCTL\n",
> @@ -216,10 +227,6 @@ static int _hl_info_ioctl(struct hl_fpriv *hpriv, void *data,
> }
>
> switch (args->op) {
> - case HL_INFO_HW_IP_INFO:
> - rc = hw_ip_info(hdev, args);
> - break;
> -
> case HL_INFO_HW_EVENTS:
> rc = hw_events_info(hdev, args);
> break;
> --
> 2.17.1
>
This patch is:
Reviewed-by: Oded Gabbay <[email protected]>