From patchwork Thu Apr 7 11:57:36 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shamir Rabinovitch X-Patchwork-Id: 607381 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3qgh1W1WnLz9t5V for ; Thu, 7 Apr 2016 21:58:07 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755914AbcDGL6C (ORCPT ); Thu, 7 Apr 2016 07:58:02 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:28747 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755418AbcDGL6A (ORCPT ); Thu, 7 Apr 2016 07:58:00 -0400 Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u37Bvvlh016517 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 7 Apr 2016 11:57:58 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by userv0022.oracle.com (8.14.4/8.13.8) with ESMTP id u37Bvu75002203 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 7 Apr 2016 11:57:57 GMT Received: from abhmp0008.oracle.com (abhmp0008.oracle.com [141.146.116.14]) by aserv0122.oracle.com (8.13.8/8.13.8) with ESMTP id u37Bvsa7021258; Thu, 7 Apr 2016 11:57:55 GMT Received: from shamir-net-srv.us.oracle.com (/10.211.3.248) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 07 Apr 2016 04:57:54 -0700 From: Shamir Rabinovitch To: rds-devel@oss.oracle.com, netdev@vger.kernel.org Cc: davem@davemloft.net, shamir.rabinovitch@oracle.com, santosh.shilimkar@oracle.com Subject: [PATCH v4 2/2] RDS: fix congestion map corruption for PAGE_SIZE > 4k Date: Thu, 7 Apr 2016 07:57:36 -0400 Message-Id: <1460030256-16791-2-git-send-email-shamir.rabinovitch@oracle.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1460030256-16791-1-git-send-email-shamir.rabinovitch@oracle.com> References: <1460030256-16791-1-git-send-email-shamir.rabinovitch@oracle.com> X-Source-IP: userv0022.oracle.com [156.151.31.74] Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When PAGE_SIZE > 4k single page can contain 2 RDS fragments. If 'rds_ib_cong_recv' ignore the RDS fragment offset in to the page it then read the data fragment as far congestion map update and lead to corruption of the RDS connection far congestion map. Signed-off-by: Shamir Rabinovitch Acked-by: Santosh Shilimkar --- net/rds/ib_recv.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/net/rds/ib_recv.c b/net/rds/ib_recv.c index 977fb86..abc8cc8 100644 --- a/net/rds/ib_recv.c +++ b/net/rds/ib_recv.c @@ -796,7 +796,7 @@ static void rds_ib_cong_recv(struct rds_connection *conn, addr = kmap_atomic(sg_page(&frag->f_sg)); - src = addr + frag_off; + src = addr + frag->f_sg.offset + frag_off; dst = (void *)map->m_page_addrs[map_page] + map_off; for (k = 0; k < to_copy; k += 8) { /* Record ports that became uncongested, ie