Skip to content

Commit e5be373

Browse files
committed
cxgb4: use port number to set mac addr
jira LE-4066 Rebuild_History Non-Buildable kernel-4.18.0-553.72.1.el8_10 commit-author Anumula Murali Mohan Reddy <anumula@chelsio.com> commit 356983f t4_set_vf_mac_acl() uses pf to set mac addr, but t4vf_get_vf_mac_acl() uses port number to get mac addr, this leads to error when an attempt to set MAC address on VF's of PF2 and PF3. This patch fixes the issue by using port number to set mac address. Fixes: e0cdac6 ("cxgb4vf: configure ports accessible by the VF") Signed-off-by: Anumula Murali Mohan Reddy <anumula@chelsio.com> Signed-off-by: Potnuri Bharat Teja <bharat@chelsio.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/20241206062014.49414-1-anumula@chelsio.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> (cherry picked from commit 356983f) Signed-off-by: Jonathan Maple <jmaple@ciq.com>
1 parent 838fdc2 commit e5be373

File tree

3 files changed

+5
-4
lines changed

3 files changed

+5
-4
lines changed

drivers/net/ethernet/chelsio/cxgb4/cxgb4.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2084,7 +2084,7 @@ void t4_idma_monitor(struct adapter *adapter,
20842084
struct sge_idma_monitor_state *idma,
20852085
int hz, int ticks);
20862086
int t4_set_vf_mac_acl(struct adapter *adapter, unsigned int vf,
2087-
unsigned int naddr, u8 *addr);
2087+
u8 start, unsigned int naddr, u8 *addr);
20882088
void t4_tp_pio_read(struct adapter *adap, u32 *buff, u32 nregs,
20892089
u32 start_index, bool sleep_ok);
20902090
void t4_tp_tm_pio_read(struct adapter *adap, u32 *buff, u32 nregs,

drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3248,7 +3248,7 @@ static int cxgb4_mgmt_set_vf_mac(struct net_device *dev, int vf, u8 *mac)
32483248

32493249
dev_info(pi->adapter->pdev_dev,
32503250
"Setting MAC %pM on VF %d\n", mac, vf);
3251-
ret = t4_set_vf_mac_acl(adap, vf + 1, 1, mac);
3251+
ret = t4_set_vf_mac_acl(adap, vf + 1, pi->lport, 1, mac);
32523252
if (!ret)
32533253
ether_addr_copy(adap->vfinfo[vf].vf_mac_addr, mac);
32543254
return ret;

drivers/net/ethernet/chelsio/cxgb4/t4_hw.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10213,11 +10213,12 @@ int t4_load_cfg(struct adapter *adap, const u8 *cfg_data, unsigned int size)
1021310213
* t4_set_vf_mac_acl - Set MAC address for the specified VF
1021410214
* @adapter: The adapter
1021510215
* @vf: one of the VFs instantiated by the specified PF
10216+
* @start: The start port id associated with specified VF
1021610217
* @naddr: the number of MAC addresses
1021710218
* @addr: the MAC address(es) to be set to the specified VF
1021810219
*/
1021910220
int t4_set_vf_mac_acl(struct adapter *adapter, unsigned int vf,
10220-
unsigned int naddr, u8 *addr)
10221+
u8 start, unsigned int naddr, u8 *addr)
1022110222
{
1022210223
struct fw_acl_mac_cmd cmd;
1022310224

@@ -10232,7 +10233,7 @@ int t4_set_vf_mac_acl(struct adapter *adapter, unsigned int vf,
1023210233
cmd.en_to_len16 = cpu_to_be32((unsigned int)FW_LEN16(cmd));
1023310234
cmd.nmac = naddr;
1023410235

10235-
switch (adapter->pf) {
10236+
switch (start) {
1023610237
case 3:
1023710238
memcpy(cmd.macaddr3, addr, sizeof(cmd.macaddr3));
1023810239
break;

0 commit comments

Comments
 (0)