All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kishon Vijay Abraham I <kishon@ti.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	Jingoo Han <jingoohan1@gmail.com>,
	Joao Pinto <Joao.Pinto@synopsys.com>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<devicetree@vger.kernel.org>, <linux-omap@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <nsekhar@ti.com>
Subject: Re: [PATCH v2 03/22] PCI: endpoint: Introduce configfs entry for configuring EP functions
Date: Mon, 6 Mar 2017 15:11:23 +0530	[thread overview]
Message-ID: <58BD2EC3.4030604@ti.com> (raw)
In-Reply-To: <20170217170459.GA15276@infradead.org>

Hi,

On Friday 17 February 2017 10:34 PM, Christoph Hellwig wrote:
> On Fri, Feb 17, 2017 at 03:20:23PM +0530, Kishon Vijay Abraham I wrote:
>> Introduce a new configfs entry to configure the EP function (like
>> configuring the standard configuration header entries) and to
>> bind the EP function with EP controller.
>>
>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>> ---
>>  drivers/pci/endpoint/Kconfig      |   14 +-
>>  drivers/pci/endpoint/Makefile     |    1 +
>>  drivers/pci/endpoint/pci-ep-cfs.c |  427 +++++++++++++++++++++++++++++++++++++
>>  3 files changed, 440 insertions(+), 2 deletions(-)
>>  create mode 100644 drivers/pci/endpoint/pci-ep-cfs.c
>>
>> diff --git a/drivers/pci/endpoint/Kconfig b/drivers/pci/endpoint/Kconfig
>> index 7eb1c79..8470f0b 100644
>> --- a/drivers/pci/endpoint/Kconfig
>> +++ b/drivers/pci/endpoint/Kconfig
>> @@ -6,7 +6,6 @@ menu "PCI Endpoint"
>>  
>>  config PCI_ENDPOINT
>>  	bool "PCI Endpoint Support"
>> -	select CONFIGFS_FS
>>  	help
>>  	   Enable this configuration option to support configurable PCI
>>  	   endpoint. This should be enabled if the platform has a PCI
>> @@ -14,8 +13,19 @@ config PCI_ENDPOINT
>>  
>>  	   Enabling this option will build the endpoint library, which
>>  	   includes endpoint controller library and endpoint function
>> -	   library.
>> +	   library. This will also enable the configfs entry required to
>> +	   configure the endpoint function and used to bind the
>> +	   function with a endpoint controller.
>>  
>>  	   If in doubt, say "N" to disable Endpoint support.
>>  
>> +config PCI_ENDPOINT_CONFIGFS
>> +	bool "PCI Endpoint Configfs Support"
>> +	depends on PCI_ENDPOINT
>> +	select CONFIGFS_FS
>> +	help
>> +	   This will enable the configfs entry that can be used to
>> +	   configure the endpoint function and used to bind the
>> +	   function with a endpoint controller.
>> +
>>  endmenu
>> diff --git a/drivers/pci/endpoint/Makefile b/drivers/pci/endpoint/Makefile
>> index dc1bc16..dd9163c 100644
>> --- a/drivers/pci/endpoint/Makefile
>> +++ b/drivers/pci/endpoint/Makefile
>> @@ -4,3 +4,4 @@
>>  
>>  obj-$(CONFIG_PCI_ENDPOINT)		+= pci-epc-core.o pci-epf-core.o\
>>  					   pci-epc-mem.o
>> +obj-$(CONFIG_PCI_ENDPOINT_CONFIGFS)	+= pci-ep-cfs.o
>> diff --git a/drivers/pci/endpoint/pci-ep-cfs.c b/drivers/pci/endpoint/pci-ep-cfs.c
>> new file mode 100644
>> index 0000000..ed0f8c2
>> --- /dev/null
>> +++ b/drivers/pci/endpoint/pci-ep-cfs.c
>> @@ -0,0 +1,427 @@
>> +/**
>> + * configfs to configure the PCI endpoint
>> + *
>> + * Copyright (C) 2017 Texas Instruments
>> + * Author: Kishon Vijay Abraham I <kishon@ti.com>
>> + *
>> + * This program is free software: you can redistribute it and/or modify
>> + * it under the terms of the GNU General Public License version 2 of
>> + * the License as published by the Free Software Foundation.
>> + *
>> + * This program is distributed in the hope that it will be useful,
>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>> + * GNU General Public License for more details.
>> + *
>> + * You should have received a copy of the GNU General Public License
>> + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
>> + */
>> +
>> +#include <linux/configfs.h>
>> +#include <linux/module.h>
>> +#include <linux/slab.h>
>> +
>> +#include <linux/pci-epc.h>
>> +#include <linux/pci-epf.h>
>> +
>> +struct pci_epf_info {
>> +	struct config_group group;
>> +	struct list_head list;
>> +	struct pci_epf *epf;
>> +};
>> +
>> +struct pci_ep_info {
>> +	struct config_group group;
>> +	struct config_group pci_epf_group;
>> +	/* mutex to protect pci_epf list */
>> +	struct mutex lock;
>> +	struct list_head pci_epf;
>> +	const char *epc_name;
>> +	struct pci_epc *epc;
>> +};
>> +
>> +static inline struct pci_epf_info *to_pci_epf_info(struct config_item *item)
>> +{
>> +	return container_of(to_config_group(item), struct pci_epf_info, group);
>> +}
>> +
>> +static inline struct pci_ep_info *to_pci_ep_info(struct config_item *item)
>> +{
>> +	return container_of(to_config_group(item), struct pci_ep_info, group);
>> +}
>> +
>> +#define PCI_EPF_HEADER_R(_name)						       \
>> +static ssize_t pci_epf_##_name##_show(struct config_item *item,	char *page)    \
>> +{									       \
>> +	struct pci_epf *epf = to_pci_epf_info(item)->epf;		       \
>> +	if (!epf->header) {						       \
>> +		WARN_ON_ONCE("epf device not bound to function driver\n");     \
> 
> WARN_ON_ONCE takes a string to evaluate as argument, not a message
> 
>> +		return 0;					
> 
> and if we return 0 here the callers will retry because that is
> interpreted as a short read.  The code should be something like:
> 
> 	if (WARN_ON_ONCE(!epf->header))
> 		return -EINVAL;
> 
>> +	if (!epf->header) {						       \
>> +		WARN_ON_ONCE("epf device not bound to function driver\n");     \
>> +		return 0;						       \
>> +	}								       \
> 
> Same here, and a couple more instances down below.

sure, fixed it now.

Thanks
Kishon

WARNING: multiple messages have this Message-ID (diff)
From: Kishon Vijay Abraham I <kishon@ti.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: devicetree@vger.kernel.org, Joao Pinto <Joao.Pinto@synopsys.com>,
	linux-doc@vger.kernel.org, Jingoo Han <jingoohan1@gmail.com>,
	nsekhar@ti.com, linux-kernel@vger.kernel.org,
	linux-pci@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>,
	linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 03/22] PCI: endpoint: Introduce configfs entry for configuring EP functions
Date: Mon, 6 Mar 2017 15:11:23 +0530	[thread overview]
Message-ID: <58BD2EC3.4030604@ti.com> (raw)
In-Reply-To: <20170217170459.GA15276@infradead.org>

Hi,

On Friday 17 February 2017 10:34 PM, Christoph Hellwig wrote:
> On Fri, Feb 17, 2017 at 03:20:23PM +0530, Kishon Vijay Abraham I wrote:
>> Introduce a new configfs entry to configure the EP function (like
>> configuring the standard configuration header entries) and to
>> bind the EP function with EP controller.
>>
>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>> ---
>>  drivers/pci/endpoint/Kconfig      |   14 +-
>>  drivers/pci/endpoint/Makefile     |    1 +
>>  drivers/pci/endpoint/pci-ep-cfs.c |  427 +++++++++++++++++++++++++++++++++++++
>>  3 files changed, 440 insertions(+), 2 deletions(-)
>>  create mode 100644 drivers/pci/endpoint/pci-ep-cfs.c
>>
>> diff --git a/drivers/pci/endpoint/Kconfig b/drivers/pci/endpoint/Kconfig
>> index 7eb1c79..8470f0b 100644
>> --- a/drivers/pci/endpoint/Kconfig
>> +++ b/drivers/pci/endpoint/Kconfig
>> @@ -6,7 +6,6 @@ menu "PCI Endpoint"
>>  
>>  config PCI_ENDPOINT
>>  	bool "PCI Endpoint Support"
>> -	select CONFIGFS_FS
>>  	help
>>  	   Enable this configuration option to support configurable PCI
>>  	   endpoint. This should be enabled if the platform has a PCI
>> @@ -14,8 +13,19 @@ config PCI_ENDPOINT
>>  
>>  	   Enabling this option will build the endpoint library, which
>>  	   includes endpoint controller library and endpoint function
>> -	   library.
>> +	   library. This will also enable the configfs entry required to
>> +	   configure the endpoint function and used to bind the
>> +	   function with a endpoint controller.
>>  
>>  	   If in doubt, say "N" to disable Endpoint support.
>>  
>> +config PCI_ENDPOINT_CONFIGFS
>> +	bool "PCI Endpoint Configfs Support"
>> +	depends on PCI_ENDPOINT
>> +	select CONFIGFS_FS
>> +	help
>> +	   This will enable the configfs entry that can be used to
>> +	   configure the endpoint function and used to bind the
>> +	   function with a endpoint controller.
>> +
>>  endmenu
>> diff --git a/drivers/pci/endpoint/Makefile b/drivers/pci/endpoint/Makefile
>> index dc1bc16..dd9163c 100644
>> --- a/drivers/pci/endpoint/Makefile
>> +++ b/drivers/pci/endpoint/Makefile
>> @@ -4,3 +4,4 @@
>>  
>>  obj-$(CONFIG_PCI_ENDPOINT)		+= pci-epc-core.o pci-epf-core.o\
>>  					   pci-epc-mem.o
>> +obj-$(CONFIG_PCI_ENDPOINT_CONFIGFS)	+= pci-ep-cfs.o
>> diff --git a/drivers/pci/endpoint/pci-ep-cfs.c b/drivers/pci/endpoint/pci-ep-cfs.c
>> new file mode 100644
>> index 0000000..ed0f8c2
>> --- /dev/null
>> +++ b/drivers/pci/endpoint/pci-ep-cfs.c
>> @@ -0,0 +1,427 @@
>> +/**
>> + * configfs to configure the PCI endpoint
>> + *
>> + * Copyright (C) 2017 Texas Instruments
>> + * Author: Kishon Vijay Abraham I <kishon@ti.com>
>> + *
>> + * This program is free software: you can redistribute it and/or modify
>> + * it under the terms of the GNU General Public License version 2 of
>> + * the License as published by the Free Software Foundation.
>> + *
>> + * This program is distributed in the hope that it will be useful,
>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>> + * GNU General Public License for more details.
>> + *
>> + * You should have received a copy of the GNU General Public License
>> + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
>> + */
>> +
>> +#include <linux/configfs.h>
>> +#include <linux/module.h>
>> +#include <linux/slab.h>
>> +
>> +#include <linux/pci-epc.h>
>> +#include <linux/pci-epf.h>
>> +
>> +struct pci_epf_info {
>> +	struct config_group group;
>> +	struct list_head list;
>> +	struct pci_epf *epf;
>> +};
>> +
>> +struct pci_ep_info {
>> +	struct config_group group;
>> +	struct config_group pci_epf_group;
>> +	/* mutex to protect pci_epf list */
>> +	struct mutex lock;
>> +	struct list_head pci_epf;
>> +	const char *epc_name;
>> +	struct pci_epc *epc;
>> +};
>> +
>> +static inline struct pci_epf_info *to_pci_epf_info(struct config_item *item)
>> +{
>> +	return container_of(to_config_group(item), struct pci_epf_info, group);
>> +}
>> +
>> +static inline struct pci_ep_info *to_pci_ep_info(struct config_item *item)
>> +{
>> +	return container_of(to_config_group(item), struct pci_ep_info, group);
>> +}
>> +
>> +#define PCI_EPF_HEADER_R(_name)						       \
>> +static ssize_t pci_epf_##_name##_show(struct config_item *item,	char *page)    \
>> +{									       \
>> +	struct pci_epf *epf = to_pci_epf_info(item)->epf;		       \
>> +	if (!epf->header) {						       \
>> +		WARN_ON_ONCE("epf device not bound to function driver\n");     \
> 
> WARN_ON_ONCE takes a string to evaluate as argument, not a message
> 
>> +		return 0;					
> 
> and if we return 0 here the callers will retry because that is
> interpreted as a short read.  The code should be something like:
> 
> 	if (WARN_ON_ONCE(!epf->header))
> 		return -EINVAL;
> 
>> +	if (!epf->header) {						       \
>> +		WARN_ON_ONCE("epf device not bound to function driver\n");     \
>> +		return 0;						       \
>> +	}								       \
> 
> Same here, and a couple more instances down below.

sure, fixed it now.

Thanks
Kishon

WARNING: multiple messages have this Message-ID (diff)
From: Kishon Vijay Abraham I <kishon@ti.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: devicetree@vger.kernel.org, Joao Pinto <Joao.Pinto@synopsys.com>,
	linux-doc@vger.kernel.org, Jingoo Han <jingoohan1@gmail.com>,
	nsekhar@ti.com, linux-kernel@vger.kernel.org,
	linux-pci@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>,
	linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 03/22] PCI: endpoint: Introduce configfs entry for configuring EP functions
Date: Mon, 6 Mar 2017 15:11:23 +0530	[thread overview]
Message-ID: <58BD2EC3.4030604@ti.com> (raw)
In-Reply-To: <20170217170459.GA15276@infradead.org>

Hi,

On Friday 17 February 2017 10:34 PM, Christoph Hellwig wrote:
> On Fri, Feb 17, 2017 at 03:20:23PM +0530, Kishon Vijay Abraham I wrote:
>> Introduce a new configfs entry to configure the EP function (like
>> configuring the standard configuration header entries) and to
>> bind the EP function with EP controller.
>>
>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>> ---
>>  drivers/pci/endpoint/Kconfig      |   14 +-
>>  drivers/pci/endpoint/Makefile     |    1 +
>>  drivers/pci/endpoint/pci-ep-cfs.c |  427 +++++++++++++++++++++++++++++++++++++
>>  3 files changed, 440 insertions(+), 2 deletions(-)
>>  create mode 100644 drivers/pci/endpoint/pci-ep-cfs.c
>>
>> diff --git a/drivers/pci/endpoint/Kconfig b/drivers/pci/endpoint/Kconfig
>> index 7eb1c79..8470f0b 100644
>> --- a/drivers/pci/endpoint/Kconfig
>> +++ b/drivers/pci/endpoint/Kconfig
>> @@ -6,7 +6,6 @@ menu "PCI Endpoint"
>>  
>>  config PCI_ENDPOINT
>>  	bool "PCI Endpoint Support"
>> -	select CONFIGFS_FS
>>  	help
>>  	   Enable this configuration option to support configurable PCI
>>  	   endpoint. This should be enabled if the platform has a PCI
>> @@ -14,8 +13,19 @@ config PCI_ENDPOINT
>>  
>>  	   Enabling this option will build the endpoint library, which
>>  	   includes endpoint controller library and endpoint function
>> -	   library.
>> +	   library. This will also enable the configfs entry required to
>> +	   configure the endpoint function and used to bind the
>> +	   function with a endpoint controller.
>>  
>>  	   If in doubt, say "N" to disable Endpoint support.
>>  
>> +config PCI_ENDPOINT_CONFIGFS
>> +	bool "PCI Endpoint Configfs Support"
>> +	depends on PCI_ENDPOINT
>> +	select CONFIGFS_FS
>> +	help
>> +	   This will enable the configfs entry that can be used to
>> +	   configure the endpoint function and used to bind the
>> +	   function with a endpoint controller.
>> +
>>  endmenu
>> diff --git a/drivers/pci/endpoint/Makefile b/drivers/pci/endpoint/Makefile
>> index dc1bc16..dd9163c 100644
>> --- a/drivers/pci/endpoint/Makefile
>> +++ b/drivers/pci/endpoint/Makefile
>> @@ -4,3 +4,4 @@
>>  
>>  obj-$(CONFIG_PCI_ENDPOINT)		+= pci-epc-core.o pci-epf-core.o\
>>  					   pci-epc-mem.o
>> +obj-$(CONFIG_PCI_ENDPOINT_CONFIGFS)	+= pci-ep-cfs.o
>> diff --git a/drivers/pci/endpoint/pci-ep-cfs.c b/drivers/pci/endpoint/pci-ep-cfs.c
>> new file mode 100644
>> index 0000000..ed0f8c2
>> --- /dev/null
>> +++ b/drivers/pci/endpoint/pci-ep-cfs.c
>> @@ -0,0 +1,427 @@
>> +/**
>> + * configfs to configure the PCI endpoint
>> + *
>> + * Copyright (C) 2017 Texas Instruments
>> + * Author: Kishon Vijay Abraham I <kishon@ti.com>
>> + *
>> + * This program is free software: you can redistribute it and/or modify
>> + * it under the terms of the GNU General Public License version 2 of
>> + * the License as published by the Free Software Foundation.
>> + *
>> + * This program is distributed in the hope that it will be useful,
>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>> + * GNU General Public License for more details.
>> + *
>> + * You should have received a copy of the GNU General Public License
>> + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
>> + */
>> +
>> +#include <linux/configfs.h>
>> +#include <linux/module.h>
>> +#include <linux/slab.h>
>> +
>> +#include <linux/pci-epc.h>
>> +#include <linux/pci-epf.h>
>> +
>> +struct pci_epf_info {
>> +	struct config_group group;
>> +	struct list_head list;
>> +	struct pci_epf *epf;
>> +};
>> +
>> +struct pci_ep_info {
>> +	struct config_group group;
>> +	struct config_group pci_epf_group;
>> +	/* mutex to protect pci_epf list */
>> +	struct mutex lock;
>> +	struct list_head pci_epf;
>> +	const char *epc_name;
>> +	struct pci_epc *epc;
>> +};
>> +
>> +static inline struct pci_epf_info *to_pci_epf_info(struct config_item *item)
>> +{
>> +	return container_of(to_config_group(item), struct pci_epf_info, group);
>> +}
>> +
>> +static inline struct pci_ep_info *to_pci_ep_info(struct config_item *item)
>> +{
>> +	return container_of(to_config_group(item), struct pci_ep_info, group);
>> +}
>> +
>> +#define PCI_EPF_HEADER_R(_name)						       \
>> +static ssize_t pci_epf_##_name##_show(struct config_item *item,	char *page)    \
>> +{									       \
>> +	struct pci_epf *epf = to_pci_epf_info(item)->epf;		       \
>> +	if (!epf->header) {						       \
>> +		WARN_ON_ONCE("epf device not bound to function driver\n");     \
> 
> WARN_ON_ONCE takes a string to evaluate as argument, not a message
> 
>> +		return 0;					
> 
> and if we return 0 here the callers will retry because that is
> interpreted as a short read.  The code should be something like:
> 
> 	if (WARN_ON_ONCE(!epf->header))
> 		return -EINVAL;
> 
>> +	if (!epf->header) {						       \
>> +		WARN_ON_ONCE("epf device not bound to function driver\n");     \
>> +		return 0;						       \
>> +	}								       \
> 
> Same here, and a couple more instances down below.

sure, fixed it now.

Thanks
Kishon

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: kishon@ti.com (Kishon Vijay Abraham I)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 03/22] PCI: endpoint: Introduce configfs entry for configuring EP functions
Date: Mon, 6 Mar 2017 15:11:23 +0530	[thread overview]
Message-ID: <58BD2EC3.4030604@ti.com> (raw)
In-Reply-To: <20170217170459.GA15276@infradead.org>

Hi,

On Friday 17 February 2017 10:34 PM, Christoph Hellwig wrote:
> On Fri, Feb 17, 2017 at 03:20:23PM +0530, Kishon Vijay Abraham I wrote:
>> Introduce a new configfs entry to configure the EP function (like
>> configuring the standard configuration header entries) and to
>> bind the EP function with EP controller.
>>
>> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
>> ---
>>  drivers/pci/endpoint/Kconfig      |   14 +-
>>  drivers/pci/endpoint/Makefile     |    1 +
>>  drivers/pci/endpoint/pci-ep-cfs.c |  427 +++++++++++++++++++++++++++++++++++++
>>  3 files changed, 440 insertions(+), 2 deletions(-)
>>  create mode 100644 drivers/pci/endpoint/pci-ep-cfs.c
>>
>> diff --git a/drivers/pci/endpoint/Kconfig b/drivers/pci/endpoint/Kconfig
>> index 7eb1c79..8470f0b 100644
>> --- a/drivers/pci/endpoint/Kconfig
>> +++ b/drivers/pci/endpoint/Kconfig
>> @@ -6,7 +6,6 @@ menu "PCI Endpoint"
>>  
>>  config PCI_ENDPOINT
>>  	bool "PCI Endpoint Support"
>> -	select CONFIGFS_FS
>>  	help
>>  	   Enable this configuration option to support configurable PCI
>>  	   endpoint. This should be enabled if the platform has a PCI
>> @@ -14,8 +13,19 @@ config PCI_ENDPOINT
>>  
>>  	   Enabling this option will build the endpoint library, which
>>  	   includes endpoint controller library and endpoint function
>> -	   library.
>> +	   library. This will also enable the configfs entry required to
>> +	   configure the endpoint function and used to bind the
>> +	   function with a endpoint controller.
>>  
>>  	   If in doubt, say "N" to disable Endpoint support.
>>  
>> +config PCI_ENDPOINT_CONFIGFS
>> +	bool "PCI Endpoint Configfs Support"
>> +	depends on PCI_ENDPOINT
>> +	select CONFIGFS_FS
>> +	help
>> +	   This will enable the configfs entry that can be used to
>> +	   configure the endpoint function and used to bind the
>> +	   function with a endpoint controller.
>> +
>>  endmenu
>> diff --git a/drivers/pci/endpoint/Makefile b/drivers/pci/endpoint/Makefile
>> index dc1bc16..dd9163c 100644
>> --- a/drivers/pci/endpoint/Makefile
>> +++ b/drivers/pci/endpoint/Makefile
>> @@ -4,3 +4,4 @@
>>  
>>  obj-$(CONFIG_PCI_ENDPOINT)		+= pci-epc-core.o pci-epf-core.o\
>>  					   pci-epc-mem.o
>> +obj-$(CONFIG_PCI_ENDPOINT_CONFIGFS)	+= pci-ep-cfs.o
>> diff --git a/drivers/pci/endpoint/pci-ep-cfs.c b/drivers/pci/endpoint/pci-ep-cfs.c
>> new file mode 100644
>> index 0000000..ed0f8c2
>> --- /dev/null
>> +++ b/drivers/pci/endpoint/pci-ep-cfs.c
>> @@ -0,0 +1,427 @@
>> +/**
>> + * configfs to configure the PCI endpoint
>> + *
>> + * Copyright (C) 2017 Texas Instruments
>> + * Author: Kishon Vijay Abraham I <kishon@ti.com>
>> + *
>> + * This program is free software: you can redistribute it and/or modify
>> + * it under the terms of the GNU General Public License version 2 of
>> + * the License as published by the Free Software Foundation.
>> + *
>> + * This program is distributed in the hope that it will be useful,
>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>> + * GNU General Public License for more details.
>> + *
>> + * You should have received a copy of the GNU General Public License
>> + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
>> + */
>> +
>> +#include <linux/configfs.h>
>> +#include <linux/module.h>
>> +#include <linux/slab.h>
>> +
>> +#include <linux/pci-epc.h>
>> +#include <linux/pci-epf.h>
>> +
>> +struct pci_epf_info {
>> +	struct config_group group;
>> +	struct list_head list;
>> +	struct pci_epf *epf;
>> +};
>> +
>> +struct pci_ep_info {
>> +	struct config_group group;
>> +	struct config_group pci_epf_group;
>> +	/* mutex to protect pci_epf list */
>> +	struct mutex lock;
>> +	struct list_head pci_epf;
>> +	const char *epc_name;
>> +	struct pci_epc *epc;
>> +};
>> +
>> +static inline struct pci_epf_info *to_pci_epf_info(struct config_item *item)
>> +{
>> +	return container_of(to_config_group(item), struct pci_epf_info, group);
>> +}
>> +
>> +static inline struct pci_ep_info *to_pci_ep_info(struct config_item *item)
>> +{
>> +	return container_of(to_config_group(item), struct pci_ep_info, group);
>> +}
>> +
>> +#define PCI_EPF_HEADER_R(_name)						       \
>> +static ssize_t pci_epf_##_name##_show(struct config_item *item,	char *page)    \
>> +{									       \
>> +	struct pci_epf *epf = to_pci_epf_info(item)->epf;		       \
>> +	if (!epf->header) {						       \
>> +		WARN_ON_ONCE("epf device not bound to function driver\n");     \
> 
> WARN_ON_ONCE takes a string to evaluate as argument, not a message
> 
>> +		return 0;					
> 
> and if we return 0 here the callers will retry because that is
> interpreted as a short read.  The code should be something like:
> 
> 	if (WARN_ON_ONCE(!epf->header))
> 		return -EINVAL;
> 
>> +	if (!epf->header) {						       \
>> +		WARN_ON_ONCE("epf device not bound to function driver\n");     \
>> +		return 0;						       \
>> +	}								       \
> 
> Same here, and a couple more instances down below.

sure, fixed it now.

Thanks
Kishon

  reply	other threads:[~2017-03-06 11:40 UTC|newest]

Thread overview: 184+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-17  9:50 [PATCH v2 00/22] PCI: Support for configurable PCI endpoint Kishon Vijay Abraham I
2017-02-17  9:50 ` Kishon Vijay Abraham I
2017-02-17  9:50 ` Kishon Vijay Abraham I
2017-02-17  9:50 ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 01/22] PCI: endpoint: Add EP core layer to enable EP controller and EP functions Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17 11:26   ` Joao Pinto
2017-02-17 11:26     ` Joao Pinto
2017-02-17 11:26     ` Joao Pinto
2017-02-17 11:26     ` Joao Pinto
2017-02-17 11:37     ` Kishon Vijay Abraham I
2017-02-17 11:37       ` Kishon Vijay Abraham I
2017-02-17 11:37       ` Kishon Vijay Abraham I
2017-02-17 11:37       ` Kishon Vijay Abraham I
2017-02-17 11:39       ` Joao Pinto
2017-02-17 11:39         ` Joao Pinto
2017-02-17 11:39         ` Joao Pinto
2017-02-17 11:39         ` Joao Pinto
2017-02-17  9:50 ` [PATCH v2 02/22] Documentation: PCI: Guide to use PCI Endpoint Core Layer Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17 11:43   ` Joao Pinto
2017-02-17 11:43     ` Joao Pinto
2017-02-17 11:43     ` Joao Pinto
2017-02-17 11:43     ` Joao Pinto
2017-02-17  9:50 ` [PATCH v2 03/22] PCI: endpoint: Introduce configfs entry for configuring EP functions Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17 12:01   ` Kishon Vijay Abraham I
2017-02-17 12:01     ` Kishon Vijay Abraham I
2017-02-17 12:01     ` Kishon Vijay Abraham I
2017-02-17 17:04   ` Christoph Hellwig
2017-02-17 17:04     ` Christoph Hellwig
2017-02-17 17:04     ` Christoph Hellwig
2017-03-06  9:41     ` Kishon Vijay Abraham I [this message]
2017-03-06  9:41       ` Kishon Vijay Abraham I
2017-03-06  9:41       ` Kishon Vijay Abraham I
2017-03-06  9:41       ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 04/22] Documentation: PCI: Guide to use pci endpoint configfs Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17 13:05   ` Joao Pinto
2017-02-17 13:05     ` Joao Pinto
2017-02-17 13:05     ` Joao Pinto
2017-02-17 13:05     ` Joao Pinto
2017-02-17 17:15   ` Christoph Hellwig
2017-02-17 17:15     ` Christoph Hellwig
2017-02-17 17:15     ` Christoph Hellwig
2017-02-17 17:15     ` Christoph Hellwig
2017-03-06 10:16     ` Kishon Vijay Abraham I
2017-03-06 10:16       ` Kishon Vijay Abraham I
2017-03-06 10:16       ` Kishon Vijay Abraham I
2017-03-06 10:16       ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 05/22] Documentation: PCI: Add specification for the *pci test* function device Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 06/22] PCI: endpoint: functions: Add an EP function to test PCI Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 07/22] Documentation: PCI: Add binding documentation for pci-test endpoint function Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 08/22] PCI: dwc: designware: Add EP mode support Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17 13:15   ` Kishon Vijay Abraham I
2017-02-17 13:15     ` Kishon Vijay Abraham I
2017-02-17 13:15     ` Kishon Vijay Abraham I
2017-02-17 13:15     ` Kishon Vijay Abraham I
2017-02-17 17:20   ` Joao Pinto
2017-02-17 17:20     ` Joao Pinto
2017-02-17 17:20     ` Joao Pinto
2017-02-17 17:20     ` Joao Pinto
2017-03-06  9:55     ` Kishon Vijay Abraham I
2017-03-06  9:55       ` Kishon Vijay Abraham I
2017-03-06  9:55       ` Kishon Vijay Abraham I
2017-03-06  9:55       ` Kishon Vijay Abraham I
2017-03-07  5:18     ` Kishon Vijay Abraham I
2017-03-07  5:18       ` Kishon Vijay Abraham I
2017-03-07  5:18       ` Kishon Vijay Abraham I
2017-03-07  5:18       ` Kishon Vijay Abraham I
2017-03-07 11:10       ` Joao Pinto
2017-03-07 11:10         ` Joao Pinto
2017-03-07 11:10         ` Joao Pinto
2017-03-07 11:10         ` Joao Pinto
2017-03-08 11:32         ` Joao Pinto
2017-03-08 11:32           ` Joao Pinto
2017-03-08 11:32           ` Joao Pinto
2017-03-08 11:32           ` Joao Pinto
2017-03-08 11:35           ` Kishon Vijay Abraham I
2017-03-08 11:35             ` Kishon Vijay Abraham I
2017-03-08 11:35             ` Kishon Vijay Abraham I
2017-03-08 11:35             ` Kishon Vijay Abraham I
2017-03-08 11:37             ` Joao Pinto
2017-03-08 11:37               ` Joao Pinto
2017-03-08 11:37               ` Joao Pinto
2017-03-08 11:37               ` Joao Pinto
2017-03-08 13:31               ` Kishon Vijay Abraham I
2017-03-08 13:31                 ` Kishon Vijay Abraham I
2017-03-08 13:31                 ` Kishon Vijay Abraham I
2017-03-08 13:31                 ` Kishon Vijay Abraham I
2017-03-08 15:32                 ` Joao Pinto
2017-03-08 15:32                   ` Joao Pinto
2017-03-08 15:32                   ` Joao Pinto
2017-03-08 15:32                   ` Joao Pinto
2017-03-08 15:33                   ` Joao Pinto
2017-03-08 15:33                     ` Joao Pinto
2017-03-08 15:33                     ` Joao Pinto
2017-03-08 15:33                     ` Joao Pinto
2017-03-08 19:14                   ` Christoph Hellwig
2017-03-08 19:14                     ` Christoph Hellwig
2017-03-08 19:14                     ` Christoph Hellwig
2017-03-08 19:14                     ` Christoph Hellwig
2017-03-09 11:55                     ` Joao Pinto
2017-03-09 11:55                       ` Joao Pinto
2017-03-09 11:55                       ` Joao Pinto
2017-03-09 11:55                       ` Joao Pinto
2017-02-17  9:50 ` [PATCH v2 09/22] dt-bindings: PCI: Add dt bindings for pci designware EP mode Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 10/22] PCI: dwc: dra7xx: Facilitate wrapper and msi interrupts to be enabled independently Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 11/22] PCI: dwc: dra7xx: Add EP mode support Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 12/22] dt-bindings: PCI: dra7xx: Add dt bindings for pci dra7xx EP mode Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 13/22] PCI: dwc: dra7xx: Workaround for errata id i870 Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 14/22] dt-bindings: PCI: dra7xx: Add dt bindings to enable legacy mode Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-27 16:40   ` Rob Herring
2017-02-27 16:40     ` Rob Herring
2017-02-27 16:40     ` Rob Herring
2017-02-27 16:40     ` Rob Herring
2017-02-28  3:28     ` Kishon Vijay Abraham I
2017-02-28  3:28       ` Kishon Vijay Abraham I
2017-02-28  3:28       ` Kishon Vijay Abraham I
2017-02-28  3:28       ` Kishon Vijay Abraham I
2017-03-06  9:56     ` Kishon Vijay Abraham I
2017-03-06  9:56       ` Kishon Vijay Abraham I
2017-03-06  9:56       ` Kishon Vijay Abraham I
2017-03-06  9:56       ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 15/22] PCI: Add device IDs for DRA74x and DRA72x Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 16/22] misc: Add host side pci driver for pci test function device Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 17/22] Documentation: misc-devices: Add Documentation for pci-endpoint-test driver Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 18/22] tools: PCI: Add a userspace tool to test PCI endpoint Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 19/22] tools: PCI: Add sample test script to invoke pcitest Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 20/22] Documentation: PCI: Add userguide for PCI endpoint test function Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 21/22] MAINTAINERS: add PCI EP maintainer Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50 ` [PATCH v2 22/22] ARM: DRA7: clockdomain: Change the CLKTRCTRL of CM_PCIE_CLKSTCTRL to SW_WKUP Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I
2017-02-17  9:50   ` Kishon Vijay Abraham I

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=58BD2EC3.4030604@ti.com \
    --to=kishon@ti.com \
    --cc=Joao.Pinto@synopsys.com \
    --cc=bhelgaas@google.com \
    --cc=devicetree@vger.kernel.org \
    --cc=hch@infradead.org \
    --cc=jingoohan1@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=nsekhar@ti.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.