Re: [cel:topic-rpc-with-tls-upcall 12/16] net/sunrpc/xprtsock.c:2544: undefined reference to `tls_client_hello_x509'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 11/6/2022 12:00 AM, Chuck Lever III wrote:


On Nov 5, 2022, at 2:05 AM, kernel test robot <lkp@xxxxxxxxx> wrote:

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux topic-rpc-with-tls-upcall
head:   92abd0e9e73597857455026e8312192264aaabf9
commit: b39cc345e2d6ed4f37bea31528ccbfaa3dec4f69 [12/16] SUNRPC: Add RPC-with-TLS support to xprtsock.c
config: x86_64-rhel-8.3-kvm
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
reproduce (this is a W=1 build):
        # https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git/commit/?id=b39cc345e2d6ed4f37bea31528ccbfaa3dec4f69
        git remote add cel git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux
        git fetch --no-tags cel topic-rpc-with-tls-upcall
        git checkout b39cc345e2d6ed4f37bea31528ccbfaa3dec4f69
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

   ld: net/sunrpc/xprtsock.o: in function `xs_tls_handshake_sync':
net/sunrpc/xprtsock.c:2544: undefined reference to `tls_client_hello_x509'
ld: net/sunrpc/xprtsock.c:2539: undefined reference to `tls_client_hello_anon'
   pahole: .tmp_vmlinux.btf: No such file or directory
   .btf.vmlinux.bin.o: file not recognized: file format not recognized

I am not able to reproduce this build failure.

I'm on Fedora 36 with gcc-12.2.1-2

CONFIG_TLS=m
CONFIG_TLS_DEVICE=y

CONFIG_SUNRPC=y

Any help appreciated!

Hi Chuck,

I can reproduce it with gcc-11/gcc-12 on ubuntu 21.10,
and this issue disappeared if CONFIG_TLS=y.

Best Regards,
Rong Chen



vim +2544 net/sunrpc/xprtsock.c

  2526	
  2527	static int xs_tls_handshake_sync(struct rpc_xprt *lower_xprt, struct xprtsec_parms *xprtsec)
  2528	{
  2529		struct sock_xprt *lower_transport =
  2530					container_of(lower_xprt, struct sock_xprt, xprt);
  2531		int rc;
  2532	
  2533		init_completion(&lower_transport->handshake_done);
  2534		set_bit(XPRT_SOCK_IGNORE_RECV, &lower_transport->sock_state);
  2535	
  2536		lower_transport->xprt_err = -ETIMEDOUT;
  2537		switch (xprtsec->policy) {
  2538		case RPC_XPRTSEC_TLS_ANON:
2539			rc = tls_client_hello_anon(lower_transport->sock,
  2540						   xs_tls_handshake_done, xprt_get(lower_xprt),
  2541						   TLSH_DEFAULT_PRIORITIES);
  2542			break;
  2543		case RPC_XPRTSEC_TLS_X509:
2544			rc = tls_client_hello_x509(lower_transport->sock,
  2545						   xs_tls_handshake_done, xprt_get(lower_xprt),
  2546						   TLSH_DEFAULT_PRIORITIES,
  2547						   xprtsec->cert_serial,
  2548						   xprtsec->privkey_serial);
  2549			break;
  2550		default:
  2551			rc = -EACCES;
  2552		}
  2553		if (rc)
  2554			goto out;
  2555	
  2556		rc = wait_for_completion_interruptible_timeout(&lower_transport->handshake_done,
  2557							       XS_TLS_HANDSHAKE_TO);
  2558		if (rc < 0)
  2559			goto out;
  2560	
  2561		rc = lower_transport->xprt_err;
  2562	
  2563	out:
  2564		xs_stream_reset_connect(lower_transport);
  2565		clear_bit(XPRT_SOCK_IGNORE_RECV, &lower_transport->sock_state);
  2566		return rc;
  2567	}
  2568	

--
0-DAY CI Kernel Test Service
https://01.org/lkp
<config.txt>

--
Chuck Lever







[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux