Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5101ff99 authored by Robert Love's avatar Robert Love Committed by James Bottomley
Browse files

[SCSI] libfc: Don't violate transport template for rogue port creation

parent f7db2c15
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -430,7 +430,7 @@ static int fc_disc_new_target(struct fc_disc *disc,
				dp.ids.port_name = ids->port_name;
				dp.ids.node_name = ids->node_name;
				dp.ids.roles = ids->roles;
				rport = fc_rport_rogue_create(&dp);
				rport = lport->tt.rport_create(&dp);
			}
			if (!rport)
				error = -ENOMEM;
@@ -617,7 +617,7 @@ static int fc_disc_gpn_ft_parse(struct fc_disc *disc, void *buf, size_t len)

		if ((dp.ids.port_id != fc_host_port_id(lport->host)) &&
		    (dp.ids.port_name != lport->wwpn)) {
			rport = fc_rport_rogue_create(&dp);
			rport = lport->tt.rport_create(&dp);
			if (rport) {
				rdata = rport->dd_data;
				rdata->ops = &fc_disc_rport_ops;
@@ -769,7 +769,7 @@ static void fc_disc_single(struct fc_disc *disc, struct fc_disc_port *dp)
	if (rport)
		fc_disc_del_target(disc, rport);

	new_rport = fc_rport_rogue_create(dp);
	new_rport = lport->tt.rport_create(dp);
	if (new_rport) {
		rdata = new_rport->dd_data;
		rdata->ops = &fc_disc_rport_ops;
+2 −2
Original line number Diff line number Diff line
@@ -232,7 +232,7 @@ static void fc_lport_ptp_setup(struct fc_lport *lport,
		lport->ptp_rp = NULL;
	}

	lport->ptp_rp = fc_rport_rogue_create(&dp);
	lport->ptp_rp = lport->tt.rport_create(&dp);

	lport->tt.rport_login(lport->ptp_rp);

@@ -1282,7 +1282,7 @@ static void fc_lport_enter_dns(struct fc_lport *lport)

	fc_lport_state_enter(lport, LPORT_ST_DNS);

	rport = fc_rport_rogue_create(&dp);
	rport = lport->tt.rport_create(&dp);
	if (!rport)
		goto err;

+3 −0
Original line number Diff line number Diff line
@@ -1271,6 +1271,9 @@ static void fc_rport_flush_queue(void)

int fc_rport_init(struct fc_lport *lport)
{
	if (!lport->tt.rport_create)
		lport->tt.rport_create = fc_rport_rogue_create;

	if (!lport->tt.rport_login)
		lport->tt.rport_login = fc_rport_login;

+5 −0
Original line number Diff line number Diff line
@@ -489,6 +489,11 @@ struct libfc_function_template {
	 * Remote Port interfaces
	 */

	/*
	 * Create a remote port
	 */
	struct fc_rport *(*rport_create)(struct fc_disc_port *);

	/*
	 * Initiates the RP state machine. It is called from the LP module.
	 * This function will issue the following commands to the N_Port