diff --git a/init/firmware_handler.cpp b/init/firmware_handler.cpp index 3c012feb5..01957eff0 100644 --- a/init/firmware_handler.cpp +++ b/init/firmware_handler.cpp @@ -264,8 +264,9 @@ std::string FirmwareHandler::GetFirmwarePath(const Uevent& uevent) const { return uevent.firmware; } -void FirmwareHandler::ProcessFirmwareEvent(const std::string& root, +void FirmwareHandler::ProcessFirmwareEvent(const std::string& path, const std::string& firmware) const { + std::string root = "/sys" + path; std::string loading = root + "/loading"; std::string data = root + "/data"; @@ -296,6 +297,7 @@ void FirmwareHandler::ProcessFirmwareEvent(const std::string& root, ", fstat failed: " + strerror(errno)); return false; } + LOG(INFO) << "found " << file << " for " << path; LoadFirmware(firmware, root, fw_fd.get(), sb.st_size, loading_fd.get(), data_fd.get()); return true; }; @@ -362,7 +364,7 @@ void FirmwareHandler::HandleUevent(const Uevent& uevent) { if (pid == 0) { Timer t; auto firmware = GetFirmwarePath(uevent); - ProcessFirmwareEvent("/sys" + uevent.path, firmware); + ProcessFirmwareEvent(uevent.path, firmware); LOG(INFO) << "loading " << uevent.path << " took " << t; _exit(EXIT_SUCCESS); } diff --git a/init/firmware_handler.h b/init/firmware_handler.h index d2f7347ce..fceb392db 100644 --- a/init/firmware_handler.h +++ b/init/firmware_handler.h @@ -57,7 +57,7 @@ class FirmwareHandler : public UeventHandler { Result RunExternalHandler(const std::string& handler, uid_t uid, gid_t gid, const Uevent& uevent) const; std::string GetFirmwarePath(const Uevent& uevent) const; - void ProcessFirmwareEvent(const std::string& root, const std::string& firmware) const; + void ProcessFirmwareEvent(const std::string& path, const std::string& firmware) const; bool ForEachFirmwareDirectory(std::function handler) const; std::vector firmware_directories_;