Message ID | 20201103072104.12361-3-mdf@kernel.org (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | DFL Module support | expand |
On Mon, Nov 02, 2020 at 11:21:02PM -0800, Moritz Fischer wrote: > From: Xu Yilun <yilun.xu@intel.com> > > In order to support MODULE_DEVICE_TABLE() for dfl device driver, this > patch moves struct dfl_device_id to mod_devicetable.h > > Some brief description for DFL (Device Feature List) is added to make > the DFL known to the whole kernel. > > Signed-off-by: Xu Yilun <yilun.xu@intel.com> > Signed-off-by: Wu Hao <hao.wu@intel.com> > Signed-off-by: Matthew Gerlach <matthew.gerlach@linux.intel.com> > Signed-off-by: Russ Weight <russell.h.weight@intel.com> > Reviewed-by: Tom Rix <trix@redhat.com> > Acked-by: Wu Hao <hao.wu@intel.com> > Signed-off-by: Moritz Fischer <mdf@kernel.org> > --- > drivers/fpga/dfl.h | 13 +------------ > include/linux/mod_devicetable.h | 24 ++++++++++++++++++++++++ > 2 files changed, 25 insertions(+), 12 deletions(-) > > diff --git a/drivers/fpga/dfl.h b/drivers/fpga/dfl.h > index ac373b1fcff9..549c7900dcfd 100644 > --- a/drivers/fpga/dfl.h > +++ b/drivers/fpga/dfl.h > @@ -22,6 +22,7 @@ > #include <linux/interrupt.h> > #include <linux/iopoll.h> > #include <linux/io-64-nonatomic-lo-hi.h> > +#include <linux/mod_devicetable.h> > #include <linux/platform_device.h> > #include <linux/slab.h> > #include <linux/uuid.h> > @@ -525,18 +526,6 @@ enum dfl_id_type { > DFL_ID_MAX, > }; > > -/** > - * struct dfl_device_id - dfl device identifier > - * @type: DFL FIU type of the device. See enum dfl_id_type. > - * @feature_id: feature identifier local to its DFL FIU type. > - * @driver_data: driver specific data. > - */ > -struct dfl_device_id { > - u16 type; > - u16 feature_id; > - unsigned long driver_data; > -}; > - > /** > * struct dfl_device - represent an dfl device on dfl bus > * > diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h > index 5b08a473cdba..e4870e5d3ea8 100644 > --- a/include/linux/mod_devicetable.h > +++ b/include/linux/mod_devicetable.h > @@ -838,4 +838,28 @@ struct mhi_device_id { > kernel_ulong_t driver_data; > }; > > +/* > + * DFL (Device Feature List) > + * > + * DFL defines a linked list of feature headers within the device MMIO space to > + * provide an extensible way of adding features. Software can walk through these > + * predefined data structures to enumerate features. It is now used in the FPGA. > + * See Documentation/fpga/dfl.rst for more information. > + * > + * The dfl bus type is introduced to match the individual feature devices (dfl > + * devices) for specific dfl drivers. > + */ > + > +/** > + * struct dfl_device_id - dfl device identifier > + * @type: DFL FIU type of the device. See enum dfl_id_type. > + * @feature_id: feature identifier local to its DFL FIU type. > + * @driver_data: driver specific data. > + */ > +struct dfl_device_id { > + __u16 type; > + __u16 feature_id; > + unsigned long driver_data; This is the wrong type for driver_data now that it goes to userspace :( {sigh}
On Tue, Nov 03, 2020 at 08:40:53AM +0100, Greg KH wrote: > On Mon, Nov 02, 2020 at 11:21:02PM -0800, Moritz Fischer wrote: > > From: Xu Yilun <yilun.xu@intel.com> > > > > In order to support MODULE_DEVICE_TABLE() for dfl device driver, this > > patch moves struct dfl_device_id to mod_devicetable.h > > > > Some brief description for DFL (Device Feature List) is added to make > > the DFL known to the whole kernel. > > > > Signed-off-by: Xu Yilun <yilun.xu@intel.com> > > Signed-off-by: Wu Hao <hao.wu@intel.com> > > Signed-off-by: Matthew Gerlach <matthew.gerlach@linux.intel.com> > > Signed-off-by: Russ Weight <russell.h.weight@intel.com> > > Reviewed-by: Tom Rix <trix@redhat.com> > > Acked-by: Wu Hao <hao.wu@intel.com> > > Signed-off-by: Moritz Fischer <mdf@kernel.org> > > --- > > drivers/fpga/dfl.h | 13 +------------ > > include/linux/mod_devicetable.h | 24 ++++++++++++++++++++++++ > > 2 files changed, 25 insertions(+), 12 deletions(-) > > > > diff --git a/drivers/fpga/dfl.h b/drivers/fpga/dfl.h > > index ac373b1fcff9..549c7900dcfd 100644 > > --- a/drivers/fpga/dfl.h > > +++ b/drivers/fpga/dfl.h > > @@ -22,6 +22,7 @@ > > #include <linux/interrupt.h> > > #include <linux/iopoll.h> > > #include <linux/io-64-nonatomic-lo-hi.h> > > +#include <linux/mod_devicetable.h> > > #include <linux/platform_device.h> > > #include <linux/slab.h> > > #include <linux/uuid.h> > > @@ -525,18 +526,6 @@ enum dfl_id_type { > > DFL_ID_MAX, > > }; > > > > -/** > > - * struct dfl_device_id - dfl device identifier > > - * @type: DFL FIU type of the device. See enum dfl_id_type. > > - * @feature_id: feature identifier local to its DFL FIU type. > > - * @driver_data: driver specific data. > > - */ > > -struct dfl_device_id { > > - u16 type; > > - u16 feature_id; > > - unsigned long driver_data; > > -}; > > - > > /** > > * struct dfl_device - represent an dfl device on dfl bus > > * > > diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h > > index 5b08a473cdba..e4870e5d3ea8 100644 > > --- a/include/linux/mod_devicetable.h > > +++ b/include/linux/mod_devicetable.h > > @@ -838,4 +838,28 @@ struct mhi_device_id { > > kernel_ulong_t driver_data; > > }; > > > > +/* > > + * DFL (Device Feature List) > > + * > > + * DFL defines a linked list of feature headers within the device MMIO space to > > + * provide an extensible way of adding features. Software can walk through these > > + * predefined data structures to enumerate features. It is now used in the FPGA. > > + * See Documentation/fpga/dfl.rst for more information. > > + * > > + * The dfl bus type is introduced to match the individual feature devices (dfl > > + * devices) for specific dfl drivers. > > + */ > > + > > +/** > > + * struct dfl_device_id - dfl device identifier > > + * @type: DFL FIU type of the device. See enum dfl_id_type. > > + * @feature_id: feature identifier local to its DFL FIU type. > > + * @driver_data: driver specific data. > > + */ > > +struct dfl_device_id { > > + __u16 type; > > + __u16 feature_id; > > + unsigned long driver_data; > > This is the wrong type for driver_data now that it goes to userspace :( > > {sigh} Thanks for the catching, I should change it to kernel_ulong_t. Thanks, Yilun
diff --git a/drivers/fpga/dfl.h b/drivers/fpga/dfl.h index ac373b1fcff9..549c7900dcfd 100644 --- a/drivers/fpga/dfl.h +++ b/drivers/fpga/dfl.h @@ -22,6 +22,7 @@ #include <linux/interrupt.h> #include <linux/iopoll.h> #include <linux/io-64-nonatomic-lo-hi.h> +#include <linux/mod_devicetable.h> #include <linux/platform_device.h> #include <linux/slab.h> #include <linux/uuid.h> @@ -525,18 +526,6 @@ enum dfl_id_type { DFL_ID_MAX, }; -/** - * struct dfl_device_id - dfl device identifier - * @type: DFL FIU type of the device. See enum dfl_id_type. - * @feature_id: feature identifier local to its DFL FIU type. - * @driver_data: driver specific data. - */ -struct dfl_device_id { - u16 type; - u16 feature_id; - unsigned long driver_data; -}; - /** * struct dfl_device - represent an dfl device on dfl bus * diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index 5b08a473cdba..e4870e5d3ea8 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h @@ -838,4 +838,28 @@ struct mhi_device_id { kernel_ulong_t driver_data; }; +/* + * DFL (Device Feature List) + * + * DFL defines a linked list of feature headers within the device MMIO space to + * provide an extensible way of adding features. Software can walk through these + * predefined data structures to enumerate features. It is now used in the FPGA. + * See Documentation/fpga/dfl.rst for more information. + * + * The dfl bus type is introduced to match the individual feature devices (dfl + * devices) for specific dfl drivers. + */ + +/** + * struct dfl_device_id - dfl device identifier + * @type: DFL FIU type of the device. See enum dfl_id_type. + * @feature_id: feature identifier local to its DFL FIU type. + * @driver_data: driver specific data. + */ +struct dfl_device_id { + __u16 type; + __u16 feature_id; + unsigned long driver_data; +}; + #endif /* LINUX_MOD_DEVICETABLE_H */