diff options
author | J. Bruce Fields <bfields@redhat.com> | 2012-08-09 18:12:28 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2012-08-20 18:38:44 -0400 |
commit | be1e44441a560c43c136a562d49a1c9623c91197 (patch) | |
tree | 3ebff386ad8128bb2d004236340ec2e1bf5ce25f /net/wimax | |
parent | 39307655a1effa8d913bba054c0e985bfaca808c (diff) |
svcrpc: fix BUG() in svc_tcp_clear_pages
Examination of svc_tcp_clear_pages shows that it assumes sk_tcplen is
consistent with sk_pages[] (in particular, sk_pages[n] can't be NULL if
sk_tcplen would lead us to expect n pages of data).
svc_tcp_restore_pages zeroes out sk_pages[] while leaving sk_tcplen.
This is OK, since both functions are serialized by XPT_BUSY. However,
that means the inconsistency must be repaired before dropping XPT_BUSY.
Therefore we should be ensuring that svc_tcp_save_pages repairs the
problem before exiting svc_tcp_recv_record on error.
Symptoms were a BUG() in svc_tcp_clear_pages.
Cc: stable@vger.kernel.org
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'net/wimax')
0 files changed, 0 insertions, 0 deletions