diff options
author | Jiri Kosina <jkosina@suse.cz> | 2013-01-29 04:48:30 -0500 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2013-01-29 04:48:30 -0500 |
commit | 617677295b53a40d0e54aac4cbbc216ffbc755dd (patch) | |
tree | 51b9e87213243ed5efff252c8e8d8fec4eebc588 /drivers/target/sbp | |
parent | 5c8d1b68e01a144813e38795fe6dbe7ebb506131 (diff) | |
parent | 6abb7c25775b7fb2225ad0508236d63ca710e65f (diff) |
Merge branch 'master' into for-next
Conflicts:
drivers/devfreq/exynos4_bus.c
Sync with Linus' tree to be able to apply patches that are
against newer code (mvneta).
Diffstat (limited to 'drivers/target/sbp')
-rw-r--r-- | drivers/target/sbp/Kconfig | 2 | ||||
-rw-r--r-- | drivers/target/sbp/sbp_target.c | 24 |
2 files changed, 15 insertions, 11 deletions
diff --git a/drivers/target/sbp/Kconfig b/drivers/target/sbp/Kconfig index 132da544eafc..1614bc710d4e 100644 --- a/drivers/target/sbp/Kconfig +++ b/drivers/target/sbp/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config SBP_TARGET | 1 | config SBP_TARGET |
2 | tristate "FireWire SBP-2 fabric module" | 2 | tristate "FireWire SBP-2 fabric module" |
3 | depends on FIREWIRE && EXPERIMENTAL | 3 | depends on FIREWIRE |
4 | help | 4 | help |
5 | Say Y or M here to enable SCSI target functionality over FireWire. | 5 | Say Y or M here to enable SCSI target functionality over FireWire. |
6 | This enables you to expose SCSI devices to other nodes on the FireWire | 6 | This enables you to expose SCSI devices to other nodes on the FireWire |
diff --git a/drivers/target/sbp/sbp_target.c b/drivers/target/sbp/sbp_target.c index be793883413d..6917a9e938e7 100644 --- a/drivers/target/sbp/sbp_target.c +++ b/drivers/target/sbp/sbp_target.c | |||
@@ -704,16 +704,17 @@ static void session_maintenance_work(struct work_struct *work) | |||
704 | static int tgt_agent_rw_agent_state(struct fw_card *card, int tcode, void *data, | 704 | static int tgt_agent_rw_agent_state(struct fw_card *card, int tcode, void *data, |
705 | struct sbp_target_agent *agent) | 705 | struct sbp_target_agent *agent) |
706 | { | 706 | { |
707 | __be32 state; | 707 | int state; |
708 | 708 | ||
709 | switch (tcode) { | 709 | switch (tcode) { |
710 | case TCODE_READ_QUADLET_REQUEST: | 710 | case TCODE_READ_QUADLET_REQUEST: |
711 | pr_debug("tgt_agent AGENT_STATE READ\n"); | 711 | pr_debug("tgt_agent AGENT_STATE READ\n"); |
712 | 712 | ||
713 | spin_lock_bh(&agent->lock); | 713 | spin_lock_bh(&agent->lock); |
714 | state = cpu_to_be32(agent->state); | 714 | state = agent->state; |
715 | spin_unlock_bh(&agent->lock); | 715 | spin_unlock_bh(&agent->lock); |
716 | memcpy(data, &state, sizeof(state)); | 716 | |
717 | *(__be32 *)data = cpu_to_be32(state); | ||
717 | 718 | ||
718 | return RCODE_COMPLETE; | 719 | return RCODE_COMPLETE; |
719 | 720 | ||
@@ -2207,20 +2208,23 @@ static struct se_portal_group *sbp_make_tpg( | |||
2207 | tport->mgt_agt = sbp_management_agent_register(tport); | 2208 | tport->mgt_agt = sbp_management_agent_register(tport); |
2208 | if (IS_ERR(tport->mgt_agt)) { | 2209 | if (IS_ERR(tport->mgt_agt)) { |
2209 | ret = PTR_ERR(tport->mgt_agt); | 2210 | ret = PTR_ERR(tport->mgt_agt); |
2210 | kfree(tpg); | 2211 | goto out_free_tpg; |
2211 | return ERR_PTR(ret); | ||
2212 | } | 2212 | } |
2213 | 2213 | ||
2214 | ret = core_tpg_register(&sbp_fabric_configfs->tf_ops, wwn, | 2214 | ret = core_tpg_register(&sbp_fabric_configfs->tf_ops, wwn, |
2215 | &tpg->se_tpg, (void *)tpg, | 2215 | &tpg->se_tpg, (void *)tpg, |
2216 | TRANSPORT_TPG_TYPE_NORMAL); | 2216 | TRANSPORT_TPG_TYPE_NORMAL); |
2217 | if (ret < 0) { | 2217 | if (ret < 0) |
2218 | sbp_management_agent_unregister(tport->mgt_agt); | 2218 | goto out_unreg_mgt_agt; |
2219 | kfree(tpg); | ||
2220 | return ERR_PTR(ret); | ||
2221 | } | ||
2222 | 2219 | ||
2223 | return &tpg->se_tpg; | 2220 | return &tpg->se_tpg; |
2221 | |||
2222 | out_unreg_mgt_agt: | ||
2223 | sbp_management_agent_unregister(tport->mgt_agt); | ||
2224 | out_free_tpg: | ||
2225 | tport->tpg = NULL; | ||
2226 | kfree(tpg); | ||
2227 | return ERR_PTR(ret); | ||
2224 | } | 2228 | } |
2225 | 2229 | ||
2226 | static void sbp_drop_tpg(struct se_portal_group *se_tpg) | 2230 | static void sbp_drop_tpg(struct se_portal_group *se_tpg) |