]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/iommu/amd_iommu_init.c
iommu/amd: Check for error states first in iommu_go_to_state()
[linux.git] / drivers / iommu / amd_iommu_init.c
index df9ec85271f56b30ef7bb395dc185f349a74fc47..a6b81a05a0d1e9cfc75a6a719443debf8b21141a 100644 (file)
@@ -2467,14 +2467,14 @@ static int __init state_next(void)
 
 static int __init iommu_go_to_state(enum iommu_init_state state)
 {
-       int ret = 0;
+       int ret = -EINVAL;
 
        while (init_state != state) {
-               ret = state_next();
                if (init_state == IOMMU_NOT_FOUND         ||
                    init_state == IOMMU_INIT_ERROR        ||
                    init_state == IOMMU_CMDLINE_DISABLED)
                        break;
+               ret = state_next();
        }
 
        return ret;