<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Hi,</div>
<div id="appendonsend"></div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<hr style="display: inline-block; width: 98%;">
<div id="divRplyFwdMsg">
<div style="direction: ltr; font-family: Calibri, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<b>From:</b> Stephen Hemminger <stephen@networkplumber.org><br>
<b>Sent:</b> Thursday, September 25, 2025 12:51 AM<br>
<b>To:</b> dev@dpdk.org <dev@dpdk.org><br>
<b>Cc:</b> Stephen Hemminger <stephen@networkplumber.org>; Xu, Rosen <rosen.xu@altera.com><br>
<b>Subject:</b> [RFC 3/6] raw/ifpga: avoid use of pthread_cancel</div>
<div style="direction: ltr;"> </div>
</div>
<div style="font-size: 11pt;" class="elementToProof">[CAUTION: This email is from outside your organization. Unless you trust the sender, do not click on links or open attachments as it may be a fraudulent email attempting to steal your information and/or compromise
your computer.]<br>
<br>
Use refcnt to do controlled shutdown of control thread<br>
rather than using pthread_cancel().<br>
<br>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org><br>
---<br>
drivers/raw/ifpga/ifpga_rawdev.c | 8 +-------<br>
1 file changed, 1 insertion(+), 7 deletions(-)<br>
<br>
diff --git a/drivers/raw/ifpga/ifpga_rawdev.c b/drivers/raw/ifpga/ifpga_rawdev.c<br>
index 5b9b596435..d61927f193 100644<br>
--- a/drivers/raw/ifpga/ifpga_rawdev.c<br>
+++ b/drivers/raw/ifpga/ifpga_rawdev.c<br>
@@ -573,13 +573,7 @@ ifpga_monitor_stop_func(struct ifpga_rawdev *dev)<br>
<br>
dev->poll_enabled = 0;<br>
<br>
- if (!(rte_atomic_fetch_sub_explicit(&ifpga_monitor_refcnt, 1,<br>
- rte_memory_order_relaxed) - 1) &&<br>
- ifpga_monitor_start_thread.opaque_id != 0) {<br>
- ret = pthread_cancel((pthread_t)ifpga_monitor_start_thread.opaque_id);<br>
- if (ret)<br>
- IFPGA_RAWDEV_PMD_ERR("Can't cancel the thread");<br>
-<br>
+ if (rte_atomic_fetch_sub_explicit(&ifpga_monitor_refcnt, 1, rte_memory_order_relaxed) == 1) {<br>
ret = rte_thread_join(ifpga_monitor_start_thread, NULL);<br>
if (ret)<br>
IFPGA_RAWDEV_PMD_ERR("Can't join the thread");<br>
--<br>
2.47.3<br>
<br>
</div>
<div style="font-family: "Segoe UI", "Segoe UI Web (West European)", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif; font-size: 14.67px; color: rgb(0, 0, 0);" class="elementToProof">
Reviewed-by<span style="background-color: rgb(255, 255, 255);">: Rosen Xu <rosen.xu@altera.com></span></div>
</body>
</html>