2016-10-20 1 views
-2

Ich kann nicht eine Sache in net/wireless/nl80211.c-Datei ab Kernel 3.13 verstehen. Warum gibt es folgende if-Anweisung in nl80211_start_radar_detection():Linux-Kernel Wireless-Gerätetreiber

if (netif_carrier_ok(dev)) { 
    return -EBUSY; 
} 

Von dem, was ich verstehe, bedeutet dies, dass wir nicht Radarerfassung, wenn unser Fahrer Träger bereit ist, beginnen kann. Warum? Sollte das nicht sein

if (!netif_carrier_ok(dev)) { 
    return -EBUSY; 
} 

Dank

+0

Viele Funktionen in der Unix- und POSIX-Welt geben bei Erfolg Null und bei Ausfall eine negative Zahl zurück. Vielleicht, wenn Sie überprüfen, was "netif_carrier_ok" tut und was es zurückgibt, werden Sie besser (und schneller!) Herausfinden als nur hier zu posten? –

+0

Das habe ich schon gemacht, genau aus diesem Grund stelle ich die Frage – Miza

+0

@Someprogrammerdude, netif_carier_ok gibt 'bool' zurück. Wäre wirklich seltsam, wenn 0 Erfolg bedeutet. – Arkadiy

Antwort

0

nl80211_start_radar_detection(): - das wird eine Radarerfassung starten und wird von dem Kanal bewegen, wenn Radar erfasst wird.

aber hier netif_carrier_ok (dev), überprüfen, ob das Gerät diesen Träger unterstützt oder nicht oder kann mein Gerät auf diesem Kanal arbeiten und wenn nicht mit Fehler zurück.

Keine Notwendigkeit, in Zukunft fortzufahren und nach Radar zu suchen.