On Fri, 2017-05-26 at 11:18 -0400, David Miller wrote:
> From: Eric Dumazet <eric.duma...@gmail.com>
> Date: Fri, 26 May 2017 07:16:59 -0700
> 
> > On Wed, 2017-05-24 at 09:27 -0700, Dave Watson wrote:
> >> Software implementation of transport layer security, implemented using ULP
> >> infrastructure.  tcp proto_ops are replaced with tls equivalents of 
> >> sendmsg and
> >> sendpage.
> > 
> > ...
> > 
> >> +
> >> +int tls_sw_sendmsg(struct sock *sk, struct msghdr *msg, size_t size)
> >> +{
> >     ...
> >> +
> >> +  lock_sock(sk);
> >> +
> >> +  /* Only one writer at a time is allowed */
> >> +  if (sk->sk_write_pending)
> >> +          return -EBUSY;
> > 
> > Ouch...
> 
> Well, as I understand it, it is the same restriction userspace must
> itself enforce either in the application or in the SSL library.

The problem here is to lock_sock(sk), then returning without releasing
the socket.

Some basic lock imbalance really.


Reply via email to