Lines Matching full:slave

147 	u8 slave;  in mlx4_gen_slave_eqe()  local
152 slave = eqe->slave_id; in mlx4_gen_slave_eqe()
166 if (slave == ALL_SLAVES) { in mlx4_gen_slave_eqe()
178 mlx4_warn(dev, "Failed to generate event for slave %d\n", in mlx4_gen_slave_eqe()
184 if (mlx4_GEN_EQE(dev, slave, eqe)) in mlx4_gen_slave_eqe()
185 mlx4_warn(dev, "Failed to generate event for slave %d\n", in mlx4_gen_slave_eqe()
186 slave); in mlx4_gen_slave_eqe()
194 static void slave_event(struct mlx4_dev *dev, u8 slave, struct mlx4_eqe *eqe) in slave_event() argument
205 …mlx4_warn(dev, "Master failed to generate an EQE for slave: %d. No free EQE on slave events queue\… in slave_event()
206 slave); in slave_event()
212 s_eqe->slave_id = slave; in slave_event()
223 static void mlx4_slave_event(struct mlx4_dev *dev, int slave, in mlx4_slave_event() argument
228 if (slave < 0 || slave > dev->persist->num_vfs || in mlx4_slave_event()
229 slave == dev->caps.function || in mlx4_slave_event()
230 !priv->mfunc.master.slave_state[slave].active) in mlx4_slave_event()
233 slave_event(dev, slave, eqe); in mlx4_slave_event()
253 int mlx4_gen_pkey_eqe(struct mlx4_dev *dev, int slave, u8 port) in mlx4_gen_pkey_eqe() argument
258 struct mlx4_slave_state *s_slave = &priv->mfunc.master.slave_state[slave]; in mlx4_gen_pkey_eqe()
267 eqe.event.port_mgmt_change.port = mlx4_phys_to_slave_port(dev, slave, port); in mlx4_gen_pkey_eqe()
269 return mlx4_GEN_EQE(dev, slave, &eqe); in mlx4_gen_pkey_eqe()
273 int mlx4_gen_guid_change_eqe(struct mlx4_dev *dev, int slave, u8 port) in mlx4_gen_guid_change_eqe() argument
277 /*don't send if we don't have the that slave */ in mlx4_gen_guid_change_eqe()
278 if (dev->persist->num_vfs < slave) in mlx4_gen_guid_change_eqe()
284 eqe.event.port_mgmt_change.port = mlx4_phys_to_slave_port(dev, slave, port); in mlx4_gen_guid_change_eqe()
286 return mlx4_GEN_EQE(dev, slave, &eqe); in mlx4_gen_guid_change_eqe()
290 int mlx4_gen_port_state_change_eqe(struct mlx4_dev *dev, int slave, u8 port, in mlx4_gen_port_state_change_eqe() argument
294 u8 slave_port = mlx4_phys_to_slave_port(dev, slave, port); in mlx4_gen_port_state_change_eqe()
296 /*don't send if we don't have the that slave */ in mlx4_gen_port_state_change_eqe()
297 if (dev->persist->num_vfs < slave) in mlx4_gen_port_state_change_eqe()
305 mlx4_dbg(dev, "%s: sending: %d to slave: %d on port: %d\n", __func__, in mlx4_gen_port_state_change_eqe()
306 port_subtype_change, slave, port); in mlx4_gen_port_state_change_eqe()
307 return mlx4_GEN_EQE(dev, slave, &eqe); in mlx4_gen_port_state_change_eqe()
311 enum slave_port_state mlx4_get_slave_port_state(struct mlx4_dev *dev, int slave, u8 port) in mlx4_get_slave_port_state() argument
315 struct mlx4_active_ports actv_ports = mlx4_get_active_ports(dev, slave); in mlx4_get_slave_port_state()
317 if (slave >= dev->num_slaves || port > dev->caps.num_ports || in mlx4_get_slave_port_state()
319 pr_err("%s: Error: asking for slave:%d, port:%d\n", in mlx4_get_slave_port_state()
320 __func__, slave, port); in mlx4_get_slave_port_state()
323 return s_state[slave].port_state[port]; in mlx4_get_slave_port_state()
327 static int mlx4_set_slave_port_state(struct mlx4_dev *dev, int slave, u8 port, in mlx4_set_slave_port_state() argument
332 struct mlx4_active_ports actv_ports = mlx4_get_active_ports(dev, slave); in mlx4_set_slave_port_state()
334 if (slave >= dev->num_slaves || port > dev->caps.num_ports || in mlx4_set_slave_port_state()
336 pr_err("%s: Error: asking for slave:%d, port:%d\n", in mlx4_set_slave_port_state()
337 __func__, slave, port); in mlx4_set_slave_port_state()
340 s_state[slave].port_state[port] = state; in mlx4_set_slave_port_state()
359 and according to the prev state change the slave's port state.
366 int set_and_calc_slave_port_state(struct mlx4_dev *dev, int slave, in set_and_calc_slave_port_state() argument
374 struct mlx4_active_ports actv_ports = mlx4_get_active_ports(dev, slave); in set_and_calc_slave_port_state()
376 mlx4_get_slave_port_state(dev, slave, port); in set_and_calc_slave_port_state()
380 if (slave >= dev->num_slaves || port > dev->caps.num_ports || in set_and_calc_slave_port_state()
382 pr_err("%s: Error: asking for slave:%d, port:%d\n", in set_and_calc_slave_port_state()
383 __func__, slave, port); in set_and_calc_slave_port_state()
387 ctx = &priv->mfunc.master.slave_state[slave]; in set_and_calc_slave_port_state()
393 mlx4_set_slave_port_state(dev, slave, port, in set_and_calc_slave_port_state()
398 mlx4_set_slave_port_state(dev, slave, port, in set_and_calc_slave_port_state()
401 mlx4_set_slave_port_state(dev, slave, port, in set_and_calc_slave_port_state()
408 mlx4_set_slave_port_state(dev, slave, port, in set_and_calc_slave_port_state()
413 mlx4_set_slave_port_state(dev, slave, port, in set_and_calc_slave_port_state()
419 pr_err("%s: BUG!!! UNKNOWN state: slave:%d, port:%d\n", in set_and_calc_slave_port_state()
420 __func__, slave, port); in set_and_calc_slave_port_state()
423 ret = mlx4_get_slave_port_state(dev, slave, port); in set_and_calc_slave_port_state()
469 mlx4_dbg(dev, "mlx4_handle_slave_flr: clean slave: %d\n", in mlx4_master_handle_slave_flr()
472 * a slave before mlx4_load_one is done. in mlx4_master_handle_slave_flr()
474 * slave resources which weren't allocated yet. in mlx4_master_handle_slave_flr()
479 /*return the slave to running mode*/ in mlx4_master_handle_slave_flr()
488 mlx4_warn(dev, "Failed to notify FW on FLR done (slave:%d)\n", in mlx4_master_handle_slave_flr()
502 int slave = 0; in mlx4_eq_int() local
535 /* forward only to slave owning the QP */ in mlx4_eq_int()
539 & 0xffffff, &slave); in mlx4_eq_int()
541 mlx4_dbg(dev, "QP event %02x(%02x) on EQ %d at index %u: could not get slave id (%d)\n", in mlx4_eq_int()
547 if (!ret && slave != dev->caps.function) { in mlx4_eq_int()
548 mlx4_slave_event(dev, slave, eqe); in mlx4_eq_int()
564 /* forward only to slave owning the SRQ */ in mlx4_eq_int()
569 &slave); in mlx4_eq_int()
571 mlx4_warn(dev, "SRQ event %02x(%02x) on EQ %d at index %u: could not get slave id (%d)\n", in mlx4_eq_int()
578 mlx4_warn(dev, "%s: slave:%d, srq_no:0x%x, event: %02x(%02x)\n", in mlx4_eq_int()
579 __func__, slave, in mlx4_eq_int()
583 if (!ret && slave != dev->caps.function) { in mlx4_eq_int()
586 mlx4_warn(dev, "%s: sending event %02x(%02x) to slave:%d\n", in mlx4_eq_int()
588 eqe->subtype, slave); in mlx4_eq_int()
589 mlx4_slave_event(dev, slave, eqe); in mlx4_eq_int()
623 mlx4_dbg(dev, "%s: Sending MLX4_PORT_CHANGE_SUBTYPE_DOWN to slave: %d, port:%d\n", in mlx4_eq_int()
677 /* port-up event will be sent to a slave when the in mlx4_eq_int()
678 * slave's alias-guid is set. This is done in alias_GUID.c in mlx4_eq_int()
694 & 0xffffff, &slave); in mlx4_eq_int()
696 mlx4_dbg(dev, "CQ event %02x(%02x) on EQ %d at index %u: could not get slave id (%d)\n", in mlx4_eq_int()
702 if (!ret && slave != dev->caps.function) { in mlx4_eq_int()
703 mlx4_slave_event(dev, slave, eqe); in mlx4_eq_int()
744 mlx4_dbg(dev, "FLR event for slave: %d\n", flr_slave); in mlx4_eq_int()
771 mlx4_dbg(dev, "%s: Sending MLX4_FATAL_WARNING_SUBTYPE_WARMING to slave: %d\n", in mlx4_eq_int()
781 …L WARNING (%02x), subtype %02x on EQ %d at index %u. owner=%x, nent=0x%x, slave=%x, ownership=%s\n… in mlx4_eq_int()
818 …mlx4_warn(dev, "Unhandled event %02x(%02x) on EQ %d at index %u. owner=%x, nent=0x%x, slave=%x, ow… in mlx4_eq_int()
875 int mlx4_MAP_EQ_wrapper(struct mlx4_dev *dev, int slave, in mlx4_MAP_EQ_wrapper() argument
883 priv->mfunc.master.slave_state[slave].event_eq; in mlx4_MAP_EQ_wrapper()
890 if (slave == dev->caps.function) in mlx4_MAP_EQ_wrapper()