linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH kernel] commit 4fbdf9cb ("lpfc: Fix for lun discovery issue with saturn adapter.")
@ 2015-04-28  8:26 Alexey Kardashevskiy
  2015-04-28  9:18 ` Sebastian Herbszt
  2015-05-05 15:33 ` James Smart
  0 siblings, 2 replies; 10+ messages in thread
From: Alexey Kardashevskiy @ 2015-04-28  8:26 UTC (permalink / raw)
  To: linuxppc-dev
  Cc: Alexey Kardashevskiy, Benjamin Herrenschmidt, Paul Mackerras,
	James Smart, James E . J . Bottomley, linux-scsi, linux-kernel

This reverts 4fbdf9cb is breaks LPFC on POWER7 machine, big endian kernel.

This is the hardware used for verification:
0005:01:00.0 Fibre Channel [0c04]: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter [10df:f100] (rev 03)
0005:01:00.1 Fibre Channel [0c04]: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter [10df:f100] (rev 03)

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
---
 drivers/scsi/lpfc/lpfc_scsi.c | 41 +++++++++++++++++++++--------------------
 1 file changed, 21 insertions(+), 20 deletions(-)

diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
index cb73cf9..c140f99 100644
--- a/drivers/scsi/lpfc/lpfc_scsi.c
+++ b/drivers/scsi/lpfc/lpfc_scsi.c
@@ -1130,25 +1130,6 @@ lpfc_release_scsi_buf(struct lpfc_hba *phba, struct lpfc_scsi_buf *psb)
 }
 
 /**
- * lpfc_fcpcmd_to_iocb - copy the fcp_cmd data into the IOCB
- * @data: A pointer to the immediate command data portion of the IOCB.
- * @fcp_cmnd: The FCP Command that is provided by the SCSI layer.
- *
- * The routine copies the entire FCP command from @fcp_cmnd to @data while
- * byte swapping the data to big endian format for transmission on the wire.
- **/
-static void
-lpfc_fcpcmd_to_iocb(uint8_t *data, struct fcp_cmnd *fcp_cmnd)
-{
-	int i, j;
-
-	for (i = 0, j = 0; i < sizeof(struct fcp_cmnd);
-	     i += sizeof(uint32_t), j++) {
-		((uint32_t *)data)[j] = cpu_to_be32(((uint32_t *)fcp_cmnd)[j]);
-	}
-}
-
-/**
  * lpfc_scsi_prep_dma_buf_s3 - DMA mapping for scsi buffer to SLI3 IF spec
  * @phba: The Hba for which this call is being executed.
  * @lpfc_cmd: The scsi buffer which is going to be mapped.
@@ -1283,7 +1264,6 @@ lpfc_scsi_prep_dma_buf_s3(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd)
 	 * we need to set word 4 of IOCB here
 	 */
 	iocb_cmd->un.fcpi.fcpi_parm = scsi_bufflen(scsi_cmnd);
-	lpfc_fcpcmd_to_iocb(iocb_cmd->unsli3.fcp_ext.icd, fcp_cmnd);
 	return 0;
 }
 
