From owner-freebsd-current@FreeBSD.ORG Tue Jan 14 16:20:53 2014 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 08221E49; Tue, 14 Jan 2014 16:20:53 +0000 (UTC) Received: from SMTP.CITRIX.COM (smtp.citrix.com [66.165.176.89]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 69C3D15F0; Tue, 14 Jan 2014 16:20:50 +0000 (UTC) X-IronPort-AV: E=Sophos;i="4.95,658,1384300800"; d="scan'208";a="92738398" Received: from accessns.citrite.net (HELO FTLPEX01CL03.citrite.net) ([10.9.154.239]) by FTLPIPO01.CITRIX.COM with ESMTP; 14 Jan 2014 16:20:48 +0000 Received: from [IPv6:::1] (10.80.16.47) by smtprelay.citrix.com (10.13.107.80) with Microsoft SMTP Server id 14.2.342.4; Tue, 14 Jan 2014 11:20:47 -0500 Message-ID: <52D563DE.1020207@citrix.com> Date: Tue, 14 Jan 2014 17:20:46 +0100 From: =?UTF-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: Julien Grall Subject: Re: [PATCH v10 14/20] xen: introduce xenpv bus and a dummy pvcpu device References: <1389711582-66908-1-git-send-email-roger.pau@citrix.com> <1389711582-66908-15-git-send-email-roger.pau@citrix.com> <52D55AB4.4010504@linaro.org> <52D560EB.8040108@citrix.com> <52D5625D.7030702@citrix.com> In-Reply-To: <52D5625D.7030702@citrix.com> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-DLP: MIA1 Cc: Julien Grall , xen-devel@lists.xen.org, freebsd-xen@freebsd.org, freebsd-current@freebsd.org, kib@freebsd.org, gibbs@freebsd.org X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Jan 2014 16:20:53 -0000 On 14/01/14 17:14, Julien Grall wrote: > On 01/14/2014 04:08 PM, Roger Pau Monné wrote: >> On 14/01/14 16:41, Julien Grall wrote: >>> On 01/14/2014 02:59 PM, Roger Pau Monne wrote: >>>> +static int >>>> +xenpv_attach(device_t dev) >>>> +{ >>>> + device_t child; >>>> + >>>> + if (xen_hvm_domain()) { >>>> + device_t xenpci; >>>> + devclass_t dc; >>>> + >>>> + /* Make sure xenpci has been attached */ >>>> + dc = devclass_find("xenpci"); >>>> + if (dc == NULL) >>>> + panic("unable to find xenpci devclass"); >>>> + >>>> + xenpci = devclass_get_device(dc, 0); >>>> + if (xenpci == NULL) >>>> + panic("unable to find xenpci device"); >>>> + >>>> + if (!device_is_attached(xenpci)) >>>> + panic("trying to attach xenpv before xenpci"); >>>> + } >>> >>> Can you use the identify method to add the xenpci device? >> >> I don't think so, xenpci is a pci device, it is detected and plugged by >> the pci bus code. > > Oups, I though you are trying to add the device. In this case, the check > seems pointless. In which case the xenpci couldn't exist? It's just a "belt and suspenders", if we attach the xenpv bus without xenpci being attached first a bunch of things are going to fail, I though it might be best to print a clear error message about what went wrong in order to help debug it.