From patchwork Wed Aug 6 06:33:29 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alexey Kardashevskiy X-Patchwork-Id: 4683721 Return-Path: X-Original-To: patchwork-kvm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 2D0E49F37E for ; Wed, 6 Aug 2014 06:33:51 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 4BD2B20117 for ; Wed, 6 Aug 2014 06:33:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C551020115 for ; Wed, 6 Aug 2014 06:33:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754504AbaHFGdl (ORCPT ); Wed, 6 Aug 2014 02:33:41 -0400 Received: from mail-pd0-f181.google.com ([209.85.192.181]:44511 "EHLO mail-pd0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754317AbaHFGdk (ORCPT ); Wed, 6 Aug 2014 02:33:40 -0400 Received: by mail-pd0-f181.google.com with SMTP id g10so2754012pdj.12 for ; Tue, 05 Aug 2014 23:33:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-type :content-transfer-encoding; bh=Cc274f7/1CRrQSeSk/crJ8b2QpcVM0IpbE4d43BQ4qI=; b=ByUwX/xhjGtUW/lZgVNB97y1aTlqYNIebB52D9wp6RYfO+6ubnOWSUuyNX+tefN6r+ 89YNVWRclLrR4MtvKT18S6Kr/UjQs0NL4S3ajA8BtV53ZMI7V64+mEtTn4pAFsZzhVU1 sgjHIs2UGWM/CxTS4hTdueWvJ43kA5aa7SpuWPC8wN/xf48jU2s3xS6SSLp2tZbNJaUd gm+nV8K4dDUyL2HVvP9dI0MvbDfiZt8TkGI6/LZam1ipnZWwsXkbKUbIY0z0Qfw2yO0Y jSeahi1yhVW3ZKtveVE90xXJ+/L7Fkjk0cy9dSi7rt3p9fPXACq4h5HXi1V+u2B2k3Nz hN+g== X-Gm-Message-State: ALoCoQnoF3Bg4TibDpMOAtMhFfQR9UWv/ZqzOmdy82e7zjoT+OCxVL2JbfD0qVs/TWBB92Hj4O/Z X-Received: by 10.69.31.43 with SMTP id kj11mr9267671pbd.121.1407306819691; Tue, 05 Aug 2014 23:33:39 -0700 (PDT) Received: from aik.ozlabs.ibm.com (ibmaus65.lnk.telstra.net. [165.228.126.9]) by mx.google.com with ESMTPSA id mk7sm195558pab.27.2014.08.05.23.33.32 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 Aug 2014 23:33:34 -0700 (PDT) Message-ID: <53E1CC39.9000401@ozlabs.ru> Date: Wed, 06 Aug 2014 16:33:29 +1000 From: Alexey Kardashevskiy User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 MIME-Version: 1.0 To: Gavin Shan CC: Alex Williamson , linuxppc-dev@lists.ozlabs.org, Benjamin Herrenschmidt , kvm@vger.kernel.org Subject: Re: [PATCH v2 2/4] vfio: spapr: Fix build error References: <1407293313-24894-1-git-send-email-aik@ozlabs.ru> <1407293313-24894-3-git-send-email-aik@ozlabs.ru> <1407294770.316.76.camel@ul30vt.home> <20140806035413.GA7681@shangw> In-Reply-To: <20140806035413.GA7681@shangw> Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP On 08/06/2014 01:54 PM, Gavin Shan wrote: > On Tue, Aug 05, 2014 at 09:12:50PM -0600, Alex Williamson wrote: >> On Wed, 2014-08-06 at 12:48 +1000, Alexey Kardashevskiy wrote: >>> From: Gavin Shan >>> >>> The VFIO related components could be built as dynamic modules. >>> Unfortunately, CONFIG_EEH can't be configured to "m". The patch >>> fixes the build errors when configuring VFIO related components >>> as dynamic modules as follows: >>> >>> CC [M] drivers/vfio/vfio_iommu_spapr_tce.o >>> In file included from drivers/vfio/vfio.c:33:0: >>> include/linux/vfio.h:101:43: warning: ‘struct pci_dev’ declared \ >>> inside parameter list [enabled by default] >>> : >>> WRAP arch/powerpc/boot/zImage.pseries >>> WRAP arch/powerpc/boot/zImage.maple >>> WRAP arch/powerpc/boot/zImage.pmac >>> WRAP arch/powerpc/boot/zImage.epapr >>> MODPOST 1818 modules >>> ERROR: ".vfio_spapr_iommu_eeh_ioctl" [drivers/vfio/vfio_iommu_spapr_tce.ko]\ >>> undefined! >>> ERROR: ".vfio_spapr_pci_eeh_open" [drivers/vfio/pci/vfio-pci.ko] undefined! >>> ERROR: ".vfio_spapr_pci_eeh_release" [drivers/vfio/pci/vfio-pci.ko] undefined! >>> >>> Reported-by: Alexey Kardashevskiy >>> Signed-off-by: Gavin Shan >>> [removed include "pci.h" in vfio.c] >>> Signed-off-by: Alexey Kardashevskiy >>> --- >>> Changes: >>> v2: >>> * removed #include from vfio.c and tested > > Appreciated for Alexey's help on it :) My bad, that was wrong actually, we still need this: extern void vfio_spapr_pci_eeh_release(struct pci_dev *pdev); Otherwise it is "warning: ‘struct pci_dev’ declared inside parameter list". For some reason I only see this warning when backporting this patch to 3.10 and I do not see it in 3.16-rc7, I guess pci.h gets included somewhere. > >> >> I also commented regarding the ifdef around all of vfio_spapr_eeh.c: >> >> Why not add a new CONFIG_VFIO_SPAPR_EEH option to handle this >> instead? >> >> Did you disagree? The ifdef is pretty ugly. >> > > I'll introduce CONFIG_VFIO_SPAPR_EEH. So, Gavin, then the patchset is yours (again), ok? > Thanks, > Gavin > >>> --- >>> drivers/vfio/Makefile | 4 ++-- >>> drivers/vfio/vfio_spapr_eeh.c | 6 ++++++ >>> 2 files changed, 8 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/vfio/Makefile b/drivers/vfio/Makefile >>> index 50e30bc..4891cca 100644 >>> --- a/drivers/vfio/Makefile >>> +++ b/drivers/vfio/Makefile >>> @@ -1,5 +1,5 @@ >>> obj-$(CONFIG_VFIO) += vfio.o >>> obj-$(CONFIG_VFIO_IOMMU_TYPE1) += vfio_iommu_type1.o >>> -obj-$(CONFIG_VFIO_IOMMU_SPAPR_TCE) += vfio_iommu_spapr_tce.o >>> -obj-$(CONFIG_EEH) += vfio_spapr_eeh.o >>> +obj-$(CONFIG_VFIO_IOMMU_SPAPR_TCE) += vfio_iommu_spapr_tce.o \ >>> + vfio_spapr_eeh.o >>> obj-$(CONFIG_VFIO_PCI) += pci/ >>> diff --git a/drivers/vfio/vfio_spapr_eeh.c b/drivers/vfio/vfio_spapr_eeh.c >>> index f834b4c..1a93e83 100644 >>> --- a/drivers/vfio/vfio_spapr_eeh.c >>> +++ b/drivers/vfio/vfio_spapr_eeh.c >>> @@ -14,15 +14,19 @@ >>> #include >>> >>> /* We might build address mapping here for "fast" path later */ >>> +#ifdef CONFIG_EEH >>> + >>> int vfio_spapr_pci_eeh_open(struct pci_dev *pdev) >>> { >>> return eeh_dev_open(pdev); >>> } >>> +EXPORT_SYMBOL_GPL(vfio_spapr_pci_eeh_open); >>> >>> void vfio_spapr_pci_eeh_release(struct pci_dev *pdev) >>> { >>> eeh_dev_release(pdev); >>> } >>> +EXPORT_SYMBOL_GPL(vfio_spapr_pci_eeh_release); >>> >>> long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, >>> unsigned int cmd, unsigned long arg) >>> @@ -85,3 +89,5 @@ long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, >>> >>> return ret; >>> } >>> +EXPORT_SYMBOL_GPL(vfio_spapr_iommu_eeh_ioctl); >>> +#endif /* CONFIG_EEH */ >> >> >> > diff --git a/include/linux/vfio.h b/include/linux/vfio.h index 25a0fbd..224128a 100644 --- a/include/linux/vfio.h +++ b/include/linux/vfio.h @@ -98,6 +98,7 @@ extern int vfio_external_user_iommu_id(struct vfio_group *group); extern long vfio_external_check_extension(struct vfio_group *group, unsigned long arg); +struct pci_dev; #ifdef CONFIG_EEH extern int vfio_spapr_pci_eeh_open(struct pci_dev *pdev);