svn commit: r315966 - head/sys/dev/iwn

Andriy Voskoboinyk avos at FreeBSD.org
Sat Mar 25 22:07:23 UTC 2017


Author: avos
Date: Sat Mar 25 22:07:21 2017
New Revision: 315966
URL: https://svnweb.freebsd.org/changeset/base/315966

Log:
  iwn: fix return code conflict in iwn_init_locked()
  
  Do not try to use errno(2) codes here; instead, just return unique
  value (1) when radio is disabled via hardware switch and another
  one (-1) for any other error in initialization path.
  
  Tested with Intel 6205, STA mode.

Modified:
  head/sys/dev/iwn/if_iwn.c

Modified: head/sys/dev/iwn/if_iwn.c
==============================================================================
--- head/sys/dev/iwn/if_iwn.c	Sat Mar 25 21:46:02 2017	(r315965)
+++ head/sys/dev/iwn/if_iwn.c	Sat Mar 25 22:07:21 2017	(r315966)
@@ -5120,7 +5120,7 @@ iwn_parent(struct ieee80211com *ic)
 		case 0:
 			ieee80211_start_all(ic);
 			break;
-		case EAGAIN:
+		case 1:
 			/* radio is disabled via RFkill switch */
 			taskqueue_enqueue(sc->sc_tq, &sc->sc_rftoggle_task);
 			break;
@@ -8879,8 +8879,10 @@ iwn_init_locked(struct iwn_softc *sc)
 
 	/* Check that the radio is not disabled by hardware switch. */
 	if (!(IWN_READ(sc, IWN_GP_CNTRL) & IWN_GP_CNTRL_RFKILL)) {
-		error = EAGAIN;
-		goto fail;
+		iwn_stop_locked(sc);
+		DPRINTF(sc, IWN_DEBUG_TRACE, "->%s: end\n",__func__);
+
+		return (1);
 	}
 
 	/* Read firmware images from the filesystem. */
@@ -8921,7 +8923,7 @@ fail:
 
 	DPRINTF(sc, IWN_DEBUG_TRACE, "->%s: end in error\n",__func__);
 
-	return (error);
+	return (-1);
 }
 
 static int


More information about the svn-src-all mailing list