diff mbox

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

Message ID 20170112072513.98411-3-bjsdjshi@linux.vnet.ibm.com (mailing list archive)
State New, archived
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)

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Cornelia Huck Jan. 18, 2017, 12:41 p.m. UTC | #2
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.

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Alex Williamson Jan. 18, 2017, 8:43 p.m. UTC | #3
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
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
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)