]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
qed: Fix setting of Management bitfields
authorTomer Tayar <Tomer.Tayar@cavium.com>
Sun, 21 May 2017 09:10:59 +0000 (12:10 +0300)
committerChuck Anderson <chuck.anderson@oracle.com>
Tue, 19 Sep 2017 05:32:11 +0000 (22:32 -0700)
Orabug: 26783820

The management firmware HSI contains masks which are already
shifted to their right place, so QED_MFW_SET_FIELD() is clearing
incorrect fields by shifting the mask by the offset.

Luckily, today we set the fields in an incrementing order [so we're
not erasing any previously set fields], but this still needs fixing.

Signed-off-by: Tomer Tayar <Tomer.Tayar@cavium.com>
Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[ Upstream commit b19601bbf1a1a230beb35ea77acbbfb5bbf542fa ]
Signed-off-by: Somasundaram Krishnasamy <somasundaram.krishnasamy@oracle.com>
drivers/net/ethernet/qlogic/qed/qed.h

index 63d0244fb18e7f736921c1103327cc1522c40b08..9200479bcb1e1bdac70411a20847537ae72c5dad 100644 (file)
@@ -93,7 +93,7 @@ enum qed_mcp_protocol_type;
 
 #define QED_MFW_SET_FIELD(name, field, value)                                 \
        do {                                                                   \
-               (name)  &= ~((field ## _MASK) << (field ## _SHIFT));           \
+               (name)  &= ~(field ## _MASK);          \
                (name)  |= (((value) << (field ## _SHIFT)) & (field ## _MASK));\
        } while (0)