Sorry. My bad. Generated patch in hurry for compiled out code in ifdef. Sending with fixing compilation. Parav On Tue, Mar 1, 2016 at 9:20 PM, kbuild test robot <lkp@xxxxxxxxx> wrote: > Hi Parav, > > [auto build test ERROR on rdma/master] > [also build test ERROR on v4.5-rc6 next-20160301] > [if your patch is applied to the wrong git tree, please drop us a note to help improving the system] > > url: https://github.com/0day-ci/linux/commits/Parav-Pandit/rdmacg-IB-core-rdma-controller-support/20160301-223149 > base: https://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma master > config: x86_64-allmodconfig (attached as .config) > reproduce: > # save the attached .config to linux build tree > make ARCH=x86_64 > > All error/warnings (new ones prefixed by >>): > > include/linux/compiler.h:228:8: sparse: attribute 'no_sanitize_address': unknown attribute > drivers/infiniband/core/cgroup.c:107:6: sparse: symbol 'ib_rdmacg_query_limit' redeclared with different type (originally declared at drivers/infiniband/core/core_priv.h:140) - different argument counts >>> drivers/infiniband/core/cgroup.c:107:6: error: conflicting types for 'ib_rdmacg_query_limit' > void ib_rdmacg_query_limit(struct ib_device *device, int *limits) > ^ > In file included from drivers/infiniband/core/cgroup.c:35:0: > drivers/infiniband/core/core_priv.h:140:6: note: previous declaration of 'ib_rdmacg_query_limit' was here > void ib_rdmacg_query_limit(struct ib_device *device, > ^ > In file included from include/linux/linkage.h:6:0, > from include/linux/kernel.h:6, > from drivers/infiniband/core/cgroup.c:31: > drivers/infiniband/core/cgroup.c:111:15: error: conflicting types for 'ib_rdmacg_query_limit' > EXPORT_SYMBOL(ib_rdmacg_query_limit); > ^ > include/linux/export.h:57:21: note: in definition of macro '__EXPORT_SYMBOL' > extern typeof(sym) sym; \ > ^ >>> drivers/infiniband/core/cgroup.c:111:1: note: in expansion of macro 'EXPORT_SYMBOL' > EXPORT_SYMBOL(ib_rdmacg_query_limit); > ^ > In file included from drivers/infiniband/core/cgroup.c:35:0: > drivers/infiniband/core/core_priv.h:140:6: note: previous declaration of 'ib_rdmacg_query_limit' was here > void ib_rdmacg_query_limit(struct ib_device *device, > ^ > > sparse warnings: (new ones prefixed by >>) > > include/linux/compiler.h:228:8: sparse: attribute 'no_sanitize_address': unknown attribute >>> drivers/infiniband/core/uverbs_cmd.c:470:30: sparse: not enough arguments for function ib_rdmacg_query_limit > drivers/infiniband/core/uverbs_cmd.c:3721:30: sparse: not enough arguments for function ib_rdmacg_query_limit > drivers/infiniband/core/uverbs_cmd.c: In function 'ib_uverbs_query_device': > drivers/infiniband/core/uverbs_cmd.c:470:2: error: too few arguments to function 'ib_rdmacg_query_limit' > ib_rdmacg_query_limit(ib_dev, limits); > ^ > In file included from drivers/infiniband/core/uverbs_cmd.c:44:0: > drivers/infiniband/core/core_priv.h:140:6: note: declared here > void ib_rdmacg_query_limit(struct ib_device *device, > ^ > drivers/infiniband/core/uverbs_cmd.c: In function 'ib_uverbs_ex_query_device': > drivers/infiniband/core/uverbs_cmd.c:3721:2: error: too few arguments to function 'ib_rdmacg_query_limit' > ib_rdmacg_query_limit(ib_dev, limits); > ^ > In file included from drivers/infiniband/core/uverbs_cmd.c:44:0: > drivers/infiniband/core/core_priv.h:140:6: note: declared here > void ib_rdmacg_query_limit(struct ib_device *device, > ^ > > vim +/ib_rdmacg_query_limit +107 drivers/infiniband/core/cgroup.c > > 25 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN > 26 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > 27 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > 28 * SOFTWARE. > 29 */ > 30 > > 31 #include <linux/kernel.h> > 32 #include <linux/cgroup_rdma.h> > 33 #include <linux/parser.h> > 34 > 35 #include "core_priv.h" > 36 > 37 /** > 38 * resource table definition as to be seen by the user. > 39 * Need to add entries to it when more resources are > 40 * added/defined at IB verb/core layer. > 41 */ > 42 static char const *resource_tokens[] = { > 43 [RDMA_VERB_RESOURCE_UCTX] = "uctx", > 44 [RDMA_VERB_RESOURCE_AH] = "ah", > 45 [RDMA_VERB_RESOURCE_PD] = "pd", > 46 [RDMA_VERB_RESOURCE_CQ] = "cq", > 47 [RDMA_VERB_RESOURCE_MR] = "mr", > 48 [RDMA_VERB_RESOURCE_MW] = "mw", > 49 [RDMA_VERB_RESOURCE_SRQ] = "srq", > 50 [RDMA_VERB_RESOURCE_QP] = "qp", > 51 [RDMA_VERB_RESOURCE_FLOW] = "flow", > 52 }; > 53 > 54 /** > 55 * ib_device_register_rdmacg - register with rdma cgroup. > 56 * @device: device to register to participate in resource > 57 * accounting by rdma cgroup. > 58 * > 59 * Register with the rdma cgroup. Should be called before > 60 * exposing rdma device to user space applications to avoid > 61 * resource accounting leak. > 62 * HCA drivers should set resource pool ops first if they wish > 63 * to support hw specific resource accounting before IB core > 64 * registers with rdma cgroup. > 65 * Returns 0 on success or otherwise failure code. > 66 */ > 67 int ib_device_register_rdmacg(struct ib_device *device) > 68 { > 69 device->cg_device.name = device->name; > 70 device->cg_device.pool_info.resource_name_table = resource_tokens; > 71 device->cg_device.pool_info.table_len = ARRAY_SIZE(resource_tokens); > 72 return rdmacg_register_device(&device->cg_device); > 73 } > 74 > 75 /** > 76 * ib_device_unregister_rdmacg - unregister with rdma cgroup. > 77 * @device: device to unregister. > 78 * > 79 * Unregister with the rdma cgroup. Should be called after > 80 * all the resources are deallocated, and after a stage when any > 81 * other resource allocation of user application cannot be done > 82 * for this device to avoid any leak in accounting. > 83 */ > 84 void ib_device_unregister_rdmacg(struct ib_device *device) > 85 { > 86 rdmacg_unregister_device(&device->cg_device); > 87 } > 88 > 89 int ib_rdmacg_try_charge(struct ib_rdmacg_object *cg_obj, > 90 struct ib_device *device, > 91 int resource_index, int num) > 92 { > 93 return rdmacg_try_charge(&cg_obj->cg, &device->cg_device, > 94 resource_index, num); > 95 } > 96 EXPORT_SYMBOL(ib_rdmacg_try_charge); > 97 > 98 void ib_rdmacg_uncharge(struct ib_rdmacg_object *cg_obj, > 99 struct ib_device *device, > 100 int resource_index, int num) > 101 { > 102 rdmacg_uncharge(cg_obj->cg, &device->cg_device, > 103 resource_index, num); > 104 } > 105 EXPORT_SYMBOL(ib_rdmacg_uncharge); > 106 > > 107 void ib_rdmacg_query_limit(struct ib_device *device, int *limits) > 108 { > 109 rdmacg_query_limit(&device->cg_device, limits); > 110 } > > 111 EXPORT_SYMBOL(ib_rdmacg_query_limit); > > --- > 0-DAY kernel test infrastructure Open Source Technology Center > https://lists.01.org/pipermail/kbuild-all Intel Corporation -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html