On Fri, 22 Sep 2017, Boris Ostrovsky wrote:
> > +static void pvcalls_front_free_map(struct pvcalls_bedata *bedata,
> > + struct sock_mapping *map)
>
> I just noticed: pvcalls_front_free_map() is referenced by patches 2 and 8.
I'll create an empty stub earlier.
> > +
>> + */
>> +map->active.ring->in_error = -EBADF;
>> +wake_up_interruptible(&map->active.inflight_conn_req);
>> +
>> +/*
>> + * Wait until there are no more waiters on the mutexes.
>> + * We know that no new waiters can be adde
>
> +static void pvcalls_front_free_map(struct pvcalls_bedata *bedata,
> +struct sock_mapping *map)
I just noticed: pvcalls_front_free_map() is referenced by patches 2 and 8.
> +{
> + int i;
> +
> + unbind_from_irqhandler(map->active.irq, map);
> +
> +
Send PVCALLS_RELEASE to the backend and wait for a reply. Take both
in_mutex and out_mutex to avoid concurrent accesses. Then, free the
socket.
For passive sockets, check whether we have already pre-allocated an
active socket for the purpose of being accepted. If so, free that as
well.
Signed-off