diff mbox

[RFC,v2,02/12] vfio: linux-headers update for vfio-ccw

Message ID 20170112072513.98411-3-bjsdjshi@linux.vnet.ibm.com
State New
Headers show

Commit Message

Dong Jia Shi Jan. 12, 2017, 7:25 a.m. UTC
From: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com>

This is a placeholder for a linux-headers update.

Signed-off-by: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com>
---
 include/standard-headers/asm-s390/vfio_ccw.h | 28 ++++++++++++++++++++++++++++
 linux-headers/linux/vfio.h                   | 17 +++++++++++++++++
 2 files changed, 45 insertions(+)
 create mode 100644 include/standard-headers/asm-s390/vfio_ccw.h

Comments

Alex Williamson Jan. 17, 2017, 9:51 p.m. UTC | #1
On Thu, 12 Jan 2017 08:25:03 +0100
Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote:

> From: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com>
> 
> This is a placeholder for a linux-headers update.
> 
> Signed-off-by: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com>
> ---
>  include/standard-headers/asm-s390/vfio_ccw.h | 28 ++++++++++++++++++++++++++++
>  linux-headers/linux/vfio.h                   | 17 +++++++++++++++++
>  2 files changed, 45 insertions(+)
>  create mode 100644 include/standard-headers/asm-s390/vfio_ccw.h
> 
> diff --git a/include/standard-headers/asm-s390/vfio_ccw.h b/include/standard-headers/asm-s390/vfio_ccw.h
> new file mode 100644
> index 0000000..cddc09b
> --- /dev/null
> +++ b/include/standard-headers/asm-s390/vfio_ccw.h
> @@ -0,0 +1,28 @@
> +/*
> + * Interfaces for vfio-ccw
> + *
> + * Copyright IBM Corp. 2017
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License (version 2 only)
> + * as published by the Free Software Foundation.
> + *
> + * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
> + */
> +
> +#ifndef _VFIO_CCW_H_
> +#define _VFIO_CCW_H_
> +
> +#include "standard-headers/linux/types.h"
> +
> +struct ccw_io_region {
> +#define ORB_AREA_SIZE 12
> +	uint8_t  orb_area[ORB_AREA_SIZE];
> +#define SCSW_AREA_SIZE 12
> +	uint8_t  scsw_area[SCSW_AREA_SIZE];
> +#define IRB_AREA_SIZE 96
> +	uint8_t  irb_area[IRB_AREA_SIZE];
> +	uint32_t ret_code;
> +} QEMU_PACKED;
> +
> +#endif

This is really part of the uapi for the vfio-ccw mdev device, isn't it?
Should it really be buried in asm-s390 in the kernel?

> diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h
> index 759b850..b09d247 100644
> --- a/linux-headers/linux/vfio.h
> +++ b/linux-headers/linux/vfio.h
> @@ -198,6 +198,7 @@ struct vfio_device_info {
>  #define VFIO_DEVICE_FLAGS_PCI	(1 << 1)	/* vfio-pci device */
>  #define VFIO_DEVICE_FLAGS_PLATFORM (1 << 2)	/* vfio-platform device */
>  #define VFIO_DEVICE_FLAGS_AMBA  (1 << 3)	/* vfio-amba device */
> +#define VFIO_DEVICE_FLAGS_CCW   (1 << 4)	/* vfio-ccw device */
>  	__u32	num_regions;	/* Max region index + 1 */
>  	__u32	num_irqs;	/* Max IRQ index + 1 */
>  };
> @@ -436,6 +437,22 @@ enum {
>  	VFIO_PCI_NUM_IRQS
>  };
>  
> +/*
> + * The VFIO-CCW bus driver makes use of the following fixed region and
> + * IRQ index mapping.  Unimplemented regions return a size of zero.
> + * Unimplemented IRQ types return a count of zero.
> + */
> +
> +enum {
> +        VFIO_CCW_CONFIG_REGION_INDEX,
> +        VFIO_CCW_NUM_REGIONS
> +};
> +
> +enum {
> +        VFIO_CCW_IO_IRQ_INDEX,
> +        VFIO_CCW_NUM_IRQS
> +};
> +
>  /**
>   * VFIO_DEVICE_GET_PCI_HOT_RESET_INFO - _IORW(VFIO_TYPE, VFIO_BASE + 12,
>   *					      struct vfio_pci_hot_reset_info)
Dong Jia Shi Jan. 18, 2017, 2:51 a.m. UTC | #2
* Alex Williamson <alex.williamson@redhat.com> [2017-01-17 14:51:42 -0700]:

> On Thu, 12 Jan 2017 08:25:03 +0100
> Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote:
> 
> > From: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com>
> > 
> > This is a placeholder for a linux-headers update.
> > 
> > Signed-off-by: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com>
> > ---
> >  include/standard-headers/asm-s390/vfio_ccw.h | 28 ++++++++++++++++++++++++++++
> >  linux-headers/linux/vfio.h                   | 17 +++++++++++++++++
> >  2 files changed, 45 insertions(+)
> >  create mode 100644 include/standard-headers/asm-s390/vfio_ccw.h
> > 
> > diff --git a/include/standard-headers/asm-s390/vfio_ccw.h b/include/standard-headers/asm-s390/vfio_ccw.h
> > new file mode 100644
> > index 0000000..cddc09b
> > --- /dev/null
> > +++ b/include/standard-headers/asm-s390/vfio_ccw.h
> > @@ -0,0 +1,28 @@
> > +/*
> > + * Interfaces for vfio-ccw
> > + *
> > + * Copyright IBM Corp. 2017
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License (version 2 only)
> > + * as published by the Free Software Foundation.
> > + *
> > + * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
> > + */
> > +
> > +#ifndef _VFIO_CCW_H_
> > +#define _VFIO_CCW_H_
> > +
> > +#include "standard-headers/linux/types.h"
> > +
> > +struct ccw_io_region {
> > +#define ORB_AREA_SIZE 12
> > +	uint8_t  orb_area[ORB_AREA_SIZE];
> > +#define SCSW_AREA_SIZE 12
> > +	uint8_t  scsw_area[SCSW_AREA_SIZE];
> > +#define IRB_AREA_SIZE 96
> > +	uint8_t  irb_area[IRB_AREA_SIZE];
> > +	uint32_t ret_code;
> > +} QEMU_PACKED;
> > +
> > +#endif
> 
> This is really part of the uapi for the vfio-ccw mdev device, isn't it?
Yes, it is.

> Should it really be buried in asm-s390 in the kernel?
> 
We had an internal discussion on this question before, since we think
this interface is strongly s390 dependent, we put it here. What do you
suggest? Thanks,

[...]
Cornelia Huck Jan. 18, 2017, 12:41 p.m. UTC | #3
On Wed, 18 Jan 2017 10:51:17 +0800
Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote:

