Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751911AbbEJVnP (ORCPT ); Sun, 10 May 2015 17:43:15 -0400 Received: from mail-wi0-f175.google.com ([209.85.212.175]:37967 "EHLO mail-wi0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751599AbbEJVnN (ORCPT ); Sun, 10 May 2015 17:43:13 -0400 Message-ID: <554FD0E6.6050701@gmail.com> Date: Sun, 10 May 2015 23:43:02 +0200 From: Philippe Reynes User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.5) Gecko/20120623 Thunderbird/10.0.5 MIME-Version: 1.0 To: David Miller CC: festevam@gmail.com, linux@arm.linux.org.uk, B38611@freescale.com, Frank.Li@freescale.com, LW@karo-electronics.de, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] net: fec: add support of ethtool get_regs References: <20150509211746.GY2067@n2100.arm.linux.org.uk> <554E8735.302@gmail.com> <20150509.210128.2284066611245510581.davem@davemloft.net> In-Reply-To: <20150509.210128.2284066611245510581.davem@davemloft.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1905 Lines: 52 Hi david, On 10/05/15 03:01, David Miller wrote: > From: Philippe Reynes > Date: Sun, 10 May 2015 00:16:21 +0200 > >> Hi Fabio, >> >> On 09/05/15 23:59, Fabio Estevam wrote: >>> Philippe, >>> >>> On Sat, May 9, 2015 at 6:17 PM, Russell King - ARM Linux >>> wrote: >>> >>>> Using memcpy_fromio() to copy device registers is not a good idea - >>>> it can use a variable access size which can cause bus faults. >>> >>> An example on how memcpy_fromio() can be avoided in get_regs: >>> drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c >> >> Thanks for pointing me this example. I've already send a patch, >> and I've used drivers/net/ethernet/freescale/gianfar_ethtool.c >> as example. I hope it's a good example too. > > I think you need to be much more careful and conservative in your > implementation. > > You should skip I/O addresses that don't have defined registers > at those offsets for the chip in question. Ok, I've added an array with all register, so I only read defined registers. > Also, you should _very_ carefully evaluate each and every register you > dump and potentially skip certain registers which have strong negative > side effects if read arbitrarily. > > For example, dumping the interrupt status register could cause pending > interrupt status to be cleared, and thus cause the driver to lose > interrupts and subsequently packet processing will hang. Thanks for the feedback. I've read all the register, and all registers can be read without negative side effect. Even interrupt status register, interrupt are cleared when the register EIR is written (not read). Regards, Philippe -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/