diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index 886c25b..56de765 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -4656,13 +4656,25 @@
     {
         Mutex::Autolock _l(mLock);
 
+        // check audio settings permission for global effects
+        if (sessionId == AudioSystem::SESSION_OUTPUT_MIX && !settingsAllowed()) {
+            lStatus = PERMISSION_DENIED;
+            goto Exit;
+        }
+
+        // Session AudioSystem::SESSION_OUTPUT_STAGE is reserved for output stage effects
+        // that can only be created by audio policy manager (running in same process)
+        if (sessionId == AudioSystem::SESSION_OUTPUT_STAGE && getpid() != pid) {
+            lStatus = PERMISSION_DENIED;
+            goto Exit;
+        }
+
         // check recording permission for visualizer
-        if (memcmp(&pDesc->type, SL_IID_VISUALIZATION, sizeof(effect_uuid_t)) == 0 ||
-            memcmp(&pDesc->uuid, &VISUALIZATION_UUID_, sizeof(effect_uuid_t)) == 0) {
-            if (!recordingAllowed()) {
-                lStatus = PERMISSION_DENIED;
-                goto Exit;
-            }
+        if ((memcmp(&pDesc->type, SL_IID_VISUALIZATION, sizeof(effect_uuid_t)) == 0 ||
+             memcmp(&pDesc->uuid, &VISUALIZATION_UUID_, sizeof(effect_uuid_t)) == 0) &&
+            !recordingAllowed()) {
+            lStatus = PERMISSION_DENIED;
+            goto Exit;
         }
 
         if (!EffectIsNullUuid(&pDesc->uuid)) {
@@ -4727,14 +4739,6 @@
             goto Exit;
         }
 
-        // Session AudioSystem::SESSION_OUTPUT_STAGE is reserved for output stage effects
-        // that can only be created by audio policy manager (running in same process)
-        if (sessionId == AudioSystem::SESSION_OUTPUT_STAGE &&
-                getpid() != pid) {
-            lStatus = INVALID_OPERATION;
-            goto Exit;
-        }
-
         // return effect descriptor
         memcpy(pDesc, &desc, sizeof(effect_descriptor_t));
 
