Re: ipw2100: race between isr_indicate_associated and rx path

"Zhu, Yi" <[email protected]> Wed, 28 Jan 2009 19:13:14 +0800
Newsgroups gmane.linux.drivers.ipw2100.devel
Message-ID <AFAB8585072C7E48BC5C6F9C87F9B797056DABFC@pdsmsx502.ccr.corp.intel.com>
SW5saW5lZC4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBIZWxtdXQg
U2NoYWEgW21haWx0bzpoZWxtdXQuc2NoYWFAZ29vZ2xlbWFpbC5jb21dDQo+IFNlbnQ6IDIwMDnE
6jHUwjI4yNUgMTg6MzMNCj4gVG86IFpodSwgWWkNCj4gQ2M6IGlwdzIxMDAtZGV2ZWxAbGlzdHMu
c291cmNlZm9yZ2UubmV0DQo+IFN1YmplY3Q6IFJlOiBbSXB3MjEwMC1kZXZlbF0gaXB3MjEwMDog
cmFjZSBiZXR3ZWVuIGlzcl9pbmRpY2F0ZV9hc3NvY2lhdGVkDQo+IGFuZCByeCBwYXRoDQo+IA0K
PiBBbSBNaXR0d29jaCwgMjguIEphbnVhciAyMDA5IHNjaHJpZWIgWmh1LCBZaToNCj4gPiBEbyB5
b3UgbWVhbiB0aGUgRUFQIHJlc3BvbnNlIGZyYW1lIGlzIGhhbmRlZCB0byBpZWVlODAyMTEvaXB3
MjEwMCBieQ0KPiA+IHdwYV9zdXBwbGljYW50IGJ1dCB5b3UgZGlkbid0IHNlZSBpdCBpbiB0aGUg
YWlyPw0KPiANCj4gRXhhY3RseS4NCj4gDQo+ID4gSSBhc3N1bWUgYXQgdGhpcyBwb2ludCwgdGhl
IEJTU0lEIGlzIGFscmVhZHkgZ290IGFuZCB0aGUgc3RhdGUgaXMNCj4gPiBBU1NPQ0lBVEVELg0K
PiANCj4gWWVzLg0KPiANCj4gPiBDYW4geW91IGNvbmZpcm0gd3BhX3N1cHBsaWNhbnQgaGFzIGFs
cmVhZHkgcmVjZWl2ZWQgdGhlIHdleHQgQVNTT0NJQVRFRA0KPiA+IGV2ZW50Pw0KPiANCj4gWWVz
Lg0KDQpJIGNhbiBvbmx5IHNlZSB5b3Ugc3RhcnQgdG8gc2VuZCBidWZmZXJlZCBmcmFtZXMgYWZ0
ZXIgd2lyZWxlc3Nfc2VuZF9ldmVudCgsIFNJT0NHSVdBUCwgLCApLiBIb3cgY2FuIHlvdSBndWFy
YW50ZWUgdGhlIGV2ZW50IGlzIHJlY2VpdmVkIGVhcmxpZXIgdGhhbiB0aG9zZSBidWZmZXJlZCBm
cmFtZXM/DQoNCj4gPiBBbnl3YXksIEkgY291bGRuJ3QgdGVsbCB3aXRob3V0IHNlZWluZyB5b3Vy
IHBhdGNoIDstKQ0KPiANCj4gVWhoLCB5ZXMuIEhlcmUgaXQgaXMgOikNCj4gDQo+IFRoZSBwYXRj
aCBpcyBmYXIgZnJvbSBiZWluZyByZWFkeSwgaXQncyBqdXN0IGEgcHJvdG90eXBlLiBTbywganVz
dCBpZ25vcmUNCj4gdHlwb3MsIGNvZGluZyBzdHlsZSBldGMuDQoNCkkgZGlkbid0IHNlZSB5b3Ug
YWRkcmVzc2VkIG15IHBhY2tldHMgcmVvcmRlciBjb25jZXJuIGZyb20gdGhpcyBwYXRjaC4gRm9y
IGV4YW1wbGUsIGhvdyBhYm91dCBhIHBhY2tldCBjb21lcyB3aGlsZSB5b3UgYXJlIGRlbGl2ZXJp
bmcgYWxsIHRoZSBidWZmZXJlZCBwYWNrZXRzIGluIHRoZSB3aGlsZSBsb29wPyBUaGlzIGludHJv
ZHVjZXMgYSBwYWNrZXQgcmVvcmRlciBwcm9ibGVtLiBObz8NCg0KVGhhbmtzLA0KLXlpDQogDQo+
IC0tLQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2lwdzJ4MDAvaXB3
MjEwMC5jDQo+IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXB3MngwMC9pcHcyMTAwLmMNCj4gaW5k
ZXggODIzYzJiZi4uMzZiNWQ1MiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3Mv
aXB3MngwMC9pcHcyMTAwLmMNCj4gKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXB3MngwMC9p
cHcyMTAwLmMNCj4gQEAgLTIzOTMsNiArMjM5Myw4IEBAIHN0YXRpYyB2b2lkIGlzcl9yeChzdHJ1
Y3QgaXB3MjEwMF9wcml2ICpwcml2LCBpbnQgaSwNCj4gIHsNCj4gIAlzdHJ1Y3QgaXB3MjEwMF9z
dGF0dXMgKnN0YXR1cyA9ICZwcml2LT5zdGF0dXNfcXVldWUuZHJ2W2ldOw0KPiAgCXN0cnVjdCBp
cHcyMTAwX3J4X3BhY2tldCAqcGFja2V0ID0gJnByaXYtPnJ4X2J1ZmZlcnNbaV07DQo+ICsJc3Ry
dWN0IGlwdzIxMDBfc2tiX2J1ZmZlciAqc2tiX2J1ZmY7DQo+ICsNCj4gDQo+ICAJSVBXX0RFQlVH
X1JYKCJIYW5kbGVyLi4uXG4iKTsNCj4gDQo+IEBAIC0yNDEzLDcgKzI0MTUsNyBAQCBzdGF0aWMg
dm9pZCBpc3Jfcngoc3RydWN0IGlwdzIxMDBfcHJpdiAqcHJpdiwgaW50IGksDQo+ICAJfQ0KPiAN
Cj4gIAlpZiAodW5saWtlbHkocHJpdi0+aWVlZS0+aXdfbW9kZSAhPSBJV19NT0RFX01PTklUT1Ig
JiYNCj4gLQkJICAgICAhKHByaXYtPnN0YXR1cyAmIFNUQVRVU19BU1NPQ0lBVEVEKSkpIHsNCj4g
KwkJICAgICAhKHByaXYtPnN0YXR1cyAmIChTVEFUVVNfQVNTT0NJQVRFRCB8DQo+IFNUQVRVU19B
U1NPQ0lBVElORykpKSkgew0KPiAgCQlJUFdfREVCVUdfRFJPUCgiRHJvcHBpbmcgcGFja2V0IHdo
aWxlIG5vdCBhc3NvY2lhdGVkLlxuIik7DQo+ICAJCXByaXYtPndzdGF0cy5kaXNjYXJkLm1pc2Mr
KzsNCj4gIAkJcmV0dXJuOw0KPiBAQCAtMjQzMyw3ICsyNDM1LDI0IEBAIHN0YXRpYyB2b2lkIGlz
cl9yeChzdHJ1Y3QgaXB3MjEwMF9wcml2ICpwcml2LCBpbnQgaSwNCj4gIAkJCQkJICAgICBJUFdf
UlhfTklDX0JVRkZFUl9MRU5HVEgpKTsNCj4gICNlbmRpZg0KPiANCj4gLQlpZiAoIWllZWU4MDIx
MV9yeChwcml2LT5pZWVlLCBwYWNrZXQtPnNrYiwgc3RhdHMpKSB7DQo+ICsJaWYgKHByaXYtPnN0
YXR1cyAmIFNUQVRVU19BU1NPQ0lBVElORykgew0KPiArCQkvKiBmaXJtd2FyZSBpcyBhbHJlYWR5
IGFzc29jaWF0ZWQgYW5kIG1pZ2h0IGFjY2VwdCBmcmFtZXMNCj4gKwkJICogYnV0IHdlIHRoZSB1
c2VyIHNwYWNlIGRvZXMgbm90IGtub3cgYWJvdXQgdGhhdCBzdGF0ZQ0KPiArCQkgKiB5ZXQuIEhl
bmNlIGJ1ZmZlciBhbGwgZnJhbWVzIHVudGlsIHRoZSBzdGF0dXMgbW92ZXMgdG8NCj4gKwkJICog
YXNzb2NpYXRlZC4NCj4gKwkJICovDQo+ICsJCXNrYl9idWZmID0gKHN0cnVjdCBpcHcyMTAwX3Nr
Yl9idWZmZXIqKWttYWxsb2Moc2l6ZW9mKHN0cnVjdA0KPiBpcHcyMTAwX3NrYl9idWZmZXIpLCBH
RlBfQVRPTUlDKTsNCj4gKw0KPiArCQlhdG9taWNfaW5jKCZwYWNrZXQtPnNrYi0+dXNlcnMpOw0K
PiArCQlJTklUX0xJU1RfSEVBRCgmc2tiX2J1ZmYtPmxpc3QpOw0KPiArCQlza2JfYnVmZi0+c2ti
ID0gcGFja2V0LT5za2I7DQo+ICsJCW1lbWNweSgmc2tiX2J1ZmYtPnN0YXRzLCBzdGF0cywgc2l6
ZW9mKHN0cnVjdA0KPiBpZWVlODAyMTFfcnhfc3RhdHMpKTsNCj4gKwkJbGlzdF9hZGRfdGFpbCgm
c2tiX2J1ZmYtPmxpc3QsICZwcml2LT5za2JfYnVmZmVyX2xpc3QpOw0KPiArDQo+ICsJCUlQV19E
RUJVR19JTkZPKCIlczogRlcgaXMgYWxyZWFkeSBhc3NvY2lhdGVkLCBidWZmZXJpbmcNCj4gcGFj
a2V0LlxuIiwNCj4gKwkJCSAgICAgICBwcml2LT5uZXRfZGV2LT5uYW1lKTsNCj4gKw0KPiArCX0g
ZWxzZSBpZiAoIWllZWU4MDIxMV9yeChwcml2LT5pZWVlLCBwYWNrZXQtPnNrYiwgc3RhdHMpKSB7
DQo+ICAjaWZkZWYgSVBXMjEwMF9SWF9ERUJVRw0KPiAgCQlJUFdfREVCVUdfRFJPUCgiJXM6IE5v
biBjb25zdW1lZCBwYWNrZXQ6XG4iLA0KPiAgCQkJICAgICAgIHByaXYtPm5ldF9kZXYtPm5hbWUp
Ow0KPiBAQCAtNjExOCw2ICs2MTM3LDggQEAgc3RhdGljIHN0cnVjdCBuZXRfZGV2aWNlDQo+ICpp
cHcyMTAwX2FsbG9jX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldiwNCj4gIAlJTklUX0xJ
U1RfSEVBRCgmcHJpdi0+ZndfcGVuZF9saXN0KTsNCj4gIAlJTklUX1NUQVQoJnByaXYtPmZ3X3Bl
bmRfc3RhdCk7DQo+IA0KPiArCUlOSVRfTElTVF9IRUFEKCZwcml2LT5za2JfYnVmZmVyX2xpc3Qp
Ow0KPiArDQo+ICAJcHJpdi0+d29ya3F1ZXVlID0gY3JlYXRlX3dvcmtxdWV1ZShEUlZfTkFNRSk7
DQo+IA0KPiAgCUlOSVRfREVMQVlFRF9XT1JLKCZwcml2LT5yZXNldF93b3JrLCBpcHcyMTAwX3Jl
c2V0X2FkYXB0ZXIpOw0KPiBAQCAtODI5OCw2ICs4MzE5LDggQEAgc3RhdGljIHZvaWQgaXB3MjEw
MF93eF9ldmVudF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdA0KPiAqd29yaykNCj4gIAkJY29udGFp
bmVyX29mKHdvcmssIHN0cnVjdCBpcHcyMTAwX3ByaXYsIHd4X2V2ZW50X3dvcmsud29yayk7DQo+
ICAJdW5pb24gaXdyZXFfZGF0YSB3cnF1Ow0KPiAgCWludCBsZW4gPSBFVEhfQUxFTjsNCj4gKwli
b29sIHRlc3QgPSBmYWxzZTsNCj4gKwlzdHJ1Y3QgaXB3MjEwMF9za2JfYnVmZmVyKiBza2JfYnVm
ZmVyOw0KPiANCj4gIAlpZiAocHJpdi0+c3RhdHVzICYgU1RBVFVTX1NUT1BQSU5HKQ0KPiAgCQly
ZXR1cm47DQo+IEBAIC04MzIzLDggKzgzNDYsMTAgQEAgc3RhdGljIHZvaWQgaXB3MjEwMF93eF9l
dmVudF93b3JrKHN0cnVjdA0KPiB3b3JrX3N0cnVjdCAqd29yaykNCj4gIAkJbWVtY3B5KHByaXYt
PmllZWUtPmJzc2lkLCBwcml2LT5ic3NpZCwgRVRIX0FMRU4pOw0KPiAgCQlwcml2LT5zdGF0dXMg
Jj0gflNUQVRVU19BU1NPQ0lBVElORzsNCj4gIAkJcHJpdi0+c3RhdHVzIHw9IFNUQVRVU19BU1NP
Q0lBVEVEOw0KPiArDQo+ICAJCW5ldGlmX2NhcnJpZXJfb24ocHJpdi0+bmV0X2Rldik7DQo+ICAJ
CW5ldGlmX3dha2VfcXVldWUocHJpdi0+bmV0X2Rldik7DQo+ICsJCXRlc3QgPSB0cnVlOw0KPiAg
CX0NCj4gDQo+ICAJaWYgKCEocHJpdi0+c3RhdHVzICYgU1RBVFVTX0FTU09DSUFURUQpKSB7DQo+
IEBAIC04MzQxLDYgKzgzNjYsMzEgQEAgc3RhdGljIHZvaWQgaXB3MjEwMF93eF9ldmVudF93b3Jr
KHN0cnVjdA0KPiB3b3JrX3N0cnVjdCAqd29yaykNCj4gIAl9DQo+IA0KPiAgCXdpcmVsZXNzX3Nl
bmRfZXZlbnQocHJpdi0+bmV0X2RldiwgU0lPQ0dJV0FQLCAmd3JxdSwgTlVMTCk7DQo+ICsNCj4g
KwlpZiAodGVzdCkgew0KPiArCQkvKiBub3cgZGVsaXZlciBhbGwgYnVmZmVyZWQgZnJhbWVzICov
DQo+ICsJCXdoaWxlICggIWxpc3RfZW1wdHkoJnByaXYtPnNrYl9idWZmZXJfbGlzdCkgKSB7DQo+
ICsJCQlJUFdfREVCVUdfSU5GTygiJXM6IERlbGl2ZXJpbmcgcXVldWVkIHBhY2tldC5cbiIsDQo+
ICsJCQkJICAgICAgIHByaXYtPm5ldF9kZXYtPm5hbWUpOw0KPiArDQo+ICsJCQlza2JfYnVmZmVy
ID0gbGlzdF9lbnRyeShwcml2LT5za2JfYnVmZmVyX2xpc3QubmV4dCwNCj4gc3RydWN0IGlwdzIx
MDBfc2tiX2J1ZmZlciwgbGlzdCk7DQo+ICsJCQlsaXN0X2RlbCgmc2tiX2J1ZmZlci0+bGlzdCk7
DQo+ICsNCj4gKwkJCWlmICghaWVlZTgwMjExX3J4KHByaXYtPmllZWUsIHNrYl9idWZmZXItPnNr
YiwNCj4gJnNrYl9idWZmZXItPnN0YXRzKSkgew0KPiArLyojaWZkZWYgSVBXMjEwMF9SWF9ERUJV
Rw0KPiArCQkJCUlQV19ERUJVR19EUk9QKCIlczogTm9uIGNvbnN1bWVkIHBhY2tldDpcbiIsDQo+
ICsJCQkgICAgICAgcHJpdi0+bmV0X2Rldi0+bmFtZSk7DQo+ICsJCQkJcHJpbnRrX2J1ZihJUFdf
RExfRFJPUCwgcGFja2V0X2RhdGEsIHN0YXR1cy0NCj4gPmZyYW1lX3NpemUpOw0KPiArI2VuZGlm
Ki8NCj4gKwkJCQlwcml2LT5pZWVlLT5zdGF0cy5yeF9lcnJvcnMrKzsNCj4gKw0KPiArCQkJCS8q
IGllZWU4MDIxMV9yeCBmYWlsZWQsIHNvIGl0IGRpZG4ndCBmcmVlIHRoZSBTS0INCj4gKi8NCj4g
KwkJCQlkZXZfa2ZyZWVfc2tiX2FueShza2JfYnVmZmVyLT5za2IpOw0KPiArCQkJCXNrYl9idWZm
ZXItPnNrYiA9IE5VTEw7DQo+ICsJCQl9DQo+ICsJCQlrZnJlZShza2JfYnVmZmVyKTsNCj4gKwkJ
fQ0KPiArCX0NCj4gIH0NCj4gDQo+ICAjZGVmaW5lIElQVzIxMDBfRldfTUFKT1JfVkVSU0lPTiAx
DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pcHcyeDAwL2lwdzIxMDAuaA0K
PiBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2lwdzJ4MDAvaXB3MjEwMC5oDQo+IGluZGV4IGJiZjFk
ZGMuLjdjMTFjNmEgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2lwdzJ4MDAv
aXB3MjEwMC5oDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2lwdzJ4MDAvaXB3MjEwMC5o
DQo+IEBAIC00ODcsNiArNDg3LDEyIEBAIGVudW0gew0KPiAgI2RlZmluZSBDQVBfU0hBUkVEX0tF
WSAgICAgICAgICAoMTw8MCkJLyogT2ZmID0gT1BFTiAqLw0KPiAgI2RlZmluZSBDQVBfUFJJVkFD
WV9PTiAgICAgICAgICAoMTw8MSkJLyogT2ZmID0gTm8gcHJpdmFjeSAqLw0KPiANCj4gK3N0cnVj
dCBpcHcyMTAwX3NrYl9idWZmZXIgew0KPiArCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsNCj4gKwlz
dHJ1Y3Qgc2tfYnVmZiogc2tiOw0KPiArCXN0cnVjdCBpZWVlODAyMTFfcnhfc3RhdHMgc3RhdHM7
DQo+ICt9Ow0KPiArDQo+ICBzdHJ1Y3QgaXB3MjEwMF9wcml2IHsNCj4gDQo+ICAJaW50IHN0b3Bf
aGFuZ19jaGVjazsJLyogU2V0IDEgd2hlbiBzaHV0dGluZyBkb3duIHRvIGtpbGwNCj4gaGFuZ19j
aGVjayAqLw0KPiBAQCAtNjAxLDYgKzYwNyw4IEBAIHN0cnVjdCBpcHcyMTAwX3ByaXYgew0KPiAg
CXN0cnVjdCBtdXRleCBhZGFwdGVyX211dGV4Ow0KPiANCj4gIAl3YWl0X3F1ZXVlX2hlYWRfdCB3
YWl0X2NvbW1hbmRfcXVldWU7DQo+ICsNCj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIHNrYl9idWZmZXJf
bGlzdDsNCj4gIH07DQo+IA0KPiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgU0YubmV0
IGVtYWlsIGlzIHNwb25zb3JlZCBieToKU291cmNGb3JnZSBDb21tdW5pdHkKU291cmNlRm9yZ2Ug
d2FudHMgdG8gdGVsbCB5b3VyIHN0b3J5LgpodHRwOi8vcC5zZi5uZXQvc2Z1L3NmLXNwcmVhZHRo
ZXdvcmQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaXB3
MjEwMC1kZXZlbCBtYWlsaW5nIGxpc3QKaXB3MjEwMC1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5u
ZXQKaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vaXB3MjEwMC1k
ZXZlbAo=