From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754438AbcAMVjE (ORCPT ); Wed, 13 Jan 2016 16:39:04 -0500 Received: from mout.kundenserver.de ([212.227.126.133]:57767 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751073AbcAMVi7 (ORCPT ); Wed, 13 Jan 2016 16:38:59 -0500 From: Arnd Bergmann To: Brian Norris Cc: Wan ZongShun , David Woodhouse , linux-arm-kernel@lists.infradead.org, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] mtd: nuc900_nand: read correct SMISR register Date: Wed, 13 Jan 2016 22:38:08 +0100 Message-ID: <9019174.GYajdpGP8V@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:RRUK+UxgTog8SaCvo66UhbHt3b0FC4Ce2G8bI/rJCwZ/fhhBoUc cdgbqhihBvhfxYzvKbP5hh9E/Esg5tgoKA+nCFqWjiUC0cqD/xKqJKwumwUI7O/jyiZURLZ nzSzHSIHai3U2ruIxZhveXyCaxxJrmXtbKBOeiPIc06r5Kh9C62jSZP/hlAHWASsm3m8KO3 g6D7yR2owwNAW0dbLoxOg== X-UI-Out-Filterresults: notjunk:1;V01:K0:a2lsYrshcUM=:+fWKiYRRKYfk6TefuRyK9x FQ9FtjeGFO/myG/dxkugQMihksmgBW1qQNs2Zmn/q8+JRPj3LgmNR5QD3ZKVTRbY2klpMuMSr GnYmjyZel31ddMwYF3lzxlFY6OOMm0AGkf/4FxLYc6KbPG1/qK55ZjrhRsGRTKVaKJAkj52I7 1S7MdfE6TO78KwC4MkmuKCTOHeIMZddVfe6V6vyy0WUe8qMKmekWKsEIXLgya1SfyPodOQcyP n+tRtbJwTTbAEHsV81oLaBIPoa9TGrLn5oAuUc4ZB3qFVwDHXq9HjeBqcn8s2nIkINf184rKk Jzw6SfrZVmhlybTDWZ8JyUiRwj2c9tVJ+40VSwEfwxdPIwQAplz4uFkPC5OUj+UGB43qqqM66 KNkFif6UyCLyY6/oVJIABhukzgsZZIN0IEKbA1EHbNRpJu8dt0DyZjGZhbBQC9b//zVDh8hQn nqER4yDXsse2855TaQL8PlVxu8x4F0u+q73IHiq+L6tI8TpoKo+ysPDGhzqdDC2jyrqMmvvdW LvRR9r4MtuyVownCvVuR8G7yKEGgNQi+x0RIq6Gc+IBY2Xw623xA62FYyv8PdagJ1tuPEsQv4 oiOci2WkR2aL2GzSgLoU8ze4b5iizWa6Q+lRoosSadCiIh2sSwzzaUE1EiSzyTPc885bjLnP3 z5Hi3kQdrnk6onyWjlofblTX8FhpC6orAbqLMU+zsf4vJ+hy0lCoYnD9f4/mQsCa+VmHXfsTX DTEyF42N0SWHVHae Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The nuc900_nand driver has always passed an incorrect register address in its nuc900_check_rb() function, which cannot possibly work, and in some configurations gives us a build warning: drivers/mtd/nand/nuc900_nand.c: In function 'nuc900_check_rb': drivers/mtd/nand/nuc900_nand.c:27:23: warning: passing argument 1 of '__raw_readl' makes pointer from integer without a cast [-Wint-conversion] #define REG_SMISR 0xac drivers/mtd/nand/nuc900_nand.c:118:20: note: in expansion of macro 'REG_SMISR' val = __raw_readl(REG_SMISR); This makes sure we actually read from the register rather than from (void *)0x000000ac in user space. I suspect nobody noticed this before because the nuc900_nand_devready() function never gets called, or nobody uses this driver on an upstream kernel. Possibly even both. Signed-off-by: Arnd Bergmann diff --git a/drivers/mtd/nand/nuc900_nand.c b/drivers/mtd/nand/nuc900_nand.c index 220ddfcf29f5..dbc5b571c2bb 100644 --- a/drivers/mtd/nand/nuc900_nand.c +++ b/drivers/mtd/nand/nuc900_nand.c @@ -113,7 +113,7 @@ static int nuc900_check_rb(struct nuc900_nand *nand) { unsigned int val; spin_lock(&nand->lock); - val = __raw_readl(REG_SMISR); + val = __raw_readl(nand->reg + REG_SMISR); val &= READYBUSY; spin_unlock(&nand->lock);