Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b90db084 authored by Josh Gao's avatar Josh Gao Committed by android-build-merger
Browse files

Merge "adbd: properly handle FUNCTIONFS_BIND without ENABLE."

am: 22ff8e19

Change-Id: I81b83555625d718443a61ddfdb19badb971845ec
parents 6a335c04 22ff8e19
Loading
Loading
Loading
Loading
+2 −16
Original line number Diff line number Diff line
@@ -270,29 +270,15 @@ struct UsbFfsConnection : public Connection {
            bool started = false;
            bool running = true;
            while (running) {
                int timeout = -1;
                if (!bound || !started) {
                    timeout = 5000 /*ms*/;
                }

                adb_pollfd pfd[2] = {
                  { .fd = control_fd_.get(), .events = POLLIN, .revents = 0 },
                  { .fd = monitor_event_fd_.get(), .events = POLLIN, .revents = 0 },
                };
                int rc = TEMP_FAILURE_RETRY(adb_poll(pfd, 2, timeout));
                int rc = TEMP_FAILURE_RETRY(adb_poll(pfd, 2, -1));
                if (rc == -1) {
                    PLOG(FATAL) << "poll on USB control fd failed";
                } else if (rc == 0) {
                    // Something in the kernel presumably went wrong.
                    // Close our endpoints, wait for a bit, and then try again.
                    StopWorker();
                    aio_context_.reset();
                    read_fd_.reset();
                    write_fd_.reset();
                    control_fd_.reset();
                    std::this_thread::sleep_for(5s);
                    HandleError("didn't receive FUNCTIONFS_ENABLE, retrying");
                    return;
                    LOG(FATAL) << "poll on USB control fd returned 0";
                }

                if (pfd[1].revents) {