From: jack_wang <jack_wang@usish.com>
To: santosh nayak <santoshprasadnayak@gmail.com>
Cc: Mark Salyzyn <mark_salyzyn@xyratex.com>,
lindar_liu <lindar_liu@usish.com>,
James Bottomley <JBottomley@parallels.com>,
linux-scsi <linux-scsi@vger.kernel.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
kernel-janitors <kernel-janitors@vger.kernel.org>,
Dan Carpenter <dan.carpenter@oracle.com>
Subject: Re: Re: [PATCH 1/2] [SCSI] pm8001: Fix bogus interrupt state flag issue.
Date: Thu, 08 Mar 2012 14:15:03 +0000 [thread overview]
Message-ID: <201203082215017182231@usish.com> (raw)
In-Reply-To: 528D7E8A-B2F6-4EDB-A7C0-E0BF494038D0@xyratex.com
VGhhbmtzIE1hcmsgZm9yIGxvb2sgaW50byB0aGlzLllvdSdyZSByaWdodC4gVGhlIGNoYW5nZSBm
b3IgdGFza19zdGF0ZV9sb2NrIGlzIG5vdCByaWdodC4NClNvcnJ5IGZvciBub3QgbG9vayBjYXJl
ZnVsbHkgYWJvdXQgdGhlIGNoYW5nZS4NCg0KDQoNCi0tLS0tLS0tLS0tLS0tDQpqYWNrX3dhbmcN
Cj5OQUsNCj4NCj5JbiB0aGUgZnJhZ21lbnQgYmVsb3csIHRoZSAnc3Bpbl9sb2NrX2lycXNhdmUo
JnQtPnRhc2tfc3RhdGVfbG9jaywgZmxhZ3MpOycgaXMgMTAwJSBsZWdpdGltYXRlLiBUaGUgY2hh
bmdlIHlvdSBkaWQgd2FzIG5vdCBpbmVydCwgYW5kIHJlc3VsdCBpbiB0aGUgSVJRIGJlaW5nIGRp
c2FibGVkIHVwb24gZXhpdCBzaG91bGQgYSBTQVNfVEFTS19TVEFURV9BQk9SVEVEIHRhc2sgc3Rh
dGUgY29uZGl0aW9uIG9jY3VyLg0KPg0KPkkgcHJvcG9zZSAoYW5ub3RhdGVkIGJlbG93KSB5b3Ug
bGVhdmUgdGhlIGZsYWdzIGF1dG9tYXRpYyB2YXJpYWJsZSwgYnV0IHVuaW5pdGlhbGl6ZWQuIFRo
ZSBjaGFuZ2VzIHN1cnJvdW5kaW5nIHNwaW5fKmxvY2tfaXJxKigmcG04MDAxX2hhLT5sb2NrLCBm
bGFncykgYXJlIE9LLCBidXQgcmV2ZXJ0IGJhY2sgdGhlIGNoYW5nZXMgc3Vycm91bmRpbmcgdGhl
IHNwaW5fKmxvY2tfaXJxKigmdC0+dGFzay0+c3RhdGVfbG9jayxmbGFncykgc28gdGhhdCBsb2Nr
IHdvdWxkIGJlIHByb3Blcmx5IG5lc3RlZC4NCj4NCj5UbyBiZSBwZWRhbnRpYywgYW5kIHRvIGJl
IG1vcmUgY29ycmVjdCwgdGhpcyBjb2RlIHNob3VsZCBoYXZlIHNwYXduZWQgYSB3b3JrIHF1ZXVl
IHRhc2sgdG8gcGVyZm9ybSB0aGUgdC0+dGFza19kb25lKHQpIG9wZXJhdGlvbiBpbiBhIHNlcGFy
YXRlIHRocmVhZCByYXRoZXIgdGhhbiBpbmxpbmUgYW5kIHByZWNhcmlvdXNseSB1bmxvY2tlZDsg
YnV0IHRoYXQgd291bGQgYmUgYmV5b25kIHRoZSBzY29wZSBvZiB0aGVzZSBjaGFuZ2VzIGFuZCBz
aG91bGQgYmUgbGVmdCBmb3IgZnV0dXJlIHdvcmsgdG8gZGVjaWRlIGlmIGl0IGlzIGV2ZW4gbmVj
ZXNzYXJ5LiBOb3Qgc3VyZSBob3cgc3VjaCBhIGNoYW5nZSB3b3VsZCBhZmZlY3QgcGVyZm9ybWFu
Y2UgKHVzaW5nIHRoZSB3b3JrIHF1ZXVlKSAuLi4gc28gSSBhbSAnYWZyYWlkJyBvZiBwdXNoaW5n
IHN1Y2ggYSBjaGFuZ2UgaW4gYW55IGNhc2UgZ2l2ZW4gdGhlIHJlbGF0aXZlbHkgcmVsaWFibGUg
b3BlcmF0aW9uIG9mIHRoaXMgZHJpdmVyIChhbmQgdGhlIGR5bmFtaWMgbmF0dXJlIG9mIHRoZSBj
aGFuZ2VzIERhbiBpcyBtYWtpbmcgdG8gdGhlIFNBVEEgc2lkZSBvZiB0aGluZ3MgZm9yIGluc3Rh
bmNlIDstfSApLg0KPg0KPkkgYW0gc29ycnkgZm9yIHRha2luZyBzbyBsb25nIHRvIGdldCB0byB0
aGUgdGFzayBvZiByZXZpZXdpbmcgdGhpcyAoYW5kIHRoZSBwcmV2aW91cykgY29kZS4gSSBsb29r
IGZvcndhcmQgdG8geW91ciBjb21tZW50cy4NCj4NCj5TaW5jZXJlbHkgLS0gTWFyayBTYWx5enlu
DQo+DQo+T24gRmViIDI2LCAyMDEyLCBhdCA4OjMzIEFNLCBzYW50b3NoIG5heWFrIHdyb3RlOg0K
Pg0KPj4gQEAgLTIyMDcsNyArMjIwNiw2IEBAIG1waV9zYXRhX2NvbXBsZXRpb24oc3RydWN0IHBt
ODAwMV9oYmFfaW5mbyAqcG04MDAxX2hhLCB2b2lkICpwaW9tYikNCj4+IHN0YXRpYyB2b2lkIG1w
aV9zYXRhX2V2ZW50KHN0cnVjdCBwbTgwMDFfaGJhX2luZm8gKnBtODAwMV9oYSAsIHZvaWQgKnBp
b21iKQ0KPj4gew0KPj4gCXN0cnVjdCBzYXNfdGFzayAqdDsNCj4+IC0JdW5zaWduZWQgbG9uZyBm
bGFncyA9IDA7DQo+TUdTPgl1bnNpZ25lZCBsb25nIGZsYWdzOw0KPj4gCXN0cnVjdCB0YXNrX3N0
YXR1c19zdHJ1Y3QgKnRzOw0KPj4gCXN0cnVjdCBwbTgwMDFfY2NiX2luZm8gKmNjYjsNCj4+IAlz
dHJ1Y3QgcG04MDAxX2RldmljZSAqcG04MDAxX2RldjsNCj4+IEBAIC0yMjg3LDkgKzIyODUsOSBA
QCBzdGF0aWMgdm9pZCBtcGlfc2F0YV9ldmVudChzdHJ1Y3QgcG04MDAxX2hiYV9pbmZvICpwbTgw
MDFfaGEgLCB2b2lkICpwaW9tYikNCj4+IAkJCXRzLT5zdGF0ID0gU0FTX1FVRVVFX0ZVTEw7DQo+
PiAJCQlwbTgwMDFfY2NiX3Rhc2tfZnJlZShwbTgwMDFfaGEsIHQsIGNjYiwgdGFnKTsNCj4+IAkJ
CW1iKCk7LypkaXR0byovDQo+PiAtCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG04MDAxX2hh
LT5sb2NrLCBmbGFncyk7DQo+PiArCQkJc3Bpbl91bmxvY2tfaXJxKCZwbTgwMDFfaGEtPmxvY2sp
Ow0KPj4gCQkJdC0+dGFza19kb25lKHQpOw0KPj4gLQkJCXNwaW5fbG9ja19pcnFzYXZlKCZwbTgw
MDFfaGEtPmxvY2ssIGZsYWdzKTsNCj4+ICsJCQlzcGluX2xvY2tfaXJxKCZwbTgwMDFfaGEtPmxv
Y2spOw0KPj4gCQkJcmV0dXJuOw0KPj4gCQl9DQo+PiAJCWJyZWFrOw0KPj4gQEAgLTIzODcsMzEg
KzIzODUsMzEgQEAgc3RhdGljIHZvaWQgbXBpX3NhdGFfZXZlbnQoc3RydWN0IHBtODAwMV9oYmFf
aW5mbyAqcG04MDAxX2hhICwgdm9pZCAqcGlvbWIpDQo+PiAJCXRzLT5zdGF0ID0gU0FTX09QRU5f
VE87DQo+PiAJCWJyZWFrOw0KPj4gCX0NCj4+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJnQtPnRhc2tf
c3RhdGVfbG9jaywgZmxhZ3MpOw0KPj4gKwlzcGluX2xvY2tfaXJxKCZ0LT50YXNrX3N0YXRlX2xv
Y2spOw0KPk1HUz4Jc3Bpbl9sb2NrX2lycXNhdmUoJnQtPnRhc2tfc3RhdGVfbG9jaywgZmxhZ3Mp
Ow0KPj4gCXQtPnRhc2tfc3RhdGVfZmxhZ3MgJj0gflNBU19UQVNLX1NUQVRFX1BFTkRJTkc7DQo+
PiAJdC0+dGFza19zdGF0ZV9mbGFncyAmPSB+U0FTX1RBU0tfQVRfSU5JVElBVE9SOw0KPj4gCXQt
PnRhc2tfc3RhdGVfZmxhZ3MgfD0gU0FTX1RBU0tfU1RBVEVfRE9ORTsNCj4+IAlpZiAodW5saWtl
bHkoKHQtPnRhc2tfc3RhdGVfZmxhZ3MgJiBTQVNfVEFTS19TVEFURV9BQk9SVEVEKSkpIHsNCj4+
IC0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnQtPnRhc2tfc3RhdGVfbG9jaywgZmxhZ3MpOw0K
Pj4gKwkJc3Bpbl91bmxvY2tfaXJxKCZ0LT50YXNrX3N0YXRlX2xvY2spOw0KPk1HUz4JCXNwaW5f
dW5sb2NrX2lycXJlc3RvcmUoJnQtPnRhc2tfc3RhdGVfbG9jaywgZmxhZ3MpOw0KPj4gCQlQTTgw
MDFfRkFJTF9EQkcocG04MDAxX2hhLA0KPj4gCQkJcG04MDAxX3ByaW50aygidGFzayAweCVwIGRv
bmUgd2l0aCBpb19zdGF0dXMgMHgleCINCj4+IAkJCSIgcmVzcCAweCV4IHN0YXQgMHgleCBidXQg
YWJvcnRlZCBieSB1cHBlciBsYXllciFcbiIsDQo+PiAJCQl0LCBldmVudCwgdHMtPnJlc3AsIHRz
LT5zdGF0KSk7DQo+PiAJCXBtODAwMV9jY2JfdGFza19mcmVlKHBtODAwMV9oYSwgdCwgY2NiLCB0
YWcpOw0KPj4gCX0gZWxzZSBpZiAodC0+dWxkZF90YXNrKSB7DQo+PiAtCQlzcGluX3VubG9ja19p
cnFyZXN0b3JlKCZ0LT50YXNrX3N0YXRlX2xvY2ssIGZsYWdzKTsNCj4+ICsJCXNwaW5fdW5sb2Nr
X2lycSgmdC0+dGFza19zdGF0ZV9sb2NrKTsNCj4+IAkJcG04MDAxX2NjYl90YXNrX2ZyZWUocG04
MDAxX2hhLCB0LCBjY2IsIHRhZyk7DQo+PiAJCW1iKCk7LyogZGl0dG8gKi8NCj4+IC0JCXNwaW5f
dW5sb2NrX2lycXJlc3RvcmUoJnBtODAwMV9oYS0+bG9jaywgZmxhZ3MpOw0KPj4gKwkJc3Bpbl91
bmxvY2tfaXJxKCZwbTgwMDFfaGEtPmxvY2spOw0KPj4gCQl0LT50YXNrX2RvbmUodCk7DQo+PiAt
CQlzcGluX2xvY2tfaXJxc2F2ZSgmcG04MDAxX2hhLT5sb2NrLCBmbGFncyk7DQo+PiArCQlzcGlu
X2xvY2tfaXJxKCZwbTgwMDFfaGEtPmxvY2spOw0KPj4gCX0gZWxzZSBpZiAoIXQtPnVsZGRfdGFz
aykgew0KPj4gLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdC0+dGFza19zdGF0ZV9sb2NrLCBm
bGFncyk7DQo+PiArCQlzcGluX3VubG9ja19pcnEoJnQtPnRhc2tfc3RhdGVfbG9jayk7DQo+PiAJ
CXBtODAwMV9jY2JfdGFza19mcmVlKHBtODAwMV9oYSwgdCwgY2NiLCB0YWcpOw0KPj4gCQltYigp
Oy8qZGl0dG8qLw0KPj4gLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG04MDAxX2hhLT5sb2Nr
LCBmbGFncyk7DQo+PiArCQlzcGluX3VubG9ja19pcnEoJnBtODAwMV9oYS0+bG9jayk7DQo+PiAJ
CXQtPnRhc2tfZG9uZSh0KTsNCj4+IC0JCXNwaW5fbG9ja19pcnFzYXZlKCZwbTgwMDFfaGEtPmxv
Y2ssIGZsYWdzKTsNCj4+ICsJCXNwaW5fbG9ja19pcnEoJnBtODAwMV9oYS0+bG9jayk7DQo+PiAJ
fQ0KPj4gfQ0KPg0KPi0tDQo+VG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhl
IGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4LXNjc2kiIGluDQo+dGhlIGJvZHkgb2YgYSBtZXNzYWdl
IHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcNCj5Nb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBo
dHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwNCj4NCj5fX19fX19fX19f
IEluZm9ybWF0aW9uIGZyb20gRVNFVCBOT0QzMiBBbnRpdmlydXMsIHZlcnNpb24gb2YgdmlydXMg
c2lnbmF0dXJlIGRhdGFiYXNlIDU2NTkgKDIwMTAxMTI5KSBfX19fX19fX19fDQo+DQo+VGhlIG1l
c3NhZ2Ugd2FzIGNoZWNrZWQgYnkgRVNFVCBOT0QzMiBBbnRpdmlydXMuDQo+DQo+aHR0cDovL3d3
dy5lc2V0LmNvbQ0KPg0KPg0KPg=
WARNING: multiple messages have this Message-ID (diff)
From: jack_wang <jack_wang@usish.com>
To: santosh nayak <santoshprasadnayak@gmail.com>
Cc: Mark Salyzyn <mark_salyzyn@xyratex.com>,
lindar_liu <lindar_liu@usish.com>,
James Bottomley <JBottomley@parallels.com>,
linux-scsi <linux-scsi@vger.kernel.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
kernel-janitors <kernel-janitors@vger.kernel.org>,
Dan Carpenter <dan.carpenter@oracle.com>
Subject: Re: Re: [PATCH 1/2] [SCSI] pm8001: Fix bogus interrupt state flag issue.
Date: Thu, 8 Mar 2012 22:15:03 +0800 [thread overview]
Message-ID: <201203082215017182231@usish.com> (raw)
In-Reply-To: 528D7E8A-B2F6-4EDB-A7C0-E0BF494038D0@xyratex.com
Thanks Mark for look into this.You're right. The change for task_state_lock is not right.
Sorry for not look carefully about the change.
--------------
jack_wang
>NAK
>
>In the fragment below, the 'spin_lock_irqsave(&t->task_state_lock, flags);' is 100% legitimate. The change you did was not inert, and result in the IRQ being disabled upon exit should a SAS_TASK_STATE_ABORTED task state condition occur.
>
>I propose (annotated below) you leave the flags automatic variable, but uninitialized. The changes surrounding spin_*lock_irq*(&pm8001_ha->lock, flags) are OK, but revert back the changes surrounding the spin_*lock_irq*(&t->task->state_lock,flags) so that lock would be properly nested.
>
>To be pedantic, and to be more correct, this code should have spawned a work queue task to perform the t->task_done(t) operation in a separate thread rather than inline and precariously unlocked; but that would be beyond the scope of these changes and should be left for future work to decide if it is even necessary. Not sure how such a change would affect performance (using the work queue) ... so I am 'afraid' of pushing such a change in any case given the relatively reliable operation of this driver (and the dynamic nature of the changes Dan is making to the SATA side of things for instance ;-} ).
>
>I am sorry for taking so long to get to the task of reviewing this (and the previous) code. I look forward to your comments.
>
>Sincerely -- Mark Salyzyn
>
>On Feb 26, 2012, at 8:33 AM, santosh nayak wrote:
>
>> @@ -2207,7 +2206,6 @@ mpi_sata_completion(struct pm8001_hba_info *pm8001_ha, void *piomb)
>> static void mpi_sata_event(struct pm8001_hba_info *pm8001_ha , void *piomb)
>> {
>> struct sas_task *t;
>> - unsigned long flags = 0;
>MGS> unsigned long flags;
>> struct task_status_struct *ts;
>> struct pm8001_ccb_info *ccb;
>> struct pm8001_device *pm8001_dev;
>> @@ -2287,9 +2285,9 @@ static void mpi_sata_event(struct pm8001_hba_info *pm8001_ha , void *piomb)
>> ts->stat = SAS_QUEUE_FULL;
>> pm8001_ccb_task_free(pm8001_ha, t, ccb, tag);
>> mb();/*ditto*/
>> - spin_unlock_irqrestore(&pm8001_ha->lock, flags);
>> + spin_unlock_irq(&pm8001_ha->lock);
>> t->task_done(t);
>> - spin_lock_irqsave(&pm8001_ha->lock, flags);
>> + spin_lock_irq(&pm8001_ha->lock);
>> return;
>> }
>> break;
>> @@ -2387,31 +2385,31 @@ static void mpi_sata_event(struct pm8001_hba_info *pm8001_ha , void *piomb)
>> ts->stat = SAS_OPEN_TO;
>> break;
>> }
>> - spin_lock_irqsave(&t->task_state_lock, flags);
>> + spin_lock_irq(&t->task_state_lock);
>MGS> spin_lock_irqsave(&t->task_state_lock, flags);
>> t->task_state_flags &= ~SAS_TASK_STATE_PENDING;
>> t->task_state_flags &= ~SAS_TASK_AT_INITIATOR;
>> t->task_state_flags |= SAS_TASK_STATE_DONE;
>> if (unlikely((t->task_state_flags & SAS_TASK_STATE_ABORTED))) {
>> - spin_unlock_irqrestore(&t->task_state_lock, flags);
>> + spin_unlock_irq(&t->task_state_lock);
>MGS> spin_unlock_irqrestore(&t->task_state_lock, flags);
>> PM8001_FAIL_DBG(pm8001_ha,
>> pm8001_printk("task 0x%p done with io_status 0x%x"
>> " resp 0x%x stat 0x%x but aborted by upper layer!\n",
>> t, event, ts->resp, ts->stat));
>> pm8001_ccb_task_free(pm8001_ha, t, ccb, tag);
>> } else if (t->uldd_task) {
>> - spin_unlock_irqrestore(&t->task_state_lock, flags);
>> + spin_unlock_irq(&t->task_state_lock);
>> pm8001_ccb_task_free(pm8001_ha, t, ccb, tag);
>> mb();/* ditto */
>> - spin_unlock_irqrestore(&pm8001_ha->lock, flags);
>> + spin_unlock_irq(&pm8001_ha->lock);
>> t->task_done(t);
>> - spin_lock_irqsave(&pm8001_ha->lock, flags);
>> + spin_lock_irq(&pm8001_ha->lock);
>> } else if (!t->uldd_task) {
>> - spin_unlock_irqrestore(&t->task_state_lock, flags);
>> + spin_unlock_irq(&t->task_state_lock);
>> pm8001_ccb_task_free(pm8001_ha, t, ccb, tag);
>> mb();/*ditto*/
>> - spin_unlock_irqrestore(&pm8001_ha->lock, flags);
>> + spin_unlock_irq(&pm8001_ha->lock);
>> t->task_done(t);
>> - spin_lock_irqsave(&pm8001_ha->lock, flags);
>> + spin_lock_irq(&pm8001_ha->lock);
>> }
>> }
>
>--
>To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>__________ Information from ESET NOD32 Antivirus, version of virus signature database 5659 (20101129) __________
>
>The message was checked by ESET NOD32 Antivirus.
>
>http://www.eset.com
>
>
>
WARNING: multiple messages have this Message-ID (diff)
From: jack_wang <jack_wang@usish.com>
To: "Mark Salyzyn" <mark_salyzyn@xyratex.com>,
"santosh nayak" <santoshprasadnayak@gmail.com>
Cc: "Mark Salyzyn" <mark_salyzyn@xyratex.com>,
lindar_liu <lindar_liu@usish.com>,
"James Bottomley" <JBottomley@parallels.com>,
linux-scsi <linux-scsi@vger.kernel.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
kernel-janitors <kernel-janitors@vger.kernel.org>,
"Dan Carpenter" <dan.carpenter@oracle.com>
Subject: Re: Re: [PATCH 1/2] [SCSI] pm8001: Fix bogus interrupt state flag issue.
Date: Thu, 8 Mar 2012 22:15:03 +0800 [thread overview]
Message-ID: <201203082215017182231@usish.com> (raw)
In-Reply-To: 528D7E8A-B2F6-4EDB-A7C0-E0BF494038D0@xyratex.com
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="gb2312", Size: 4643 bytes --]
Thanks Mark for look into this.You're right. The change for task_state_lock is not right.
Sorry for not look carefully about the change.
--------------
jack_wang
>NAK
>
>In the fragment below, the 'spin_lock_irqsave(&t->task_state_lock, flags);' is 100% legitimate. The change you did was not inert, and result in the IRQ being disabled upon exit should a SAS_TASK_STATE_ABORTED task state condition occur.
>
>I propose (annotated below) you leave the flags automatic variable, but uninitialized. The changes surrounding spin_*lock_irq*(&pm8001_ha->lock, flags) are OK, but revert back the changes surrounding the spin_*lock_irq*(&t->task->state_lock,flags) so that lock would be properly nested.
>
>To be pedantic, and to be more correct, this code should have spawned a work queue task to perform the t->task_done(t) operation in a separate thread rather than inline and precariously unlocked; but that would be beyond the scope of these changes and should be left for future work to decide if it is even necessary. Not sure how such a change would affect performance (using the work queue) ... so I am 'afraid' of pushing such a change in any case given the relatively reliable operation of this driver (and the dynamic nature of the changes Dan is making to the SATA side of things for instance ;-} ).
>
>I am sorry for taking so long to get to the task of reviewing this (and the previous) code. I look forward to your comments.
>
>Sincerely -- Mark Salyzyn
>
>On Feb 26, 2012, at 8:33 AM, santosh nayak wrote:
>
>> @@ -2207,7 +2206,6 @@ mpi_sata_completion(struct pm8001_hba_info *pm8001_ha, void *piomb)
>> static void mpi_sata_event(struct pm8001_hba_info *pm8001_ha , void *piomb)
>> {
>> struct sas_task *t;
>> - unsigned long flags = 0;
>MGS> unsigned long flags;
>> struct task_status_struct *ts;
>> struct pm8001_ccb_info *ccb;
>> struct pm8001_device *pm8001_dev;
>> @@ -2287,9 +2285,9 @@ static void mpi_sata_event(struct pm8001_hba_info *pm8001_ha , void *piomb)
>> ts->stat = SAS_QUEUE_FULL;
>> pm8001_ccb_task_free(pm8001_ha, t, ccb, tag);
>> mb();/*ditto*/
>> - spin_unlock_irqrestore(&pm8001_ha->lock, flags);
>> + spin_unlock_irq(&pm8001_ha->lock);
>> t->task_done(t);
>> - spin_lock_irqsave(&pm8001_ha->lock, flags);
>> + spin_lock_irq(&pm8001_ha->lock);
>> return;
>> }
>> break;
>> @@ -2387,31 +2385,31 @@ static void mpi_sata_event(struct pm8001_hba_info *pm8001_ha , void *piomb)
>> ts->stat = SAS_OPEN_TO;
>> break;
>> }
>> - spin_lock_irqsave(&t->task_state_lock, flags);
>> + spin_lock_irq(&t->task_state_lock);
>MGS> spin_lock_irqsave(&t->task_state_lock, flags);
>> t->task_state_flags &= ~SAS_TASK_STATE_PENDING;
>> t->task_state_flags &= ~SAS_TASK_AT_INITIATOR;
>> t->task_state_flags |= SAS_TASK_STATE_DONE;
>> if (unlikely((t->task_state_flags & SAS_TASK_STATE_ABORTED))) {
>> - spin_unlock_irqrestore(&t->task_state_lock, flags);
>> + spin_unlock_irq(&t->task_state_lock);
>MGS> spin_unlock_irqrestore(&t->task_state_lock, flags);
>> PM8001_FAIL_DBG(pm8001_ha,
>> pm8001_printk("task 0x%p done with io_status 0x%x"
>> " resp 0x%x stat 0x%x but aborted by upper layer!\n",
>> t, event, ts->resp, ts->stat));
>> pm8001_ccb_task_free(pm8001_ha, t, ccb, tag);
>> } else if (t->uldd_task) {
>> - spin_unlock_irqrestore(&t->task_state_lock, flags);
>> + spin_unlock_irq(&t->task_state_lock);
>> pm8001_ccb_task_free(pm8001_ha, t, ccb, tag);
>> mb();/* ditto */
>> - spin_unlock_irqrestore(&pm8001_ha->lock, flags);
>> + spin_unlock_irq(&pm8001_ha->lock);
>> t->task_done(t);
>> - spin_lock_irqsave(&pm8001_ha->lock, flags);
>> + spin_lock_irq(&pm8001_ha->lock);
>> } else if (!t->uldd_task) {
>> - spin_unlock_irqrestore(&t->task_state_lock, flags);
>> + spin_unlock_irq(&t->task_state_lock);
>> pm8001_ccb_task_free(pm8001_ha, t, ccb, tag);
>> mb();/*ditto*/
>> - spin_unlock_irqrestore(&pm8001_ha->lock, flags);
>> + spin_unlock_irq(&pm8001_ha->lock);
>> t->task_done(t);
>> - spin_lock_irqsave(&pm8001_ha->lock, flags);
>> + spin_lock_irq(&pm8001_ha->lock);
>> }
>> }
>
>--
>To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>__________ Information from ESET NOD32 Antivirus, version of virus signature database 5659 (20101129) __________
>
>The message was checked by ESET NOD32 Antivirus.
>
>http://www.eset.com
>
>
>ÿôèº{.nÇ+·®+%Ëÿ±éݶ\x17¥wÿº{.nÇ+·¥{±þG«éÿ{ayº\x1dÊÚë,j\a¢f£¢·hïêÿêçz_è®\x03(éÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?¨èÚ&£ø§~á¶iOæ¬z·vØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?I¥
next prev parent reply other threads:[~2012-03-08 14:15 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-26 13:33 [PATCH 1/2] [SCSI] pm8001: Fix bogus interrupt state flag issue santosh nayak
2012-02-26 13:45 ` santosh nayak
2012-02-26 15:07 ` Dan Carpenter
2012-02-26 15:07 ` Dan Carpenter
2012-02-27 4:57 ` santosh prasad nayak
2012-02-27 4:58 ` santosh prasad nayak
2012-02-27 4:57 ` santosh prasad nayak
2012-02-27 6:55 ` Dan Carpenter
2012-02-27 6:55 ` Dan Carpenter
2012-02-27 8:29 ` Jack Wang
2012-02-27 8:29 ` Jack Wang
2012-02-27 8:29 ` Jack Wang
2012-03-08 13:32 ` Mark Salyzyn
2012-03-08 13:32 ` Mark Salyzyn
2012-03-08 14:15 ` jack_wang [this message]
2012-03-08 14:15 ` jack_wang
2012-03-08 14:15 ` jack_wang
2012-03-08 16:50 ` santosh prasad nayak
2012-03-08 16:51 ` santosh prasad nayak
2012-03-08 16:50 ` santosh prasad nayak
2012-03-08 17:11 ` Mark Salyzyn
2012-03-08 17:11 ` Mark Salyzyn
2012-03-08 20:48 ` santosh prasad nayak
2012-03-08 20:49 ` santosh prasad nayak
2012-03-08 21:16 ` Mark Salyzyn
2012-03-08 21:16 ` Mark Salyzyn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201203082215017182231@usish.com \
--to=jack_wang@usish.com \
--cc=JBottomley@parallels.com \
--cc=dan.carpenter@oracle.com \
--cc=kernel-janitors@vger.kernel.org \
--cc=lindar_liu@usish.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=mark_salyzyn@xyratex.com \
--cc=santoshprasadnayak@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.