diff --git a/ServiceManager.cpp b/ServiceManager.cpp
index f88e63d..7930d18 100644
--- a/ServiceManager.cpp
+++ b/ServiceManager.cpp
@@ -382,9 +382,9 @@
 
 
 Return<void> ServiceManager::registerPassthroughClient(const hidl_string &fqName,
-        const hidl_string &name, int32_t pid) {
-    pid_t callingPid = IPCThreadState::self()->getCallingPid();
-    if (!mAcl.canGet(fqName, callingPid)) {
+        const hidl_string &name) {
+    pid_t pid = IPCThreadState::self()->getCallingPid();
+    if (!mAcl.canGet(fqName, pid)) {
         /* We guard this function with "get", because it's typically used in
          * the getService() path, albeit for a passthrough service in this
          * case
diff --git a/ServiceManager.h b/ServiceManager.h
index 86fffcf..c616d80 100644
--- a/ServiceManager.h
+++ b/ServiceManager.h
@@ -46,7 +46,7 @@
 
     Return<void> debugDump(debugDump_cb _cb) override;
     Return<void> registerPassthroughClient(const hidl_string &fqName,
-            const hidl_string &name, int32_t pid) override;
+            const hidl_string &name) override;
 
     virtual void serviceDied(uint64_t cookie, const wp<IBase>& who);
 private:
diff --git a/Vintf.cpp b/Vintf.cpp
index f00a9ea..c690eca 100644
--- a/Vintf.cpp
+++ b/Vintf.cpp
@@ -1,4 +1,5 @@
 #define LOG_TAG "hwservicemanager"
+//#define LOG_NDEBUG 0
 
 #include "Vintf.h"
 
@@ -24,16 +25,16 @@
 vintf::Transport getTransport(const std::string &interfaceName, const std::string &instanceName) {
     FQName fqName(interfaceName);
     if (!fqName.isValid()) {
-        LOG(ERROR) << "getTransport: " << interfaceName << " is not a valid fully-qualified name.";
+        LOG(DEBUG) << "getTransport: " << interfaceName << " is not a valid fully-qualified name.";
         return vintf::Transport::EMPTY;
     }
     if (!fqName.hasVersion()) {
-        LOG(ERROR) << "getTransport: " << fqName.string()
+        LOG(DEBUG) << "getTransport: " << fqName.string()
                    << " does not specify a version. Using default transport.";
         return vintf::Transport::EMPTY;
     }
     if (fqName.name().empty()) {
-        LOG(ERROR) << "getTransport: " << fqName.string()
+        LOG(DEBUG) << "getTransport: " << fqName.string()
                    << " does not specify an interface name. Using default transport.";
         return vintf::Transport::EMPTY;
     }
@@ -56,4 +57,4 @@
 }
 
 }  // hardware
-}  // android
\ No newline at end of file
+}  // android
