From: Tomer Tayar Date: Sun, 21 May 2017 09:10:59 +0000 (+0300) Subject: qed: Fix setting of Management bitfields X-Git-Tag: v4.1.12-111.0.20170918_2215~102 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=ea6ea0c40e33df64cdfc332a126483ac8a010305;p=users%2Fjedix%2Flinux-maple.git qed: Fix setting of Management bitfields 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 Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller [ Upstream commit b19601bbf1a1a230beb35ea77acbbfb5bbf542fa ] Signed-off-by: Somasundaram Krishnasamy --- diff --git a/drivers/net/ethernet/qlogic/qed/qed.h b/drivers/net/ethernet/qlogic/qed/qed.h index 63d0244fb18e7..9200479bcb1e1 100644 --- a/drivers/net/ethernet/qlogic/qed/qed.h +++ b/drivers/net/ethernet/qlogic/qed/qed.h @@ -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)