eres un cabr0n
parche reparado ....cambialo tio , por que el tuyo , se queda de lineas o espacios en blanco.
--- a/net/mac80211/cfg.c Tue May 28 16:57:23 2013 -0400
+++ b/net/mac80211/cfg.c Tue May 28 17:16:15 2013 -0400
@@ -801,3 +801,4 @@
}
- } else if (local->open_count == local->monitors) {
+ // Patch: Always allow channel change, even if a normal virtual interface is present
+ } else /*if (local->open_count == local->monitors)*/ {
local->_oper_channel = chandef->chan;
--- a/net/wireless/chan.c 2013-08-29 18:47:51.000000000 +0200
+++ b/net/wireless/chan.c 2013-08-31 22:20:45.014734447 +0200
@@ -441,4 +441,2 @@
return -EOPNOTSUPP;
- if (!cfg80211_has_monitors_only(rdev))
- return -EBUSY;
si xD ya lo he reconocido antes, que se me van los dedos.
lo reparo en el gist, que quede bien ahi.
voy a trazar el oper_channel a ver
EDIT: esa linea permite que las interfaces en modo monitor tengan, en el struct que corresponde con los datos de su configuracion, la informacion del canal donde operan.
OJO: en un parche, las lineas que no tienen un simbolo + o un simbolo - son marcadores de contexto. los marcadores de contexto no son añadidos ni restas, sino que deben estar tanto en el fichero origen como en el fichero resultante. se usan para que el sistema de parches sepa que las lineas que hay arriba o abajo son las que se espera que sean, de modo que un cambio de contexto fuerza la ruptura del parche (eso es algo que quieres que pase, porque asi te enteras cuando el código cambia)
el offset que se observa a veces al aplicar parches, indica que el contexto es correcto pero que está desplazado una o dos lineas mas arriba o abajo, cosa que se da por válida hasta X lineas, donde X está marcado por el "fuzzy factor"
por tanto, la linea que comentas no es un añadido.