<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/scsi/isci/request.c, branch linux-3.2.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.2.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.2.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-12-06T11:20:23Z</updated>
<entry>
<title>isci: copy fis 0x34 response into proper buffer</title>
<updated>2012-12-06T11:20:23Z</updated>
<author>
<name>Maciej Patelczyk</name>
</author>
<published>2012-10-15T12:29:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=733dcd5a3d61164b794d461750aed607cd46120d'/>
<id>urn:sha1:733dcd5a3d61164b794d461750aed607cd46120d</id>
<content type='text'>
commit 49bd665c5407a453736d3232ee58f2906b42e83c upstream.

SATA MICROCODE DOWNALOAD fails on isci driver. After receiving Register
Device to Host (FIS 0x34) frame Initiator resets phy.
In the frame handler routine response (FIS 0x34) was copied into wrong
buffer and upper layer did not receive any answer which resulted in
timeout and reset.
This patch corrects this bug.

Signed-off-by: Maciej Patelczyk &lt;maciej.patelczyk@intel.com&gt;
Signed-off-by: Lukasz Dorau &lt;lukasz.dorau@intel.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>[SCSI] isci: Remove redundant isci_request.ttype field.</title>
<updated>2011-10-31T09:19:47Z</updated>
<author>
<name>Jeff Skirvin</name>
</author>
<published>2011-10-27T22:05:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3b34c169f8197e02529fa3ec703703c2ce418c57'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>[SCSI] isci: Lookup device references through requests in completions.</title>
<updated>2011-10-31T09:14:44Z</updated>
<author>
<name>Jeff Skirvin</name>
</author>
<published>2011-10-27T22:04:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0e2e27990e2dcd415f7974e8460a2f05accdddfb'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>[SCSI] isci: fix decode of DONE_CRC_ERR TC completion status</title>
<updated>2011-10-02T18:21:51Z</updated>
<author>
<name>Jeff Skirvin</name>
</author>
<published>2011-09-29T01:47:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7582ba8bdf5a119221ef663a327932cfc62bed79'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>[SCSI] isci: atapi support</title>
<updated>2011-10-02T18:20:03Z</updated>
<author>
<name>Dan Williams</name>
</author>
<published>2011-10-01T01:52:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b50102d3e9a43a75379407c2080f696f61cb286b'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>[SCSI] isci: fix support for large smp requests</title>
<updated>2011-10-02T18:07:17Z</updated>
<author>
<name>Dan Williams</name>
</author>
<published>2011-09-29T01:35:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=54b5e3a4bfa3452bc10cd4da672099ccc46b8c09'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>[SCSI] isci: Leave requests alone if already terminating.</title>
<updated>2011-08-24T02:58:44Z</updated>
<author>
<name>Jeff Skirvin</name>
</author>
<published>2011-07-30T00:17:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=39ea2c5b5ffaa344467da53e885cfa4ac0105050'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>[SCSI] isci: fix sata response handling</title>
<updated>2011-08-24T02:45:45Z</updated>
<author>
<name>Dan Williams</name>
</author>
<published>2011-07-30T00:16:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1a878284473284f9577d44babf16d87152a05c33'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>isci: pare back error messsages</title>
<updated>2011-07-03T11:04:52Z</updated>
<author>
<name>Dan Williams</name>
</author>
<published>2011-07-01T19:07:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a8a0a133b03c6863d0f77229d19befca4de905fa'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>isci: merge sata.[ch] into request.c</title>
<updated>2011-07-03T11:04:52Z</updated>
<author>
<name>Dan Williams</name>
</author>
<published>2011-07-01T17:52:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=16ba77091b44af28b3ff3318b4a2aa4fbf7d4c24'/>
<id>urn:sha1:16ba77091b44af28b3ff3318b4a2aa4fbf7d4c24</id>
<content type='text'>
Undo some needless separation.

Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</content>
</entry>
</feed>