@@ -4147,6 +4127,24 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn,
 }
 
 /**
+ * lpfc_fcpcmd_to_iocb - copy the fcp_cmd data into the IOCB
+ * @data: A pointer to the immediate command data portion of the IOCB.
+ * @fcp_cmnd: The FCP Command that is provided by the SCSI layer.
+ *
+ * The routine copies the entire FCP command from @fcp_cmnd to @data while
+ * byte swapping the data to big endian format for transmission on the wire.
+ **/
+static void
+lpfc_fcpcmd_to_iocb(uint8_t *data, struct fcp_cmnd *fcp_cmnd)
+{
+	int i, j;
+	for (i = 0, j = 0; i < sizeof(struct fcp_cmnd);
+	     i += sizeof(uint32_t), j++) {
+		((uint32_t *)data)[j] = cpu_to_be32(((uint32_t *)fcp_cmnd)[j]);
+	}
+}
+
+/**
  * lpfc_scsi_prep_cmnd - Wrapper func for convert scsi cmnd to FCP info unit
  * @vport: The virtual port for which this call is being executed.
  * @lpfc_cmd: The scsi command which needs to send.
@@ -4225,6 +4223,9 @@ lpfc_scsi_prep_cmnd(struct lpfc_vport *vport, struct lpfc_scsi_buf *lpfc_cmd,
 		fcp_cmnd->fcpCntl3 = 0;
 		phba->fc4ControlRequests++;
 	}
+	if (phba->sli_rev == 3 &&
+	    !(phba->sli3_options & LPFC_SLI3_BG_ENABLED))
+		lpfc_fcpcmd_to_iocb(iocb_cmd->unsli3.fcp_ext.icd, fcp_cmnd);
 	/*
 	 * Finish initializing those IOCB fields that are independent
 	 * of the scsi_cmnd request_buffer
-- 
2.0.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH kernel] commit 4fbdf9cb ("lpfc: Fix for lun discovery issue with saturn adapter.")
  2015-04-28  8:26 [PATCH kernel] commit 4fbdf9cb ("lpfc: Fix for lun discovery issue with saturn adapter.") Alexey Kardashevskiy
@ 2015-04-28  9:18 ` Sebastian Herbszt
  2015-04-28 10:36   ` Alexey Kardashevskiy
  2015-05-05 15:33 ` James Smart
  1 sibling, 1 reply; 10+ messages in thread
From: Sebastian Herbszt @ 2015-04-28  9:18 UTC (permalink / raw)
  To: Alexey Kardashevskiy, Sebastian Herbszt
  Cc: linuxppc-dev, Benjamin Herrenschmidt, Paul Mackerras,
	James Smart, James E . J . Bottomley, linux-scsi, linux-kernel

Alexey Kardashevskiy wrote:
> This reverts 4fbdf9cb is breaks LPFC on POWER7 machine, big endian kernel.
> 
> This is the hardware used for verification:
> 0005:01:00.0 Fibre Channel [0c04]: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter [10df:f100] (rev 03)
> 0005:01:00.1 Fibre Channel [0c04]: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter [10df:f100] (rev 03)
> 
> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>

This issue is not specific to POWER7. I hit it on x86 [1] and James
promised to look at it.

[1] http://marc.info/?l=linux-scsi&m=142938432414173

Sebastian

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH kernel] commit 4fbdf9cb ("lpfc: Fix for lun discovery issue with saturn adapter.")
  2015-04-28  9:18 ` Sebastian Herbszt
@ 2015-04-28 10:36   ` Alexey Kardashevskiy
  0 siblings, 0 replies; 10+ messages in thread
From: Alexey Kardashevskiy @ 2015-04-28 10:36 UTC (permalink / raw)
  To: Sebastian Herbszt
  Cc: linuxppc-dev, Benjamin Herrenschmidt, Paul Mackerras,
	James Smart, James E . J . Bottomley, linux-scsi, linux-kernel

On 04/28/2015 07:18 PM, Sebastian Herbszt wrote:
> Alexey Kardashevskiy wrote:
>> This reverts 4fbdf9cb is breaks LPFC on POWER7 machine, big endian kernel.
>>
>> This is the hardware used for verification:
>> 0005:01:00.0 Fibre Channel [0c04]: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter [10df:f100] (rev 03)
>> 0005:01:00.1 Fibre Channel [0c04]: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter [10df:f100] (rev 03)
>>
>> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
>
> This issue is not specific to POWER7. I hit it on x86 [1] and James
> promised to look at it.
>
> [1] http://marc.info/?l=linux-scsi&m=142938432414173
>
> Sebastian

Well, I hope so, I just wanted to be more specific and the fault looks much 
different (and much cooler! :) ) on my hardware (it actually enters an 
infinite loop of oops'es):



Welcome to Fedora 20 (Heisenbug)!

INFO: rcu_sched self-detected stall on CPU
INFO: rcu_sched self-detected stall on CPU
INFO: rcu_sched self-detected stall on CPU


         1: (2100 ticks this GP) idle=981/140000000000001/0 softirq=234/234 fqs
=2083
         2: (2100 ticks this GP) idle=c3d/140000000000001/0 softirq=259/259 fqs
=2083

          (t=2100 jiffies g=-7 c=-8 q=11820)
  (t=2100 jiffies g=-7 c=-8 q=11820)
Task dump for CPU 0:
kworker/u97:0   R  running task     8192     7      2 0x00000804
Workqueue: events_unbound .async_run_entry_fn
Call Trace:
[c000000ffa29ef80] [c000000ffa29f060] 0xc000000ffa29f060 (unreliable)
Task dump for CPU 1:
kworker/u97:2   R  running task    10304  1636      2 0x00000804
Workqueue: events_unbound .async_run_entry_fn
Call Trace:
[c000000ff2fd2f80] [c000000ff2fd3060] 0xc000000ff2fd3060 (unreliable)
Task dump for CPU 2:
kworker/u97:1   R  running task     8288  1633      2 0x00000804
Workqueue: events_unbound .async_run_entry_fn
Call Trace:
[c000000ff2f92eb0] [c0000000000cf610] .sched_show_task+0xf0/0x180 (unreliable)
[c000000ff2f92f30] [c0000000001041d8] .rcu_dump_cpu_stacks+0xd8/0x150
[c000000ff2f92fd0] [c000000000108794] .rcu_check_callbacks+0x674/0x990
[c000000ff2f93110] [c00000000010e994] .update_process_times+0x44/0x90
[c000000ff2f93190] [c0000000001223f0] .tick_sched_handle.isra.16+0x20/0xa0
[c000000ff2f93210] [c0000000001224cc] .tick_sched_timer+0x5c/0xb0
[c000000ff2f932b0] [c00000000010f108] .__run_hrtimer+0x98/0x260
[c000000ff2f93350] [c00000000010fff8] .hrtimer_interrupt+0x138/0x2f0
[c000000ff2f93460] [c00000000001be1c] .__timer_interrupt+0x8c/0x230
[c000000ff2f93500] [c00000000001c488] .timer_interrupt+0x98/0xd0
[c000000ff2f93580] [c0000000000025d0] decrementer_common+0x150/0x180
--- interrupt: 901 at .string_get_size+0x120/0x250
     LR = .sd_revalidate_disk+0x57c/0x1c10
[c000000ff2f93870] [c00000000048f84c] .string_get_size+0x18c/0x250 (unreliable
)
[c000000ff2f93940] [c0000000005e7c1c] .sd_revalidate_disk+0x57c/0x1c10
[c000000ff2f93a70] [c0000000005e951c] .sd_probe_async+0xac/0x230
[c000000ff2f93b00] [c0000000000c28ec] .async_run_entry_fn+0x6c/0x180
[c000000ff2f93ba0] [c0000000000b7b78] .process_one_work+0x1a8/0x4a0
[c000000ff2f93c40] [c0000000000b7ff0] .worker_thread+0x180/0x5a0
[c000000ff2f93d30] [c0000000000bee08] .kthread+0x108/0x130
[c000000ff2f93e30] [c000000000009590] .ret_from_kernel_thread+0x58/0xc8
Task dump for CPU 0:
kworker/u97:0   R  running task     8192     7      2 0x00000804
Workqueue: events_unbound .async_run_entry_fn
Call Trace:
[c000000ffa29ef80] [c000000ffa29f060] 0xc000000ffa29f060 (unreliable)
Task dump for CPU 1:
kworker/u97:2   R  running task     9488  1636      2 0x00000804
Workqueue: events_unbound .async_run_entry_fn
Call Trace:
[c000000ff2fd2eb0] [c0000000000cf610] .sched_show_task+0xf0/0x180 (unreliable)
[c000000ff2fd2f30] [c0000000001041d8] .rcu_dump_cpu_stacks+0xd8/0x150
[c000000ff2fd2fd0] [c000000000108794] .rcu_check_callbacks+0x674/0x990
[c000000ff2fd3110] [c00000000010e994] .update_process_times+0x44/0x90
[c000000ff2fd3190] [c0000000001223f0] .tick_sched_handle.isra.16+0x20/0xa0
[c000000ff2fd3210] [c0000000001224cc] .tick_sched_timer+0x5c/0xb0
[c000000ff2fd32b0] [c00000000010f108] .__run_hrtimer+0x98/0x260
[c000000ff2fd3350] [c00000000010fff8] .hrtimer_interrupt+0x138/0x2f0
[c000000ff2fd3460] [c00000000001be1c] .__timer_interrupt+0x8c/0x230
[c000000ff2fd3500] [c00000000001c488] .timer_interrupt+0x98/0xd0
[c000000ff2fd3580] [c0000000000025d0] decrementer_common+0x150/0x180
--- interrupt: 901 at .string_get_size+0x110/0x250
     LR = .sd_revalidate_disk+0x57c/0x1c10
[c000000ff2fd3870] [c00000000048f84c] .string_get_size+0x18c/0x250 (unreliable
)
[c000000ff2fd3940] [c0000000005e7c1c] .sd_revalidate_disk+0x57c/0x1c10
[c000000ff2fd3a70] [c0000000005e951c] .sd_probe_async+0xac/0x230
[c000000ff2fd3b00] [c0000000000c28ec] .async_run_entry_fn+0x6c/0x180
[c000000ff2fd3ba0] [c0000000000b7b78] .process_one_work+0x1a8/0x4a0
[c000000ff2fd3c40] [c0000000000b7ff0] .worker_thread+0x180/0x5a0
[c000000ff2fd3d30] [c0000000000bee08] .kthread+0x108/0x130
[c000000ff2fd3e30] [c000000000009590] .ret_from_kernel_thread+0x58/0xc8
Task dump for CPU 2:
kworker/u97:1   R  running task     8288  1633      2 0x00000804
Workqueue: events_unbound .async_run_entry_fn
Call Trace:
[c000000ff2f92f80] [c000000ff2f93060] 0xc000000ff2f93060 (unreliable)

         0: (2098 ticks this GP) idle=155/140000000000001/0 softirq=477/477 fqs
=2083
          (t=2100 jiffies g=-7 c=-8 q=11820)
Task dump for CPU 0:
kworker/u97:0   R  running task     8192     7      2 0x00000804
Workqueue: events_unbound .async_run_entry_fn
Call Trace:
[c000000ffa29eeb0] [c0000000000cf610] .sched_show_task+0xf0/0x180 (unreliable)
[c000000ffa29ef30] [c0000000001041d8] .rcu_dump_cpu_stacks+0xd8/0x150
[c000000ffa29efd0] [c000000000108794] .rcu_check_callbacks+0x674/0x990
[c000000ffa29f110] [c00000000010e994] .update_process_times+0x44/0x90
[c000000ffa29f190] [c0000000001223f0] .tick_sched_handle.isra.16+0x20/0xa0
[c000000ffa29f210] [c0000000001224cc] .tick_sched_timer+0x5c/0xb0
[c000000ffa29f2b0] [c00000000010f108] .__run_hrtimer+0x98/0x260
[c000000ffa29f350] [c00000000010fff8] .hrtimer_interrupt+0x138/0x2f0
[c000000ffa29f460] [c00000000001be1c] .__timer_interrupt+0x8c/0x230
[c000000ffa29f500] [c00000000001c488] .timer_interrupt+0x98/0xd0
[c000000ffa29f580] [c0000000000025d0] decrementer_common+0x150/0x180
--- interrupt: 901 at .string_get_size+0x118/0x250
     LR = .sd_revalidate_disk+0x57c/0x1c10
[c000000ffa29f870] [c00000000048f84c] .string_get_size+0x18c/0x250 (unreliable
)
[c000000ffa29f940] [c0000000005e7c1c] .sd_revalidate_disk+0x57c/0x1c10
[c000000ffa29fa70] [c0000000005e951c] .sd_probe_async+0xac/0x230
[c000000ffa29fb00] [c0000000000c28ec] .async_run_entry_fn+0x6c/0x180
[c000000ffa29fba0] [c0000000000b7b78] .process_one_work+0x1a8/0x4a0
[c000000ffa29fc40] [c0000000000b7ff0] .worker_thread+0x180/0x5a0
[c000000ffa29fd30] [c0000000000bee08] .kthread+0x108/0x130
[c000000ffa29fe30] [c000000000009590] .ret_from_kernel_thread+0x58/0xc8
Task dump for CPU 1:
kworker/u97:2   R  running task     9488  1636      2 0x00000804
Workqueue: events_unbound .async_run_entry_fn
Call Trace:
[c000000ff2fd2f80] [c000000ff2fd3060] 0xc000000ff2fd3060 (unreliable)
Task dump for CPU 2:
kworker/u97:1   R  running task     8288  1633      2 0x00000804
Workqueue: events_unbound .async_run_entry_fn
Call Trace:
[c000000ff2f92f80] [c000000ff2f93060] 0xc000000ff2f93060 (unreliable)
NMI watchdog: BUG: soft lockup - CPU#1 stuck for 23s! [kworker/u97:2:1636]
NMI watchdog: BUG: soft lockup - CPU#0 stuck for 23s! [kworker/u97:0:7]
NMI watchdog: BUG: soft lockup - CPU#2 stuck for 23s! [kworker/u97:1:1633]
Modules linked in:
Modules linked in: autofs4
  autofs4
  lpfc
  lpfc


CPU: 0 PID: 7 Comm: kworker/u97:0 Not tainted 4.1.0-rc1-be-aik #470
CPU: 2 PID: 1633 Comm: kworker/u97:1 Not tainted 4.1.0-rc1-be-aik #470
Workqueue: events_unbound .async_run_entry_fn
Workqueue: events_unbound .async_run_entry_fn


task: c000000ff3588f00 ti: c000000ffa29c000 task.ti: c000000ffa29c000
task: c000000ff2f56580 ti: c000000ff2f90000 task.ti: c000000ff2f90000
NIP: c00000000048f7e0 LR: c0000000005e7c1c CTR: 0000000000000000
NIP: c00000000048f7e0 LR: c0000000005e7c1c CTR: 0000000000000000
REGS: c000000ffa29f5f0 TRAP: 0901   Not tainted  (4.1.0-rc1-be-aik)
REGS: c000000ff2f935f0 TRAP: 0901   Not tainted  (4.1.0-rc1-be-aik)
MSR: 9000000000009032
MSR: 9000000000009032
<
<
SF
SF
,HV
,HV
,EE
,EE
,ME
,ME
,IR
,IR
,DR
,DR
,RI
,RI
 >
 >
   CR: 48008028  XER: 00000000
   CR: 48008028  XER: 00000000
CFAR: c00000000048f7e8
CFAR: c00000000048f7e8
SOFTE: 1
SOFTE: 1

GPR00:

GPR00:
c0000000005e7c1c
c0000000005e7c1c
c000000ffa29f870
c000000ff2f93870
c000000000e8c5a8
c000000000e8c5a8
0000000000000000
0000000000000000

GPR04:

GPR04:
0000000000000200
0000000000000200
0000000000000000
0000000000000000
0000000000000200
0000000000000200
000000000000000a
000000000000000a

GPR08:

GPR08:
0000000000000000
0000000000000000
00000000000003e8
00000000000003e8
0000000000000000
0000000000000000
000000002eb72fa3
ffffffffe5dd553e

GPR12:

GPR12:
0000000028008028
0000000028008028
c00000000fdc0000
c00000000fdc0900


NIP [c00000000048f7e0] .string_get_size+0x120/0x250
NIP [c00000000048f7e0] .string_get_size+0x120/0x250
LR [c0000000005e7c1c] .sd_revalidate_disk+0x57c/0x1c10
LR [c0000000005e7c1c] .sd_revalidate_disk+0x57c/0x1c10
Call Trace:
Call Trace:
[c000000ffa29f870] [c00000000048f84c] .string_get_size+0x18c/0x250
[c000000ff2f93870] [c00000000048f84c] .string_get_size+0x18c/0x250
  (unreliable)
  (unreliable)


[c000000ffa29f940] [c0000000005e7c1c] .sd_revalidate_disk+0x57c/0x1c10
[c000000ff2f93940] [c0000000005e7c1c] .sd_revalidate_disk+0x57c/0x1c10


[c000000ffa29fa70] [c0000000005e951c] .sd_probe_async+0xac/0x230
[c000000ff2f93a70] [c0000000005e951c] .sd_probe_async+0xac/0x230


[c000000ffa29fb00] [c0000000000c28ec] .async_run_entry_fn+0x6c/0x180
[c000000ff2f93b00] [c0000000000c28ec] .async_run_entry_fn+0x6c/0x180


[c000000ffa29fba0] [c0000000000b7b78] .process_one_work+0x1a8/0x4a0
[c000000ff2f93ba0] [c0000000000b7b78] .process_one_work+0x1a8/0x4a0


[c000000ffa29fc40] [c0000000000b7ff0] .worker_thread+0x180/0x5a0
[c000000ff2f93c40] [c0000000000b7ff0] .worker_thread+0x180/0x5a0


[c000000ffa29fd30] [c0000000000bee08] .kthread+0x108/0x130
[c000000ff2f93d30] [c0000000000bee08] .kthread+0x108/0x130


[c000000ffa29fe30] [c000000000009590] .ret_from_kernel_thread+0x58/0xc8
[c000000ff2f93e30] [c000000000009590] .ret_from_kernel_thread+0x58/0xc8

Instruction dump:
Instruction dump:


...
[snip]




-- 
Alexey

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH kernel] commit 4fbdf9cb ("lpfc: Fix for lun discovery issue with saturn adapter.")
  2015-04-28  8:26 [PATCH kernel] commit 4fbdf9cb ("lpfc: Fix for lun discovery issue with saturn adapter.") Alexey Kardashevskiy
  2015-04-28  9:18 ` Sebastian Herbszt
@ 2015-05-05 15:33 ` James Smart
  2015-05-05 21:46   ` Sebastian Herbszt
  1 sibling, 1 reply; 10+ messages in thread
From: James Smart @ 2015-05-05 15:33 UTC (permalink / raw)
  To: Alexey Kardashevskiy
  Cc: linuxppc-dev, Benjamin Herrenschmidt, Paul Mackerras,
	James E . J . Bottomley, linux-scsi, linux-kernel,
	Sebastian Herbszt

Reviewed-By: James Smart <james.smart@emulex.com>


Alexey, Sebastian,

Yes - this section needs to be reverted.  This patch is good.

-- james s




On 4/28/2015 4:26 AM, Alexey Kardashevskiy wrote:
> This reverts 4fbdf9cb is breaks LPFC on POWER7 machine, big endian kernel.
>
> This is the hardware used for verification:
> 0005:01:00.0 Fibre Channel [0c04]: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter [10df:f100] (rev 03)
> 0005:01:00.1 Fibre Channel [0c04]: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter [10df:f100] (rev 03)
>
> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
> ---
>   drivers/scsi/lpfc/lpfc_scsi.c | 41 +++++++++++++++++++++--------------------
>   1 file changed, 21 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
> index cb73cf9..c140f99 100644
> --- a/drivers/scsi/lpfc/lpfc_scsi.c
> +++ b/drivers/scsi/lpfc/lpfc_scsi.c
> @@ -1130,25 +1130,6 @@ lpfc_release_scsi_buf(struct lpfc_hba *phba, struct lpfc_scsi_buf *psb)
>   }
>   
>   /**
> - * lpfc_fcpcmd_to_iocb - copy the fcp_cmd data into the IOCB
> - * @data: A pointer to the immediate command data portion of the IOCB.
> - * @fcp_cmnd: The FCP Command that is provided by the SCSI layer.
> - *
> - * The routine copies the entire FCP command from @fcp_cmnd to @data while
> - * byte swapping the data to big endian format for transmission on the wire.
> - **/
> -static void
> -lpfc_fcpcmd_to_iocb(uint8_t *data, struct fcp_cmnd *fcp_cmnd)
> -{
> -	int i, j;
> -
> -	for (i = 0, j = 0; i < sizeof(struct fcp_cmnd);
> -	     i += sizeof(uint32_t), j++) {
> -		((uint32_t *)data)[j] = cpu_to_be32(((uint32_t *)fcp_cmnd)[j]);
> -	}
> -}
> -
> -/**
>    * lpfc_scsi_prep_dma_buf_s3 - DMA mapping for scsi buffer to SLI3 IF spec
>    * @phba: The Hba for which this call is being executed.
>    * @lpfc_cmd: The scsi buffer which is going to be mapped.
> @@ -1283,7 +1264,6 @@ lpfc_scsi_prep_dma_buf_s3(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd)
>   	 * we need to set word 4 of IOCB here
>   	 */
>   	iocb_cmd->un.fcpi.fcpi_parm = scsi_bufflen(scsi_cmnd);
> -	lpfc_fcpcmd_to_iocb(iocb_cmd->unsli3.fcp_ext.icd, fcp_cmnd);
>   	return 0;
>   }
>   
> @@ -4147,6 +4127,24 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn,
>   }
>   
>   /**
> + * lpfc_fcpcmd_to_iocb - copy the fcp_cmd data into the IOCB
> + * @data: A pointer to the immediate command data portion of the IOCB.
> + * @fcp_cmnd: The FCP Command that is provided by the SCSI layer.
> + *
> + * The routine copies the entire FCP command from @fcp_cmnd to @data while
> + * byte swapping the data to big endian format for transmission on the wire.
> + **/
> +static void
> +lpfc_fcpcmd_to_iocb(uint8_t *data, struct fcp_cmnd *fcp_cmnd)
> +{
> +	int i, j;
> +	for (i = 0, j = 0; i < sizeof(struct fcp_cmnd);
> +	     i += sizeof(uint32_t), j++) {
> +		((uint32_t *)data)[j] = cpu_to_be32(((uint32_t *)fcp_cmnd)[j]);
> +	}
> +}
> +
> +/**
>    * lpfc_scsi_prep_cmnd - Wrapper func for convert scsi cmnd to FCP info unit
>    * @vport: The virtual port for which this call is being executed.
>    * @lpfc_cmd: The scsi command which needs to send.
> @@ -4225,6 +4223,9 @@ lpfc_scsi_prep_cmnd(struct lpfc_vport *vport, struct lpfc_scsi_buf *lpfc_cmd,
>   		fcp_cmnd->fcpCntl3 = 0;
>   		phba->fc4ControlRequests++;
>   	}
> +	if (phba->sli_rev == 3 &&
> +	    !(phba->sli3_options & LPFC_SLI3_BG_ENABLED))
> +		lpfc_fcpcmd_to_iocb(iocb_cmd->unsli3.fcp_ext.icd, fcp_cmnd);
>   	/*
>   	 * Finish initializing those IOCB fields that are independent
>   	 * of the scsi_cmnd request_buffer


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH kernel] commit 4fbdf9cb ("lpfc: Fix for lun discovery issue with saturn adapter.")
  2015-05-05 15:33 ` James Smart
@ 2015-05-05 21:46   ` Sebastian Herbszt
  2015-05-20  3:55     ` Alexey Kardashevskiy
  0 siblings, 1 reply; 10+ messages in thread
From: Sebastian Herbszt @ 2015-05-05 21:46 UTC (permalink / raw)
  To: james.smart
  Cc: Alexey Kardashevskiy, linuxppc-dev, Benjamin Herrenschmidt,
	Paul Mackerras, James E . J . Bottomley, linux-scsi,
	linux-kernel

James Smart wrote:
> 
> Reviewed-By: James Smart <james.smart@emulex.com>
> 
> 
> Alexey, Sebastian,
> 
> Yes - this section needs to be reverted.  This patch is good.
> 
> -- james s

Reviewed-by: Sebastian Herbszt <herbszt@gmx.de>

Sebastian

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH kernel] commit 4fbdf9cb ("lpfc: Fix for lun discovery issue with saturn adapter.")
  2015-05-05 21:46   ` Sebastian Herbszt
@ 2015-05-20  3:55     ` Alexey Kardashevskiy
  2015-05-20 13:11       ` James Smart
  2015-05-22 11:33       ` Sebastian Herbszt
  0 siblings, 2 replies; 10+ messages in thread
From: Alexey Kardashevskiy @ 2015-05-20  3:55 UTC (permalink / raw)
  To: Sebastian Herbszt, james.smart
  Cc: linuxppc-dev, Benjamin Herrenschmidt, Paul Mackerras,
	James E . J . Bottomley, linux-scsi, linux-kernel

On 05/06/2015 07:46 AM, Sebastian Herbszt wrote:
> James Smart wrote:
>>
>> Reviewed-By: James Smart <james.smart@emulex.com>
>>
>>
>> Alexey, Sebastian,
>>
>> Yes - this section needs to be reverted.  This patch is good.
>>
>> -- james s
>
> Reviewed-by: Sebastian Herbszt <herbszt@gmx.de>


Unfortunately, just this revert is not enough, it fixed one of my machines 
but I have another machine with "Emulex Corporation Saturn-X: LightPulse 
Fibre Channel Host Adapter (rev 03)" which does not boot - the booting 
process stops at "[  OK  ] Reached target Basic System."

Any quick idea what else to revert between 4.0 and current upstream before 
I dig further? Thanks!



-- 
Alexey

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH kernel] commit 4fbdf9cb ("lpfc: Fix for lun discovery issue with saturn adapter.")
  2015-05-20  3:55     ` Alexey Kardashevskiy
@ 2015-05-20 13:11       ` James Smart
  2015-05-20 19:51         ` James Smart
  2015-05-22 11:33       ` Sebastian Herbszt
  1 sibling, 1 reply; 10+ messages in thread
From: James Smart @ 2015-05-20 13:11 UTC (permalink / raw)
  To: Alexey Kardashevskiy, Sebastian Herbszt, james.smart
  Cc: linuxppc-dev, Benjamin Herrenschmidt, Paul Mackerras,
	James E . J . Bottomley, linux-scsi, linux-kernel

Not sure - I'll go look.

-- james


On 5/19/2015 11:55 PM, Alexey Kardashevskiy wrote:
> On 05/06/2015 07:46 AM, Sebastian Herbszt wrote:
>> James Smart wrote:
>>>
>>> Reviewed-By: James Smart <james.smart@emulex.com>
>>>
>>>
>>> Alexey, Sebastian,
>>>
>>> Yes - this section needs to be reverted.  This patch is good.
>>>
>>> -- james s
>>
>> Reviewed-by: Sebastian Herbszt <herbszt@gmx.de>
>
>
> Unfortunately, just this revert is not enough, it fixed one of my 
> machines but I have another machine with "Emulex Corporation Saturn-X: 
> LightPulse Fibre Channel Host Adapter (rev 03)" which does not boot - 
> the booting process stops at "[  OK  ] Reached target Basic System."
>
> Any quick idea what else to revert between 4.0 and current upstream 
> before I dig further? Thanks!
>
>
>


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH kernel] commit 4fbdf9cb ("lpfc: Fix for lun discovery issue with saturn adapter.")
  2015-05-20 13:11       ` James Smart
@ 2015-05-20 19:51         ` James Smart
  0 siblings, 0 replies; 10+ messages in thread
From: James Smart @ 2015-05-20 19:51 UTC (permalink / raw)
  To: Alexey Kardashevskiy, Sebastian Herbszt
  Cc: linuxppc-dev, Benjamin Herrenschmidt, Paul Mackerras,
	James E . J . Bottomley, linux-scsi, linux-kernel, James Smart

Alexey,

Can you send me boot messages so I can see everything the lpfc driver 
may have done ?
And you're using 10.5.0.0 verbatim ?

-- james


On 5/20/2015 9:11 AM, James Smart wrote:
> Not sure - I'll go look.
>
> -- james
>
>
> On 5/19/2015 11:55 PM, Alexey Kardashevskiy wrote:
>> On 05/06/2015 07:46 AM, Sebastian Herbszt wrote:
>>> James Smart wrote:
>>>>
>>>> Reviewed-By: James Smart <james.smart@emulex.com>
>>>>
>>>>
>>>> Alexey, Sebastian,
>>>>
>>>> Yes - this section needs to be reverted.  This patch is good.
>>>>
>>>> -- james s
>>>
>>> Reviewed-by: Sebastian Herbszt <herbszt@gmx.de>
>>
>>
>> Unfortunately, just this revert is not enough, it fixed one of my 
>> machines but I have another machine with "Emulex Corporation 
>> Saturn-X: LightPulse Fibre Channel Host Adapter (rev 03)" which does 
>> not boot - the booting process stops at "[  OK  ] Reached target 
>> Basic System."
>>
>> Any quick idea what else to revert between 4.0 and current upstream 
>> before I dig further? Thanks!
>>
>>
>>
>


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH kernel] commit 4fbdf9cb ("lpfc: Fix for lun discovery issue with saturn adapter.")
  2015-05-20  3:55     ` Alexey Kardashevskiy
  2015-05-20 13:11       ` James Smart
@ 2015-05-22 11:33       ` Sebastian Herbszt
  2015-05-23  9:31         ` Sebastian Herbszt
  1 sibling, 1 reply; 10+ messages in thread
From: Sebastian Herbszt @ 2015-05-22 11:33 UTC (permalink / raw)
  To: Alexey Kardashevskiy
  Cc: james.smart, linuxppc-dev, Benjamin Herrenschmidt,
	Paul Mackerras, James E . J . Bottomley, linux-scsi,
	linux-kernel, Sebastian Herbszt

Alexey Kardashevskiy wrote:
> On 05/06/2015 07:46 AM, Sebastian Herbszt wrote:
> > James Smart wrote:
> >>
> >> Reviewed-By: James Smart <james.smart@emulex.com>
> >>
> >>
> >> Alexey, Sebastian,
> >>
> >> Yes - this section needs to be reverted.  This patch is good.
> >>
> >> -- james s
> >
> > Reviewed-by: Sebastian Herbszt <herbszt@gmx.de>
> 
> 
> Unfortunately, just this revert is not enough, it fixed one of my machines 
> but I have another machine with "Emulex Corporation Saturn-X: LightPulse 
> Fibre Channel Host Adapter (rev 03)" which does not boot - the booting 
> process stops at "[  OK  ] Reached target Basic System."
> 
> Any quick idea what else to revert between 4.0 and current upstream before 
> I dig further? Thanks!

Is the other machine also POWER7?
I tested the revert on x86 and it fixed my issue:

4.1-rc4 (lpfc 10.5.0.0) - broken
4.0 + lpfc 10.5.0.0 - broken
4.1-rc4 (lpfc 10.5.0.0) + revert - ok
4.0 + lpfc 10.5.0.0 + revert - ok

Sebastian

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH kernel] commit 4fbdf9cb ("lpfc: Fix for lun discovery issue with saturn adapter.")
  2015-05-22 11:33       ` Sebastian Herbszt
@ 2015-05-23  9:31         ` Sebastian Herbszt
  0 siblings, 0 replies; 10+ messages in thread
From: Sebastian Herbszt @ 2015-05-23  9:31 UTC (permalink / raw)
  To: James E . J . Bottomley
  Cc: Alexey Kardashevskiy, james.smart, linuxppc-dev,
	Benjamin Herrenschmidt, Paul Mackerras, linux-scsi, linux-kernel,
	Sebastian Herbszt

I wrote:
> Alexey Kardashevskiy wrote:
> > On 05/06/2015 07:46 AM, Sebastian Herbszt wrote:
> > > James Smart wrote:
> > >>
> > >> Reviewed-By: James Smart <james.smart@emulex.com>
> > >>
> > >>
> > >> Alexey, Sebastian,
> > >>
> > >> Yes - this section needs to be reverted.  This patch is good.
> > >>
> > >> -- james s
> > >
> > > Reviewed-by: Sebastian Herbszt <herbszt@gmx.de>
> > 
> > 
> > Unfortunately, just this revert is not enough, it fixed one of my machines 
> > but I have another machine with "Emulex Corporation Saturn-X: LightPulse 
> > Fibre Channel Host Adapter (rev 03)" which does not boot - the booting 
> > process stops at "[  OK  ] Reached target Basic System."
> > 
> > Any quick idea what else to revert between 4.0 and current upstream before 
> > I dig further? Thanks!
> 
> Is the other machine also POWER7?
> I tested the revert on x86 and it fixed my issue:
> 
> 4.1-rc4 (lpfc 10.5.0.0) - broken
> 4.0 + lpfc 10.5.0.0 - broken
> 4.1-rc4 (lpfc 10.5.0.0) + revert - ok
> 4.0 + lpfc 10.5.0.0 + revert - ok

James,

are you sending this revert to Linus any time soon?

Support for SLI-3 adapters is broken on all platforms for more than
a month now [1] and POWER7 doesn't seem to like it at all [2].

[1] http://marc.info/?l=linux-scsi&m=142938432414173
[2] http://marc.info/?l=linux-scsi&m=143021737816241

Sebastian

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-05-23  9:32 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-28  8:26 [PATCH kernel] commit 4fbdf9cb ("lpfc: Fix for lun discovery issue with saturn adapter.") Alexey Kardashevskiy
2015-04-28  9:18 ` Sebastian Herbszt
2015-04-28 10:36   ` Alexey Kardashevskiy
2015-05-05 15:33 ` James Smart
2015-05-05 21:46   ` Sebastian Herbszt
2015-05-20  3:55     ` Alexey Kardashevskiy
2015-05-20 13:11       ` James Smart
2015-05-20 19:51         ` James Smart
2015-05-22 11:33       ` Sebastian Herbszt
2015-05-23  9:31         ` Sebastian Herbszt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).