<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/scsi/isci/request.c, branch v3.2.4-rt10</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>[SCSI] isci: Remove redundant isci_request.ttype field.</title>
<updated>2011-10-31T09:19:47+00:00</updated>
<author>
<name>Jeff Skirvin</name>
<email>jeffrey.d.skirvin@intel.com</email>
</author>
<published>2011-10-27T22:05:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3b34c169f8197e02529fa3ec703703c2ce418c57'/>
<id>3b34c169f8197e02529fa3ec703703c2ce418c57</id>
<content type='text'>
Use the existing IREQ_TMF flag as a request type indicator.

Signed-off-by: Jeff Skirvin &lt;jeffrey.d.skirvin@intel.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use the existing IREQ_TMF flag as a request type indicator.

Signed-off-by: Jeff Skirvin &lt;jeffrey.d.skirvin@intel.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[SCSI] isci: Lookup device references through requests in completions.</title>
<updated>2011-10-31T09:14:44+00:00</updated>
<author>
<name>Jeff Skirvin</name>
<email>jeffrey.d.skirvin@intel.com</email>
</author>
<published>2011-10-27T22:04:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0e2e27990e2dcd415f7974e8460a2f05accdddfb'/>
<id>0e2e27990e2dcd415f7974e8460a2f05accdddfb</id>
<content type='text'>
The LLDD needs to obtain a reference to the device through the request
itself and not through the domain_device, because the
domain_device.lldd_dev is set to NULL early in the lldd_dev_gone call.
This relies on the fact that the isci_remote_device object is keeping a
seperate reference count of outstanding requests.  TODO: unify the
request count tracking with the isci_remote_device kref.

The failure signature of this condition looks like the following
log, where the important bits are the call to lldd_dev_gone followed
by a crash in isci_terminate_request_core:

