From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754076AbcHXHWL (ORCPT ); Wed, 24 Aug 2016 03:22:11 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:50490 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752134AbcHXHWJ (ORCPT ); Wed, 24 Aug 2016 03:22:09 -0400 From: Arnd Bergmann To: linux-arm-kernel@lists.infradead.org Cc: Christophe JAILLET , linux@prisktech.co.nz, gregkh@linuxfoundation.org, jslaby@suse.com, kernel-janitors@vger.kernel.org, linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2] serial: vt8500_serial: Fix a parameter of find_first_zero_bit. Date: Wed, 24 Aug 2016 09:21:26 +0200 Message-ID: <10942927.gm6yg0F9Sl@wuerfel> User-Agent: KMail/5.1.3 (Linux/4.4.0-31-generic; KDE/5.18.0; x86_64; ; ) In-Reply-To: <1472015218-31826-1-git-send-email-christophe.jaillet@wanadoo.fr> References: <1472015218-31826-1-git-send-email-christophe.jaillet@wanadoo.fr> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:2CrIP034laENT8XJvl+JgXjRxpEvelEAwxTXxc15h1elyQQfHLy LkpaCUgrOvVxnv7y1TFr0thSMVGUGPYQxwIS+aV5xj4Rib9kaOuOdEz1a9zn5/cm2MvdnHV 4wZzrSFwSu6mHj2iqxgD77bZZ8Dt1muQeV/dbrbMZQebCuQUHP+M8X7lT1jWmlVzdp7YQKr 7NHht6548AuJLJW+jJFcg== X-UI-Out-Filterresults: notjunk:1;V01:K0:Y0Fh4et8+EM=:iyymnohfCIAK0wy2yjIRUk 8mzJaevp7UdllxNjp/G9HlOKrIc7+SGPCZA38WNxnFLhqcE9rFTPP+2chKcAVtEbFpqpbWH2P s7oEATyD3OBDwf1YEWHaVf4sbI4GEBeGqvVTNBehXcDvLlqiZFWbK5qXME0cB4bc9o47opNZ/ C9zejvvtJtGkmUSdEbX3uyN3JLjiLCwbCb3MKvQQ72fDlZ81V1AxL9KMZhVCnmG3xr/kmaJQW I3dKpjAK0BXM9dWNIgUh9zQRxFigcX+dmE54LPJtGFEPPllt/SufIx1pncfrwmms7hbd3e8cw 5sOuX6ebPnyw7rIay1KpnUGYpIJ7JGSkCUFrSCJGqD99XOsyK/bWYmdR28tK/5SQi/eutnlBS +hsaEKXglRIjxNFa1SQqoNvFsjTn+m7DCR2s29KkswcJOMx8RY4TRk+gqNDTmwMoD7wNZCsXa JIVAVyhBWESMzJ9oBkgwgH3lcq1kTS3bqNl1D9YScGUJA/Yx1+O2V5xlIvDOtK+MKZWIsoP9l gJtNB8gfuARA45mV8tv2lYAfpHzkH8GCtErNAkEoOxbaPKPbMi6ftImLfnQf3qv3NbeZdNaIS CQzZev4Qj3S222+gNtVC8wUN4UL6YBa/4WGlE2MCYVUlRfzOCztXCnvpzt4CRmQfgVKoJRF/B Y8ypRuRTKn1Ij2OV81hKGBK/G7ki+XsmjSnzCfXExKcEntAQMSJ0sUyLkRl6DwS/Yv3o82Ht/ hp29W9L5JkZyviLW Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wednesday, August 24, 2016 7:06:58 AM CEST Christophe JAILLET wrote: > The 2nd parameter of 'find_first_zero_bit' is the number of bits to search. > In this case, we are passing 'sizeof(vt8500_ports_in_use)'. > 'vt8500_ports_in_use' is an 'unsigned long'. So the sizeof is likely to > return 4 on a 32 bits kernel. > > A few lines below, we check if it is below VT8500_MAX_PORTS, which is 6. > > It is likely that the number of bits in a long was expected here. > > In order to fix it: > - use DECLARE_BITMAP when declaring the vt8500_ports_in_use > - use VT8500_MAX_PORTS as a maximum value when checking/setting bits in > this bitmap > - modify code now that 'vt8500_ports_in_use' has become a pointer > because of the use of DECLARE_BITMAP > > > It has been spotted by the following coccinelle script: > @@ > expression ret, x; > > @@ > * ret = \(find_first_bit \| find_first_zero_bit\) (x, sizeof(...)); > > Signed-off-by: Christophe JAILLET > --- > v2: - use of VT8500_MAX_PORTS instead of BITS_PER_LONG to better self > document the code > - declare vt8500_ports_in_use with DECLARE_BITMAP in order to self > document even better and to be foolproof should VT8500_MAX_PORTS > be changed one day Reviewed-by: Arnd Bergmann