From patchwork Sat Nov 29 05:47:03 2008 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roland Dreier X-Patchwork-Id: 11357 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 9E8B4DDD0C for ; Sat, 29 Nov 2008 16:48:52 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750758AbYK2FrI (ORCPT ); Sat, 29 Nov 2008 00:47:08 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1750748AbYK2FrH (ORCPT ); Sat, 29 Nov 2008 00:47:07 -0500 Received: from sj-iport-2.cisco.com ([171.71.176.71]:59315 "EHLO sj-iport-2.cisco.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750701AbYK2FrG (ORCPT ); Sat, 29 Nov 2008 00:47:06 -0500 X-IronPort-AV: E=Sophos;i="4.33,685,1220227200"; d="scan'208";a="109944432" Received: from sj-dkim-1.cisco.com ([171.71.179.21]) by sj-iport-2.cisco.com with ESMTP; 29 Nov 2008 05:47:06 +0000 Received: from sj-core-5.cisco.com (sj-core-5.cisco.com [171.71.177.238]) by sj-dkim-1.cisco.com (8.12.11/8.12.11) with ESMTP id mAT5l5CA031006; Fri, 28 Nov 2008 21:47:06 -0800 Received: from xbh-sjc-221.amer.cisco.com (xbh-sjc-221.cisco.com [128.107.191.63]) by sj-core-5.cisco.com (8.13.8/8.13.8) with ESMTP id mAT5l6l3003762; Sat, 29 Nov 2008 05:47:06 GMT Received: from xfe-sjc-211.amer.cisco.com ([171.70.151.174]) by xbh-sjc-221.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Fri, 28 Nov 2008 21:47:05 -0800 Received: from roland-conroe ([171.71.26.194]) by xfe-sjc-211.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Fri, 28 Nov 2008 21:47:04 -0800 Received: by roland-conroe (Postfix, from userid 33217) id 1E4261B648F; Fri, 28 Nov 2008 21:47:04 -0800 (PST) From: Roland Dreier To: Divy Le Ray , Jeff Garzik Cc: netdev@vger.kernel.org Subject: cxgb3: Fix sparse warning and micro-optimize is_pure_response() X-Message-Flag: Warning: May contain useful information Date: Fri, 28 Nov 2008 21:47:03 -0800 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) MIME-Version: 1.0 X-OriginalArrivalTime: 29 Nov 2008 05:47:04.0581 (UTC) FILETIME=[E8706350:01C951E5] DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; l=1305; t=1227937626; x=1228801626; c=relaxed/simple; s=sjdkim1004; h=Content-Type:From:Subject:Content-Transfer-Encoding:MIME-Version; d=cisco.com; i=rdreier@cisco.com; z=From:=20Roland=20Dreier=20 |Subject:=20cxgb3=3A=20Fix=20sparse=20warning=20and=20micro -optimize=20is_pure_response() |Sender:=20; bh=VyaZYmLAUJacXzDFLoDDQ/ZG6LbfPEyM5ENzHMw7M14=; b=OiFCwTeDArY2fYC0y60HZd7QF2a+O8xxSLk+t1u+7JqfwbJL3rJstoWJG5 CbYiRD27pxBWYacg6bfUWdP8dTuzUj63bHeHGtJCBbc4atfixTp/VkDJrzkB QY2vy6sHhGUrvCQPeJV4BV1wMWbcY23hrdYrSNNaTQClc98O2xeQs=; Authentication-Results: sj-dkim-1; header.From=rdreier@cisco.com; dkim=pass ( sig from cisco.com/sjdkim1004 verified; ); Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The function is_pure_response() does "ntohl(var) & const" and then essentially just tests whether the result is 0 or not; this can be done more efficiently by computing "var & htonl(const)" instead and doing the byte swap at compile time instead of run time. This change slightly shrinks the compiled code; eg on x86-64 we save a couple of bswapl instructions: add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-8 (-8) function old new delta t3_sge_intr_msix_napi 544 536 -8 and this also has the pleasant side effect of fixing a sparse warning: drivers/net/cxgb3/sge.c:2313:15: warning: restricted degrades to integer Signed-off-by: Roland Dreier --- drivers/net/cxgb3/sge.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/net/cxgb3/sge.c b/drivers/net/cxgb3/sge.c index c6480be..4181373 100644 --- a/drivers/net/cxgb3/sge.c +++ b/drivers/net/cxgb3/sge.c @@ -2308,7 +2308,7 @@ next_fl: static inline int is_pure_response(const struct rsp_desc *r) { - u32 n = ntohl(r->flags) & (F_RSPD_ASYNC_NOTIF | F_RSPD_IMM_DATA_VALID); + __be32 n = r->flags & htonl(F_RSPD_ASYNC_NOTIF | F_RSPD_IMM_DATA_VALID); return (n | r->len_cq) == 0; }