Messages in this thread | | | Date | Sun, 27 Feb 2022 03:15:08 +0800 | From | kernel test robot <> | Subject | [hare-scsi-devel:tls-upcall.v2 135/159] net/tls/af_tlsh.c:593: undefined reference to `inet6_recvmsg' |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git tls-upcall.v2 head: 21b520ae0b338bd30496feb1ca90a2820dab7a65 commit: 49f638e40e8a12b036a9943b76baa0c54c14d504 [135/159] net/tls: Add support for PF_TLSH (a TLS handshake listener) config: i386-randconfig-a005 (https://download.01.org/0day-ci/archive/20220227/202202270241.wsRAnnPM-lkp@intel.com/config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): # https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git/commit/?id=49f638e40e8a12b036a9943b76baa0c54c14d504 git remote add hare-scsi-devel https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git git fetch --no-tags hare-scsi-devel tls-upcall.v2 git checkout 49f638e40e8a12b036a9943b76baa0c54c14d504 # save the config file to linux build tree mkdir build_dir make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
ld: net/tls/af_tlsh.o: in function `tlsh_recvmsg': >> net/tls/af_tlsh.c:593: undefined reference to `inet6_recvmsg' ld: net/tls/af_tlsh.o: in function `tlsh_sendmsg': >> net/tls/af_tlsh.c:565: undefined reference to `inet6_sendmsg' ld: net/tls/af_tlsh.o: in function `tlsh_getname': >> net/tls/af_tlsh.c:407: undefined reference to `inet6_getname' ld: net/tls/af_tlsh.o: in function `tlsh_release': >> net/tls/af_tlsh.c:246: undefined reference to `inet6_release'
vim +593 net/tls/af_tlsh.c
387 388 /** 389 * tlsh_getname - retrieve src/dst address information 390 * @sock: socket to query 391 * @uaddr: buffer to fill in 392 * @peer: value indicates which address to retrieve 393 * 394 * Return values: 395 * On success, a positive length of the address in @uaddr 396 * On error, a negative errno 397 */ 398 static int tlsh_getname(struct socket *sock, struct sockaddr *uaddr, int peer) 399 { 400 struct sock *sk = sock->sk; 401 402 switch (sk->sk_family) { 403 case AF_INET: 404 return inet_getname(sock, uaddr, peer); 405 #if IS_ENABLED(CONFIG_IPV6) 406 case AF_INET6: > 407 return inet6_getname(sock, uaddr, peer); 408 #endif 409 default: 410 return -EOPNOTSUPP; 411 } 412 } 413 414 /** 415 * tlsh_poll - check for data ready on an AF_TLSH socket 416 * @file: file to check for work 417 * @sock: socket associated with @file 418 * @wait: poll table 419 * 420 * Return values: 421 * A mask of flags indicating what type of I/O is ready 422 */ 423 static __poll_t tlsh_poll(struct file *file, struct socket *sock, 424 poll_table *wait) 425 { 426 struct sock *sk = sock->sk; 427 __poll_t revents; 428 429 sock_poll_wait(file, sock, wait); 430 431 revents = 0; 432 433 if (sk->sk_err) 434 revents |= EPOLLERR; 435 436 if (sk->sk_shutdown == SHUTDOWN_MASK) 437 revents |= EPOLLHUP; 438 if (sk->sk_type == SOCK_STREAM && sk->sk_state == TCP_CLOSE) 439 revents |= EPOLLHUP; 440 441 if (sk->sk_shutdown & RCV_SHUTDOWN) 442 revents |= EPOLLRDHUP | EPOLLIN | EPOLLRDNORM; 443 if (!skb_queue_empty_lockless(&sk->sk_receive_queue)) 444 revents |= EPOLLIN | EPOLLRDNORM; 445 if (sk_is_readable(sk)) 446 revents |= EPOLLIN | EPOLLRDNORM; 447 448 return revents; 449 } 450 451 /** 452 * tlsh_listen - move a PF_TLSH socket into a listening state 453 * @sock: socket to transition to listening state 454 * @backlog: size of backlog queue 455 * 456 * Return values: 457 * %0: @sock is now in a listening state 458 * %-EPERM: caller is not privileged 459 * %-EINVAL: invalid parameters 460 */ 461 static int tlsh_listen(struct socket *sock, int backlog) 462 { 463 struct sock *sk = sock->sk; 464 unsigned char old_state; 465 int rc; 466 467 if (!capable(CAP_NET_BIND_SERVICE)) 468 return -EPERM; 469 470 lock_sock(sk); 471 472 rc = -EINVAL; 473 if (sock->state != SS_UNCONNECTED || sock->type != SOCK_STREAM) 474 goto out; 475 old_state = sk->sk_state; 476 if (!((1 << old_state) & (TCPF_CLOSE | TCPF_LISTEN))) 477 goto out; 478 479 sk->sk_max_ack_backlog = backlog; 480 sk->sk_state = TCP_LISTEN; 481 tlsh_register_listener(sk); 482 483 rc = 0; 484 485 out: 486 release_sock(sk); 487 return rc; 488 } 489 490 /** 491 * tlsh_setsockopt - Set a socket option 492 * @sock: socket to act upon 493 * @level: which network layer to act upon 494 * @optname: which option to set 495 * @optval: new value to set 496 * @optlen: the size of the new value, in bytes 497 * 498 * Return values: 499 * %0: Success 500 */ 501 static int tlsh_setsockopt(struct socket *sock, int level, int optname, 502 sockptr_t optval, unsigned int optlen) 503 { 504 struct sock *sk = sock->sk; 505 506 switch (sk->sk_family) { 507 case AF_INET: 508 #if IS_ENABLED(CONFIG_IPV6) 509 case AF_INET6: 510 #endif 511 return sock_common_setsockopt(sock, level, 512 optname, optval, optlen); 513 default: 514 return -EINVAL; 515 } 516 } 517 518 /** 519 * tlsh_getsockopt - Retrieve a socket option 520 * @sock: socket to act upon 521 * @level: which network layer to act upon 522 * @optname: which option to retrieve 523 * @optval: a buffer into which to receive the option's value 524 * @optlen: the size of the receive buffer, in bytes 525 * 526 * Return values: 527 * %0: Success 528 */ 529 static int tlsh_getsockopt(struct socket *sock, int level, int optname, 530 char __user *optval, int __user *optlen) 531 { 532 struct sock *sk = sock->sk; 533 534 switch (sk->sk_family) { 535 case AF_INET: 536 #if IS_ENABLED(CONFIG_IPV6) 537 case AF_INET6: 538 #endif 539 return sock_common_getsockopt(sock, level, 540 optname, optval, optlen); 541 default: 542 return -EINVAL; 543 } 544 } 545 546 /** 547 * tlsh_sendmsg - Send a message on a socket 548 * @sock: socket to send on 549 * @msg: message to send 550 * @size: size of message, in bytes 551 * 552 * Return values: 553 * %0: Success 554 * %-EOPNOTSUPP: Address family does not support this operation 555 */ 556 static int tlsh_sendmsg(struct socket *sock, struct msghdr *msg, size_t size) 557 { 558 struct sock *sk = sock->sk; 559 560 switch (sk->sk_family) { 561 case AF_INET: 562 return inet_sendmsg(sock, msg, size); 563 #if IS_ENABLED(CONFIG_IPV6) 564 case AF_INET6: > 565 return inet6_sendmsg(sock, msg, size); 566 #endif 567 default: 568 return -EOPNOTSUPP; 569 } 570 } 571 572 /** 573 * tlsh_recvmsg - Receive a message from a socket 574 * @sock: socket to receive from 575 * @msg: buffer into which to receive 576 * @size: size of buffer, in bytes 577 * @flags: control settings 578 * 579 * Return values: 580 * %0: Success 581 * %-EOPNOTSUPP: Address family does not support this operation 582 */ 583 static int tlsh_recvmsg(struct socket *sock, struct msghdr *msg, size_t size, 584 int flags) 585 { 586 struct sock *sk = sock->sk; 587 588 switch (sk->sk_family) { 589 case AF_INET: 590 return inet_recvmsg(sock, msg, size, flags); 591 #if IS_ENABLED(CONFIG_IPV6) 592 case AF_INET6: > 593 return inet6_recvmsg(sock, msg, size, flags); 594 #endif 595 default: 596 return -EOPNOTSUPP; 597 } 598 } 599
--- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
| |