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;
+}

Reply via email to