module_param(acbsize, int, S_IRUGO|S_IWUSR);
 MODULE_PARM_DESC(acbsize, "Request a specific adapter control block (FIB) size. Valid values are 512, 2048, 4096 and 8192. Default is to use suggestion from Firmware.");
 
-int expose_physicals = 0;
+int expose_physicals = -1;
 module_param(expose_physicals, int, S_IRUGO|S_IWUSR);
-MODULE_PARM_DESC(expose_physicals, "Expose physical components of the arrays. 0=off, 1=on");
+MODULE_PARM_DESC(expose_physicals, "Expose physical components of the arrays. -1=protect 0=off, 1=on");
 /**
  *     aac_get_config_status   -       check the adapter configuration
  *     @common: adapter to query
 
                sdev->skip_ms_page_3f = 1;
        }
        if ((sdev->type == TYPE_DISK) &&
-                       !expose_physicals &&
                        (sdev_channel(sdev) != CONTAINER_CHANNEL)) {
-               struct aac_dev *aac = (struct aac_dev *)sdev->host->hostdata;
-               if (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2))
-                       sdev->no_uld_attach = 1;
+               if (expose_physicals == 0)
+                       return -ENXIO;
+               if (expose_physicals < 0) {
+                       struct aac_dev *aac =
+                               (struct aac_dev *)sdev->host->hostdata;
+                       if (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2))
+                               sdev->no_uld_attach = 1;
+               }
        }
        if (sdev->tagged_supported && (sdev->type == TYPE_DISK) &&
                        (sdev_channel(sdev) == CONTAINER_CHANNEL)) {