Hi Sergey, Thanks for reviewing, On Mon, Jan 30, 2023 at 01:15:35PM +0900, Sergey Senozhatsky wrote: > On (23/01/15 18:32), Dawei Li wrote: > > > > void ksmbd_conn_free(struct ksmbd_conn *conn) > > { > > - write_lock(&conn_list_lock); > > - list_del(&conn->conns_list); > > - write_unlock(&conn_list_lock); > > + spin_lock(&conn_list_lock); > > + list_del_rcu(&conn->conns_list); > > + spin_unlock(&conn_list_lock); synchronize_rcu(); > > > > xa_destroy(&conn->sessions); > > kvfree(conn->request_buf); > > From a quick look this does not seem like a correct RCU usage. E.g. > where do you wait for grace periods and synchronize readers/writers? Nice catch, I totally mess it up. Thanks! At first glance, I assume synchronize_rcu() will do the job if sleeping is OK? Steve, Namjae, Please drop this buggy patch from ksmbd-for-next. Thanks, Dawei