Lines Matching refs:slave

147 	u8 slave;
152 slave = eqe->slave_id;
166 if (slave == ALL_SLAVES) {
178 mlx4_warn(dev, "Failed to generate event for slave %d\n",
184 if (mlx4_GEN_EQE(dev, slave, eqe))
185 mlx4_warn(dev, "Failed to generate event for slave %d\n",
186 slave);
194 static void slave_event(struct mlx4_dev *dev, u8 slave, struct mlx4_eqe *eqe)
205 mlx4_warn(dev, "Master failed to generate an EQE for slave: %d. No free EQE on slave events queue\n",
206 slave);
212 s_eqe->slave_id = slave;
223 static void mlx4_slave_event(struct mlx4_dev *dev, int slave,
228 if (slave < 0 || slave > dev->persist->num_vfs ||
229 slave == dev->caps.function ||
230 !priv->mfunc.master.slave_state[slave].active)
233 slave_event(dev, slave, eqe);
248 int mlx4_gen_pkey_eqe(struct mlx4_dev *dev, int slave, u8 port)
253 struct mlx4_slave_state *s_slave = &priv->mfunc.master.slave_state[slave];
262 eqe.event.port_mgmt_change.port = mlx4_phys_to_slave_port(dev, slave, port);
264 return mlx4_GEN_EQE(dev, slave, &eqe);
268 int mlx4_gen_guid_change_eqe(struct mlx4_dev *dev, int slave, u8 port)
272 /*don't send if we don't have the that slave */
273 if (dev->persist->num_vfs < slave)
279 eqe.event.port_mgmt_change.port = mlx4_phys_to_slave_port(dev, slave, port);
281 return mlx4_GEN_EQE(dev, slave, &eqe);
285 int mlx4_gen_port_state_change_eqe(struct mlx4_dev *dev, int slave, u8 port,
289 u8 slave_port = mlx4_phys_to_slave_port(dev, slave, port);
291 /*don't send if we don't have the that slave */
292 if (dev->persist->num_vfs < slave)
300 mlx4_dbg(dev, "%s: sending: %d to slave: %d on port: %d\n", __func__,
301 port_subtype_change, slave, port);
302 return mlx4_GEN_EQE(dev, slave, &eqe);
306 enum slave_port_state mlx4_get_slave_port_state(struct mlx4_dev *dev, int slave, u8 port)
310 struct mlx4_active_ports actv_ports = mlx4_get_active_ports(dev, slave);
312 if (slave >= dev->num_slaves || port > dev->caps.num_ports ||
314 pr_err("%s: Error: asking for slave:%d, port:%d\n",
315 __func__, slave, port);
318 return s_state[slave].port_state[port];
322 static int mlx4_set_slave_port_state(struct mlx4_dev *dev, int slave, u8 port,
327 struct mlx4_active_ports actv_ports = mlx4_get_active_ports(dev, slave);
329 if (slave >= dev->num_slaves || port > dev->caps.num_ports ||
331 pr_err("%s: Error: asking for slave:%d, port:%d\n",
332 __func__, slave, port);
335 s_state[slave].port_state[port] = state;
354 and according to the prev state change the slave's port state.
361 int set_and_calc_slave_port_state(struct mlx4_dev *dev, int slave,
369 struct mlx4_active_ports actv_ports = mlx4_get_active_ports(dev, slave);
371 mlx4_get_slave_port_state(dev, slave, port);
375 if (slave >= dev->num_slaves || port > dev->caps.num_ports ||
377 pr_err("%s: Error: asking for slave:%d, port:%d\n",
378 __func__, slave, port);
382 ctx = &priv->mfunc.master.slave_state[slave];
388 mlx4_set_slave_port_state(dev, slave, port,
393 mlx4_set_slave_port_state(dev, slave, port,
396 mlx4_set_slave_port_state(dev, slave, port,
403 mlx4_set_slave_port_state(dev, slave, port,
408 mlx4_set_slave_port_state(dev, slave, port,
414 pr_err("%s: BUG!!! UNKNOWN state: slave:%d, port:%d\n",
415 __func__, slave, port);
418 ret = mlx4_get_slave_port_state(dev, slave, port);
464 mlx4_dbg(dev, "mlx4_handle_slave_flr: clean slave: %d\n",
467 * a slave before mlx4_load_one is done.
469 * slave resources which weren't allocated yet.
474 /*return the slave to running mode*/
483 mlx4_warn(dev, "Failed to notify FW on FLR done (slave:%d)\n",
497 int slave = 0;
530 /* forward only to slave owning the QP */
534 & 0xffffff, &slave);
536 mlx4_dbg(dev, "QP event %02x(%02x) on EQ %d at index %u: could not get slave id (%d)\n",
542 if (!ret && slave != dev->caps.function) {
543 mlx4_slave_event(dev, slave, eqe);
557 /* forward only to slave owning the SRQ */
562 &slave);
564 mlx4_warn(dev, "SRQ event %02x(%02x) on EQ %d at index %u: could not get slave id (%d)\n",
569 mlx4_warn(dev, "%s: slave:%d, srq_no:0x%x, event: %02x(%02x)\n",
570 __func__, slave,
574 if (!ret && slave != dev->caps.function) {
575 mlx4_warn(dev, "%s: sending event %02x(%02x) to slave:%d\n",
577 eqe->subtype, slave);
578 mlx4_slave_event(dev, slave, eqe);
612 mlx4_dbg(dev, "%s: Sending MLX4_PORT_CHANGE_SUBTYPE_DOWN to slave: %d, port:%d\n",
665 /* port-up event will be sent to a slave when the
666 * slave's alias-guid is set. This is done in alias_GUID.c
682 & 0xffffff, &slave);
684 mlx4_dbg(dev, "CQ event %02x(%02x) on EQ %d at index %u: could not get slave id (%d)\n",
690 if (!ret && slave != dev->caps.function) {
691 mlx4_slave_event(dev, slave, eqe);
732 mlx4_dbg(dev, "FLR event for slave: %d\n", flr_slave);
759 mlx4_dbg(dev, "%s: Sending MLX4_FATAL_WARNING_SUBTYPE_WARMING to slave: %d\n",
769 mlx4_warn(dev, "Unhandled event FATAL WARNING (%02x), subtype %02x on EQ %d at index %u. owner=%x, nent=0x%x, slave=%x, ownership=%s\n",
806 mlx4_warn(dev, "Unhandled event %02x(%02x) on EQ %d at index %u. owner=%x, nent=0x%x, slave=%x, ownership=%s\n",
863 int mlx4_MAP_EQ_wrapper(struct mlx4_dev *dev, int slave,
871 priv->mfunc.master.slave_state[slave].event_eq;
878 if (slave == dev->caps.function)