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

Commit 313d214e 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

am: b90db084

Change-Id: Ia15a78ca5c818e820309e8ab75512e3dc5f48205
parents ff65e8e0 b90db084
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) {