Message ID | 20120311043927.27797.43676.stgit@dwillia2-linux.jf.intel.com |
---|---|
State | Not Applicable |
Delegated to: | David Miller |
Headers | show |
TG9va3MgT0sgdG8gbWUuDQpUaGFua3MuDQpBY2tlZC1ieTogSmFjayBXYW5nIDxqYWNrX3dhbmdA dXNpc2guY29tPg0KDQoNCi0tLS0tLS0tLS0tLS0tDQpqYWNrX3dhbmcNCj5zYXNfZWhfYnVzX3Jl c2V0X2hhbmRsZXIoKSBhbW91bnRzIHRvIHNhc19waHlfcmVzZXQoKSB3aXRob3V0DQo+bm90aWZp Y2F0aW9uIG9mIHRoZSByZXNldCB0byB0aGUgbGxkZC4gIElmIHRoaXMgaXMgdHJpZ2dlcmVkIGZy b20NCj5laC1jbW5kIHJlY292ZXJ5IHRoZXJlIG1heSBiZSBzYXNfdGFza3MgZm9yIHRoZSBsbGRk IHRvIHRlcm1pbmF0ZSwgc28NCj4tPmxsZGRfSV9UX25leHVzX3Jlc2V0IGlzIHdhcnJhbnRlZC4N Cj4NCj5DYzogWGlhbmdsaWFuZyBZdSA8eXV4aWFuZ2xAbWFydmVsbC5jb20+DQo+Q2M6IEx1YmVu IFR1aWtvdiA8bHR1aWtvdkB5YWhvby5jb20+DQo+Q2M6IEphY2sgV2FuZyA8amFja193YW5nQHVz aXNoLmNvbT4NCj5SZXZpZXdlZC1ieTogSmFjZWsgRGFuZWNraSA8amFjZWsuZGFuZWNraUBpbnRl bC5jb20+DQo+W2phY2VrOiBtb2RpZnkgcG04MDAxX0lfVF9uZXh1c19yZXNldCB0byByZXR1cm4g LUVOT0RFVl0NCj5TaWduZWQtb2ZmLWJ5OiBEYW4gV2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGlu dGVsLmNvbT4NCj4tLS0NCj4gZHJpdmVycy9zY3NpL2xpYnNhcy9zYXNfc2NzaV9ob3N0LmMgfCAg IDE5ICsrKysrKysrLS0tLS0tLS0tLS0NCj4gZHJpdmVycy9zY3NpL3BtODAwMS9wbTgwMDFfc2Fz LmMgICAgfCAgICAzICsrLQ0KPiAyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEy IGRlbGV0aW9ucygtKQ0KPg0KPmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbGlic2FzL3Nhc19z Y3NpX2hvc3QuYyBiL2RyaXZlcnMvc2NzaS9saWJzYXMvc2FzX3Njc2lfaG9zdC5jDQo+aW5kZXgg ZGVjOTkyYi4uYTVjNGNlNCAxMDA2NDQNCj4tLS0gYS9kcml2ZXJzL3Njc2kvbGlic2FzL3Nhc19z Y3NpX2hvc3QuYw0KPisrKyBiL2RyaXZlcnMvc2NzaS9saWJzYXMvc2FzX3Njc2lfaG9zdC5jDQo+ QEAgLTU3NiwyNSArNTc2LDIyIEBAIGludCBzYXNfZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXIoc3Ry dWN0IHNjc2lfY21uZCAqY21kKQ0KPiAJcmV0dXJuIEZBSUxFRDsNCj4gfQ0KPiANCj4tLyogQXR0 ZW1wdCB0byBzZW5kIGEgcGh5IChidXMpIHJlc2V0ICovDQo+IGludCBzYXNfZWhfYnVzX3Jlc2V0 X2hhbmRsZXIoc3RydWN0IHNjc2lfY21uZCAqY21kKQ0KPiB7DQo+LQlzdHJ1Y3QgZG9tYWluX2Rl dmljZSAqZGV2ID0gY21kX3RvX2RvbWFpbl9kZXYoY21kKTsNCj4tCXN0cnVjdCBzYXNfcGh5ICpw aHkgPSBzYXNfZ2V0X2xvY2FsX3BoeShkZXYpOw0KPi0Jc3RydWN0IFNjc2lfSG9zdCAqaG9zdCA9 IGNtZC0+ZGV2aWNlLT5ob3N0Ow0KPiAJaW50IHJlczsNCj4rCXN0cnVjdCBTY3NpX0hvc3QgKmhv c3QgPSBjbWQtPmRldmljZS0+aG9zdDsNCj4rCXN0cnVjdCBkb21haW5fZGV2aWNlICpkZXYgPSBj bWRfdG9fZG9tYWluX2RldihjbWQpOw0KPisJc3RydWN0IHNhc19pbnRlcm5hbCAqaSA9IHRvX3Nh c19pbnRlcm5hbChob3N0LT50cmFuc3BvcnR0KTsNCj4gDQo+IAlpZiAoY3VycmVudCAhPSBob3N0 LT5laGFuZGxlcikNCj4gCQlyZXR1cm4gc2FzX3F1ZXVlX3Jlc2V0KGRldiwgU0FTX0RFVl9SRVNF VCwgMCwgMCk7DQo+IA0KPi0JcmVzID0gc2FzX3BoeV9yZXNldChwaHksIDEpOw0KPi0JaWYgKHJl cykNCj4tCQlTQVNfRFBSSU5USygiQnVzIHJlc2V0IG9mICVzIGZhaWxlZCAweCV4XG4iLA0KPi0J CQkgICAga29iamVjdF9uYW1lKCZwaHktPmRldi5rb2JqKSwNCj4tCQkJICAgIHJlcyk7DQo+LQlz YXNfcHV0X2xvY2FsX3BoeShwaHkpOw0KPisJaWYgKCFpLT5kZnQtPmxsZGRfSV9UX25leHVzX3Jl c2V0KQ0KPisJCXJldHVybiBGQUlMRUQ7DQo+IA0KPi0JaWYgKHJlcyA9PSBUTUZfUkVTUF9GVU5D X1NVQ0MgfHwgcmVzID09IFRNRl9SRVNQX0ZVTkNfQ09NUExFVEUpDQo+KwlyZXMgPSBpLT5kZnQt PmxsZGRfSV9UX25leHVzX3Jlc2V0KGRldik7DQo+KwlpZiAocmVzID09IFRNRl9SRVNQX0ZVTkNf U1VDQyB8fCByZXMgPT0gVE1GX1JFU1BfRlVOQ19DT01QTEVURSB8fA0KPisJICAgIHJlcyA9PSAt RU5PREVWKQ0KPiAJCXJldHVybiBTVUNDRVNTOw0KPiANCj4gCXJldHVybiBGQUlMRUQ7DQo+ZGlm ZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9wbTgwMDEvcG04MDAxX3Nhcy5jIGIvZHJpdmVycy9zY3Np L3BtODAwMS9wbTgwMDFfc2FzLmMNCj5pbmRleCBiMTExMDE4Li4zYTAzYjQwIDEwMDY0NA0KPi0t LSBhL2RyaXZlcnMvc2NzaS9wbTgwMDEvcG04MDAxX3Nhcy5jDQo+KysrIGIvZHJpdmVycy9zY3Np L3BtODAwMS9wbTgwMDFfc2FzLmMNCj5AQCAtODY4LDggKzg2OCw5IEBAIGludCBwbTgwMDFfSV9U X25leHVzX3Jlc2V0KHN0cnVjdCBkb21haW5fZGV2aWNlICpkZXYpDQo+IAlzdHJ1Y3QgcG04MDAx X2RldmljZSAqcG04MDAxX2RldjsNCj4gCXN0cnVjdCBwbTgwMDFfaGJhX2luZm8gKnBtODAwMV9o YTsNCj4gCXN0cnVjdCBzYXNfcGh5ICpwaHk7DQo+Kw0KPiAJaWYgKCFkZXYgfHwgIWRldi0+bGxk ZF9kZXYpDQo+LQkJcmV0dXJuIC0xOw0KPisJCXJldHVybiAtRU5PREVWOw0KPiANCj4gCXBtODAw MV9kZXYgPSBkZXYtPmxsZGRfZGV2Ow0KPiAJcG04MDAxX2hhID0gcG04MDAxX2ZpbmRfaGFfYnlf ZGV2KGRldik7DQo+DQo+LS0NCj5UbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0 aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgtc2NzaSIgaW4NCj50aGUgYm9keSBvZiBhIG1lc3Nh Z2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZw0KPk1vcmUgbWFqb3Jkb21vIGluZm8gYXQg IGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbA0KPg0KPl9fX19fX19f X18gSW5mb3JtYXRpb24gZnJvbSBFU0VUIE5PRDMyIEFudGl2aXJ1cywgdmVyc2lvbiBvZiB2aXJ1 cyBzaWduYXR1cmUgZGF0YWJhc2UgNTY1OSAoMjAxMDExMjkpIF9fX19fX19fX18NCj4NCj5UaGUg bWVzc2FnZSB3YXMgY2hlY2tlZCBieSBFU0VUIE5PRDMyIEFudGl2aXJ1cy4NCj4NCj5odHRwOi8v d3d3LmVzZXQuY29tDQo+DQo+DQo+ -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c index dec992b..a5c4ce4 100644 --- a/drivers/scsi/libsas/sas_scsi_host.c +++ b/drivers/scsi/libsas/sas_scsi_host.c @@ -576,25 +576,22 @@ int sas_eh_device_reset_handler(struct scsi_cmnd *cmd) return FAILED; } -/* Attempt to send a phy (bus) reset */ int sas_eh_bus_reset_handler(struct scsi_cmnd *cmd) { - struct domain_device *dev = cmd_to_domain_dev(cmd); - struct sas_phy *phy = sas_get_local_phy(dev); - struct Scsi_Host *host = cmd->device->host; int res; + struct Scsi_Host *host = cmd->device->host; + struct domain_device *dev = cmd_to_domain_dev(cmd); + struct sas_internal *i = to_sas_internal(host->transportt); if (current != host->ehandler) return sas_queue_reset(dev, SAS_DEV_RESET, 0, 0); - res = sas_phy_reset(phy, 1); - if (res) - SAS_DPRINTK("Bus reset of %s failed 0x%x\n", - kobject_name(&phy->dev.kobj), - res); - sas_put_local_phy(phy); + if (!i->dft->lldd_I_T_nexus_reset) + return FAILED; - if (res == TMF_RESP_FUNC_SUCC || res == TMF_RESP_FUNC_COMPLETE) + res = i->dft->lldd_I_T_nexus_reset(dev); + if (res == TMF_RESP_FUNC_SUCC || res == TMF_RESP_FUNC_COMPLETE || + res == -ENODEV) return SUCCESS; return FAILED; diff --git a/drivers/scsi/pm8001/pm8001_sas.c b/drivers/scsi/pm8001/pm8001_sas.c index b111018..3a03b40 100644 --- a/drivers/scsi/pm8001/pm8001_sas.c +++ b/drivers/scsi/pm8001/pm8001_sas.c @@ -868,8 +868,9 @@ int pm8001_I_T_nexus_reset(struct domain_device *dev) struct pm8001_device *pm8001_dev; struct pm8001_hba_info *pm8001_ha; struct sas_phy *phy; + if (!dev || !dev->lldd_dev) - return -1; + return -ENODEV; pm8001_dev = dev->lldd_dev; pm8001_ha = pm8001_find_ha_by_dev(dev);