RDMA/hns: Fix a bug with modifying mac address
When modifying mac address, it will trigger hns_roce_del_gid function and can't delete the default gid matched the index because the attribute of gid is null. Signed-off-by: Lijun Ou <oulijun@huawei.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
@@ -100,6 +100,7 @@ static int hns_roce_del_gid(struct ib_device *device, u8 port_num,
|
|||||||
unsigned int index, void **context)
|
unsigned int index, void **context)
|
||||||
{
|
{
|
||||||
struct hns_roce_dev *hr_dev = to_hr_dev(device);
|
struct hns_roce_dev *hr_dev = to_hr_dev(device);
|
||||||
|
struct ib_gid_attr zattr = { };
|
||||||
union ib_gid zgid = { {0} };
|
union ib_gid zgid = { {0} };
|
||||||
u8 port = port_num - 1;
|
u8 port = port_num - 1;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
@@ -110,7 +111,7 @@ static int hns_roce_del_gid(struct ib_device *device, u8 port_num,
|
|||||||
|
|
||||||
spin_lock_irqsave(&hr_dev->iboe.lock, flags);
|
spin_lock_irqsave(&hr_dev->iboe.lock, flags);
|
||||||
|
|
||||||
ret = hr_dev->hw->set_gid(hr_dev, port, index, &zgid, NULL);
|
ret = hr_dev->hw->set_gid(hr_dev, port, index, &zgid, &zattr);
|
||||||
|
|
||||||
spin_unlock_irqrestore(&hr_dev->iboe.lock, flags);
|
spin_unlock_irqrestore(&hr_dev->iboe.lock, flags);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user