linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Michael Ellerman <mpe@ellerman.id.au>
To: Frederic Barrat <fbarrat@linux.vnet.ibm.com>,
	imunsie@au1.ibm.com, michael.neuling@au1.ibm.com,
	manoj@linux.vnet.ibm.com, mrochs@linux.vnet.ibm.com,
	linuxppc-dev@lists.ozlabs.org
Subject: Re: [v6,12/20] cxl: Add guest-specific code
Date: Wed,  9 Mar 2016 23:42:38 +1100 (AEDT)	[thread overview]
Message-ID: <20160309124238.37FD414032B@ozlabs.org> (raw)
In-Reply-To: <1457090804-9719-13-git-send-email-fbarrat@linux.vnet.ibm.com>

On Fri, 2016-04-03 at 11:26:36 UTC, Frederic Barrat wrote:
> From: Christophe Lombard <clombard@linux.vnet.ibm.com>
> 
> The new of.c file contains code to parse the device tree to find out
> about cxl adapters and AFUs.
> 
> guest.c implements the guest-specific callbacks for the backend API.
> 
> The process element ID is not known until the context is attached, so
> we have to separate the context ID assigned by the cxl driver from the
> process element ID visible to the user applications. In bare-metal,
> the 2 IDs match.
> 
> Co-authored-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com>
> Signed-off-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com>
> Signed-off-by: Christophe Lombard <clombard@linux.vnet.ibm.com>
> Reviewed-by: Manoj Kumar <manoj@linux.vnet.ibm.com>
> Acked-by: Ian Munsie <imunsie@au1.ibm.com>
> ---
>  drivers/misc/cxl/Makefile  |   1 +
>  drivers/misc/cxl/api.c     |   2 +-
>  drivers/misc/cxl/context.c |   6 +-
>  drivers/misc/cxl/cxl.h     |  37 +-
>  drivers/misc/cxl/file.c    |   2 +-
>  drivers/misc/cxl/guest.c   | 950 +++++++++++++++++++++++++++++++++++++++++++++
>  drivers/misc/cxl/main.c    |  18 +-
>  drivers/misc/cxl/of.c      | 513 ++++++++++++++++++++++++
>  8 files changed, 1519 insertions(+), 10 deletions(-)
>  create mode 100644 drivers/misc/cxl/guest.c
>  create mode 100644 drivers/misc/cxl/of.c
> 
> diff --git a/drivers/misc/cxl/Makefile b/drivers/misc/cxl/Makefile
> index be2ac5c..a3d4bef 100644
> --- a/drivers/misc/cxl/Makefile
> +++ b/drivers/misc/cxl/Makefile
> @@ -4,6 +4,7 @@ ccflags-$(CONFIG_PPC_WERROR)	+= -Werror
>  cxl-y				+= main.o file.o irq.o fault.o native.o
>  cxl-y				+= context.o sysfs.o debugfs.o pci.o trace.o
>  cxl-y				+= vphb.o api.o
> +cxl-y				+= guest.o of.o hcalls.o
>  obj-$(CONFIG_CXL)		+= cxl.o
>  obj-$(CONFIG_CXL_BASE)		+= base.o

This breaks the (newly added[1]) powernv_defconfig. ie. CONFIG_POWERNV=y, CONFIG_PPC_PSERIES=n.

  ERROR: "plpar_hcall" [drivers/misc/cxl/cxl.ko] undefined!
  ERROR: "rtas_call" [drivers/misc/cxl/cxl.ko] undefined!
  ERROR: "rtas_data_buf" [drivers/misc/cxl/cxl.ko] undefined!
  ERROR: "rtas_token" [drivers/misc/cxl/cxl.ko] undefined!
  ERROR: "plpar_hcall9" [drivers/misc/cxl/cxl.ko] undefined!
  ERROR: "rtas_data_buf_lock" [drivers/misc/cxl/cxl.ko] undefined!


Which is a show-stopper.

I've applied the following patch, let me know if there's anything wrong with
it. It would be great if we could do something cleaner.

cheers

diff --git a/drivers/misc/cxl/Makefile b/drivers/misc/cxl/Makefile
index 9ab874f83df0..8a55c1aa11aa 100644
--- a/drivers/misc/cxl/Makefile
+++ b/drivers/misc/cxl/Makefile
@@ -4,7 +4,7 @@ ccflags-$(CONFIG_PPC_WERROR)	+= -Werror
 cxl-y				+= main.o file.o irq.o fault.o native.o
 cxl-y				+= context.o sysfs.o debugfs.o pci.o trace.o
 cxl-y				+= vphb.o api.o
-cxl-y				+= flash.o guest.o of.o hcalls.o
+cxl-$(CONFIG_PPC_PSERIES)	+= flash.o guest.o of.o hcalls.o
 obj-$(CONFIG_CXL)		+= cxl.o
 obj-$(CONFIG_CXL_BASE)		+= base.o
 
