Jelajahi Sumber

Bluetooth: Test 'count' value before enter the loop

Testing first we avoid enter the loop when count = 0.

Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Gustavo F. Padovan 15 tahun lalu
induk
melakukan
da5f6c37ee
1 mengubah file dengan 4 tambahan dan 4 penghapusan
  1. 4 4
      net/bluetooth/hci_core.c

+ 4 - 4
net/bluetooth/hci_core.c

@@ -1149,7 +1149,7 @@ int hci_recv_fragment(struct hci_dev *hdev, int type, void *data, int count)
 	if (type < HCI_ACLDATA_PKT || type > HCI_EVENT_PKT)
 	if (type < HCI_ACLDATA_PKT || type > HCI_EVENT_PKT)
 		return -EILSEQ;
 		return -EILSEQ;
 
 
-	do {
+	while (count) {
 		rem = hci_reassembly(hdev, type, data, count,
 		rem = hci_reassembly(hdev, type, data, count,
 						type - 1, GFP_ATOMIC);
 						type - 1, GFP_ATOMIC);
 		if (rem < 0)
 		if (rem < 0)
@@ -1157,7 +1157,7 @@ int hci_recv_fragment(struct hci_dev *hdev, int type, void *data, int count)
 
 
 		data += (count - rem);
 		data += (count - rem);
 		count = rem;
 		count = rem;
-	} while (count);
+	};
 
 
 	return rem;
 	return rem;
 }
 }
@@ -1170,7 +1170,7 @@ int hci_recv_stream_fragment(struct hci_dev *hdev, void *data, int count)
 	int type;
 	int type;
 	int rem = 0;
 	int rem = 0;
 
 
-	do {
+	while (count) {
 		struct sk_buff *skb = hdev->reassembly[STREAM_REASSEMBLY];
 		struct sk_buff *skb = hdev->reassembly[STREAM_REASSEMBLY];
 
 
 		if (!skb) {
 		if (!skb) {
@@ -1192,7 +1192,7 @@ int hci_recv_stream_fragment(struct hci_dev *hdev, void *data, int count)
 
 
 		data += (count - rem);
 		data += (count - rem);
 		count = rem;
 		count = rem;
-	} while (count);
+	};
 
 
 	return rem;
 	return rem;
 }
 }