From patchwork Fri Jan 23 11:06:52 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rasmus Villemoes X-Patchwork-Id: 432146 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.180.67]) by ozlabs.org (Postfix) with ESMTP id 40D61140218 for ; Fri, 23 Jan 2015 22:08:09 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755130AbbAWLHs (ORCPT ); Fri, 23 Jan 2015 06:07:48 -0500 Received: from mail-la0-f53.google.com ([209.85.215.53]:39830 "EHLO mail-la0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753087AbbAWLHr (ORCPT ); Fri, 23 Jan 2015 06:07:47 -0500 Received: by mail-la0-f53.google.com with SMTP id gq15so6647081lab.12 for ; Fri, 23 Jan 2015 03:07:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rasmusvillemoes.dk; s=google; h=from:to:cc:subject:date:message-id; bh=29CKsRRDiGXHc+UWqXHfWDYpw4LmLY3TIzTjFAXRCZQ=; b=Z+55apG+s66pFSft8XvS/MwOWI+X9VTObt/0Rl74ffrHtrEfN2g7JgCxdlpddDuhgJ hAoNKIv6lWOxRkWix1pM7BfhXnRvlJxaz0JVqIDb7M3F0gyf7zTEagn+aBzBhuFq50yc GlgccvLPf0iCuJgxuLNgEfqS0DbfJwXP5bJbk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=29CKsRRDiGXHc+UWqXHfWDYpw4LmLY3TIzTjFAXRCZQ=; b=eBI9myawJQjYokD87IeUJYxU//sPLBAlnvbV1Dl2bR5fXzELcj3XWwasaZGdkfytVZ 0zPsMKP4iW86c8QZt8hmG2PvddMjJs1Pm2nH2pYddxh0heo9sCrxOuheyOOBp7LLGr00 pL75qp2A6pV78NQG89+hYTZ7bZfq8CbG2sUMuuzEx7YLt904vHw0r8Xxk3d00eHLxYu/ KEKfe9qzYZdRKKPtCHc1FKxCaU3KgIkx4c1EDAZAGzeQUs6NLTdd5ZoJLT5tRoBjIE5l gRsjqxkL8ERp9LLM/HyZ3qGTiDcwZ0mArwLfB9Coo4FL/p5n5pqzupv4ec0VAvXxfwH5 zg7A== X-Gm-Message-State: ALoCoQnXnyJVnJRV7jn+2CA7mOCm6H3svgMzXM2y81UUWvt5DTJwZUMGvNgGcYEWYOQIaHLk5ho6 X-Received: by 10.152.25.129 with SMTP id c1mr6701333lag.65.1422011265566; Fri, 23 Jan 2015 03:07:45 -0800 (PST) Received: from spencer.imf.au.dk ([130.225.20.51]) by mx.google.com with ESMTPSA id w8sm369335lad.17.2015.01.23.03.07.43 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 23 Jan 2015 03:07:44 -0800 (PST) From: Rasmus Villemoes To: Jay Cliburn , Chris Snook Cc: Rasmus Villemoes , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] atheros/atlx: Simplify bit manipulations Date: Fri, 23 Jan 2015 12:06:52 +0100 Message-Id: <1422011212-30095-1-git-send-email-linux@rasmusvillemoes.dk> X-Mailer: git-send-email 2.1.3 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The code 'if (foo & X) foo &= ~X;' is semantically equivalent to simply 'foo &= ~X;', but gcc generates about four instructions for the former, one for the latter. Similarly, if X consists of a single bit, 'if (!(foo & X)) X |= X;' can be replaced by 'foo |= X;'. In the atl2 case, gcc does know how to merge the new adjacent operations, so altogether this gives a nice little code size reduction of about 80 bytes. Signed-off-by: Rasmus Villemoes --- drivers/net/ethernet/atheros/atlx/atl1.c | 3 +-- drivers/net/ethernet/atheros/atlx/atl2.c | 12 ++++-------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/drivers/net/ethernet/atheros/atlx/atl1.c b/drivers/net/ethernet/atheros/atlx/atl1.c index 2c8f398aeda9..d9d61d6e8386 100644 --- a/drivers/net/ethernet/atheros/atlx/atl1.c +++ b/drivers/net/ethernet/atheros/atlx/atl1.c @@ -1667,8 +1667,7 @@ static void atl1_via_workaround(struct atl1_adapter *adapter) unsigned long value; value = ioread16(adapter->hw.hw_addr + PCI_COMMAND); - if (value & PCI_COMMAND_INTX_DISABLE) - value &= ~PCI_COMMAND_INTX_DISABLE; + value &= ~PCI_COMMAND_INTX_DISABLE; iowrite32(value, adapter->hw.hw_addr + PCI_COMMAND); } diff --git a/drivers/net/ethernet/atheros/atlx/atl2.c b/drivers/net/ethernet/atheros/atlx/atl2.c index 84a09e8ddd9c..46d1b959daa8 100644 --- a/drivers/net/ethernet/atheros/atlx/atl2.c +++ b/drivers/net/ethernet/atheros/atlx/atl2.c @@ -1278,14 +1278,10 @@ static void atl2_setup_pcicmd(struct pci_dev *pdev) pci_read_config_word(pdev, PCI_COMMAND, &cmd); - if (cmd & PCI_COMMAND_INTX_DISABLE) - cmd &= ~PCI_COMMAND_INTX_DISABLE; - if (cmd & PCI_COMMAND_IO) - cmd &= ~PCI_COMMAND_IO; - if (0 == (cmd & PCI_COMMAND_MEMORY)) - cmd |= PCI_COMMAND_MEMORY; - if (0 == (cmd & PCI_COMMAND_MASTER)) - cmd |= PCI_COMMAND_MASTER; + cmd &= ~PCI_COMMAND_INTX_DISABLE; + cmd &= ~PCI_COMMAND_IO; + cmd |= PCI_COMMAND_MEMORY; + cmd |= PCI_COMMAND_MASTER; pci_write_config_word(pdev, PCI_COMMAND, cmd); /*