Преглед изворни кода

Merge "soc: qcom: mem-offline: update return value of aop_send_msg"

qctecmdr пре 3 година
родитељ
комит
5c271e8d4b
1 измењених фајлова са 9 додато и 6 уклоњено
  1. 9 6
      drivers/soc/qcom/mem-offline.c

+ 9 - 6
drivers/soc/qcom/mem-offline.c

@@ -223,6 +223,7 @@ static int aop_send_msg(unsigned long addr, bool online)
 	struct qmp_pkt pkt;
 	char mbox_msg[MAX_LEN];
 	unsigned long addr_low, addr_high;
+	int ret;
 
 	addr_low = addr & AOP_MSG_ADDR_MASK;
 	addr_high = (addr >> AOP_MSG_ADDR_HIGH_SHIFT) & AOP_MSG_ADDR_MASK;
@@ -233,7 +234,8 @@ static int aop_send_msg(unsigned long addr, bool online)
 
 	pkt.size = MAX_LEN;
 	pkt.data = mbox_msg;
-	return (mbox_send_message(mailbox.mbox, &pkt) < 0);
+	ret = mbox_send_message(mailbox.mbox, &pkt);
+	return ret;
 }
 
 static long get_memblk_bits(unsigned int seg_idx, unsigned long memblk_addr)
@@ -285,11 +287,11 @@ static int send_msg(struct memory_notify *mn, bool online, int count)
 		else
 			ret = aop_send_msg(__pfn_to_phys(start), online);
 
-		if (ret) {
-			pr_err("PASR: %s %s request addr:0x%llx failed\n",
+		if (ret < 0) {
+			pr_err("PASR: %s %s request addr:0x%llx failed and return value from AOP is %d\n",
 			       is_rpm_controller ? "RPM" : "AOP",
 			       online ? "online" : "offline",
-			       __pfn_to_phys(start));
+			       __pfn_to_phys(start), ret);
 			goto undo;
 		}
 
@@ -314,8 +316,9 @@ undo:
 		else
 			ret = aop_send_msg(__pfn_to_phys(start), !online);
 
-		if (ret)
-			panic("Failed to completely online/offline a hotpluggable segment. A quasi state of memblock can cause randomn system failures.");
+		if (ret < 0)
+			panic("Failed to completely online/offline a hotpluggable segment. A quasi state of memblock can cause randomn system failures. Return value from AOP is %d",
+				ret);
 		segment_size = segment_infos[seg_idx].seg_size;
 		addr += segment_size;
 		seg_idx = get_segment_addr_to_idx(addr);