iwlwifi: avoid some operations if no uCode loaded

Printing the SRAM and similar testmode operations could
be triggered when no uCode is loaded; prevent those
invalid operations by tracking whether uCode is loaded.

Signed-off-by: David Spinadel <david.spinadel@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
diff --git a/drivers/net/wireless/iwlwifi/iwl-debugfs.c b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
index 9b71c87..89cb9a7 100644
--- a/drivers/net/wireless/iwlwifi/iwl-debugfs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
@@ -235,10 +235,21 @@
 	/* default is to dump the entire data segment */
 	if (!priv->dbgfs_sram_offset && !priv->dbgfs_sram_len) {
 		priv->dbgfs_sram_offset = 0x800000;
-		if (priv->shrd->ucode_type == IWL_UCODE_INIT)
+		if (!priv->ucode_loaded) {
+			IWL_ERR(priv, "No uCode has been loadded.\n");
+			return -EINVAL;
+		}
+		if (priv->shrd->ucode_type == IWL_UCODE_INIT) {
 			priv->dbgfs_sram_len = priv->fw->ucode_init.data.len;
-		else
+		} else if (priv->shrd->ucode_type == IWL_UCODE_REGULAR) {
 			priv->dbgfs_sram_len = priv->fw->ucode_rt.data.len;
+		} else if (priv->shrd->ucode_type == IWL_UCODE_WOWLAN) {
+			priv->dbgfs_sram_len = priv->fw->ucode_wowlan.data.len;
+		} else {
+			IWL_ERR(priv, "Unsupported type of uCode loaded?"
+					" that shouldn't happen.\n");
+			return -EINVAL;
+		}
 	}
 	len = priv->dbgfs_sram_len;