> * Alex Williamson <alex.williamson@redhat.com> [2017-01-17 14:51:42 -0700]:
> 
> > On Thu, 12 Jan 2017 08:25:03 +0100
> > Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote:
> > 
> > > From: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com>
> > > 
> > > This is a placeholder for a linux-headers update.
> > > 
> > > Signed-off-by: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com>
> > > ---
> > >  include/standard-headers/asm-s390/vfio_ccw.h | 28 ++++++++++++++++++++++++++++
> > >  linux-headers/linux/vfio.h                   | 17 +++++++++++++++++
> > >  2 files changed, 45 insertions(+)
> > >  create mode 100644 include/standard-headers/asm-s390/vfio_ccw.h
> > > 
> > > diff --git a/include/standard-headers/asm-s390/vfio_ccw.h b/include/standard-headers/asm-s390/vfio_ccw.h
> > > new file mode 100644
> > > index 0000000..cddc09b
> > > --- /dev/null
> > > +++ b/include/standard-headers/asm-s390/vfio_ccw.h
> > > @@ -0,0 +1,28 @@
> > > +/*
> > > + * Interfaces for vfio-ccw
> > > + *
> > > + * Copyright IBM Corp. 2017
> > > + *
> > > + * This program is free software; you can redistribute it and/or modify
> > > + * it under the terms of the GNU General Public License (version 2 only)
> > > + * as published by the Free Software Foundation.
> > > + *
> > > + * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
> > > + */
> > > +
> > > +#ifndef _VFIO_CCW_H_
> > > +#define _VFIO_CCW_H_
> > > +
> > > +#include "standard-headers/linux/types.h"
> > > +
> > > +struct ccw_io_region {
> > > +#define ORB_AREA_SIZE 12
> > > +	uint8_t  orb_area[ORB_AREA_SIZE];
> > > +#define SCSW_AREA_SIZE 12
> > > +	uint8_t  scsw_area[SCSW_AREA_SIZE];
> > > +#define IRB_AREA_SIZE 96
> > > +	uint8_t  irb_area[IRB_AREA_SIZE];
> > > +	uint32_t ret_code;
> > > +} QEMU_PACKED;
> > > +
> > > +#endif
> > 
> > This is really part of the uapi for the vfio-ccw mdev device, isn't it?
> Yes, it is.
> 
> > Should it really be buried in asm-s390 in the kernel?
> > 
> We had an internal discussion on this question before, since we think
> this interface is strongly s390 dependent, we put it here. What do you
> suggest? Thanks,

As there are already architecture-specific definitions in the common
file, having everything in the same file is probably better. I'm
certainly not against moving it out from asm-s390.
Alex Williamson Jan. 18, 2017, 8:43 p.m. UTC | #4
On Wed, 18 Jan 2017 13:41:47 +0100
Cornelia Huck <cornelia.huck@de.ibm.com> wrote:

> On Wed, 18 Jan 2017 10:51:17 +0800
> Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote:
> 
> > * Alex Williamson <alex.williamson@redhat.com> [2017-01-17 14:51:42 -0700]:
> >   
> > > On Thu, 12 Jan 2017 08:25:03 +0100
> > > Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote:
> > >   
> > > > From: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com>
> > > > 
> > > > This is a placeholder for a linux-headers update.
> > > > 
> > > > Signed-off-by: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com>
> > > > ---
> > > >  include/standard-headers/asm-s390/vfio_ccw.h | 28 ++++++++++++++++++++++++++++
> > > >  linux-headers/linux/vfio.h                   | 17 +++++++++++++++++
> > > >  2 files changed, 45 insertions(+)
> > > >  create mode 100644 include/standard-headers/asm-s390/vfio_ccw.h
> > > > 
> > > > diff --git a/include/standard-headers/asm-s390/vfio_ccw.h b/include/standard-headers/asm-s390/vfio_ccw.h
> > > > new file mode 100644
> > > > index 0000000..cddc09b
> > > > --- /dev/null
> > > > +++ b/include/standard-headers/asm-s390/vfio_ccw.h
> > > > @@ -0,0 +1,28 @@
> > > > +/*
> > > > + * Interfaces for vfio-ccw
> > > > + *
> > > > + * Copyright IBM Corp. 2017
> > > > + *
> > > > + * This program is free software; you can redistribute it and/or modify
> > > > + * it under the terms of the GNU General Public License (version 2 only)
> > > > + * as published by the Free Software Foundation.
> > > > + *
> > > > + * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
> > > > + */
> > > > +
> > > > +#ifndef _VFIO_CCW_H_
> > > > +#define _VFIO_CCW_H_
> > > > +
> > > > +#include "standard-headers/linux/types.h"
> > > > +
> > > > +struct ccw_io_region {
> > > > +#define ORB_AREA_SIZE 12
> > > > +	uint8_t  orb_area[ORB_AREA_SIZE];
> > > > +#define SCSW_AREA_SIZE 12
> > > > +	uint8_t  scsw_area[SCSW_AREA_SIZE];
> > > > +#define IRB_AREA_SIZE 96
> > > > +	uint8_t  irb_area[IRB_AREA_SIZE];
> > > > +	uint32_t ret_code;
> > > > +} QEMU_PACKED;
> > > > +
> > > > +#endif  
> > > 
> > > This is really part of the uapi for the vfio-ccw mdev device, isn't it?  
> > Yes, it is.
> >   
> > > Should it really be buried in asm-s390 in the kernel?
> > >   
> > We had an internal discussion on this question before, since we think
> > this interface is strongly s390 dependent, we put it here. What do you
> > suggest? Thanks,  
> 
> As there are already architecture-specific definitions in the common
> file, having everything in the same file is probably better. I'm
> certainly not against moving it out from asm-s390.

