All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zhu Yanjun <yanjun.zhu@linux.dev>
To: "D. Wythe" <alibuda@linux.alibaba.com>,
	kgraul@linux.ibm.com, wenjia@linux.ibm.com, jaka@linux.ibm.com,
	wintera@linux.ibm.com, guwen@linux.alibaba.com
Cc: kuba@kernel.org, davem@davemloft.net, netdev@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-rdma@vger.kernel.org,
	tonylu@linux.alibaba.com, pabeni@redhat.com, edumazet@google.com
Subject: Re: [PATCH net-next v4 2/3] net/smc: expose smc proto operations
Date: Wed, 29 May 2024 19:57:28 +0200	[thread overview]
Message-ID: <136a5e67-962a-4084-bc51-c0ec9eb8e885@linux.dev> (raw)
In-Reply-To: <1716955147-88923-3-git-send-email-alibuda@linux.alibaba.com>

在 2024/5/29 5:59, D. Wythe 写道:
> From: "D. Wythe" <alibuda@linux.alibaba.com>
> 
> Externalize smc proto operations (smc_xxx) to allow
> access from files other that af_smc.c

s/other that/other than ?

Zhu Yanjun

> 
> This is in preparation for the subsequent implementation
> of the AF_INET version of SMC.
> 
> Signed-off-by: D. Wythe <alibuda@linux.alibaba.com>
> ---
>   net/smc/af_smc.c | 60 ++++++++++++++++++++++++++++----------------------------
>   net/smc/smc.h    | 33 +++++++++++++++++++++++++++++++
>   2 files changed, 63 insertions(+), 30 deletions(-)
> 
> diff --git a/net/smc/af_smc.c b/net/smc/af_smc.c
> index 77a9d58..8e3ce76 100644
> --- a/net/smc/af_smc.c
> +++ b/net/smc/af_smc.c
> @@ -170,15 +170,15 @@ static bool smc_hs_congested(const struct sock *sk)
>   	return false;
>   }
>   
> -static struct smc_hashinfo smc_v4_hashinfo = {
> +struct smc_hashinfo smc_v4_hashinfo = {
>   	.lock = __RW_LOCK_UNLOCKED(smc_v4_hashinfo.lock),
>   };
>   
> -static struct smc_hashinfo smc_v6_hashinfo = {
> +struct smc_hashinfo smc_v6_hashinfo = {
>   	.lock = __RW_LOCK_UNLOCKED(smc_v6_hashinfo.lock),
>   };
>   
> -static int smc_hash_sk(struct sock *sk)
> +int smc_hash_sk(struct sock *sk)
>   {
>   	struct smc_hashinfo *h = sk->sk_prot->h.smc_hash;
>   	struct hlist_head *head;
> @@ -193,7 +193,7 @@ static int smc_hash_sk(struct sock *sk)
>   	return 0;
>   }
>   
> -static void smc_unhash_sk(struct sock *sk)
> +void smc_unhash_sk(struct sock *sk)
>   {
>   	struct smc_hashinfo *h = sk->sk_prot->h.smc_hash;
>   
> @@ -207,7 +207,7 @@ static void smc_unhash_sk(struct sock *sk)
>    * work which we didn't do because of user hold the sock_lock in the
>    * BH context
>    */
> -static void smc_release_cb(struct sock *sk)
> +void smc_release_cb(struct sock *sk)
>   {
>   	struct smc_sock *smc = smc_sk(sk);
>   
> @@ -307,7 +307,7 @@ static int __smc_release(struct smc_sock *smc)
>   	return rc;
>   }
>   
> -static int smc_release(struct socket *sock)
> +int smc_release(struct socket *sock)
>   {
>   	struct sock *sk = sock->sk;
>   	struct smc_sock *smc;
> @@ -401,8 +401,8 @@ static struct sock *smc_sock_alloc(struct net *net, struct socket *sock,
>   	return sk;
>   }
>   
> -static int smc_bind(struct socket *sock, struct sockaddr *uaddr,
> -		    int addr_len)
> +int smc_bind(struct socket *sock, struct sockaddr *uaddr,
> +	     int addr_len)
>   {
>   	struct sockaddr_in *addr = (struct sockaddr_in *)uaddr;
>   	struct sock *sk = sock->sk;
> @@ -1649,8 +1649,8 @@ static void smc_connect_work(struct work_struct *work)
>   	release_sock(&smc->sk);
>   }
>   
> -static int smc_connect(struct socket *sock, struct sockaddr *addr,
> -		       int alen, int flags)
> +int smc_connect(struct socket *sock, struct sockaddr *addr,
> +		int alen, int flags)
>   {
>   	struct sock *sk = sock->sk;
>   	struct smc_sock *smc;
> @@ -2631,7 +2631,7 @@ static void smc_clcsock_data_ready(struct sock *listen_clcsock)
>   	read_unlock_bh(&listen_clcsock->sk_callback_lock);
>   }
>   
> -static int smc_listen(struct socket *sock, int backlog)
> +int smc_listen(struct socket *sock, int backlog)
>   {
>   	struct sock *sk = sock->sk;
>   	struct smc_sock *smc;
> @@ -2696,8 +2696,8 @@ static int smc_listen(struct socket *sock, int backlog)
>   	return rc;
>   }
>   
> -static int smc_accept(struct socket *sock, struct socket *new_sock,
> -		      struct proto_accept_arg *arg)
> +int smc_accept(struct socket *sock, struct socket *new_sock,
> +	       struct proto_accept_arg *arg)
>   {
>   	struct sock *sk = sock->sk, *nsk;
>   	DECLARE_WAITQUEUE(wait, current);
> @@ -2766,8 +2766,8 @@ static int smc_accept(struct socket *sock, struct socket *new_sock,
>   	return rc;
>   }
>   
> -static int smc_getname(struct socket *sock, struct sockaddr *addr,
> -		       int peer)
> +int smc_getname(struct socket *sock, struct sockaddr *addr,
> +		int peer)
>   {
>   	struct smc_sock *smc;
>   
> @@ -2780,7 +2780,7 @@ static int smc_getname(struct socket *sock, struct sockaddr *addr,
>   	return smc->clcsock->ops->getname(smc->clcsock, addr, peer);
>   }
>   
> -static int smc_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)
> +int smc_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)
>   {
>   	struct sock *sk = sock->sk;
>   	struct smc_sock *smc;
> @@ -2818,8 +2818,8 @@ static int smc_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)
>   	return rc;
>   }
>   
> -static int smc_recvmsg(struct socket *sock, struct msghdr *msg, size_t len,
> -		       int flags)
> +int smc_recvmsg(struct socket *sock, struct msghdr *msg, size_t len,
> +		int flags)
>   {
>   	struct sock *sk = sock->sk;
>   	struct smc_sock *smc;
> @@ -2868,8 +2868,8 @@ static __poll_t smc_accept_poll(struct sock *parent)
>   	return mask;
>   }
>   
> -static __poll_t smc_poll(struct file *file, struct socket *sock,
> -			     poll_table *wait)
> +__poll_t smc_poll(struct file *file, struct socket *sock,
> +		  poll_table *wait)
>   {
>   	struct sock *sk = sock->sk;
>   	struct smc_sock *smc;
> @@ -2921,7 +2921,7 @@ static __poll_t smc_poll(struct file *file, struct socket *sock,
>   	return mask;
>   }
>   
> -static int smc_shutdown(struct socket *sock, int how)
> +int smc_shutdown(struct socket *sock, int how)
>   {
>   	struct sock *sk = sock->sk;
>   	bool do_shutdown = true;
> @@ -3061,8 +3061,8 @@ static int __smc_setsockopt(struct socket *sock, int level, int optname,
>   	return rc;
>   }
>   
> -static int smc_setsockopt(struct socket *sock, int level, int optname,
> -			  sockptr_t optval, unsigned int optlen)
> +int smc_setsockopt(struct socket *sock, int level, int optname,
> +		   sockptr_t optval, unsigned int optlen)
>   {
>   	struct sock *sk = sock->sk;
>   	struct smc_sock *smc;
> @@ -3148,8 +3148,8 @@ static int smc_setsockopt(struct socket *sock, int level, int optname,
>   	return rc;
>   }
>   
> -static int smc_getsockopt(struct socket *sock, int level, int optname,
> -			  char __user *optval, int __user *optlen)
> +int smc_getsockopt(struct socket *sock, int level, int optname,
> +		   char __user *optval, int __user *optlen)
>   {
>   	struct smc_sock *smc;
>   	int rc;
> @@ -3174,8 +3174,8 @@ static int smc_getsockopt(struct socket *sock, int level, int optname,
>   	return rc;
>   }
>   
> -static int smc_ioctl(struct socket *sock, unsigned int cmd,
> -		     unsigned long arg)
> +int smc_ioctl(struct socket *sock, unsigned int cmd,
> +	      unsigned long arg)
>   {
>   	union smc_host_cursor cons, urg;
>   	struct smc_connection *conn;
> @@ -3261,9 +3261,9 @@ static int smc_ioctl(struct socket *sock, unsigned int cmd,
>    * Note that subsequent recv() calls have to wait till all splice() processing
>    * completed.
>    */
> -static ssize_t smc_splice_read(struct socket *sock, loff_t *ppos,
> -			       struct pipe_inode_info *pipe, size_t len,
> -			       unsigned int flags)
> +ssize_t smc_splice_read(struct socket *sock, loff_t *ppos,
> +			struct pipe_inode_info *pipe, size_t len,
> +			unsigned int flags)
>   {
>   	struct sock *sk = sock->sk;
>   	struct smc_sock *smc;
> diff --git a/net/smc/smc.h b/net/smc/smc.h
> index 3edec1e..34b781e 100644
> --- a/net/smc/smc.h
> +++ b/net/smc/smc.h
> @@ -34,6 +34,39 @@
>   extern struct proto smc_proto;
>   extern struct proto smc_proto6;
>   
> +extern struct smc_hashinfo smc_v4_hashinfo;
> +extern struct smc_hashinfo smc_v6_hashinfo;
> +
> +int smc_hash_sk(struct sock *sk);
> +void smc_unhash_sk(struct sock *sk);
> +void smc_release_cb(struct sock *sk);
> +
> +int smc_release(struct socket *sock);
> +int smc_bind(struct socket *sock, struct sockaddr *uaddr,
> +	     int addr_len);
> +int smc_connect(struct socket *sock, struct sockaddr *addr,
> +		int alen, int flags);
> +int smc_accept(struct socket *sock, struct socket *new_sock,
> +	       struct proto_accept_arg *arg);
> +int smc_getname(struct socket *sock, struct sockaddr *addr,
> +		int peer);
> +__poll_t smc_poll(struct file *file, struct socket *sock,
> +		  poll_table *wait);
> +int smc_ioctl(struct socket *sock, unsigned int cmd,
> +	      unsigned long arg);
> +int smc_listen(struct socket *sock, int backlog);
> +int smc_shutdown(struct socket *sock, int how);
> +int smc_setsockopt(struct socket *sock, int level, int optname,
> +		   sockptr_t optval, unsigned int optlen);
> +int smc_getsockopt(struct socket *sock, int level, int optname,
> +		   char __user *optval, int __user *optlen);
> +int smc_sendmsg(struct socket *sock, struct msghdr *msg, size_t len);
> +int smc_recvmsg(struct socket *sock, struct msghdr *msg, size_t len,
> +		int flags);
> +ssize_t smc_splice_read(struct socket *sock, loff_t *ppos,
> +			struct pipe_inode_info *pipe, size_t len,
> +			unsigned int flags);
> +
>   /* smc sock initialization */
>   void smc_sk_init(struct net *net, struct sock *sk, int protocol);
>   /* clcsock initialization */


  reply	other threads:[~2024-05-29 17:57 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-29  3:59 [PATCH net-next v4 0/3] Introduce IPPROTO_SMC D. Wythe
2024-05-29  3:59 ` [PATCH net-next v4 1/3] net/smc: refactoring initialization of smc sock D. Wythe
2024-05-29  6:14   ` Tony Lu
2024-05-29  3:59 ` [PATCH net-next v4 2/3] net/smc: expose smc proto operations D. Wythe
2024-05-29 17:57   ` Zhu Yanjun [this message]
2024-05-30  2:33     ` D. Wythe
2024-05-29  3:59 ` [PATCH net-next v4 3/3] net/smc: Introduce IPPROTO_SMC D. Wythe
2024-05-29 11:12   ` Dust Li
2024-05-30  3:11     ` D. Wythe
2024-05-29 11:58   ` Wenjia Zhang
2024-05-30  2:51     ` D. Wythe
2024-05-29 19:55   ` Zhu Yanjun
2024-05-30  2:35     ` D. Wythe
2024-06-01 13:06   ` Simon Horman
2024-06-03  2:57     ` D. Wythe
2024-06-03  7:47       ` Simon Horman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=136a5e67-962a-4084-bc51-c0ec9eb8e885@linux.dev \
    --to=yanjun.zhu@linux.dev \
    --cc=alibuda@linux.alibaba.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=guwen@linux.alibaba.com \
    --cc=jaka@linux.ibm.com \
    --cc=kgraul@linux.ibm.com \
    --cc=kuba@kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=tonylu@linux.alibaba.com \
    --cc=wenjia@linux.ibm.com \
    --cc=wintera@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.