diff --git a/drivers/misc/cxl/main.c b/drivers/misc/cxl/main.c
index b5eeb71f6a9e..ae68c3201156 100644
--- a/drivers/misc/cxl/main.c
+++ b/drivers/misc/cxl/main.c
@@ -296,10 +296,13 @@ static int __init init_cxl(void)
 	if (cpu_has_feature(CPU_FTR_HVMODE)) {
 		cxl_ops = &cxl_native_ops;
 		rc = pci_register_driver(&cxl_pci_driver);
-	} else {
+	}
+#ifdef CONFIG_PPC_PSERIES
+	else {
 		cxl_ops = &cxl_guest_ops;
 		rc = platform_driver_register(&cxl_of_driver);
 	}
+#endif
 	if (rc)
 		goto err1;
 
@@ -317,8 +320,10 @@ static void exit_cxl(void)
 {
 	if (cpu_has_feature(CPU_FTR_HVMODE))
 		pci_unregister_driver(&cxl_pci_driver);
+#ifdef CONFIG_PPC_PSERIES
 	else
 		platform_driver_unregister(&cxl_of_driver);
+#endif
 
 	cxl_debugfs_exit();
 	cxl_file_exit();

  parent reply	other threads:[~2016-03-09 12:42 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-04 11:26 [PATCH v6 00/20] cxl: Add support for powerVM guest Frederic Barrat
2016-03-04 11:26 ` [PATCH v6 01/20] cxl: Move common code away from bare-metal-specific files Frederic Barrat
2016-03-10  2:03   ` [v6, " Michael Ellerman
2016-03-04 11:26 ` [PATCH v6 02/20] cxl: Move bare-metal specific code to specialized files Frederic Barrat
2016-03-04 11:26 ` [PATCH v6 03/20] cxl: Define process problem state area at attach time only Frederic Barrat
2016-03-04 11:26 ` [PATCH v6 04/20] cxl: Introduce implementation-specific API Frederic Barrat
2016-03-04 11:26 ` [PATCH v6 05/20] cxl: Rename some bare-metal specific functions Frederic Barrat
2016-03-04 11:26 ` [PATCH v6 06/20] cxl: Isolate a few bare-metal-specific calls Frederic Barrat
2016-03-04 11:26 ` [PATCH v6 07/20] cxl: Update cxl_irq() prototype Frederic Barrat
2016-03-04 11:26 ` [PATCH v6 08/20] cxl: IRQ allocation for guests Frederic Barrat
2016-03-04 11:26 ` [PATCH v6 09/20] powerpc: New possible return value from hcall Frederic Barrat
2016-03-04 11:26 ` [PATCH v6 10/20] cxl: New hcalls to support cxl adapters Frederic Barrat
2016-03-04 11:26 ` [PATCH v6 11/20] cxl: Separate bare-metal fields in adapter and AFU data structures Frederic Barrat
2016-03-04 11:26 ` [PATCH v6 12/20] cxl: Add guest-specific code Frederic Barrat
2016-03-09  5:55   ` [v6,12/20] " Michael Ellerman
2016-03-09  9:14     ` Frederic Barrat
2016-03-09 10:31       ` Michael Ellerman
2016-03-09 12:42   ` Michael Ellerman [this message]
2016-03-09 12:57     ` Michael Ellerman
2016-03-09 14:20     ` Frederic Barrat
2016-03-04 11:26 ` [PATCH v6 13/20] cxl: sysfs support for guests Frederic Barrat
2016-03-07  5:21   ` Ian Munsie
2016-03-04 11:26 ` [PATCH v6 14/20] cxl: Support to flash a new image on the adapter from a guest Frederic Barrat
2016-03-07  5:23   ` Ian Munsie
2016-03-04 11:26 ` [PATCH v6 15/20] cxl: Parse device tree and create cxl device(s) at boot Frederic Barrat
2016-03-04 11:26 ` [PATCH v6 16/20] cxl: Support the cxl kernel API from a guest Frederic Barrat
2016-03-04 11:26 ` [PATCH v6 17/20] cxl: Adapter failure handling Frederic Barrat
2016-03-04 11:26 ` [PATCH v6 18/20] cxl: Add tracepoints around the cxl hcall Frederic Barrat
2016-03-04 11:26 ` [PATCH v6 19/20] cxlflash: Use new cxl_pci_read_adapter_vpd() API Frederic Barrat
2016-03-04 14:41   ` Uma Krishnan
2016-03-04 16:32   ` Matthew R. Ochs
2016-03-04 17:41   ` Manoj Kumar
2016-03-04 11:26 ` [PATCH v6 20/20] cxl: Remove cxl_get_phys_dev() kernel API Frederic Barrat
2016-03-07  5:25   ` Ian Munsie
2016-03-09 11:09   ` [v6,20/20] " Michael Ellerman
2016-03-09 11:35     ` Frederic Barrat
2016-03-07  5:28 ` [PATCH v6 00/20] cxl: Add support for powerVM guest Ian Munsie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160309124238.37FD414032B@ozlabs.org \
    --to=mpe@ellerman.id.au \
    --cc=fbarrat@linux.vnet.ibm.com \
    --cc=imunsie@au1.ibm.com \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=manoj@linux.vnet.ibm.com \
    --cc=michael.neuling@au1.ibm.com \
    --cc=mrochs@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).