As soon as we use it for the interface definition to the vfio region, I
think it makes sense for it to move to uapi.  It's not really
architecture specific as much as it is device specific, for a device
which happens to only appear on s390 hardware.  Putting it in uapi
should also make sure people think twice about changing it.  Thanks,

Alex
Dong Jia Shi Jan. 19, 2017, 1:54 a.m. UTC | #5
* Alex Williamson <alex.williamson@redhat.com> [2017-01-18 13:43:32 -0700]:

> On Wed, 18 Jan 2017 13:41:47 +0100
> Cornelia Huck <cornelia.huck@de.ibm.com> wrote:
> 
> > On Wed, 18 Jan 2017 10:51:17 +0800
> > Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote:
> > 
> > > * Alex Williamson <alex.williamson@redhat.com> [2017-01-17 14:51:42 -0700]:
> > >   
> > > > On Thu, 12 Jan 2017 08:25:03 +0100
> > > > Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote:
> > > >   
> > > > > From: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com>
> > > > > 
> > > > > This is a placeholder for a linux-headers update.
> > > > > 
> > > > > Signed-off-by: Xiao Feng Ren <renxiaof@linux.vnet.ibm.com>
> > > > > ---
> > > > >  include/standard-headers/asm-s390/vfio_ccw.h | 28 ++++++++++++++++++++++++++++
> > > > >  linux-headers/linux/vfio.h                   | 17 +++++++++++++++++
> > > > >  2 files changed, 45 insertions(+)
> > > > >  create mode 100644 include/standard-headers/asm-s390/vfio_ccw.h
> > > > > 
> > > > > diff --git a/include/standard-headers/asm-s390/vfio_ccw.h b/include/standard-headers/asm-s390/vfio_ccw.h
> > > > > new file mode 100644
> > > > > index 0000000..cddc09b
> > > > > --- /dev/null
> > > > > +++ b/include/standard-headers/asm-s390/vfio_ccw.h
> > > > > @@ -0,0 +1,28 @@
> > > > > +/*
> > > > > + * Interfaces for vfio-ccw
> > > > > + *
> > > > > + * Copyright IBM Corp. 2017
> > > > > + *
> > > > > + * This program is free software; you can redistribute it and/or modify
> > > > > + * it under the terms of the GNU General Public License (version 2 only)
> > > > > + * as published by the Free Software Foundation.
> > > > > + *
> > > > > + * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
> > > > > + */
> > > > > +
> > > > > +#ifndef _VFIO_CCW_H_
> > > > > +#define _VFIO_CCW_H_
> > > > > +
> > > > > +#include "standard-headers/linux/types.h"
> > > > > +
> > > > > +struct ccw_io_region {
> > > > > +#define ORB_AREA_SIZE 12
> > > > > +	uint8_t  orb_area[ORB_AREA_SIZE];
> > > > > +#define SCSW_AREA_SIZE 12
> > > > > +	uint8_t  scsw_area[SCSW_AREA_SIZE];
> > > > > +#define IRB_AREA_SIZE 96
> > > > > +	uint8_t  irb_area[IRB_AREA_SIZE];
> > > > > +	uint32_t ret_code;
> > > > > +} QEMU_PACKED;
> > > > > +
> > > > > +#endif  
> > > > 
> > > > This is really part of the uapi for the vfio-ccw mdev device, isn't it?  
> > > Yes, it is.
> > >   
> > > > Should it really be buried in asm-s390 in the kernel?
> > > >   
> > > We had an internal discussion on this question before, since we think
> > > this interface is strongly s390 dependent, we put it here. What do you
> > > suggest? Thanks,  
> > 
> > As there are already architecture-specific definitions in the common
> > file, having everything in the same file is probably better. I'm
> > certainly not against moving it out from asm-s390.
> 
> As soon as we use it for the interface definition to the vfio region, I
> think it makes sense for it to move to uapi.  It's not really
> architecture specific as much as it is device specific, for a device
> which happens to only appear on s390 hardware.  Putting it in uapi
> should also make sure people think twice about changing it.  Thanks,
> 
> Alex
> 
Fair enough. Let's move it to include/uapi/linux/vfio_ccw.h.
diff mbox

