From owner-freebsd-wireless@freebsd.org Sun Aug 13 09:48:16 2017 Return-Path: Delivered-To: freebsd-wireless@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 214B5DD3B7D for ; Sun, 13 Aug 2017 09:48:16 +0000 (UTC) (envelope-from s3erios@gmail.com) Received: from mail-lf0-x244.google.com (mail-lf0-x244.google.com [IPv6:2a00:1450:4010:c07::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9832B66CA6 for ; Sun, 13 Aug 2017 09:48:15 +0000 (UTC) (envelope-from s3erios@gmail.com) Received: by mail-lf0-x244.google.com with SMTP id w199so4827948lff.2 for ; Sun, 13 Aug 2017 02:48:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:cc:subject:references:date:mime-version :content-transfer-encoding:from:message-id:in-reply-to:user-agent; bh=+nTrobguhEYL1fifEBok+4CsRdfIJtyFGdbTTOtbCdQ=; b=s4fB3HJju4QNYMpKGS1pGKF3qCcQbzbC61ErxcQvFL7U+4C2IVGIybnGnflcRP+517 /GYRHiDx+MFScnk03IWwUmsh7IIijaIPno+/RDmqLjTSZIHNf7Utg7vX46DIKnIdNGNx U1VAC9Jclt8f5VZA0KALrPXQl0oIE1cQ4lM5YC20tUMCZlQ4OPkpVMlNDdwHlFJQo/+q E8EgwAerYqeja0HwI85bk2g+axcXYKKzj3LCiOMVo9J6gh5et6N2UVLNCSzDNFt0Kdaz 1/Pd1ak6RwLIgzzPrkpVIKCoCAs+dgFjvIaf1GYGJTGE6h8tfBp/FK+rzBTl86+1E36F P0rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:cc:subject:references:date:mime-version :content-transfer-encoding:from:message-id:in-reply-to:user-agent; bh=+nTrobguhEYL1fifEBok+4CsRdfIJtyFGdbTTOtbCdQ=; b=dgmT6uxy7iEW4kSzNWk4emPeouGGbyP8z/70rq0k7wLxez1VUweyrI9Gurk9vvhxWr 9uga3wsiUxk0K+Bs0STwwWOJPKF3J2xC1TKLO88/9BwPZwNdQHxIyfraPsggmm5FlKRo T9hlsFPFzdzAUcNDxANPVEIUAGEEYuNChmf65bu8hlHAf5tTiaAvDsF/EIkddRBDs3wy OWo+8ZfsM3CUNFpdOgkp6QU/O0n56EpM3Tx0FEsSoK7yWE6dy2vrL0Oo195CDijg/pet /hDA73i3FaaTikhlX3Bxc1swYuv7JBDazoVOh9ZvqkRBDAOFwwThCDUr5UnRJlGU8jxD 9Fuw== X-Gm-Message-State: AHYfb5g8xxHtf5TSgiDP8UZkc2sQBPGkH84PRAxojLUXOMEfIrsaVNiA 03ia62PGOP9P1bknXBs= X-Received: by 10.25.83.65 with SMTP id h62mr4680914lfb.149.1502617693587; Sun, 13 Aug 2017 02:48:13 -0700 (PDT) Received: from thinkpad-x220 (46-133-32-106.dialup.umc.net.ua. [46.133.32.106]) by smtp.gmail.com with ESMTPSA id m20sm724395ljb.74.2017.08.13.02.48.11 (version=TLS1 cipher=AES128-SHA bits=128/128); Sun, 13 Aug 2017 02:48:12 -0700 (PDT) Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes To: "Adrian Chadd" , "Farhan Khan" Cc: "freebsd-wireless@freebsd.org" Subject: Re: Why is rtwn module detaching? References: Date: Sun, 13 Aug 2017 12:46:22 +0300 MIME-Version: 1.0 Content-Transfer-Encoding: Quoted-Printable From: "Andriy Voskoboinyk" Message-ID: In-Reply-To: User-Agent: Opera Mail/12.15 (FreeBSD) X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Aug 2017 09:48:16 -0000 Sun, 13 Aug 2017 04:09:45 +0300 =D0=B1=D1=83=D0=BB=D0=BE =D0=BD=D0=B0=D0= =BF=D0=B8=D1=81=D0=B0=D0=BD=D0=BE Farhan Khan = : Sounds like rtwn_init() fails somewhere - I would try to 'ifdef' out various routines from the end of it (e.g., everything but rtwn_power_on(= ), then rtwn_load_firmware(), rtwn_mac_init() etc.) to see where is the = problem. P.S. One thing that can be done without recompilation - try to move the firmware away and load the driver without it (it should start normally, rtl8188e* does not use it currently). > Following up on this from earlier: > > I am trying to extend the sys/dev/rtwn/rtl8188e driver to support PCI.= > Linux calls this rtl8188ee. > Right now, my code loads, reads the ROM, and will create an interface = = > with: > > ifconfig wlan0 create wlandev rtwn0 > > But when I assign an IP address, it immediately detaches. I have not b= een > able to figure out why this is happening and I cannot continue develop= ing > this driver, despite a few weeks of tracing the code. > > Some clues: > > I found that rtwn_parent() will trigger rtwn_stop() if ic->ic_nrunning= is > less than 0. That value is incremented in ieee80211_start_locked() and= > decremented in ieee80211_stop_locked(). > > I used stack_print(9), which show that ieee80211_stop_locked() is = > executed > at least 4 times, but the trace's originate with a device_detach() in = the > first place. What is causing that in the first place? > > So, why is my driver unloading? > Because ic->ic_nrunning is less than 0. > Why is ic->ic_nrunning less than 0? Because something is calling > ieee80211_stop_locked(). > > I have no direction on what the issue may be and have been just search= ing > for an extended period now. Any assistance would be highly appreciated= . > > Thank you, > > -- > Farhan Khan > PGP Fingerprint: 782F 342B 5B08 0D2F F4E8 82C3 FFA1 CAE1 6536 51CA > > On Mon, Aug 7, 2017 at 7:15 PM, Adrian Chadd = = > wrote: > >> For reference, we chatted on IRC. >> >> I think it's the NIC disappearing because giving it an iP brings it >> link 'up' and something in the 'up' path is causing the firmware to >> crash and the NIC to disappear. >> >> which bus is it on btw? eg, you could try 'devctl rescan pcib3' if >> it's on pcib3.. >> >> -adrian >> >> On 5 August 2017 at 19:43, Farhan Khan wrote: >> > Hi all, >> > >> > I am slowly struggling through writing my Wifi first driver, which = is = >> an >> > extension to the current rtwn driver. I have reached another hurdle= = >> that >> > I'm stuck on. >> > >> > I bring up my wifi driver as follows: >> > >> > # kldload rtwn && kldload rtwn_pci >> > # sudo ifconfig wlan0 create wlandev rtwn0 >> > # sudo ifconfig wlan0 1.1.1.1 >> > >> > The third line causes the rtwn0 device to detach (and pci0 device, = = >> which >> > requires a reboot and is quite frustrating). >> > >> > I traced through the code to find why it is detaching and found tha= t = >> in >> > rtwn_parent() (sys/dev/rtwn/if_rtwn.c), it checks the ic->ic_nrunni= ng >> (from >> > struct ieee80211com). If that value is less than or equal to 0, it = = >> will >> > cause the rtwn driver to stop. This appears to be a common control >> > structure used by other drivers as well. >> > >> > Unfortunately, I have not been able to determine where = >> ic->ic_nrunning is >> > modified anywhere in the kernel. In fact, the only references I fou= nd >> from >> > my searches was checking the ic_nrunning value, not setting it. >> > >> > Does anyone know where this is being set? Without determining this,= I >> > cannot why my driver is unloading. I suspect that I failed to set t= he >> > appropriate 802.11 values in my own code, causing the base 802.11 = >> code to >> > mark it as "off" or malfunctioning but I am not certain. >> > >> > Please advise. >> > Thank you, >> > -- >> > Farhan Khan >> > PGP Fingerprint: 782F 342B 5B08 0D2F F4E8 82C3 FFA1 CAE1 6536 51CA >> > _______________________________________________ >> > freebsd-wireless@freebsd.org mailing list >> > https://lists.freebsd.org/mailman/listinfo/freebsd-wireless >> > To unsubscribe, send any mail to "freebsd-wireless-unsubscribe@ >> freebsd.org" >> > _______________________________________________ > freebsd-wireless@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-wireless > To unsubscribe, send any mail to = > "freebsd-wireless-unsubscribe@freebsd.org"