aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/firewire/sbp2.c
diff options
context:
space:
mode:
authorChris Boot <bootc@bootc.net>2012-02-15 09:59:09 -0500
committerStefan Richter <stefanr@s5r6.in-berlin.de>2012-02-22 16:36:02 -0500
commit74044563a2318f2c56fa53af64f7800f49fb479d (patch)
treeb07889e33612d12c9584518236b2bf2ff0215741 /drivers/firewire/sbp2.c
parent8ff6a75744dfc0ea19a03c0ac5a438ef8d825342 (diff)
firewire: sbp2: Ignore SBP-2 targets on the local node
The firewire-sbp2 module tries to login to an SBP-2/3 target even when it is running on the local node, which fails because of the inability to fetch data from DMA mapped regions using firewire transactions on the local node. It also doesn't make much sense to have the initiator and target on the same node, so this patch prevents this behaviour. Signed-off-by: Chris Boot <bootc@bootc.net> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (changed the comment)
Diffstat (limited to 'drivers/firewire/sbp2.c')
-rw-r--r--drivers/firewire/sbp2.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/firewire/sbp2.c b/drivers/firewire/sbp2.c
index 4865d641329a..0c92ed835e06 100644
--- a/drivers/firewire/sbp2.c
+++ b/drivers/firewire/sbp2.c
@@ -1141,6 +1141,10 @@ static int sbp2_probe(struct device *dev)
1141 struct Scsi_Host *shost; 1141 struct Scsi_Host *shost;
1142 u32 model, firmware_revision; 1142 u32 model, firmware_revision;
1143 1143
1144 /* cannot (or should not) handle targets on the local node */
1145 if (device->is_local)
1146 return -ENODEV;
1147
1144 if (dma_get_max_seg_size(device->card->device) > SBP2_MAX_SEG_SIZE) 1148 if (dma_get_max_seg_size(device->card->device) > SBP2_MAX_SEG_SIZE)
1145 BUG_ON(dma_set_max_seg_size(device->card->device, 1149 BUG_ON(dma_set_max_seg_size(device->card->device,
1146 SBP2_MAX_SEG_SIZE)); 1150 SBP2_MAX_SEG_SIZE));