Patch

diff --git a/include/standard-headers/asm-s390/vfio_ccw.h b/include/standard-headers/asm-s390/vfio_ccw.h
new file mode 100644
index 0000000..cddc09b
--- /dev/null
+++ b/include/standard-headers/asm-s390/vfio_ccw.h
@@ -0,0 +1,28 @@ 
+/*
+ * Interfaces for vfio-ccw
+ *
+ * Copyright IBM Corp. 2017
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License (version 2 only)
+ * as published by the Free Software Foundation.
+ *
+ * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
+ */
+
+#ifndef _VFIO_CCW_H_
+#define _VFIO_CCW_H_
+
+#include "standard-headers/linux/types.h"
+
+struct ccw_io_region {
+#define ORB_AREA_SIZE 12
+	uint8_t  orb_area[ORB_AREA_SIZE];
+#define SCSW_AREA_SIZE 12
+	uint8_t  scsw_area[SCSW_AREA_SIZE];
+#define IRB_AREA_SIZE 96
+	uint8_t  irb_area[IRB_AREA_SIZE];
+	uint32_t ret_code;
+} QEMU_PACKED;
+
+#endif
diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h
index 759b850..b09d247 100644
--- a/linux-headers/linux/vfio.h
+++ b/linux-headers/linux/vfio.h
@@ -198,6 +198,7 @@  struct vfio_device_info {
 #define VFIO_DEVICE_FLAGS_PCI	(1 << 1)	/* vfio-pci device */
 #define VFIO_DEVICE_FLAGS_PLATFORM (1 << 2)	/* vfio-platform device */
 #define VFIO_DEVICE_FLAGS_AMBA  (1 << 3)	/* vfio-amba device */
+#define VFIO_DEVICE_FLAGS_CCW   (1 << 4)	/* vfio-ccw device */
 	__u32	num_regions;	/* Max region index + 1 */
 	__u32	num_irqs;	/* Max IRQ index + 1 */
 };
@@ -436,6 +437,22 @@  enum {
 	VFIO_PCI_NUM_IRQS
 };
 
+/*
+ * The VFIO-CCW bus driver makes use of the following fixed region and
+ * IRQ index mapping.  Unimplemented regions return a size of zero.
+ * Unimplemented IRQ types return a count of zero.
+ */
+
+enum {
+        VFIO_CCW_CONFIG_REGION_INDEX,
+        VFIO_CCW_NUM_REGIONS
+};
+
+enum {
+        VFIO_CCW_IO_IRQ_INDEX,
+        VFIO_CCW_NUM_IRQS
+};
+
 /**
  * VFIO_DEVICE_GET_PCI_HOT_RESET_INFO - _IORW(VFIO_TYPE, VFIO_BASE + 12,
  *					      struct vfio_pci_hot_reset_info)