hi, konstantin
On 6/29/2018 6:51 PM, Ananyev, Konstantin wrote:
+int +rte_bus_sigbus_handler(const void *failure_addr) +{ + struct rte_bus *bus; + int old_errno = rte_errno; + int ret = 0; + + rte_errno = 0; + + bus = rte_bus_find(NULL, bus_handle_sigbus, failure_addr); + if (bus == NULL) { + RTE_LOG(ERR, EAL, "No bus can handle the sigbus error!"); + ret = -1; + } else if (rte_errno != 0) { + RTE_LOG(ERR, EAL, "Failed to handle the sigbus error!"); + ret = -1; + } + + /* if sigbus not be handled, return back old errno. */ + if (ret) + rte_errno = old_errno;Hmm, not sure why we need to set/restore rte_errno here?
restore old_errno just use to let caller know that the generic sigbus still not handler by bus hotplug handler, that involve find a bus handle but failed and can not find a hander, and can corresponding use the previous sigbus handler to process it. that is also unwser your question in other patch. do you think that make sense?
+ + return ret; +}

