From patchwork Sun Apr 3 12:24:03 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shamir Rabinovitch X-Patchwork-Id: 605571 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 3qdDnl0lP4z9t5V for ; Sun, 3 Apr 2016 22:24:27 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753678AbcDCMYV (ORCPT ); Sun, 3 Apr 2016 08:24:21 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:26276 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753602AbcDCMYU (ORCPT ); Sun, 3 Apr 2016 08:24:20 -0400 Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u33COGnY009729 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sun, 3 Apr 2016 12:24:17 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by aserv0021.oracle.com (8.13.8/8.13.8) with ESMTP id u33COGOd026527 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sun, 3 Apr 2016 12:24:16 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 u33COD5C027043; Sun, 3 Apr 2016 12:24:14 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 1/2] RDS: fix "Kernel unaligned access" on sparc64 Date: Sun, 3 Apr 2016 08:24:03 -0400 Message-Id: <1459686244-14939-1-git-send-email-shamir.rabinovitch@oracle.com> X-Mailer: git-send-email 1.7.1 X-Source-IP: aserv0021.oracle.com [141.146.126.233] Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Sparc64 expect 64 bit types to be aligned to 8. This patch ensure that memory allocated by 'rds_page_remainder_alloc' will be aligned to 8. This patch fix issue found in 'rds_ib_cong_recv' when accessing unaligned memory using uint64_t pointer. Signed-off-by: Shamir Rabinovitch Reviewed-by: Wengang Wang Reviewed-by: Ajaykumar Hotchandani Acked-by: Santosh Shilimkar Tested-by: Anand Bibhuti --- net/rds/page.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/net/rds/page.c b/net/rds/page.c index 616f21f..4813e1f 100644 --- a/net/rds/page.c +++ b/net/rds/page.c @@ -135,8 +135,9 @@ int rds_page_remainder_alloc(struct scatterlist *scat, unsigned long bytes, if (rem->r_offset != 0) rds_stats_inc(s_page_remainder_hit); - rem->r_offset += bytes; - if (rem->r_offset == PAGE_SIZE) { + /* fix 'Kernel unaligned access' on sparc64 */ + rem->r_offset += ALIGN(bytes, 8); + if (rem->r_offset >= PAGE_SIZE) { __free_page(rem->r_page); rem->r_page = NULL; }