Lines Matching defs: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);
253 int mlx4_gen_pkey_eqe(struct mlx4_dev *dev, int slave, u8 port)
258 struct mlx4_slave_state *s_slave = &priv->mfunc.master.slave_state[slave];
267 eqe.event.port_mgmt_change.port = mlx4_phys_to_slave_port(dev, slave, port);
269 return mlx4_GEN_EQE(dev, slave, &eqe);
273 int mlx4_gen_guid_change_eqe(struct mlx4_dev *dev, int slave, u8 port)
277 /*don't send if we don't have the that slave */
278 if (dev->persist->num_vfs < slave)
284 eqe.event.port_mgmt_change.port = mlx4_phys_to_slave_port(dev, slave, port);
286 return mlx4_GEN_EQE(dev, slave, &eqe);
290 int mlx4_gen_port_state_change_eqe(struct mlx4_dev *dev, int slave, u8 port,
294 u8 slave_port = mlx4_phys_to_slave_port(dev, slave, port);
296 /*don't send if we don't have the that slave */
297 if (dev->persist->num_vfs < slave)
305 mlx4_dbg(dev, "%s: sending: %d to slave: %d on port: %d\n", __func__,
306 port_subtype_change, slave, port);
307 return mlx4_GEN_EQE(dev, slave, &eqe);
311 enum slave_port_state mlx4_get_slave_port_state(struct mlx4_dev *dev, int slave, u8 port)
315 struct mlx4_active_ports actv_ports = mlx4_get_active_ports(dev, slave);
317 if (slave >= dev->num_slaves || port > dev->caps.num_ports ||
319 pr_err("%s: Error: asking for slave:%d, port:%d\n",
320 __func__, slave, port);
323 return s_state[slave].port_state[port];
327 static int mlx4_set_slave_port_state(struct mlx4_dev *dev, int slave, u8 port,
332 struct mlx4_active_ports actv_ports = mlx4_get_active_ports(dev, slave);
334 if (slave >= dev->num_slaves || port > dev->caps.num_ports ||
336 pr_err("%s: Error: asking for slave:%d, port:%d\n",
337 __func__, slave, port);
340 s_state[slave].port_state[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,
374 struct mlx4_active_ports actv_ports = mlx4_get_active_ports(dev, slave);
376 mlx4_get_slave_port_state(dev, slave, port);
380 if (slave >= dev->num_slaves || port > dev->caps.num_ports ||
382 pr_err("%s: Error: asking for slave:%d, port:%d\n",
383 __func__, slave, port);
387 ctx = &priv->mfunc.master.slave_state[slave];
393 mlx4_set_slave_port_state(dev, slave, port,
398 mlx4_set_slave_port_state(dev, slave, port,
401 mlx4_set_slave_port_state(dev, slave, port,
408 mlx4_set_slave_port_state(dev, slave, port,
413 mlx4_set_slave_port_state(dev, slave, port,
419 pr_err("%s: BUG!!! UNKNOWN state: slave:%d, port:%d\n",
420 __func__, slave, port);
423 ret = mlx4_get_slave_port_state(dev, slave, port);
469 mlx4_dbg(dev, "mlx4_handle_slave_flr: clean slave: %d\n",
472 * a slave before mlx4_load_one is done.
474 * slave resources which weren't allocated yet.
479 /*return the slave to running mode*/
488 mlx4_warn(dev, "Failed to notify FW on FLR done (slave:%d)\n",
502 int slave = 0;
535 /* forward only to slave owning the QP */
539 & 0xffffff, &slave);
541 mlx4_dbg(dev, "QP event %02x(%02x) on EQ %d at index %u: could not get slave id (%d)\n",
547 if (!ret && slave != dev->caps.function) {
548 mlx4_slave_event(dev, slave, eqe);
564 /* forward only to slave owning the SRQ */
569 &slave);
571 mlx4_warn(dev, "SRQ event %02x(%02x) on EQ %d at index %u: could not get slave id (%d)\n",
578 mlx4_warn(dev, "%s: slave:%d, srq_no:0x%x, event: %02x(%02x)\n",
579 __func__, slave,
583 if (!ret && slave != dev->caps.function) {
586 mlx4_warn(dev, "%s: sending event %02x(%02x) to slave:%d\n",
588 eqe->subtype, slave);
589 mlx4_slave_event(dev, slave, eqe);
623 mlx4_dbg(dev, "%s: Sending MLX4_PORT_CHANGE_SUBTYPE_DOWN to slave: %d, port:%d\n",
676 /* port-up event will be sent to a slave when the
677 * slave's alias-guid is set. This is done in alias_GUID.c
693 & 0xffffff, &slave);
695 mlx4_dbg(dev, "CQ event %02x(%02x) on EQ %d at index %u: could not get slave id (%d)\n",
701 if (!ret && slave != dev->caps.function) {
702 mlx4_slave_event(dev, slave, eqe);
743 mlx4_dbg(dev, "FLR event for slave: %d\n", flr_slave);
770 mlx4_dbg(dev, "%s: Sending MLX4_FATAL_WARNING_SUBTYPE_WARMING to slave: %d\n",
780 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",
817 mlx4_warn(dev, "Unhandled event %02x(%02x) on EQ %d at index %u. owner=%x, nent=0x%x, slave=%x, ownership=%s\n",
874 int mlx4_MAP_EQ_wrapper(struct mlx4_dev *dev, int slave,
882 priv->mfunc.master.slave_state[slave].event_eq;
889 if (slave == dev->caps.function)