Hi Shannon, Thank you for the patch! Yet something to improve:
[auto build test ERROR on jkirsher-next-queue/dev-queue] [also build test ERROR on v4.18 next-20180813] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Shannon-Nelson/ixgbe-ixgbevf-IPsec-offload-support-for-VFs/20180814-074800 base: https://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git dev-queue config: x86_64-randconfig-v0-08131550 (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.o: In function `ixgbe_ipsec_vf_add_sa': >> drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c:917: undefined reference to >> `xfrm_aead_get_byname' make[1]: *** [vmlinux] Error 1 make[1]: Target '_all' not remade because of errors. vim +917 drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c 862 863 /** 864 * ixgbe_ipsec_vf_add_sa - translate VF request to SA add 865 * @adapter: board private structure 866 * @msgbuf: The message buffer 867 * @vf: the VF index 868 * 869 * Make up a new xs and algorithm info from the data sent by the VF. 870 * We only need to sketch in just enough to set up the HW offload. 871 * Put the resulting offload_handle into the return message to the VF. 872 * 873 * Returns 0 or error value 874 **/ 875 int ixgbe_ipsec_vf_add_sa(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf) 876 { 877 struct ixgbe_ipsec *ipsec = adapter->ipsec; 878 struct xfrm_algo_desc *algo; 879 struct sa_mbx_msg *sam; 880 struct xfrm_state *xs; 881 size_t aead_len; 882 u16 sa_idx; 883 u32 pfsa; 884 int err; 885 886 sam = (struct sa_mbx_msg *)(&msgbuf[1]); 887 if (!adapter->vfinfo[vf].trusted) { 888 e_warn(drv, "VF %d attempted to add an IPsec SA\n", vf); 889 err = -EACCES; 890 goto err_out; 891 } 892 893 /* Tx IPsec offload doesn't seem to work on this 894 * device, so block these requests for now. 895 */ 896 if (!(sam->flags & XFRM_OFFLOAD_INBOUND)) { 897 err = -ENXIO; 898 goto err_out; 899 } 900 901 xs = kzalloc(sizeof(*xs), GFP_KERNEL); 902 if (unlikely(!xs)) { 903 err = -ENOMEM; 904 goto err_out; 905 } 906 907 xs->xso.flags = sam->flags; 908 xs->id.spi = sam->spi; 909 xs->id.proto = sam->proto; 910 xs->props.family = sam->family; 911 if (xs->props.family == AF_INET6) 912 memcpy(&xs->id.daddr.a6, sam->addr, sizeof(xs->id.daddr.a6)); 913 else 914 memcpy(&xs->id.daddr.a4, sam->addr, sizeof(xs->id.daddr.a4)); 915 xs->xso.dev = adapter->netdev; 916 > 917 algo = xfrm_aead_get_byname(aes_gcm_name, > IXGBE_IPSEC_AUTH_BITS, 1); 918 if (unlikely(!algo)) { 919 err = -ENOENT; 920 goto err_xs; 921 } 922 923 aead_len = sizeof(*xs->aead) + IXGBE_IPSEC_KEY_BITS / 8; 924 xs->aead = kzalloc(aead_len, GFP_KERNEL); 925 if (unlikely(!xs->aead)) { 926 err = -ENOMEM; 927 goto err_xs; 928 } 929 930 xs->props.ealgo = algo->desc.sadb_alg_id; 931 xs->geniv = algo->uinfo.aead.geniv; 932 xs->aead->alg_icv_len = IXGBE_IPSEC_AUTH_BITS; 933 xs->aead->alg_key_len = IXGBE_IPSEC_KEY_BITS; 934 memcpy(xs->aead->alg_key, sam->key, sizeof(sam->key)); 935 memcpy(xs->aead->alg_name, aes_gcm_name, sizeof(aes_gcm_name)); 936 937 /* set up the HW offload */ 938 err = ixgbe_ipsec_add_sa(xs); 939 if (err) 940 goto err_aead; 941 942 pfsa = xs->xso.offload_handle; 943 if (pfsa < IXGBE_IPSEC_BASE_TX_INDEX) { 944 sa_idx = pfsa - IXGBE_IPSEC_BASE_RX_INDEX; 945 ipsec->rx_tbl[sa_idx].vf = vf; 946 ipsec->rx_tbl[sa_idx].mode |= IXGBE_RXTXMOD_VF; 947 } else { 948 sa_idx = pfsa - IXGBE_IPSEC_BASE_TX_INDEX; 949 ipsec->tx_tbl[sa_idx].vf = vf; 950 ipsec->tx_tbl[sa_idx].mode |= IXGBE_RXTXMOD_VF; 951 } 952 953 msgbuf[1] = xs->xso.offload_handle; 954 955 return 0; 956 957 err_aead: 958 memset(xs->aead, 0, sizeof(*xs->aead)); 959 kfree(xs->aead); 960 err_xs: 961 memset(xs, 0, sizeof(*xs)); 962 kfree(xs); 963 err_out: 964 msgbuf[1] = err; 965 return err; 966 } 967 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: application/gzip