Skip to content

Commit bc321ed

Browse files
committed
Merge branch 'mlx4'
Or Gerlitz says: ==================== mlx4 fixes for 4.1-rc2 Eran's fix is for a small off-by-one introduces on 4.1-rc1. Yisahi fixes an issue with comes into play only on VMs with many (> 256) vCPUs. ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents 7aab515 + 2d3c739 commit bc321ed

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

drivers/net/ethernet/mellanox/mlx4/en_port.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ static unsigned long en_stats_adder(__be64 *start, __be64 *next, int num)
139139
int i;
140140
int offset = next - start;
141141

142-
for (i = 0; i <= num; i++) {
142+
for (i = 0; i < num; i++) {
143143
ret += be64_to_cpu(*curr);
144144
curr += offset;
145145
}

drivers/net/ethernet/mellanox/mlx4/resource_tracker.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2845,7 +2845,7 @@ int mlx4_SW2HW_EQ_wrapper(struct mlx4_dev *dev, int slave,
28452845
{
28462846
int err;
28472847
int eqn = vhcr->in_modifier;
2848-
int res_id = (slave << 8) | eqn;
2848+
int res_id = (slave << 10) | eqn;
28492849
struct mlx4_eq_context *eqc = inbox->buf;
28502850
int mtt_base = eq_get_mtt_addr(eqc) / dev->caps.mtt_entry_sz;
28512851
int mtt_size = eq_get_mtt_size(eqc);
@@ -3051,7 +3051,7 @@ int mlx4_HW2SW_EQ_wrapper(struct mlx4_dev *dev, int slave,
30513051
struct mlx4_cmd_info *cmd)
30523052
{
30533053
int eqn = vhcr->in_modifier;
3054-
int res_id = eqn | (slave << 8);
3054+
int res_id = eqn | (slave << 10);
30553055
struct res_eq *eq;
30563056
int err;
30573057

@@ -3108,7 +3108,7 @@ int mlx4_GEN_EQE(struct mlx4_dev *dev, int slave, struct mlx4_eqe *eqe)
31083108
return 0;
31093109

31103110
mutex_lock(&priv->mfunc.master.gen_eqe_mutex[slave]);
3111-
res_id = (slave << 8) | event_eq->eqn;
3111+
res_id = (slave << 10) | event_eq->eqn;
31123112
err = get_res(dev, slave, res_id, RES_EQ, &req);
31133113
if (err)
31143114
goto unlock;
@@ -3131,7 +3131,7 @@ int mlx4_GEN_EQE(struct mlx4_dev *dev, int slave, struct mlx4_eqe *eqe)
31313131

31323132
memcpy(mailbox->buf, (u8 *) eqe, 28);
31333133

3134-
in_modifier = (slave & 0xff) | ((event_eq->eqn & 0xff) << 16);
3134+
in_modifier = (slave & 0xff) | ((event_eq->eqn & 0x3ff) << 16);
31353135

31363136
err = mlx4_cmd(dev, mailbox->dma, in_modifier, 0,
31373137
MLX4_CMD_GEN_EQE, MLX4_CMD_TIME_CLASS_B,
@@ -3157,7 +3157,7 @@ int mlx4_QUERY_EQ_wrapper(struct mlx4_dev *dev, int slave,
31573157
struct mlx4_cmd_info *cmd)
31583158
{
31593159
int eqn = vhcr->in_modifier;
3160-
int res_id = eqn | (slave << 8);
3160+
int res_id = eqn | (slave << 10);
31613161
struct res_eq *eq;
31623162
int err;
31633163

@@ -4714,13 +4714,13 @@ static void rem_slave_eqs(struct mlx4_dev *dev, int slave)
47144714
break;
47154715

47164716
case RES_EQ_HW:
4717-
err = mlx4_cmd(dev, slave, eqn & 0xff,
4717+
err = mlx4_cmd(dev, slave, eqn & 0x3ff,
47184718
1, MLX4_CMD_HW2SW_EQ,
47194719
MLX4_CMD_TIME_CLASS_A,
47204720
MLX4_CMD_NATIVE);
47214721
if (err)
47224722
mlx4_dbg(dev, "rem_slave_eqs: failed to move slave %d eqs %d to SW ownership\n",
4723-
slave, eqn);
4723+
slave, eqn & 0x3ff);
47244724
atomic_dec(&eq->mtt->ref_count);
47254725
state = RES_EQ_RESERVED;
47264726
break;

0 commit comments

Comments
 (0)