From patchwork Sun Apr 3 12:24:04 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shamir Rabinovitch X-Patchwork-Id: 605570 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 3qdDng2tjGz9t5V for ; Sun, 3 Apr 2016 22:24:23 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753697AbcDCMYW (ORCPT ); Sun, 3 Apr 2016 08:24:22 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:38790 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753607AbcDCMYU (ORCPT ); Sun, 3 Apr 2016 08:24:20 -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 u33COIKL031373 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sun, 3 Apr 2016 12:24:18 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 u33COGE5029012 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sun, 3 Apr 2016 12:24:17 GMT Received: from abhmp0010.oracle.com (abhmp0010.oracle.com [141.146.116.16]) by aserv0122.oracle.com (8.13.8/8.13.8) with ESMTP id u33CODOZ027089; Sun, 3 Apr 2016 12:24:15 GMT Received: from shamir-net-srv.us.oracle.com (/10.211.3.142) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sun, 03 Apr 2016 05:24:13 -0700 From: Shamir Rabinovitch To: rds-devel@oss.oracle.com, netdev@vger.kernel.org Cc: davem@davemloft.net, shamir.rabinovitch@oracle.com Subject: [PATCH v3 2/2] RDS: fix congestion map corruption for PAGE_SIZE > 8k Date: Sun, 3 Apr 2016 08:24:04 -0400 Message-Id: <1459686244-14939-2-git-send-email-shamir.rabinovitch@oracle.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1459686244-14939-1-git-send-email-shamir.rabinovitch@oracle.com> References: <1459686244-14939-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 On Sparc64 page size is 8k. So single page 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. This patch require the below patch for Sparc64 platforms: 001f8f8 RDS: fix "Kernel unaligned access" on sparc64 Signed-off-by: Shamir Rabinovitch Reviewed-by: Wengang Wang Reviewed-by: Ajaykumar Hotchandani Acked-by: Santosh Shilimkar Tested-by: Anand Bibhuti --- 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