Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp993376imu; Fri, 4 Jan 2019 10:54:45 -0800 (PST) X-Google-Smtp-Source: ALg8bN7e5dYVgsAO1L4j4CqgDExIAaQjPb/Ak/IFLI3h1LmhyGUnRzxbfSwe7Ot9COd6mRrtYjeE X-Received: by 2002:a65:534b:: with SMTP id w11mr2619755pgr.125.1546628085547; Fri, 04 Jan 2019 10:54:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1546628085; cv=none; d=google.com; s=arc-20160816; b=wTzNeLV3F0+lipRvIl8F7sqFIPy7Vqj2zEfK1D6QlfK/g46xVrrW0VjSTVcKTv61zx Li/Rnpou16E3w4nViC/kX0CR0xVpk06QdIK5lBHqSG8+LZ9jQe9DfFcsf3pp/mOuNhAL b2eOA7enI6v1f1FTNVwy366j2boLSycKMbH9ViZxOFkAGKJy3yBZQivY2wr+gtR/7jKF TgnD/JndSkV+3poy2XRirq/tV2Pk7QHd4MzlbhmqfwpR4oQVuJzsqK4NXLeMoBqfvto4 QML5q7dYQlSjy6oXUF+KnlNzpjJhM5M7UPfLkktEFLeMgb/tGMFp/OtRstctG64sAtJv 6/nA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=EyuUEfuTmvLhi67JS1rUvXvyUvFfSZPSyZaSd19L4GQ=; b=ThkowQxKDRuFMVqAPVRtthoExPAS2+I3QsClhvrY5aALR0D1aIQxBNt9RMaQ8j6zJh /I7t6PuOfJ8vOAdKeeFNRXRGvvyW1fRRGxT9G3BUABXqzNFpXoiLtnHgBFn5xVzUoPqG 0K9y+rLOschCx47kycVkUvKz/ahX1B/M+BBa0jkJZFtzmqWa414PQHlApUaeT8ZWZUVO AKJaV+rIHN+xHJ4UFo18ILNQ2+HcstCeFELCasL9RLiM7//RJaaXFzPwDnajcUuUPJnN FuzPk77+nNpvk8rEW5GhVlyP5uvnRIdCDNkFT+CzRFvyEZ4lywXi4LVm20xp5VcguUQM VnbQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=NnQSsnbz; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b18si21158370plz.105.2019.01.04.10.54.30; Fri, 04 Jan 2019 10:54:45 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=NnQSsnbz; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727215AbfADSwY (ORCPT + 99 others); Fri, 4 Jan 2019 13:52:24 -0500 Received: from mail-wm1-f65.google.com ([209.85.128.65]:38398 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726135AbfADSwY (ORCPT ); Fri, 4 Jan 2019 13:52:24 -0500 Received: by mail-wm1-f65.google.com with SMTP id m22so2117944wml.3; Fri, 04 Jan 2019 10:52:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=EyuUEfuTmvLhi67JS1rUvXvyUvFfSZPSyZaSd19L4GQ=; b=NnQSsnbz4YbBYK57SjeCoU/J+ug6Tmj8kMnUjyShlT+W4E0eEIL2be8pRzNgFuYlaK +FQhAYfblbB4mwxlXQ6ZxVSyFhLEyRsm2HZtWrGnAZIOM35BcNnee4gutE2TjrESNzRh to4jXNx2R3/SP/tKxPfpBhoReJ67XxP/FTQBqgkvTNhmkkGZqDvHdAbV2cxXc+6ALMaI +fv3pch4Pt4DGTU139scBJkC1KU1tl0C0gUr83gEiL0o8BE4lEXkrrhmRyXRIC//RJEE sqtae4CgPXuHH7/YCDTdhEdMU4LzBo4xe95v4y+sYwYo6FCSSppyLAgw8MecrixYFaet mpEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=EyuUEfuTmvLhi67JS1rUvXvyUvFfSZPSyZaSd19L4GQ=; b=JBWhMH5NIqAsJTHyro9Zyibkoy8L8VQiFfYf/96ZokSPe+HqZMwQyoG9X+d+VuJWLq Qb+dGUcXRASCHJMhxTO9stHKbDWwWcqjW2PZ+LTlqj0SsUmox34hNOAcF/XUZ196IlJf qtokqPCgVz+QTFIOthDVgGepLAdVJzb5OYMoZaW/O24/YnMD66cwqRUhjwfT9YStCWJO V6LXBYmNj9CWd17ieLAZ5RLS9gAi2ht/PVogWq0slCeBXXsjBa3ALfR8azYjvAXtNhIl CmrPsCmJy3Is/rMo64lIE3a5AS4pmLUivsZPkpHEIokSTnwO9Ux6XmNUz5+tHVmIgXBE 6nlg== X-Gm-Message-State: AJcUukcSUgGpX3Rxy5zQKb+d78NUZ68rKw27uQw1kBa7O2CYiZWNmJXC MxBj2CFF50jnB5q1tFPzhEWDbRUhmbQLkPEbDAs= X-Received: by 2002:a1c:760c:: with SMTP id r12mr2032207wmc.127.1546627941636; Fri, 04 Jan 2019 10:52:21 -0800 (PST) MIME-Version: 1.0 References: <20181221072716.29017-1-andrew.smirnov@gmail.com> <20181221072716.29017-8-andrew.smirnov@gmail.com> <9b275993-c511-50d3-e18e-b421010c1bba@synopsys.com> In-Reply-To: From: Andrey Smirnov Date: Fri, 4 Jan 2019 10:52:10 -0800 Message-ID: Subject: Re: [PATCH 07/21] PCI: designware: Make use of IS_ALIGNED() To: Joe Perches Cc: Gustavo Pimentel , "linux-pci@vger.kernel.org" , Lorenzo Pieralisi , Bjorn Helgaas , Fabio Estevam , Chris Healy , Lucas Stach , Leonard Crestez , "A.s. Dong" , Richard Zhu , "linux-imx@nxp.com" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 4, 2019 at 10:38 AM Joe Perches wrote: > > On Wed, 2019-01-02 at 09:33 +0000, Gustavo Pimentel wrote: > > On 21/12/2018 07:27, Andrey Smirnov wrote: > > > Make the intent a bit more clear as well as get rid of explicit > > > arithmetic by using IS_ALIGNED() to determine if "addr" is aligned to > > > "size". No functional change intended. > [] > > > diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/controller/dwc/pcie-designware.c > [] > > > @@ -22,7 +22,7 @@ > > > > > > int dw_pcie_read(void __iomem *addr, int size, u32 *val) > > > { > > > - if ((uintptr_t)addr & (size - 1)) { > > > + if (!IS_ALIGNED((uintptr_t)addr, size)) { > > The (uintptr_t) cast could probably be removed as well. > Unfortunately no. IS_ALIGNED(x, a) is going to expand (((x) & ((typeof(x))(a) - 1)) == 0), so we'll end up with (((addr) & ((void *)(size) - 1)) which has two problems: 1. It tries to use & operator on two void * pointers 2. On 64-bit platforms (e.g. AArch64) it will try to cast an "int" to a pointer, resulting in "warning: cast to pointer from integer of different size" When working on it, I initially wrote the code without the cast, but was quickly reprimanded by GCC and had to add it back in. Thanks, Andrey Smirnov