From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932962AbcFOUlN (ORCPT ); Wed, 15 Jun 2016 16:41:13 -0400 Received: from mout.kundenserver.de ([212.227.17.24]:55256 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752631AbcFOUlL (ORCPT ); Wed, 15 Jun 2016 16:41:11 -0400 From: Arnd Bergmann To: "James E.J. Bottomley" , "Martin K. Petersen" Cc: Arnd Bergmann , James Smart , Dick Kennedy , Hannes Reinicke , James Bottomley , linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/2] scsi: lpfc: avoid harmless comparison warning Date: Wed, 15 Jun 2016 22:42:17 +0200 Message-Id: <20160615204231.3784044-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:VZnAI1uFXQNnljq+2ReEiHXmTW/QuImEQWTAlUsN0KpydMK7ATK p0jNpK4gNYclBhsr7AibXL95/bxpeqU0YGAa5MassSwO/xTC5AvWiCNMVd8G+AdqgOXNvXC MLV9UV1jx6vGq9hl3ydIXuq/LFefpXvYqPKLP2J70nydLGuPDrwlAR9NsXJrtaVGm5HwYbg nfet/KX1rdbGEi8iMQWMw== X-UI-Out-Filterresults: notjunk:1;V01:K0:9+HbvXbARU8=:Vp6hCOHlKlear+BwJUF3gH h/d/GXkj/dyYwJq3KhkPi0KdVYDjRI66yZEtzi5/rdm6byIRJ8RXJgdVIym+NMEWTvabnoQwb i3yaAMfohp5UgiwBgGEB0KuovQRLpnjQq5+F3K5H/1RWyXeikAfaMBpfQ0iOlW/1dXh5Pv1IS ArfBWdyGsUBFbnmJkvEhQxY58VNbDK05VvbWNDPLKj7ZZXDXo4DNcxlB4eNDRIHgQ9/Td0a2b XhC0q+u+6n0N1V9efo6FX1pdN54TSGvFuUlM8/Z+axndR/cAUOia1ksuSKbPukmk5cZuYt2lW As1owPaTghvEjDW55xum2X2xh7EF8N/h2ArbuHOxY2tzYOGNhx6To6p4oGXQ8PFmd9Kzq2QMr ir6flNJok+LwlosP14+9ngVBJhJ4SYZ0ZwFqgfS30ydmn/48Np5LCQi8xU6kYIQxnocCnXQ62 gGevdzN8ByvlT7NTfAP/in106dKfB4f6XbBpU3HfRjGGeQA6AzOlBEDA4IpoksULONImlnPKJ 52LngyFEXCNTW6DHlC74xE/a1By3PlXBA7X96Doxs5o/nO6j0F7l4HNICPTXoKf1XSCZmPwNr RzXIgaiS+aGDZD0dCBeLWLsa6imisUD3iJSa7JKNoviGovnsay67yX9JnkUresSP2OGl7DbHq fmdx90SbcNHjz5G15ZyDkWVe+GLk3zVkOl8nmuji7AXTsuVFBGiTU+M6eCywASXAfTjM= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When building with -Wextra, we get a lot of warnings for the lpfc driver concerning expressions that are always true, starting with: drivers/scsi/lpfc/lpfc_attr.c: In function 'lpfc_enable_npiv_init': drivers/scsi/lpfc/lpfc_attr.c:2786:77: error: comparison of unsigned expression >= 0 is always true [-Werror=type-limits] drivers/scsi/lpfc/lpfc_attr.c: In function 'lpfc_enable_rrq_init': drivers/scsi/lpfc/lpfc_attr.c:2802:76: error: comparison of unsigned expression >= 0 is always true [-Werror=type-limits] drivers/scsi/lpfc/lpfc_attr.c: In function 'lpfc_suppress_link_up_init': drivers/scsi/lpfc/lpfc_attr.c:2812:2050: error: comparison of unsigned expression >= 0 is always true [-Werror=type-limits] drivers/scsi/lpfc/lpfc_attr.c: In function 'lpfc_log_verbose_init': drivers/scsi/lpfc/lpfc_attr.c:3064:1930: error: comparison of unsigned expression >= 0 is always true [-Werror=type-limits] The code works as intented, but it would be nice to shut up the warning so we don't clutter up build logs with this. Using a separate inline function for it makes it clear to the compiler that the comparison is necessary in the caller but still lets it do the constant-folding. Signed-off-by: Arnd Bergmann --- drivers/scsi/lpfc/lpfc_attr.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c index cfec2eca4dd3..3e1d2e669902 100644 --- a/drivers/scsi/lpfc/lpfc_attr.c +++ b/drivers/scsi/lpfc/lpfc_attr.c @@ -1620,6 +1620,11 @@ lpfc_sriov_hw_max_virtfn_show(struct device *dev, return snprintf(buf, PAGE_SIZE, "%d\n", max_nr_virtfn); } +static inline bool lpfc_rangecheck(uint val, uint min, uint max) +{ + return val >= min && val <= max; +} + /** * lpfc_param_show - Return a cfg attribute value in decimal * @@ -1697,7 +1702,7 @@ lpfc_##attr##_show(struct device *dev, struct device_attribute *attr, \ static int \ lpfc_##attr##_init(struct lpfc_hba *phba, uint val) \ { \ - if (val >= minval && val <= maxval) {\ + if (lpfc_rangecheck(val, minval, maxval)) {\ phba->cfg_##attr = val;\ return 0;\ }\ @@ -1732,7 +1737,7 @@ lpfc_##attr##_init(struct lpfc_hba *phba, uint val) \ static int \ lpfc_##attr##_set(struct lpfc_hba *phba, uint val) \ { \ - if (val >= minval && val <= maxval) {\ + if (lpfc_rangecheck(val, minval, maxval)) {\ lpfc_printf_log(phba, KERN_ERR, LOG_INIT, \ "3052 lpfc_" #attr " changed from %d to %d\n", \ phba->cfg_##attr, val); \ @@ -1856,7 +1861,7 @@ lpfc_##attr##_show(struct device *dev, struct device_attribute *attr, \ static int \ lpfc_##attr##_init(struct lpfc_vport *vport, uint val) \ { \ - if (val >= minval && val <= maxval) {\ + if (lpfc_rangecheck(val, minval, maxval)) {\ vport->cfg_##attr = val;\ return 0;\ }\ @@ -1888,7 +1893,7 @@ lpfc_##attr##_init(struct lpfc_vport *vport, uint val) \ static int \ lpfc_##attr##_set(struct lpfc_vport *vport, uint val) \ { \ - if (val >= minval && val <= maxval) {\ + if (lpfc_rangecheck(val, minval, maxval)) {\ lpfc_printf_vlog(vport, KERN_ERR, LOG_INIT, \ "3053 lpfc_" #attr \ " changed from %d (x%x) to %d (x%x)\n", \ -- 2.9.0