1. 27 Jun, 2009 1 commit
  2. 26 Jun, 2009 1 commit
    • Christof Schmitt's avatar
      [SCSI] FC transport: Locking fix for common-code FC pass-through patch · 39562e78
      Christof Schmitt authored
      Fix this:
      ------------[ cut here ]------------
      Badness at block/blk-core.c:244
      CPU: 0 Tainted: G        W  2.6.31-rc1-00004-gd3a263a8 #3
      Process zfcp_wq (pid: 901, task: 000000002fb7a038, ksp: 000000002f02bc78)
      Krnl PSW : 0704300180000000 00000000002141ba (blk_remove_plug+0xb2/0xb8)
                 R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:3 PM:0 EA:3
      Krnl GPRS: 0000000000000001 0000000000000001 0000000022811440 0000000022811798
                 000000000027ff4e 0000000000000000 0000000000000000 000000002f00f000
                 070000000006a0f4 000000002af70000 000000002af2a800 00000000228d1c00
                 0000000022811440 000000000050c708 000000002f02bca8 000000002f02bc80
      Krnl Code: 00000000002141b0: b9140022		lgfr	%r2,%r2
                 00000000002141b4: 07fe		bcr	15,%r14
                 00000000002141b6: a7f40001		brc	15,2141b8
                >00000000002141ba: a7f4ffbe		brc	15,214136
                 00000000002141be: 0707		bcr	0,%r7
                 00000000002141c0: ebaff0680024	stmg %r10,%r15,104(%r15)
                 00000000002141c6: c0d00017c2a9	larl	%r13,50c718
                 00000000002141cc: a7f13fc0		tmll	%r15,16320
      Call Trace:
      ([<000000000050e7d8>] C.272.16122+0x88/0x110)
       [<00000000002141ec>] __blk_run_queue+0x2c/0x154
       [<000000000028013a>] fc_remote_port_add+0x85e/0x95c
       [<000000000037596e>] zfcp_scsi_rport_work+0xe6/0x148
       [<000000000006908c>] worker_thread+0x25c/0x318
       [<000000000006f10c>] kthread+0x94/0x9c
       [<000000000001c2b2>] kernel_thread_starter+0x6/0xc
       [<000000000001c2ac>] kernel_thread_starter+0x0/0xc
      INFO: lockdep is turned off.
      Last Breaking-Event-Address:
       [<00000000002141b6>] blk_remove_plug+0xae/0xb8
      
      The FC pass-through support triggers the WARN_ON(!irqs_disabled()) in
      blk_plug_device. Since blk_plug_device requires being called with
      disabled interrupts, use spin_lock_irqsave in fc_bsg_goose_queue to
      disable the interrupts before calling into the block layer.
      Signed-off-by: default avatarChristof Schmitt <christof.schmitt@de.ibm.com>
      Acked-by: default avatarJames Smart <james.smart@emulex.com>
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
      39562e78
  3. 25 Jun, 2009 4 commits
  4. 24 Jun, 2009 34 commits