[  229.151541] isci 0000:0b:00.0: isci_remote_device_gone: domain_device = ffff8801492d4800, isci_device = ffff880143c657d0, isci_port = ffff880143c63658
[  229.166007] isci 0000:0b:00.0: isci_remote_device_stop: isci_device = ffff880143c657d0
[  229.175317] isci 0000:0b:00.0: isci_terminate_pending_requests: idev=ffff880143c657d0 request=ffff88014741f000; task=ffff8801470f46c0 old_state=2
[  229.189702] isci 0000:0b:00.0: isci_terminate_request_core: device = ffff880143c657d0; request = ffff88014741f000
[  229.201339] isci 0000:0b:00.0: isci_terminate_request_core: before completion wait (ffff88014741f000/ffff880149715ad0)
[  229.213414] isci 0000:0b:00.0: sci_controller_process_completions: completion queue entry:0x8000a0e9
[  229.214401] BUG: unable to handle kernel NULL pointer dereference at 0000000000000228
[  229.214401] IP:jdskirvi-testlbo [&lt;ffffffffa00a58be&gt;] sci_request_completed_state_enter+0x50/0xafb [isci]
[  229.214401] PGD 13d19e067 PUD 13d104067 PMD 0
[  229.214401] Oops: 0000 [#1] SMP
[  229.214401] CPU 0 x kernel: [  226
[  229.214401] Modules linked in: ipv6 dm_multipath uinput nouveau snd_hda_codec_realtek snd_hda_intel ttm drm_kms_helper drm snd_hda_codec snd_hwdep snd_pcm snd_timer i2c_algo_bit isci snd libsas ioatdma mxm_wmi iTCO_wdt soundcore snd_page_alloc scsi_transport_sas iTCO_vendor_support wmi dca video i2c_i801 i2c_core [last unloaded: speedstep_lib]
[  229.214401]
[  229.214401] Pid: 5, comm: kworker/u:0 Not tainted 3.0.0-isci-11.7.29+ #30.353196] Buffer  Intel Corporation Stoakley/Pearlcity Workstation
[  229.214401] RIP: 0010:[&lt;ffffffffa00a58be&gt;] I/O error on dev [&lt;ffffffffa00a58be&gt;] sci_request_completed_state_enter+0x50/0xafb [isci]
[  229.214401] RSP: 0018:ffff88014fc03d20  EFLAGS: 00010046
[  229.214401] RAX: 0000000000000000 RBX: ffff88014741f000 RCX: 0000000000000000
[  229.214401] RDX: ffffffffa00b2c90 RSI: 0000000000000017 RDI: ffff88014741f0a0
[  229.214401] RBP: ffff88014fc03d90 R08: 0000000000000018 R09: 0000000000000000
[  229.214401] R10: 0000000000000000 R11: ffffffff81a17d98 R12: 000000000000001d
[  229.214401] R13: ffff8801470f46c0 R14: 0000000000000000 R15: 0000000000008000
[  229.214401] FS:  0000000000000000(0000) GS:ffff88014fc00000(0000) knlGS:0000000000000000
[  229.214401] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[  229.214401] CR2: 0000000000000228 CR3: 000000013ceaa000 CR4: 00000000000406f0
[  229.214401] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  229.214401] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[  229.214401] Process kworker/u:0 (pid: 5, threadinfo ffff880149714000, task ffff880149718000)
[  229.214401] Call Trace:
[  229.214401]  &lt;IRQ&gt;
[  229.214401]  [&lt;ffffffffa00aa6ce&gt;] sci_change_state+0x4a/0x4f [isci]
[  229.214401]  [&lt;ffffffffa00a4ca6&gt;] sci_io_request_tc_completion+0x79c/0x7a0 [isci]
[  229.214401]  [&lt;ffffffffa00acf35&gt;] sci_controller_process_completions+0x14f/0x396 [isci]
[  229.214401]  [&lt;ffffffffa00abbda&gt;] ? spin_lock_irq+0xe/0x10 [isci]
[  229.214401]  [&lt;ffffffffa00ad2cf&gt;] isci_host_completion_routine+0x71/0x2be [isci]
[  229.214401]  [&lt;ffffffff8107c6b3&gt;] ? mark_held_locks+0x52/0x70
[  229.214401]  [&lt;ffffffff810538e8&gt;] tasklet_action+0x90/0xf1
[  229.214401]  [&lt;ffffffff81054050&gt;] __do_softirq+0xe5/0x1bf
[  229.214401]  [&lt;ffffffff8106d9d1&gt;] ? hrtimer_interrupt+0x129/0x1bb
[  229.214401]  [&lt;ffffffff814ff69c&gt;] call_softirq+0x1c/0x30
[  229.214401]  [&lt;ffffffff8100bb67&gt;] do_softirq+0x4b/0xa3
[  229.214401]  [&lt;ffffffff81053d84&gt;] irq_exit+0x53/0xb4
[  229.214401]  [&lt;ffffffff814fffe7&gt;] smp_apic_timer_interrupt+0x83/0x91
[  229.214401]  [&lt;ffffffff814fee53&gt;] apic_timer_interrupt+0x13/0x20
[  229.214401]  &lt;EOI&gt;
[  229.214401]  [&lt;ffffffff814f7ad4&gt;] ? retint_restore_args+0x13/0x13
[  229.214401]  [&lt;ffffffff8107af29&gt;] ? trace_hardirqs_off+0xd/0xf
[  229.214401]  [&lt;ffffffff8104ea71&gt;] ? vprintk+0x40b/0x452
[  229.214401]  [&lt;ffffffff814f4b5a&gt;] printk+0x41/0x47
[  229.214401]  [&lt;ffffffff81314484&gt;] __dev_printk+0x78/0x7a
[  229.214401]  [&lt;ffffffff8131471e&gt;] dev_printk+0x45/0x47
[  229.214401]  [&lt;ffffffffa00ae2a3&gt;] isci_terminate_request_core+0x15d/0x317 [isci]
[  229.214401]  [&lt;ffffffffa00af1ad&gt;] isci_terminate_pending_requests+0x1a4/0x204 [isci]
[  229.214401]  [&lt;ffffffffa00229f6&gt;] ? sas_phye_oob_error+0xc3/0xc3 [libsas]
[  229.214401]  [&lt;ffffffffa00a7d9e&gt;] isci_remote_device_nuke_requests+0xa6/0xff [isci]
[  229.214401]  [&lt;ffffffffa00a811a&gt;] isci_remote_device_stop+0x7c/0x166 [isci]
[  229.214401]  [&lt;ffffffffa00229f6&gt;] ? sas_phye_oob_error+0xc3/0xc3 [libsas]
[  229.214401]  [&lt;ffffffffa00a827a&gt;] isci_remote_device_gone+0x76/0x7e [isci]
[  229.214401]  [&lt;ffffffffa002363e&gt;] sas_notify_lldd_dev_gone+0x34/0x36 [libsas]
[  229.214401]  [&lt;ffffffffa0023945&gt;] sas_unregister_dev+0x57/0x9c [libsas]
[  229.214401]  [&lt;ffffffffa00239c0&gt;] sas_unregister_domain_devices+0x36/0x65 [libsas]
[  229.214401]  [&lt;ffffffffa0022cb8&gt;] sas_deform_port+0x72/0x1ac [libsas]
[  229.214401]  [&lt;ffffffffa00229f6&gt;] ? sas_phye_oob_error+0xc3/0xc3 [libsas]
[  229.214401]  [&lt;ffffffffa0022a34&gt;] sas_phye_loss_of_signal+0x3e/0x42 [libsas]

Signed-off-by: Jeff Skirvin &lt;jeffrey.d.skirvin@intel.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The LLDD needs to obtain a reference to the device through the request
itself and not through the domain_device, because the
domain_device.lldd_dev is set to NULL early in the lldd_dev_gone call.
This relies on the fact that the isci_remote_device object is keeping a
seperate reference count of outstanding requests.  TODO: unify the
request count tracking with the isci_remote_device kref.

The failure signature of this condition looks like the following
log, where the important bits are the call to lldd_dev_gone followed
by a crash in isci_terminate_request_core:

[  229.151541] isci 0000:0b:00.0: isci_remote_device_gone: domain_device = ffff8801492d4800, isci_device = ffff880143c657d0, isci_port = ffff880143c63658
[  229.166007] isci 0000:0b:00.0: isci_remote_device_stop: isci_device = ffff880143c657d0
[  229.175317] isci 0000:0b:00.0: isci_terminate_pending_requests: idev=ffff880143c657d0 request=ffff88014741f000; task=ffff8801470f46c0 old_state=2
[  229.189702] isci 0000:0b:00.0: isci_terminate_request_core: device = ffff880143c657d0; request = ffff88014741f000
[  229.201339] isci 0000:0b:00.0: isci_terminate_request_core: before completion wait (ffff88014741f000/ffff880149715ad0)
[  229.213414] isci 0000:0b:00.0: sci_controller_process_completions: completion queue entry:0x8000a0e9
[  229.214401] BUG: unable to handle kernel NULL pointer dereference at 0000000000000228
[  229.214401] IP:jdskirvi-testlbo [&lt;ffffffffa00a58be&gt;] sci_request_completed_state_enter+0x50/0xafb [isci]
[  229.214401] PGD 13d19e067 PUD 13d104067 PMD 0
[  229.214401] Oops: 0000 [#1] SMP
[  229.214401] CPU 0 x kernel: [  226
[  229.214401] Modules linked in: ipv6 dm_multipath uinput nouveau snd_hda_codec_realtek snd_hda_intel ttm drm_kms_helper drm snd_hda_codec snd_hwdep snd_pcm snd_timer i2c_algo_bit isci snd libsas ioatdma mxm_wmi iTCO_wdt soundcore snd_page_alloc scsi_transport_sas iTCO_vendor_support wmi dca video i2c_i801 i2c_core [last unloaded: speedstep_lib]
[  229.214401]
[  229.214401] Pid: 5, comm: kworker/u:0 Not tainted 3.0.0-isci-11.7.29+ #30.353196] Buffer  Intel Corporation Stoakley/Pearlcity Workstation
[  229.214401] RIP: 0010:[&lt;ffffffffa00a58be&gt;] I/O error on dev [&lt;ffffffffa00a58be&gt;] sci_request_completed_state_enter+0x50/0xafb [isci]
[  229.214401] RSP: 0018:ffff88014fc03d20  EFLAGS: 00010046
[  229.214401] RAX: 0000000000000000 RBX: ffff88014741f000 RCX: 0000000000000000
[  229.214401] RDX: ffffffffa00b2c90 RSI: 0000000000000017 RDI: ffff88014741f0a0
[  229.214401] RBP: ffff88014fc03d90 R08: 0000000000000018 R09: 0000000000000000
[  229.214401] R10: 0000000000000000 R11: ffffffff81a17d98 R12: 000000000000001d
[  229.214401] R13: ffff8801470f46c0 R14: 0000000000000000 R15: 0000000000008000
[  229.214401] FS:  0000000000000000(0000) GS:ffff88014fc00000(0000) knlGS:0000000000000000
[  229.214401] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[  229.214401] CR2: 0000000000000228 CR3: 000000013ceaa000 CR4: 00000000000406f0
[  229.214401] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  229.214401] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[  229.214401] Process kworker/u:0 (pid: 5, threadinfo ffff880149714000, task ffff880149718000)
[  229.214401] Call Trace:
[  229.214401]  &lt;IRQ&gt;
[  229.214401]  [&lt;ffffffffa00aa6ce&gt;] sci_change_state+0x4a/0x4f [isci]
[  229.214401]  [&lt;ffffffffa00a4ca6&gt;] sci_io_request_tc_completion+0x79c/0x7a0 [isci]
[  229.214401]  [&lt;ffffffffa00acf35&gt;] sci_controller_process_completions+0x14f/0x396 [isci]
[  229.214401]  [&lt;ffffffffa00abbda&gt;] ? spin_lock_irq+0xe/0x10 [isci]
[  229.214401]  [&lt;ffffffffa00ad2cf&gt;] isci_host_completion_routine+0x71/0x2be [isci]
[  229.214401]  [&lt;ffffffff8107c6b3&gt;] ? mark_held_locks+0x52/0x70
[  229.214401]  [&lt;ffffffff810538e8&gt;] tasklet_action+0x90/0xf1
[  229.214401]  [&lt;ffffffff81054050&gt;] __do_softirq+0xe5/0x1bf
[  229.214401]  [&lt;ffffffff8106d9d1&gt;] ? hrtimer_interrupt+0x129/0x1bb
[  229.214401]  [&lt;ffffffff814ff69c&gt;] call_softirq+0x1c/0x30
[  229.214401]  [&lt;ffffffff8100bb67&gt;] do_softirq+0x4b/0xa3
[  229.214401]  [&lt;ffffffff81053d84&gt;] irq_exit+0x53/0xb4
[  229.214401]  [&lt;ffffffff814fffe7&gt;] smp_apic_timer_interrupt+0x83/0x91
[  229.214401]  [&lt;ffffffff814fee53&gt;] apic_timer_interrupt+0x13/0x20
[  229.214401]  &lt;EOI&gt;
[  229.214401]  [&lt;ffffffff814f7ad4&gt;] ? retint_restore_args+0x13/0x13
[  229.214401]  [&lt;ffffffff8107af29&gt;] ? trace_hardirqs_off+0xd/0xf
[  229.214401]  [&lt;ffffffff8104ea71&gt;] ? vprintk+0x40b/0x452
[  229.214401]  [&lt;ffffffff814f4b5a&gt;] printk+0x41/0x47
[  229.214401]  [&lt;ffffffff81314484&gt;] __dev_printk+0x78/0x7a
[  229.214401]  [&lt;ffffffff8131471e&gt;] dev_printk+0x45/0x47
[  229.214401]  [&lt;ffffffffa00ae2a3&gt;] isci_terminate_request_core+0x15d/0x317 [isci]
[  229.214401]  [&lt;ffffffffa00af1ad&gt;] isci_terminate_pending_requests+0x1a4/0x204 [isci]
[  229.214401]  [&lt;ffffffffa00229f6&gt;] ? sas_phye_oob_error+0xc3/0xc3 [libsas]
[  229.214401]  [&lt;ffffffffa00a7d9e&gt;] isci_remote_device_nuke_requests+0xa6/0xff [isci]
[  229.214401]  [&lt;ffffffffa00a811a&gt;] isci_remote_device_stop+0x7c/0x166 [isci]
[  229.214401]  [&lt;ffffffffa00229f6&gt;] ? sas_phye_oob_error+0xc3/0xc3 [libsas]
[  229.214401]  [&lt;ffffffffa00a827a&gt;] isci_remote_device_gone+0x76/0x7e [isci]
[  229.214401]  [&lt;ffffffffa002363e&gt;] sas_notify_lldd_dev_gone+0x34/0x36 [libsas]
[  229.214401]  [&lt;ffffffffa0023945&gt;] sas_unregister_dev+0x57/0x9c [libsas]
[  229.214401]  [&lt;ffffffffa00239c0&gt;] sas_unregister_domain_devices+0x36/0x65 [libsas]
[  229.214401]  [&lt;ffffffffa0022cb8&gt;] sas_deform_port+0x72/0x1ac [libsas]
[  229.214401]  [&lt;ffffffffa00229f6&gt;] ? sas_phye_oob_error+0xc3/0xc3 [libsas]
[  229.214401]  [&lt;ffffffffa0022a34&gt;] sas_phye_loss_of_signal+0x3e/0x42 [libsas]

Signed-off-by: Jeff Skirvin &lt;jeffrey.d.skirvin@intel.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[SCSI] isci: fix decode of DONE_CRC_ERR TC completion status</title>
<updated>2011-10-02T18:21:51+00:00</updated>
<author>
<name>Jeff Skirvin</name>
<email>jeffrey.d.skirvin@intel.com</email>
</author>
<published>2011-09-29T01:47:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7582ba8bdf5a119221ef663a327932cfc62bed79'/>
<id>7582ba8bdf5a119221ef663a327932cfc62bed79</id>
<content type='text'>
DONE_CRC_ERR is not a RNC suspension condition, so do not change the
state to expect the incoming suspension notification.

Signed-off-by: Jeff Skirvin &lt;jeffrey.d.skirvin@intel.com&gt;
[djbw: dropped DONE_CMD_LL_R_ERR change]
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
DONE_CRC_ERR is not a RNC suspension condition, so do not change the
state to expect the incoming suspension notification.

Signed-off-by: Jeff Skirvin &lt;jeffrey.d.skirvin@intel.com&gt;
[djbw: dropped DONE_CMD_LL_R_ERR change]
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[SCSI] isci: atapi support</title>
<updated>2011-10-02T18:20:03+00:00</updated>
<author>
<name>Dan Williams</name>
<email>dan.j.williams@intel.com</email>
</author>
<published>2011-10-01T01:52:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b50102d3e9a43a75379407c2080f696f61cb286b'/>
<id>b50102d3e9a43a75379407c2080f696f61cb286b</id>
<content type='text'>
Based on original implementation from Jiangbi Liu and Maciej Trela.

ATAPI transfers happen in two-to-three stages.  The two stage atapi
commands are those that include a dma data transfer.  The data transfer
portion of these operations is handled by the hardware packet-dma
acceleration.  The three-stage commands do not have a data transfer and
are handled without hardware assistance in raw frame mode.

stage1: transmit host-to-device fis to notify the device of an incoming
atapi cdb.  Upon reception of the pio-setup-fis repost the task_context
to perform the dma transfer of the cdb+data (go to stage3), or repost
the task_context to transmit the cdb as a raw frame (go to stage 2).

stage2: wait for hardware notification of the cdb transmission and then
go to stage 3.

stage3: wait for the arrival of the terminating device-to-host fis and
terminate the command.

To keep the implementation simple we only support ATAPI packet-dma
protocol (for commands with data) to avoid needing to handle the data
transfer manually (like we do for SATA-PIO).  This may affect
compatibility for a small number of devices (see
ATA_HORKAGE_ATAPI_MOD16_DMA).

If the data-transfer underruns, or encounters an error the
device-to-host fis is expected to arrive in the unsolicited frame queue
to pass to libata for disposition.  However, in the DONE_UNEXP_FIS (data
underrun) case it appears we need to craft a response.  In the
DONE_REG_ERR case we do receive the UF and propagate it to libsas.

Signed-off-by: Maciej Trela &lt;maciej.trela@intel.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Based on original implementation from Jiangbi Liu and Maciej Trela.

ATAPI transfers happen in two-to-three stages.  The two stage atapi
commands are those that include a dma data transfer.  The data transfer
portion of these operations is handled by the hardware packet-dma
acceleration.  The three-stage commands do not have a data transfer and
are handled without hardware assistance in raw frame mode.

stage1: transmit host-to-device fis to notify the device of an incoming
atapi cdb.  Upon reception of the pio-setup-fis repost the task_context
to perform the dma transfer of the cdb+data (go to stage3), or repost
the task_context to transmit the cdb as a raw frame (go to stage 2).

stage2: wait for hardware notification of the cdb transmission and then
go to stage 3.

stage3: wait for the arrival of the terminating device-to-host fis and
terminate the command.

To keep the implementation simple we only support ATAPI packet-dma
protocol (for commands with data) to avoid needing to handle the data
transfer manually (like we do for SATA-PIO).  This may affect
compatibility for a small number of devices (see
ATA_HORKAGE_ATAPI_MOD16_DMA).

If the data-transfer underruns, or encounters an error the
device-to-host fis is expected to arrive in the unsolicited frame queue
to pass to libata for disposition.  However, in the DONE_UNEXP_FIS (data
underrun) case it appears we need to craft a response.  In the
DONE_REG_ERR case we do receive the UF and propagate it to libsas.

Signed-off-by: Maciej Trela &lt;maciej.trela@intel.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[SCSI] isci: fix support for large smp requests</title>
<updated>2011-10-02T18:07:17+00:00</updated>
<author>
<name>Dan Williams</name>
<email>dan.j.williams@intel.com</email>
</author>
<published>2011-09-29T01:35:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=54b5e3a4bfa3452bc10cd4da672099ccc46b8c09'/>
<id>54b5e3a4bfa3452bc10cd4da672099ccc46b8c09</id>
<content type='text'>
Kill the local smp response buffer.

Besides being unnecessary, it is too small (currently truncates
responses to 60 bytes).  The mid-layer will have already allocated a
sufficiently sized buffer, just kmap and copy into it directly.

Cc: &lt;stable@kernel.org&gt;
Reported-by: Derick Marks &lt;derick.w.marks@intel.com&gt;
Tested-by: Derick Marks &lt;derick.w.marks@intel.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Kill the local smp response buffer.

Besides being unnecessary, it is too small (currently truncates
responses to 60 bytes).  The mid-layer will have already allocated a
sufficiently sized buffer, just kmap and copy into it directly.

Cc: &lt;stable@kernel.org&gt;
Reported-by: Derick Marks &lt;derick.w.marks@intel.com&gt;
Tested-by: Derick Marks &lt;derick.w.marks@intel.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[SCSI] isci: Leave requests alone if already terminating.</title>
<updated>2011-08-24T02:58:44+00:00</updated>
<author>
<name>Jeff Skirvin</name>
<email>jeffrey.d.skirvin@intel.com</email>
</author>
<published>2011-07-30T00:17:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=39ea2c5b5ffaa344467da53e885cfa4ac0105050'/>
<id>39ea2c5b5ffaa344467da53e885cfa4ac0105050</id>
<content type='text'>
Instead of immediately completing any request that has a second
termination call made on it, wait for the TC done/abort HW event.

Signed-off-by: Jeff Skirvin &lt;jeffrey.d.skirvin@intel.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of immediately completing any request that has a second
termination call made on it, wait for the TC done/abort HW event.

Signed-off-by: Jeff Skirvin &lt;jeffrey.d.skirvin@intel.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[SCSI] isci: fix sata response handling</title>
<updated>2011-08-24T02:45:45+00:00</updated>
<author>
<name>Dan Williams</name>
<email>dan.j.williams@intel.com</email>
</author>
<published>2011-07-30T00:16:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1a878284473284f9577d44babf16d87152a05c33'/>
<id>1a878284473284f9577d44babf16d87152a05c33</id>
<content type='text'>
A bug (likely copy/paste) that has been carried from the original
implementation.  The unsolicited frame handling structure returns the
d2h fis in the isci_request.stp.rsp buffer.

Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A bug (likely copy/paste) that has been carried from the original
implementation.  The unsolicited frame handling structure returns the
d2h fis in the isci_request.stp.rsp buffer.

Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>isci: pare back error messsages</title>
<updated>2011-07-03T11:04:52+00:00</updated>
<author>
<name>Dan Williams</name>
<email>dan.j.williams@intel.com</email>
</author>
<published>2011-07-01T19:07:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a8a0a133b03c6863d0f77229d19befca4de905fa'/>
<id>a8a0a133b03c6863d0f77229d19befca4de905fa</id>
<content type='text'>
The messages emitted from task.c and some from request.c likely
duplicate (in a less undertandable way) what is reported by the
midlayer.

Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The messages emitted from task.c and some from request.c likely
duplicate (in a less undertandable way) what is reported by the
midlayer.

Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>isci: merge sata.[ch] into request.c</title>
<updated>2011-07-03T11:04:52+00:00</updated>
<author>
<name>Dan Williams</name>
<email>dan.j.williams@intel.com</email>
</author>
<published>2011-07-01T17:52:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=16ba77091b44af28b3ff3318b4a2aa4fbf7d4c24'/>
<id>16ba77091b44af28b3ff3318b4a2aa4fbf7d4c24</id>
<content type='text'>
Undo some needless separation.

Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Undo some needless separation.

Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>isci: kill 'get/set' macros</title>
<updated>2011-07-03T11:04:52+00:00</updated>
<author>
<name>Dan Williams</name>
<email>dan.j.williams@intel.com</email>
</author>
<published>2011-07-01T09:25:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=34a991587a5cc9f78960c2c9beea217866458c41'/>
<id>34a991587a5cc9f78960c2c9beea217866458c41</id>
<content type='text'>
Most of these simple dereference macros are longer than their open coded
equivalent.  Deleting enum sci_controller_mode is thrown in for good
measure.

Reported-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Most of these simple dereference macros are longer than their open coded
equivalent.  Deleting enum sci_controller_mode is thrown in for good
measure.

Reported-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
