]> Pileus Git - ~andy/linux/commitdiff
firewire: sbp2: Ignore SBP-2 targets on the local node
authorChris Boot <bootc@bootc.net>
Wed, 15 Feb 2012 14:59:09 +0000 (14:59 +0000)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Wed, 22 Feb 2012 21:36:02 +0000 (22:36 +0100)
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)
drivers/firewire/sbp2.c

index 4865d641329a460c2fe17991a6ab91d915a107c3..0c92ed835e06f435d65fe9c6160cc5064df0ff90 100644 (file)
@@ -1141,6 +1141,10 @@ static int sbp2_probe(struct device *dev)
        struct Scsi_Host *shost;
        u32 model, firmware_revision;
 
+       /* cannot (or should not) handle targets on the local node */
+       if (device->is_local)
+               return -ENODEV;
+
        if (dma_get_max_seg_size(device->card->device) > SBP2_MAX_SEG_SIZE)
                BUG_ON(dma_set_max_seg_size(device->card->device,
                                            SBP2_MAX_SEG_SIZE));