diff --git a/drivers/edgetpu/edgetpu-core.c b/drivers/edgetpu/edgetpu-core.c
index 6973bdb..db806bf 100644
--- a/drivers/edgetpu/edgetpu-core.c
+++ b/drivers/edgetpu/edgetpu-core.c
@@ -380,11 +380,10 @@
 {
 	switch (etdev->state) {
 	case ETDEV_STATE_BAD:
-		return -ENODEV;
+	case ETDEV_STATE_NOFW:
+		return -EIO;
 	case ETDEV_STATE_FWLOADING:
 		return -EAGAIN;
-	case ETDEV_STATE_NOFW:
-		return -EINVAL;
 	default:
 		break;
 	}
diff --git a/drivers/edgetpu/edgetpu-device-group.c b/drivers/edgetpu/edgetpu-device-group.c
index 9b85679..c410ebc 100644
--- a/drivers/edgetpu/edgetpu-device-group.c
+++ b/drivers/edgetpu/edgetpu-device-group.c
@@ -1258,8 +1258,18 @@
 		kvfree(pages);
 		return ERR_PTR(-ENOMEM);
 	}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
+	down_read(&current->mm->mmap_sem);
+#else
+	mmap_read_lock(current->mm);
+#endif
 	ret = pin_user_pages(host_addr & PAGE_MASK, num_pages, foll_flags,
 			     pages, vmas);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)
+	up_read(&current->mm->mmap_sem);
+#else
+	mmap_read_unlock(current->mm);
+#endif
 	kvfree(vmas);
 	if (ret < 0) {
 		etdev_dbg(etdev, "pin_user_pages failed %u:%pK-%u: %d",
diff --git a/drivers/edgetpu/edgetpu-kci.c b/drivers/edgetpu/edgetpu-kci.c
index 313e9f8..b3c3d4c 100644
--- a/drivers/edgetpu/edgetpu-kci.c
+++ b/drivers/edgetpu/edgetpu-kci.c
@@ -43,11 +43,14 @@
 #endif
 
 /* A macro for KCIs to leave early when the device state is known to be bad. */
-#define RETURN_ERRNO_IF_ETDEV_NOT_GOOD(kci)                                                        \
+#define RETURN_ERRNO_IF_ETDEV_NOT_GOOD(kci, opstring)                                              \
 	do {                                                                                       \
 		int ret = edgetpu_get_state_errno_locked(kci->mailbox->etdev);                     \
-		if (ret)                                                                           \
+		if (ret) {                                                                         \
+			etdev_err(kci->mailbox->etdev, "%s failed: device state %u (%d)",          \
+				  opstring, kci->mailbox->etdev->state, ret);                      \
 			return ret;                                                                \
+		}                                                                                  \
 	} while (0)
 
 static inline u32 edgetpu_kci_queue_element_size(enum mailbox_queue_type type)
@@ -805,7 +808,7 @@
 
 	if (!kci)
 		return -ENODEV;
-	RETURN_ERRNO_IF_ETDEV_NOT_GOOD(kci);
+	RETURN_ERRNO_IF_ETDEV_NOT_GOOD(kci, "join group");
 	return edgetpu_kci_send_cmd_with_data(kci, &cmd, &detail, sizeof(detail));
 }
 
@@ -817,7 +820,7 @@
 
 	if (!kci)
 		return -ENODEV;
-	RETURN_ERRNO_IF_ETDEV_NOT_GOOD(kci);
+	RETURN_ERRNO_IF_ETDEV_NOT_GOOD(kci, "leave group");
 	return edgetpu_kci_send_cmd(kci, &cmd);
 }
 
@@ -1046,7 +1049,7 @@
 
 	if (!kci)
 		return -ENODEV;
-	RETURN_ERRNO_IF_ETDEV_NOT_GOOD(kci);
+	RETURN_ERRNO_IF_ETDEV_NOT_GOOD(kci, "open device");
 	if (vcid < 0)
 		return edgetpu_kci_send_cmd(kci, &cmd);
 	return edgetpu_kci_send_cmd_with_data(kci, &cmd, &detail, sizeof(detail));
@@ -1063,7 +1066,7 @@
 
 	if (!kci)
 		return -ENODEV;
-	RETURN_ERRNO_IF_ETDEV_NOT_GOOD(kci);
+	RETURN_ERRNO_IF_ETDEV_NOT_GOOD(kci, "close device");
 	return edgetpu_kci_send_cmd(kci, &cmd);
 }
 
diff --git a/drivers/edgetpu/edgetpu-usage-stats.c b/drivers/edgetpu/edgetpu-usage-stats.c
index 9934ca6..ba9d673 100644
--- a/drivers/edgetpu/edgetpu-usage-stats.c
+++ b/drivers/edgetpu/edgetpu-usage-stats.c
@@ -959,11 +959,8 @@
 
 	ustats = devm_kzalloc(etdev->dev, sizeof(*etdev->usage_stats),
 			      GFP_KERNEL);
-	if (!ustats) {
-		etdev_warn(etdev,
-			   "failed to allocate memory for usage stats\n");
+	if (!ustats)
 		return;
-	}
 
 	hash_init(ustats->uid_hash_table);
 	mutex_init(&ustats->usage_stats_lock);
