]> git.baikalelectronics.ru Git - kernel.git/commit
packet: Avoid lock_sock in mmap handler
authorHerbert Xu <herbert@gondor.apana.org.au>
Fri, 30 Jan 2009 22:12:06 +0000 (14:12 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 30 Jan 2009 22:13:49 +0000 (14:13 -0800)
commit3dde3c6a3f6ee797f69cfd0ba85df3132d75ff11
tree645708af472fd26bb73b5cd6abe10640322a3b93
parentf3d040541f1b7b0ec9eb7c39215abe31bae058cb
packet: Avoid lock_sock in mmap handler

As the mmap handler gets called under mmap_sem, and we may grab
mmap_sem elsewhere under the socket lock to access user data, we
should avoid grabbing the socket lock in the mmap handler.

Since the only thing we care about in the mmap handler is for
pg_vec* to be invariant, i.e., to exclude packet_set_ring, we
can achieve this by simply using a new mutex.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Tested-by: Martin MOKREJŠ <mmokrejs@ribosome.natur.cuni.cz>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/packet/af_packet.c