Hi Ayala, [auto build test ERROR on mac80211-next/master] [also build test ERROR on next-20160916] [cannot apply to v4.8-rc6] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] [Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on] [Check https://git-scm.com/docs/git-format-patch for more information] url: https://github.com/0day-ci/linux/commits/Luca-Coelho/Add-support-for-Neighbor-Awareness-Networking/20160916-164553 base: https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git master config: x86_64-lkp (attached as .config) compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): net/wireless/nl80211.c: In function 'nl80211_nan_add_func': >> net/wireless/nl80211.c:10588:30: error: implicit declaration of function 'genl_info_snd_portid' [-Werror=implicit-function-declaration] wdev->owner_nlportid != genl_info_snd_portid(info)) ^~~~~~~~~~~~~~~~~~~~ >> net/wireless/nl80211.c:10785:6: error: implicit declaration of function 'nla_put_u64' [-Werror=implicit-function-declaration] if (nla_put_u64(msg, NL80211_ATTR_COOKIE, func->cookie)) ^~~~~~~~~~~ cc1: some warnings being treated as errors vim +/genl_info_snd_portid +10588 net/wireless/nl80211.c 10582 return -ENOTCONN; 10583 10584 if (!info->attrs[NL80211_ATTR_NAN_FUNC]) 10585 return -EINVAL; 10586 10587 if (wdev->owner_nlportid && 10588 wdev->owner_nlportid != genl_info_snd_portid(info)) 10589 return -ENOTCONN; 10590 10591 err = nla_parse(tb, NL80211_NAN_FUNC_ATTR_MAX, 10592 nla_data(info->attrs[NL80211_ATTR_NAN_FUNC]), 10593 nla_len(info->attrs[NL80211_ATTR_NAN_FUNC]), 10594 nl80211_nan_func_policy); 10595 if (err) 10596 return err; 10597 10598 func = kzalloc(sizeof(*func), GFP_KERNEL); 10599 if (!func) 10600 return -ENOMEM; 10601 10602 func->cookie = wdev->wiphy->cookie_counter++; 10603 10604 if (!tb[NL80211_NAN_FUNC_TYPE] || 10605 nla_get_u8(tb[NL80211_NAN_FUNC_TYPE]) > NL80211_NAN_FUNC_MAX_TYPE) { 10606 err = -EINVAL; 10607 goto out; 10608 } 10609 10610 10611 func->type = nla_get_u8(tb[NL80211_NAN_FUNC_TYPE]); 10612 10613 if (!tb[NL80211_NAN_FUNC_SERVICE_ID]) { 10614 err = -EINVAL; 10615 goto out; 10616 } 10617 10618 memcpy(func->service_id, nla_data(tb[NL80211_NAN_FUNC_SERVICE_ID]), 10619 sizeof(func->service_id)); 10620 10621 func->close_range = 10622 nla_get_flag(tb[NL80211_NAN_FUNC_CLOSE_RANGE]); 10623 10624 if (tb[NL80211_NAN_FUNC_SERVICE_INFO]) { 10625 func->serv_spec_info_len = 10626 nla_len(tb[NL80211_NAN_FUNC_SERVICE_INFO]); 10627 func->serv_spec_info = 10628 kmemdup(nla_data(tb[NL80211_NAN_FUNC_SERVICE_INFO]), 10629 func->serv_spec_info_len, 10630 GFP_KERNEL); 10631 if (!func->serv_spec_info) { 10632 err = -ENOMEM; 10633 goto out; 10634 } 10635 } 10636 10637 if (tb[NL80211_NAN_FUNC_TTL]) 10638 func->ttl = nla_get_u32(tb[NL80211_NAN_FUNC_TTL]); 10639 10640 switch (func->type) { 10641 case NL80211_NAN_FUNC_PUBLISH: 10642 if (!tb[NL80211_NAN_FUNC_PUBLISH_TYPE]) { 10643 err = -EINVAL; 10644 goto out; 10645 } 10646 10647 func->publish_type = 10648 nla_get_u8(tb[NL80211_NAN_FUNC_PUBLISH_TYPE]); 10649 func->publish_bcast = 10650 nla_get_flag(tb[NL80211_NAN_FUNC_PUBLISH_BCAST]); 10651 10652 if ((!(func->publish_type & NL80211_NAN_SOLICITED_PUBLISH)) && 10653 func->publish_bcast) { 10654 err = -EINVAL; 10655 goto out; 10656 } 10657 break; 10658 case NL80211_NAN_FUNC_SUBSCRIBE: 10659 func->subscribe_active = 10660 nla_get_flag(tb[NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE]); 10661 break; 10662 case NL80211_NAN_FUNC_FOLLOW_UP: 10663 if (!tb[NL80211_NAN_FUNC_FOLLOW_UP_ID] || 10664 !tb[NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID]) { 10665 err = -EINVAL; 10666 goto out; 10667 } 10668 10669 func->followup_id = 10670 nla_get_u8(tb[NL80211_NAN_FUNC_FOLLOW_UP_ID]); 10671 func->followup_reqid = 10672 nla_get_u8(tb[NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID]); 10673 memcpy(func->followup_dest.addr, 10674 nla_data(tb[NL80211_NAN_FUNC_FOLLOW_UP_DEST]), 10675 sizeof(func->followup_dest.addr)); 10676 if (func->ttl) { 10677 err = -EINVAL; 10678 goto out; 10679 } 10680 break; 10681 default: 10682 err = -EINVAL; 10683 goto out; 10684 } 10685 10686 if (tb[NL80211_NAN_FUNC_SRF]) { 10687 struct nlattr *srf_tb[NUM_NL80211_NAN_SRF_ATTR]; 10688 10689 err = nla_parse(srf_tb, NL80211_NAN_SRF_ATTR_MAX, 10690 nla_data(tb[NL80211_NAN_FUNC_SRF]), 10691 nla_len(tb[NL80211_NAN_FUNC_SRF]), NULL); 10692 if (err) 10693 goto out; 10694 10695 func->srf_include = 10696 nla_get_flag(srf_tb[NL80211_NAN_SRF_INCLUDE]); 10697 10698 if (srf_tb[NL80211_NAN_SRF_BF]) { 10699 if (srf_tb[NL80211_NAN_SRF_MAC_ADDRS] || 10700 !srf_tb[NL80211_NAN_SRF_BF_IDX]) { 10701 err = -EINVAL; 10702 goto out; 10703 } 10704 10705 func->srf_bf_len = 10706 nla_len(srf_tb[NL80211_NAN_SRF_BF]); 10707 func->srf_bf = 10708 kmemdup(nla_data(srf_tb[NL80211_NAN_SRF_BF]), 10709 func->srf_bf_len, GFP_KERNEL); 10710 if (!func->srf_bf) { 10711 err = -ENOMEM; 10712 goto out; 10713 } 10714 10715 func->srf_bf_idx = 10716 nla_get_u8(srf_tb[NL80211_NAN_SRF_BF_IDX]); 10717 } else { 10718 struct nlattr *attr, *mac_attr = 10719 srf_tb[NL80211_NAN_SRF_MAC_ADDRS]; 10720 int n_entries, rem, i = 0; 10721 10722 if (!mac_attr) { 10723 err = -EINVAL; 10724 goto out; 10725 } 10726 10727 n_entries = validate_acl_mac_addrs(mac_attr); 10728 if (n_entries <= 0) { 10729 err = -EINVAL; 10730 goto out; 10731 } 10732 10733 func->srf_num_macs = n_entries; 10734 func->srf_macs = 10735 kzalloc(sizeof(*func->srf_macs) * n_entries, 10736 GFP_KERNEL); 10737 if (!func->srf_macs) { 10738 err = -ENOMEM; 10739 goto out; 10740 } 10741 10742 nla_for_each_nested(attr, mac_attr, rem) 10743 memcpy(func->srf_macs[i++].addr, nla_data(attr), 10744 sizeof(*func->srf_macs)); 10745 } 10746 } 10747 10748 if (tb[NL80211_NAN_FUNC_TX_MATCH_FILTER]) { 10749 err = handle_nan_filter(tb[NL80211_NAN_FUNC_TX_MATCH_FILTER], 10750 func, true); 10751 if (err) 10752 goto out; 10753 } 10754 10755 if (tb[NL80211_NAN_FUNC_RX_MATCH_FILTER]) { 10756 err = handle_nan_filter(tb[NL80211_NAN_FUNC_RX_MATCH_FILTER], 10757 func, false); 10758 if (err) 10759 goto out; 10760 } 10761 10762 msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); 10763 if (!msg) { 10764 err = -ENOMEM; 10765 goto out; 10766 } 10767 10768 hdr = nl80211hdr_put(msg, genl_info_snd_portid(info), info->snd_seq, 0, 10769 NL80211_CMD_ADD_NAN_FUNCTION); 10770 /* This can't really happen - we just allocated 4KB */ 10771 if (WARN_ON(!hdr)) { 10772 err = -ENOMEM; 10773 goto out; 10774 } 10775 10776 err = rdev_add_nan_func(rdev, wdev, func); 10777 out: 10778 if (err < 0) { 10779 cfg80211_free_nan_func(func); 10780 nlmsg_free(msg); 10781 return err; 10782 } 10783 10784 /* propagate the instance id and cookie to userspace */ 10785 if (nla_put_u64(msg, NL80211_ATTR_COOKIE, func->cookie)) 10786 goto nla_put_failure; 10787 10788 func_attr = nla_nest_start(msg, NL80211_ATTR_NAN_FUNC); --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: Binary data