From owner-freebsd-usb@FreeBSD.ORG Wed Jul 14 13:14:43 2010 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C3D2C1065678; Wed, 14 Jul 2010 13:14:43 +0000 (UTC) (envelope-from hselasky@c2i.net) Received: from swip.net (mailfe01.swip.net [212.247.154.1]) by mx1.freebsd.org (Postfix) with ESMTP id C71E48FC15; Wed, 14 Jul 2010 13:14:42 +0000 (UTC) X-Cloudmark-Score: 0.000000 [] X-Cloudmark-Analysis: v=1.1 cv=+aufMl16ZjoZikD717oZHt/II3iOLg17uabV0d0CmU0= c=1 sm=1 a=HRj3ij7MtkgA:10 a=UBIxAjGgU1YA:10 a=8nJEP1OIZ-IA:10 a=M8b_wTzEtboA:10 a=MnI1ikcADjEx7bvsp0jZvQ==:17 a=BEL1k6X5M7XCOl_27zQA:9 a=_FUVAfVLo7ZMgwwlwbfSzTOVigcA:4 a=wPNLvfGTeEIA:10 a=MnI1ikcADjEx7bvsp0jZvQ==:117 Received: from [188.126.201.140] (account mc467741@c2i.net HELO laptop002.hselasky.homeunix.org) by mailfe01.swip.net (CommuniGate Pro SMTP 5.2.19) with ESMTPA id 289938; Wed, 14 Jul 2010 15:14:41 +0200 To: PseudoCylon From: Hans Petter Selasky X-Face: +~\`s("[*|O,="7?X@L.elg*F"OA\I/3%^p8g?ab%RN'( =?iso-8859-1?q?=3B=5FIjlA=3A=0A=09hGE=2E=2EEw?=, =?iso-8859-1?q?XAQ*o=23=5C/M=7ESC=3DS1-f9=7BEzRfT=27=7CHhll5Q=5Dha5Bt-s=7Co?= =?iso-8859-1?q?TlKMusi=3A1e=5BwJl=7Dkd=7DGR=0A=09Z0adGx-x=5F0zGbZj=27e?=(Y[(UNle~)8CQWXW@:DX+9)_YlB[tIccCPN$7/L' Date: Wed, 14 Jul 2010 15:11:46 +0200 MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201007141511.46190.hselasky@c2i.net> Cc: Sam Leffler , freebsd-current@freebsd.org, freebsd-usb@freebsd.org Subject: Re: [panic] Race in IEEE802.11 layer towards device drivers X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Jul 2010 13:14:43 -0000 On Wednesday 14 July 2010 14:31:29 PseudoCylon wrote: > -if(vap->iv_opmode == IEEE80211_M_HOSTAP){ > -RUN_LOCK(sc); > +if (vap->iv_opmode == IEEE80211_M_HOSTAP) > sc->cmdq_key_set = RUN_CMDQ_GO; > -RUN_UNLOCK(sc); > -} > > Why are you removing these locks? Another question: i = RUN_CMDQ_GET(&sc->cmdq_store); DPRINTF("cmdq_store=%d\n", i); sc->cmdq[i].func = run_update_beacon_cb; sc->cmdq[i].arg0 = vap; Why is this code and similar places not enclosed with mutexes? --HPS