[rds-commits] zab commits r138 - trunk/linux/net/rds
svn-commits@oss.oracle.com
svn-commits at oss.oracle.com
Wed Jul 26 19:21:37 CDT 2006
Author: zab
Date: 2006-07-26 19:21:36 -0500 (Wed, 26 Jul 2006)
New Revision: 138
Modified:
trunk/linux/net/rds/ib_recv.c
Log:
Don't parse partial IB headers.
The previous header length check didn't actually stop the headers from being
processed.
Modified: trunk/linux/net/rds/ib_recv.c
===================================================================
--- trunk/linux/net/rds/ib_recv.c 2006-07-27 00:09:12 UTC (rev 137)
+++ trunk/linux/net/rds/ib_recv.c 2006-07-27 00:21:36 UTC (rev 138)
@@ -323,7 +323,6 @@
*/
if (ibinc == NULL) {
if (byte_len < sizeof(struct rds_header)) {
- rds_ib_recv_unmap_page(ic, recv);
if (!ic->i_wc_err) {
ic->i_wc_err = 1;
printk(KERN_WARNING "RDS/IB: incoming message "
@@ -333,6 +332,7 @@
NIPQUAD(conn->c_faddr));
queue_work(rds_wq, &conn->c_shutdown_work);
}
+ return;
}
ibinc = recv->r_ibinc;
@@ -379,7 +379,7 @@
be32_to_cpu(wc.imm_data));
recv = &ic->i_recvs[rds_ib_ring_oldest(&ic->i_recv_ring)];
- if (wc.status == IB_WC_SUCCESS)
+ if (wc.status == IB_WC_SUCCESS && !ic->i_wc_err)
rds_ib_process_recv(conn, recv, wc.byte_len);
rds_ib_ring_free(&ic->i_recv_ring, 1);
More information about the rds-commits
mailing list