From mboxrd@z Thu Jan 1 00:00:00 1970 From: Taichi Kageyama Subject: Re: [PATCH 2/2] serial: 8250: Allow to skip autoconfig_irq() for a console Date: Tue, 14 Jul 2015 01:16:05 +0000 Message-ID: <55A462D1.3080709@cp.jp.nec.com> References: <55717224.9060104@cp.jp.nec.com> <557173EC.5000307@cp.jp.nec.com> <559D0FCC.5040107@hurleysoftware.com> <559D1D39.9070405@redhat.com> <559D2AE8.8080603@hurleysoftware.com> <559D2CFB.1060507@redhat.com> <559E075F.8040800@cp.jp.nec.com> <55A05F56.90305@hurleysoftware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <55A05F56.90305@hurleysoftware.com> Content-Language: ja-JP Content-ID: Sender: linux-kernel-owner@vger.kernel.org To: Peter Hurley , Prarit Bhargava Cc: "gregkh@linuxfoundation.org" , "linux-serial@vger.kernel.org" , "jslaby@suse.cz" , "linux-kernel@vger.kernel.org" , Naoya Horiguchi List-Id: linux-serial@vger.kernel.org T24gMjAxNS8wNy8xMSA5OjEyLCBQZXRlciBIdXJsZXkgd3JvdGU6DQo+IE9uIDA3LzA5LzIwMTUg MDE6MzIgQU0sIFRhaWNoaSBLYWdleWFtYSB3cm90ZToNCj4+IE9uIDIwMTUvMDcvMDggMjM6MDAs IFByYXJpdCBCaGFyZ2F2YSB3cm90ZToNCj4+PiBPbiAwNy8wOC8yMDE1IDA5OjUxIEFNLCBQZXRl ciBIdXJsZXkgd3JvdGU6DQo+Pj4+IE9uIDA3LzA4LzIwMTUgMDg6NTMgQU0sIFByYXJpdCBCaGFy Z2F2YSB3cm90ZToNCj4+Pj4+IE9uIDA3LzA4LzIwMTUgMDc6NTUgQU0sIFBldGVyIEh1cmxleSB3 cm90ZToNCj4+Pj4+PiBPbiAwNi8wNS8yMDE1IDA2OjAzIEFNLCBUYWljaGkgS2FnZXlhbWEgd3Jv dGU6DQo+Pj4+Pj4+IFRoaXMgcGF0Y2ggcHJvdmlkZXMgYSBuZXcgcGFyYW1ldGVyIGFzIGEgd29y a2Fyb3VuZCBvZiB0aGUgZm9sbG93aW5nDQo+Pj4+Pj4+IHByb2JsZW0uIEl0IGFsbG93cyB1cyB0 byBza2lwIGF1dG9jb25maWdfaXJxKCkgYW5kIHRvIHVzZSBhIHdlbGwta25vd24gaXJxDQo+Pj4+ Pj4+IG51bWJlciBmb3IgYSBjb25zb2xlIGV2ZW4gaWYgQ09ORklHX1NFUklBTF84MjUwX0RFVEVD VF9JUlEgaXMgZGVmaW5lZC4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gVGhlcmUncmUgY2FzZXMgd2hlcmUg YXV0b2NvbmZpZ19pcnEoKSBmYWlscyBkdXJpbmcgYm9vdC4NCj4+Pj4+Pj4gSW4gdGhlc2UgY2Fz ZXMsIHRoZSBjb25zb2xlIGRvZXNuJ3Qgd29yayBpbiBpbnRlcnJ1cHQgbW9kZSwNCj4+Pj4+Pj4g dGhlIG1vZGUgY2Fubm90IGJlIGNoYW5nZWQgYW55bW9yZSwgYW5kICJpbnB1dCBvdmVycnVuIg0K Pj4+Pj4+PiAod2hpY2ggY2FuIG1ha2Ugb3BlcmF0aW9uIG1pc3Rha2VzKSBoYXBwZW5zIGVhc2ls eS4NCj4+Pj4+Pj4gVGhpcyBwcm9ibGVtIGhhcHBlbnMgd2l0aCBoaWdoIHJhdGUgZXZlcnkgYm9v dCBvbmNlIGl0IG9jY3Vycw0KPj4+Pj4+PiBiZWNhdXNlIHRoZSBib290IHNlcXVlbmNlIGlzIGFs d2F5cyBhbG1vc3Qgc2FtZS4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gYXV0b2NvbmZpZ19pcnEoKSBhc3N1 bWVzIHRoYXQgYSBDUFUgY2FuIGhhbmRsZSBhbiBpbnRlcnJ1cHQgZnJvbSBhIHNlcmlhbA0KPj4+ Pj4+PiBkdXJpbmcgdGhlIHdhaXRpbmcgdGltZSwgYnV0IHRoZXJlJ3JlIHNvbWUgY2FzZXMgd2hl cmUgdGhlIENQVSBjYW5ub3QNCj4+Pj4+Pj4gaGFuZGxlIHRoZSBpbnRlcnJ1cHQgZm9yIGxvbmdl ciB0aGFuIHRoZSB0aW1lLiBJdCBjb21wbGV0ZWx5IGRlcGVuZHMgb24NCj4+Pj4+Pj4gaG93IG90 aGVyIGZ1bmN0aW9ucyB3b3JrIG9uIHRoZSBDUFUuIElkZWFsbHksIGF1dG9jb25maWdfaXJxKCkg c2hvdWxkIGJlDQo+Pj4+Pj4+IGZpeGVkDQo+Pj4+Pj4NCj4+DQo+PiBUaGFuayB5b3UgZm9yIHlv dXIgY29tbWVudHMuDQo+Pg0KPj4+Pj4+IEl0IGNvbXBsZXRlbHkgZGVwZW5kcyBvbiBob3cgbG9u ZyBzb21lIG90aGVyIGRyaXZlciBoYXMgaW50ZXJydXB0cyBkaXNhYmxlZCwNCj4+DQo+PiBBZ3Jl ZS4NCj4+DQo+Pj4+Pj4gd2hpY2ggaXMgYSBwcm9ibGVtIHRoYXQgbmVlZHMgZml4ZWQgX2luIHRo YXQgZHJpdmVyXy4gYXV0b2NvbmZpZ19pcnEoKSBkb2VzIG5vdA0KPj4+Pj4+IG5lZWQgZml4aW5n Lg0KPj4NCj4+IFBldGVyLCBpZGVhbGx5LCB5b3UncmUgcmlnaHQuDQo+PiBIb3dldmVyLCB3ZSBj YW5ub3QgYXNzdW1lIGhvdyBsb25nIG90aGVyIGRyaXZlcnMgZGlzYWJsZSBpbnRlcnJ1cHRzLg0K Pj4gVGhhdCdzIHdoeSBJIGludHJvZHVjZWQgdGhpcyB3b3JrYXJvdW5kLg0KPj4gSW4gbXkgb3Bp bmlvbiwgYSBjb25zb2xlIGlzIGltcG9ydGFudCBhbmQgYWx3YXlzIHNob3VsZCBiZSBhdmFpbGFi bGUNCj4+IGV2ZW4gaWYgb3RoZXIgZHJpdmVycyBoYXZlIGEgYmFkIGJlaGF2aW9yLg0KPg0KPiBJ IGhhdmUgbm8gcHJvYmxlbSB3aXRoIHdhbnRpbmcgdG8gbWFrZSB0aGUgY29uc29sZSBtb3JlIHJv YnVzdCwgYnV0DQo+IHJhdGhlciB3aXRoIHRoZSBoYWNreSB3YXkgdGhpcyBpcyBiZWluZyBkb25l Lg0KDQpIaSBQZXRlciwNCg0KVGhhbmsgeW91IGZvciB5b3VyIGFkdmljZS4NCklmIHRoZXJlIGlz IG90aGVyIHdheSB0byBmaXggdGhpcyBwcm9ibGVtIHNpbXBseSwNCkkgYWxzbyB0aGluayBpdCdz IGJldHRlciB0aGFuIHRoZSBkaXJ0eSBoYWNrLg0KDQo+IEJldHRlciBzb2x1dGlvbnM6DQo+IDEu IEZpeCBhdXRvcHJvYmluZyB0byBmb3JjZSBpcnEgYWZmaW5pdHkgdG8gYXV0b3Byb2JpbmcgY3B1 DQoNCkkgY291bGRuJ3QgbWFrZSBzdXJlIHdoaWNoIENQVSBoYW5kbGVkIHNlcmlhbCBpbnRlcnJ1 cHQNCm9uIGFsbCBwbGF0Zm9ybXMgYmVmb3JlIGlycSMgd2FzIG5vdCBrbm93bi4NCkRvIHlvdSBr bm93IHRoZSB3YXkgdG8gZGV0ZWN0IHdoaWNoIENQVSBpcyB1c2VkIGZvciBjb25zb2xlIHNlcmlh bD8NClRoZSB3YXkgaXMgc2FmZSBmb3IgYWxsIHBsYXRmb3Jtcz8NCg0KPiAyLiBGaXggaG93IHRo ZSA4MjUwIGRyaXZlciBiZWhhdmVzIHdpdGggbm8gaXJxDQoNClRoZSBjb25zb2xlIHdvcmtzIHdp dGggcG9sbGluZy1tb2RlIGlmIGlycT09MC4NCkkgdGhpbmsgdGhpcyBiZWhhdmlvciBzaG91bGQg bm90IGJlIGNoYW5nZWQuDQoNCj4gMy4gRml4IHByaW50ayBsb2NraW5nIHRvIGJlIG1vcmUgZ3Jh bnVsYXIgKHRoaXMgbmVlZHMgZG9pbmcgYW55d2F5KQ0KPiA0LiBBZGQgZXhjbHVzaXZlIHBvcnQg bW9kZSBmb3IgY29uc29sZQ0KDQpUaGVzZSB0d28gYXJlIHNvbHV0aW9ucyBvbmx5IGZvciB0aGUg cHJvYmxlbSB3aGljaCBpcyBjYXVzZWQgYnkgcHJpbnRrLg0KSSB0aGluayBteSBbcGF0Y2ggMS8y XSBpcyBlbm91Z2ggdG8gcmVzb2x2ZSB0aGUgY2FzZSBhdCB0aGlzIHRpbWUuDQoNCj4gUGx1cyBp dCB3b3VsZG4ndCBodXJ0IHRvIGFkZCBzb21lIGRpYWdub3N0aWNzIHRvIGF1dG9tYXRlIGRpc2Nv dmVyeQ0KPiBvZiBtaXNiZWhhdmluZyBkcml2ZXJzIHRoYXQgYnJlYWsgYXV0b3Byb2JpbmcuDQoN ClByb2JhYmx5IHdlIGNhbiBhZGQgcmV0cnkgY29kZSwgYnV0IGl0IGNhbm5vdCBmaXggdGhpcyBw cm9ibGVtIGNvbXBsZXRlbHkuDQpBbmQgdGhlIHJldHJ5IGNhbiBiZSBqdXN0IHdhc3RlIHRpbWUg Zm9yIHNvbWUgZGV2aWNlcyBiZWNhdXNlIHRoZSBkcml2ZXINCmNhbm5vdCByZWNvZ25pemUgd2hl dGhlciBpbnRlcnJ1cHQgaXMgZGlzYWJsZWQgdGVtcG9yYXJpbHkgb3INCmludGVycnVwdCBtb2Rl IGlzIG5vdCBhdmFpbGFibGUgYXMgbG9uZyBhcyB1c2luZyBwcm9iZV9pcnFfb24vb2ZmKCkuDQoN CkkgdGhvdWdoIG90aGVyIHdvcmthcm91bmRzLCBidXQgdGhleSB3ZXJlIGFsc28gbm90IGdvb2Qg aWRlYS4NCiAgKyBDbG9zZSBhbGwgY29uc29sZSBzZXNzaW9ucyB0byBraWNrIGF1dG9jb25maWcg YWdhaW4NCiAgICAgIENvbnNvbGUgaXMgYWx3YXlzIG9wZW5lZCBieSBnZXR0eSBvciBvdGhlciBw cm9ncmFtcyBhZnRlciBib290Lg0KICAgICAgSXQncyBoYXJkIHRvIGNsb3NlIHRoZW0uIEkgdGhp bmsgdGhlIGRyaXZlciBzaG91bGQgYmUgZml4ZWQuDQogICsgQ2FsbCBhdXRvY29uZmlnIGJ5IGZv cmNlIGV2ZW4gaWYgY29uc29sZSBpcyBvcGVuZWQuDQogICAgICBJdCBjYW4gYmUgY2FsbGVkIGZv cmNpYmx5IGlmIHVhcnRfZG9fYXV0b2NvbmZpZygpIGlzIGNoYW5nZWQsDQogICAgICBidXQgSSB0 aGluayBjb25zb2xlIHNob3VsZCBub3QgYmUgdXNlZCBieSB1c2VybGFuZCBkdXJpbmcgYXV0b2Nv bmZpZw0KICAgICAgYWx0aG91Z2ggaXQgaXMgYWx3YXlzIHVzZWQgYnkgcHJpbnRrLi4uDQoNCj4g UGVyaGFwcyB0aGVyZSdzIHNvbWV0aGluZyBlbHNlIGdvaW5nIG9uIHdydCB5b3VyIFNlcmlhbC1v dmVyLUxhbiBkZXZpY2UsDQo+IGxpa2UgdGhlIGRyaXZlciBkb2Vzbid0IGhhdmUgaXQgaW4gdGhl IGNvcnJlY3Qgc3RhdGUuIEhvdyBkbyB5b3Uga25vdw0KPiB0aGF0IHRoZSBkZXZpY2UgaGFzIGFj dHVhbGx5IHJhaXNlZCBJUlEgYW5kIHRoYXQgdGhlIHByb2JsZW0gaXMNCj4gZGlzYWJsZWQgaW50 ZXJydXB0cz8NCg0KVGhpcyBwcm9ibGVtIGhhcHBlbmVkIG9uIG15IHNldmVyYWwgc3lzdGVtcyBl dmVyeSBib290LCBsdWNraWx5OikNCkkgc2VudCBOTUkganVzdCBiZWZvcmUgY2hlY2tpbmcgcmFp c2VkIElSUSB0byBpbnZlc3RpZ2F0ZSBpdC4NClRoZSBmb2xsb3dpbmcgZmFjdHMgd2VyZSB2ZXJp ZmllZC4NCiAgKyBPbiBteSBzeXN0ZW0sIENQVTAgYWx3YXlzIGhhbmRsZWQgYSBzZXJpYWwgaW50 ZXJydXB0cy4NCiAgKyBzZXJpYWw4MjUwX2NvbnNvbGVfd3JpdGUoKSBrZXB0IENQVTAgaW50ZXJy dXB0IGRpc2FibGVkIGluIHRoaXMgdGltaW5nLg0KICAgIEl0IHdhcyBjYWxsZWQgd2hlbiB0c2Nf cmVmaW5lX2NhbGlicmF0aW9uX3dvcmsoKSBwcmludGVkIGEgaW5mbyBtZXNzYWdlLg0KICArIFdo ZW4gSSBqdXN0IGNvbW1lbnRlZCBvdXQgdGhlIHByaW50ayBpbiB0c2NfcmVmaW5lX2NhbGlicmF0 aW9uX3dvcmsoKSwNCiAgICBteSBzZXJpYWwgZGV2aWNlIHJhaXNlZCBhbiBpbnRlcnJ1cHQgaW1t ZWRpYXRlbHkNCiAgICBqdXN0IGFmdGVyIHdyaXRpbmcgdGhlaXIgcmVnaXN0ZXIgYW5kIENQVTAg aGFuZGxlZCB0aGUgaW50ZXJydXB0Lg0KDQpBZGRpdGlvbmFsbHksIEkgaGF2ZSBzZWVuICJpcnE9 PTAiIG9uIG90aGVyIHR5cGUgc3lzdGVtIHRvby4NCkkgdmVyaWZpZWQgaXQgY2FuIGJlIHJlcHJv ZHVjZWQgb24gS1ZNICBidXQgSSBrZXB0IGNwdTAgZGlzYWJsZWQNCmludGVudGlvbmFsbHkgZHVy aW5nIGF1dG9jb25maWdfaXJxKCkgYXQgdGhhdCB0aW1lLg0KDQoNCj4+Pj4+PiBBIHR5cGljYWwg Y2F1c2Ugb2YgdGhpcyBiZWhhdmlvciBpcyBwcmludGsgc3BldyBmcm9tIG92ZXJseS1pbnN0cnVt ZW50ZWQNCj4+Pj4+PiBkZWJ1Z2dpbmcgb2Ygc29tZSBkcml2ZXIgKHRyYWNlX3ByaW50ayBpcyBi ZXR0ZXIgc3VpdGVkIHRvIGhlYXZ5IGluc3RydW1lbnRhdGlvbikuDQo+Pj4+Pj4NCj4+Pj4+DQo+ Pj4+PiBQZXRlciwgSSB1bmRlcnN0YW5kIHdoYXQgeW91J3JlIHNheWluZywgaG93ZXZlciB0aGUg cHJvYmxlbSBpcyB0aGF0IHRoaXMgaXMgdGhlDQo+Pj4+PiBzZXJpYWwgZHJpdmVyIHdoaWNoIGlz IG9uZSBvZiwgaWYgbm90IF90aGVfIG1haW4gZGVidWcgb3V0cHV0IG1lY2hhbmlzbSBpbiB0aGUN Cj4+Pj4+IGtlcm5lbC4NCj4+DQo+PiBJIHRyaWVkIGZpeGluZyB0aGUgb25lIG9mIHRoZW0sIDgy NTAgZHJpdmVyLg0KPj4gICAgIltQQVRDSCAxLzJdIHNlcmlhbDogODI1MDogRml4IGF1dG9jb25m aWdfaXJxKCkgdG8gYXZvaWQgcmFjZSBjb25kaXRpb25zIi4NCj4+ICAgIGh0dHBzOi8vbGttbC5v cmcvbGttbC8yMDE1LzYvNS8yMTgNCj4+DQo+PiBUaGUgcHJvYmxlbSBjYW4gaGFwcGVuIHdoZW4g dGhlIGRyaXZlcnMgc2hvdyBqdXN0IGluZm8gbGV2ZWwgbWVzc2FnZSBkdXJpbmcgYm9vdC4NCj4+ IEl0IGRlcGVuZHMgb24gdGhlIHRpbWluZyBjb21wbGV0ZWx5Lg0KPg0KPiBSaWdodCwgYnV0IHBh dGNoIDEvMiBhZGRyZXNzZXMgdGhhdCBwcm9ibGVtLCBjb3JyZWN0Pw0KDQpZZXMuDQoNCg0KVGhh bmtzLA0KVGFpY2hpDQoNCg0KPg0KPg0KPj4+Pj4gSSdtIG5vdCBzdXJlIEkgYWdyZWUgd2l0aCBk b2luZyB0aGlzIHBhdGNoLCBidXQgcGVyaGFwcyBhbiBlYXNpZXIgYXBwcm9hY2ggd291bGQNCj4+ Pj4+IGJlIHRvIGFkZCBhIGRlYnVnIGtlcm5lbCBwYXJhbWV0ZXIgbGlrZSAic2VyaWFsLmZvcmNl X2lycT00IiB0byBmb3JjZSB0aGUgaXJxIHRvDQo+Pj4+PiBhIHByZXZpb3VzbHkga25vd24gZ29v ZCB2YWx1ZT8gIFRoYXQgd2F5IHRoZSBpc3N1ZSBvZiB0aGUgYnJva2VuIGRyaXZlciBjYW4gYmUN Cj4+Pj4+IGRlYnVnZ2VkLg0KPj4NCj4+IFByYXJpdCwgSSB0aGluayBpdCdzIGdvb2QgaWYgdGhl IHNlcmlhbCBpZCBjYW4gYmUgYWxzbyBzcGVjaWZpZWQuDQo+Pg0KPj4gSSB0aG91Z2h0IGFkZGlu ZyBpcnEgb3B0aW9uIHRvICJjb25zb2xlIiBrZXJuZWwgcGFyYW1ldGVyIGJlZm9yZSwNCj4+IGJ1 dCBpdCB3YXMgbm90IGdvb2QgaWRlYSBiZWNhdXNlIHRoZSBpbXBhY3Qgd2FzIG5vdCBzbWFsbA0K Pj4gYW5kIHBhc3NpbmcgaXJxIyB3YXMgbm90IHJlcXVpcmVkIGluIG1vc3QgY2FzZXMuDQo+PiAg ICAgIC0gUG5QIHNlcmlhbCBkZXZpY2UgY2FuIGdldCB2YWxpZCBpcnEjDQo+PiAgICAgIC0gTW9z dCBvbi1ib2FyZCBzZXJpYWwgZm9yIGNvbnNvbGUgdXNlIGxlZ2FjeSBmaXhlZCBpcnEjLCBsaWtl IGlycTMsIGlycTQuDQo+Pg0KPj4gU28sIEkgZGVzaWduZWQgdGhpcyBwYXRjaCBsaWtlIGJlbG93 Lg0KPj4gICAgLSBJdCBhbGxvd3MgY29uc29sZSBzZXJpYWwgdG8gc2tpcCBhdXRvY29uZmlnX2ly cS4NCj4+ICAgICAgQWN0dWFsbHkgSSBhc3N1bWVzIGNvbnNvbGUgc2VyaWFsIHVzZXMgYSB0eXBp Y2FsIGlycSMgaW4gb2xkX3NlcmlhbF9wb3J0W10sDQo+PiAgICAgIGJ1dCBpdCdzIHRoZSBzYW1l IGNhc2Ugd2hlcmUgQ09ORklHX1NFUklBTF84MjUwX0RFVEVDVF9JUlEgaXMgbm90IGRlZmluZWQu DQo+PiAgICAtIEl0IGFsbG93cyBub24tY29uc29sZSBzZXJpYWwgdG8ga2ljayBhdXRvY29uZmln X2lycS4NCj4+ICAgICAgc2V0c2VyaWFsIGNvbW1hbmQgY2FuIHRyeSBpdCBhZ2FpbiBsYXRlciBp ZiBpdCBmYWlscyBvbiBib290IHRpbWUuDQo+Pg0KPj4+Pg0KPj4+PiBGb3IgZGVidWdnaW5nIHB1 cnBvc2VzLCBjYW4geW91IHVzZSBhIGtlcm5lbCBidWlsdCB3aXRoDQo+Pj4+IENPTkZJR19TRVJJ QUxfODI1MF9ERVRFQ1RfSVJRPW4/DQo+Pg0KPj4gSSBrbm93ICJDT05GSUdfU0VSSUFMXzgyNTBf REVURUNUX0lSUT1uIiBpcyBvbmUgb2Ygc29sdXRpb25zDQo+PiBiZWNhdXNlIGF1dG9jb25maWdf aXJxKCkgaXMgbm90IHVzZWQgb24gYm9vdCB0aW1lIGluIHRoaXMgY2FzZS4NCj4+IEhvd2V2ZXIs IEkga25vdyBzb21lIExpbnV4IGRpc3RyaWJ1dGlvbnMgYWN0dWFsbHkgdXNlIHRoaXMgY29uZmln DQo+PiBhbmQgSSBhc3N1bWUgc29tZW9uZSBtYXkgcmVxdWlyZSBpdC4NCj4NCj4gSSBkb24ndCB3 YW50IHRvIGFkZCBhIG1vZHVsZSBwYXJhbWV0ZXIgdG8gcHJlZW1wdGl2ZWx5IGZpeCBzb21lDQo+ IHByb2JsZW0gdGhhdCAic29tZW9uZSBlbHNlIG1pZ2h0IHJlcXVpcmUiLg0KPg0KPiBNb2R1bGUg cGFyYW1ldGVycyBzaG91bGQgYWJzb2x1dGVseSBiZSBhIGxhc3QgcmVzb3J0IHNvbHV0aW9uIHRv DQo+IGFuIGFjdHVhbCBwcm9ibGVtIHRoYXQgaXMgbm90IHNvbHZhYmxlIHNvbWUgb3RoZXIgd2F5 Lg0KPg0KPiBSZWdhcmRzLA0KPiBQZXRlciBIdXJsZXkNCj4NCj4+Pj4gV2hhdCBpcyB0aGUgcGxh dGZvcm0gYW5kIGRldmljZSB0eXBlPw0KPj4+Pg0KPj4+DQo+Pj4gVGFpY2hpPw0KPj4NCj4+IEkg c2F3IHRoZSBvcmlnaW5hbCBwcm9ibGVtIG9uIHg4Ni02NCBwbGF0Zm9ybXMgd2l0aCBSSEVMNi42 Lg0KPj4gVGhlIHNlcmlhbCB3YXMgU09MKHNlcmlhbCBvdmVyIExBTiksIG5vdCByZWdpc3RlcmVk IGFzIFBuUCBkZXZpY2UuDQo+DQo+DQo+IFsuLi5dDQo+DQo+Pj4+Pj4+IHRvIGNvbnRyb2wgdGhl c2UgY2FzZXMgYnV0IGFzIGxvbmcgYXMgYXV0b19pcnEgYWxnb3JpdGhtIGlzIHVzZWQsDQo+Pj4+ Pj4+IGl0J3MgaGFyZCB0byBrbm93IHdoaWNoIENQVSBjYW4gaGFuZGxlIGFuIGludGVycnVwdCBm cm9tIGEgc2VyaWFsIGFuZA0KPj4+Pj4+PiB0byBhc3N1cmUgdGhlIGludGVycnVwdCBvZiB0aGUg Q1BVIGlzIGVuYWJsZWQgZHVyaW5nIGF1dG9faXJxLg0KPj4+Pj4+PiBNZWFud2hpbGUgZm9yIGxl Z2FjeSBjb25zb2xlcywgdGhleSBhY3R1YWxseSBkb24ndCByZXF1aXJlIGF1dG9faXJxDQo+Pj4+ Pj4+IGJlY2F1c2UgdGhleSBiYXNpY2FsbHkgdXNlIHdlbGwta25vd24gaXJxIG51bWJlci4NCj4+ Pj4+Pj4gRm9yIG5vbi1jb25zb2xlIHNlcmlhbHMsIHRoaXMgd29ya2Fyb3VuZCBpcyBub3QgcmVx dWlyZWQNCj4+Pj4+Pj4gYmVjYXVzZSBzZXRzZXJpYWwgY29tbWFuZCBjYW4ga2ljayBhdXRvY29u ZmlnX2lycSgpIGFnYWluIGZvciB0aGVtLg0KPj4+Pj4+Pg0KPj4+Pj4+PiBTaWduZWQtb2ZmLWJ5 OiBUYWljaGkgS2FnZXlhbWEgPHQta2FnZXlhbWFAY3AuanAubmVjLmNvbT4NCj4+Pj4+Pj4gQ2M6 IE5hb3lhIEhvcmlndWNoaSA8bi1ob3JpZ3VjaGlAYWguanAubmVjLmNvbT4NCj4+Pj4+Pj4gLS0t DQo+Pj4+Pj4+ICAgICBkcml2ZXJzL3R0eS9zZXJpYWwvODI1MC84MjUwX2NvcmUuYyB8ICAgMTcg KysrKysrKysrKysrKysrKysNCj4+Pj4+Pj4gICAgIDEgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0 aW9ucygrKSwgMCBkZWxldGlvbnMoLSkNCj4+Pj4+Pj4NCj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdHR5L3NlcmlhbC84MjUwLzgyNTBfY29yZS5jIGIvZHJpdmVycy90dHkvc2VyaWFsLzgy NTAvODI1MF9jb3JlLmMNCj4+Pj4+Pj4gaW5kZXggNmJmMzFmMi4uNjBmZGEyOCAxMDA2NDQNCj4+ Pj4+Pj4gLS0tIGEvZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvODI1MF9jb3JlLmMNCj4+Pj4+Pj4g KysrIGIvZHJpdmVycy90dHkvc2VyaWFsLzgyNTAvODI1MF9jb3JlLmMNCj4+Pj4+Pj4gQEAgLTY1 LDYgKzY1LDggQEAgc3RhdGljIGludCBzZXJpYWxfaW5kZXgoc3RydWN0IHVhcnRfcG9ydCAqcG9y dCkNCj4+Pj4+Pj4NCj4+Pj4+Pj4gICAgIHN0YXRpYyB1bnNpZ25lZCBpbnQgc2tpcF90eGVuX3Rl c3Q7IC8qIGZvcmNlIHNraXAgb2YgdHhlbiB0ZXN0IGF0IGluaXQgdGltZSAqLw0KPj4+Pj4+Pg0K Pj4+Pj4+PiArc3RhdGljIHVuc2lnbmVkIGludCBza2lwX2NvbnNfYXV0b2lycTsgLyogZm9yY2Ug c2tpcCBhdXRvaXJxIGZvciBjb25zb2xlICovDQo+Pj4+Pj4+ICsNCj4+Pj4+Pj4gICAgIC8qDQo+ Pj4+Pj4+ICAgICAgKiBEZWJ1Z2dpbmcuDQo+Pj4+Pj4+ICAgICAgKi8NCj4+Pj4+Pj4gQEAgLTMz MzYsNiArMzMzOCw5IEBAIHNlcmlhbDgyNTBfcmVnaXN0ZXJfcG9ydHMoc3RydWN0IHVhcnRfZHJp dmVyICpkcnYsIHN0cnVjdCBkZXZpY2UgKmRldikNCj4+Pj4+Pj4gICAgIAkJaWYgKHNraXBfdHhl bl90ZXN0KQ0KPj4+Pj4+PiAgICAgCQkJdXAtPnBvcnQuZmxhZ3MgfD0gVVBGX05PX1RYRU5fVEVT VDsNCj4+Pj4+Pj4NCj4+Pj4+Pj4gKwkJaWYgKHVhcnRfY29uc29sZSgmdXAtPnBvcnQpICYmIHNr aXBfY29uc19hdXRvaXJxKQ0KPj4+Pj4+PiArCQkJdXAtPnBvcnQuZmxhZ3MgJj0gflVQRl9BVVRP X0lSUTsNCj4+Pj4+Pj4gKw0KPj4+Pj4+PiAgICAgCQl1YXJ0X2FkZF9vbmVfcG9ydChkcnYsICZ1 cC0+cG9ydCk7DQo+Pj4+Pj4+ICAgICAJfQ0KPj4+Pj4+PiAgICAgfQ0KPj4+Pj4+PiBAQCAtMzg3 NSw2ICszODgwLDkgQEAgaW50IHNlcmlhbDgyNTBfcmVnaXN0ZXJfODI1MF9wb3J0KHN0cnVjdCB1 YXJ0XzgyNTBfcG9ydCAqdXApDQo+Pj4+Pj4+ICAgICAJCWlmIChza2lwX3R4ZW5fdGVzdCkNCj4+ Pj4+Pj4gICAgIAkJCXVhcnQtPnBvcnQuZmxhZ3MgfD0gVVBGX05PX1RYRU5fVEVTVDsNCj4+Pj4+ Pj4NCj4+Pj4+Pj4gKwkJaWYgKHVhcnRfY29uc29sZSgmdWFydC0+cG9ydCkgJiYgc2tpcF9jb25z X2F1dG9pcnEpDQo+Pj4+Pj4+ICsJCQl1YXJ0LT5wb3J0LmZsYWdzICY9IH5VUEZfQVVUT19JUlE7 DQo+Pj4+Pj4+ICsNCj4+Pj4+Pj4gICAgIAkJaWYgKHVwLT5wb3J0LmZsYWdzICYgVVBGX0ZJWEVE X1RZUEUpDQo+Pj4+Pj4+ICAgICAJCQl1YXJ0LT5wb3J0LnR5cGUgPSB1cC0+cG9ydC50eXBlOw0K Pj4+Pj4+Pg0KPj4+Pj4+PiBAQCAtMzkzNiw2ICszOTQ0LDEwIEBAIHZvaWQgc2VyaWFsODI1MF91 bnJlZ2lzdGVyX3BvcnQoaW50IGxpbmUpDQo+Pj4+Pj4+ICAgICAJCXVhcnQtPnBvcnQuZmxhZ3Mg Jj0gflVQRl9CT09UX0FVVE9DT05GOw0KPj4+Pj4+PiAgICAgCQlpZiAoc2tpcF90eGVuX3Rlc3Qp DQo+Pj4+Pj4+ICAgICAJCQl1YXJ0LT5wb3J0LmZsYWdzIHw9IFVQRl9OT19UWEVOX1RFU1Q7DQo+ Pj4+Pj4+ICsNCj4+Pj4+Pj4gKwkJaWYgKHVhcnRfY29uc29sZSgmdWFydC0+cG9ydCkgJiYgc2tp cF9jb25zX2F1dG9pcnEpDQo+Pj4+Pj4+ICsJCQl1YXJ0LT5wb3J0LmZsYWdzICY9IH5VUEZfQVVU T19JUlE7DQo+Pj4+Pj4+ICsNCj4+Pj4+Pj4gICAgIAkJdWFydC0+cG9ydC50eXBlID0gUE9SVF9V TktOT1dOOw0KPj4+Pj4+PiAgICAgCQl1YXJ0LT5wb3J0LmRldiA9ICZzZXJpYWw4MjUwX2lzYV9k ZXZzLT5kZXY7DQo+Pj4+Pj4+ICAgICAJCXVhcnQtPmNhcGFiaWxpdGllcyA9IDA7DQo+Pj4+Pj4+ IEBAIC00MDQ0LDYgKzQwNTYsOSBAQCBNT0RVTEVfUEFSTV9ERVNDKG5yX3VhcnRzLCAiTWF4aW11 bSBudW1iZXIgb2YgVUFSVHMgc3VwcG9ydGVkLiAoMS0iIF9fTU9EVUxFX1NUUg0KPj4+Pj4+PiAg ICAgbW9kdWxlX3BhcmFtKHNraXBfdHhlbl90ZXN0LCB1aW50LCAwNjQ0KTsNCj4+Pj4+Pj4gICAg IE1PRFVMRV9QQVJNX0RFU0Moc2tpcF90eGVuX3Rlc3QsICJTa2lwIGNoZWNraW5nIGZvciB0aGUg VFhFTiBidWcgYXQgaW5pdCB0aW1lIik7DQo+Pj4+Pj4+DQo+Pj4+Pj4+ICttb2R1bGVfcGFyYW0o c2tpcF9jb25zX2F1dG9pcnEsIHVpbnQsIDA2NDQpOw0KPj4+Pj4+PiArTU9EVUxFX1BBUk1fREVT Qyhza2lwX2NvbnNfYXV0b2lycSwgIlNraXAgYXV0byBpcnEgZm9yIGNvbnNvbGUgZHVyaW5nIGJv b3QiKTsNCj4+Pj4+Pj4gKw0KPj4+Pj4+PiAgICAgI2lmZGVmIENPTkZJR19TRVJJQUxfODI1MF9S U0ENCj4+Pj4+Pj4gICAgIG1vZHVsZV9wYXJhbV9hcnJheShwcm9iZV9yc2EsIHVsb25nLCAmcHJv YmVfcnNhX2NvdW50LCAwNDQ0KTsNCj4+Pj4+Pj4gICAgIE1PRFVMRV9QQVJNX0RFU0MocHJvYmVf cnNhLCAiUHJvYmUgSS9PIHBvcnRzIGZvciBSU0EiKTsNCj4+Pj4+Pj4gQEAgLTQwNzAsNiArNDA4 NSw4IEBAIHN0YXRpYyB2b2lkIF9fdXNlZCBzODI1MF9vcHRpb25zKHZvaWQpDQo+Pj4+Pj4+ICAg ICAJbW9kdWxlX3BhcmFtX2NiKHNoYXJlX2lycXMsICZwYXJhbV9vcHNfdWludCwgJnNoYXJlX2ly cXMsIDA2NDQpOw0KPj4+Pj4+PiAgICAgCW1vZHVsZV9wYXJhbV9jYihucl91YXJ0cywgJnBhcmFt X29wc191aW50LCAmbnJfdWFydHMsIDA2NDQpOw0KPj4+Pj4+PiAgICAgCW1vZHVsZV9wYXJhbV9j Yihza2lwX3R4ZW5fdGVzdCwgJnBhcmFtX29wc191aW50LCAmc2tpcF90eGVuX3Rlc3QsIDA2NDQp Ow0KPj4+Pj4+PiArCW1vZHVsZV9wYXJhbV9jYihza2lwX2NvbnNfYXV0b2lycSwgJnBhcmFtX29w c191aW50LA0KPj4+Pj4+PiArCQkmc2tpcF9jb25zX2F1dG9pcnEsIDA2NDQpOw0KPj4+Pj4+PiAg ICAgI2lmZGVmIENPTkZJR19TRVJJQUxfODI1MF9SU0ENCj4+Pj4+Pj4gICAgIAlfX21vZHVsZV9w YXJhbV9jYWxsKE1PRFVMRV9QQVJBTV9QUkVGSVgsIHByb2JlX3JzYSwNCj4+Pj4+Pj4gICAgIAkJ JnBhcmFtX2FycmF5X29wcywgLmFyciA9ICZfX3BhcmFtX2Fycl9wcm9iZV9yc2EsDQo+Pj4+Pj4+ DQo+Pj4+Pj4NCj4+Pj4NCj4NCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752387AbbGNBTy (ORCPT ); Mon, 13 Jul 2015 21:19:54 -0400 Received: from TYO202.gate.nec.co.jp ([210.143.35.52]:64041 "EHLO tyo202.gate.nec.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751741AbbGNBTu (ORCPT ); Mon, 13 Jul 2015 21:19:50 -0400 From: Taichi Kageyama To: Peter Hurley , Prarit Bhargava CC: "gregkh@linuxfoundation.org" , "linux-serial@vger.kernel.org" , "jslaby@suse.cz" , "linux-kernel@vger.kernel.org" , Naoya Horiguchi Subject: Re: [PATCH 2/2] serial: 8250: Allow to skip autoconfig_irq() for a console Thread-Topic: [PATCH 2/2] serial: 8250: Allow to skip autoconfig_irq() for a console Thread-Index: AQHQn3bbstCqjnq7WEa1Abzn0VnSqJ3RFEoAgAAQAoCAABBPAIAAAnmAgAEEWICAAss3AIAEyNqA Date: Tue, 14 Jul 2015 01:16:05 +0000 Message-ID: <55A462D1.3080709@cp.jp.nec.com> References: <55717224.9060104@cp.jp.nec.com> <557173EC.5000307@cp.jp.nec.com> <559D0FCC.5040107@hurleysoftware.com> <559D1D39.9070405@redhat.com> <559D2AE8.8080603@hurleysoftware.com> <559D2CFB.1060507@redhat.com> <559E075F.8040800@cp.jp.nec.com> <55A05F56.90305@hurleysoftware.com> In-Reply-To: <55A05F56.90305@hurleysoftware.com> Accept-Language: en-US, ja-JP Content-Language: ja-JP X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.34.108.73] Content-Type: text/plain; charset="utf-8" Content-ID: MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id t6E1K0DY021960 On 2015/07/11 9:12, Peter Hurley wrote: > On 07/09/2015 01:32 AM, Taichi Kageyama wrote: >> On 2015/07/08 23:00, Prarit Bhargava wrote: >>> On 07/08/2015 09:51 AM, Peter Hurley wrote: >>>> On 07/08/2015 08:53 AM, Prarit Bhargava wrote: >>>>> On 07/08/2015 07:55 AM, Peter Hurley wrote: >>>>>> On 06/05/2015 06:03 AM, Taichi Kageyama wrote: >>>>>>> This patch provides a new parameter as a workaround of the following >>>>>>> problem. It allows us to skip autoconfig_irq() and to use a well-known irq >>>>>>> number for a console even if CONFIG_SERIAL_8250_DETECT_IRQ is defined. >>>>>>> >>>>>>> There're cases where autoconfig_irq() fails during boot. >>>>>>> In these cases, the console doesn't work in interrupt mode, >>>>>>> the mode cannot be changed anymore, and "input overrun" >>>>>>> (which can make operation mistakes) happens easily. >>>>>>> This problem happens with high rate every boot once it occurs >>>>>>> because the boot sequence is always almost same. >>>>>>> >>>>>>> autoconfig_irq() assumes that a CPU can handle an interrupt from a serial >>>>>>> during the waiting time, but there're some cases where the CPU cannot >>>>>>> handle the interrupt for longer than the time. It completely depends on >>>>>>> how other functions work on the CPU. Ideally, autoconfig_irq() should be >>>>>>> fixed >>>>>> >> >> Thank you for your comments. >> >>>>>> It completely depends on how long some other driver has interrupts disabled, >> >> Agree. >> >>>>>> which is a problem that needs fixed _in that driver_. autoconfig_irq() does not >>>>>> need fixing. >> >> Peter, ideally, you're right. >> However, we cannot assume how long other drivers disable interrupts. >> That's why I introduced this workaround. >> In my opinion, a console is important and always should be available >> even if other drivers have a bad behavior. > > I have no problem with wanting to make the console more robust, but > rather with the hacky way this is being done. Hi Peter, Thank you for your advice. If there is other way to fix this problem simply, I also think it's better than the dirty hack. > Better solutions: > 1. Fix autoprobing to force irq affinity to autoprobing cpu I couldn't make sure which CPU handled serial interrupt on all platforms before irq# was not known. Do you know the way to detect which CPU is used for console serial? The way is safe for all platforms? > 2. Fix how the 8250 driver behaves with no irq The console works with polling-mode if irq==0. I think this behavior should not be changed. > 3. Fix printk locking to be more granular (this needs doing anyway) > 4. Add exclusive port mode for console These two are solutions only for the problem which is caused by printk. I think my [patch 1/2] is enough to resolve the case at this time. > Plus it wouldn't hurt to add some diagnostics to automate discovery > of misbehaving drivers that break autoprobing. Probably we can add retry code, but it cannot fix this problem completely. And the retry can be just waste time for some devices because the driver cannot recognize whether interrupt is disabled temporarily or interrupt mode is not available as long as using probe_irq_on/off(). I though other workarounds, but they were also not good idea. + Close all console sessions to kick autoconfig again Console is always opened by getty or other programs after boot. It's hard to close them. I think the driver should be fixed. + Call autoconfig by force even if console is opened. It can be called forcibly if uart_do_autoconfig() is changed, but I think console should not be used by userland during autoconfig although it is always used by printk... > Perhaps there's something else going on wrt your Serial-over-Lan device, > like the driver doesn't have it in the correct state. How do you know > that the device has actually raised IRQ and that the problem is > disabled interrupts? This problem happened on my several systems every boot, luckily:) I sent NMI just before checking raised IRQ to investigate it. The following facts were verified. + On my system, CPU0 always handled a serial interrupts. + serial8250_console_write() kept CPU0 interrupt disabled in this timing. It was called when tsc_refine_calibration_work() printed a info message. + When I just commented out the printk in tsc_refine_calibration_work(), my serial device raised an interrupt immediately just after writing their register and CPU0 handled the interrupt. Additionally, I have seen "irq==0" on other type system too. I verified it can be reproduced on KVM but I kept cpu0 disabled intentionally during autoconfig_irq() at that time. >>>>>> A typical cause of this behavior is printk spew from overly-instrumented >>>>>> debugging of some driver (trace_printk is better suited to heavy instrumentation). >>>>>> >>>>> >>>>> Peter, I understand what you're saying, however the problem is that this is the >>>>> serial driver which is one of, if not _the_ main debug output mechanism in the >>>>> kernel. >> >> I tried fixing the one of them, 8250 driver. >> "[PATCH 1/2] serial: 8250: Fix autoconfig_irq() to avoid race conditions". >> https://lkml.org/lkml/2015/6/5/218 >> >> The problem can happen when the drivers show just info level message during boot. >> It depends on the timing completely. > > Right, but patch 1/2 addresses that problem, correct? Yes. Thanks, Taichi > > >>>>> I'm not sure I agree with doing this patch, but perhaps an easier approach would >>>>> be to add a debug kernel parameter like "serial.force_irq=4" to force the irq to >>>>> a previously known good value? That way the issue of the broken driver can be >>>>> debugged. >> >> Prarit, I think it's good if the serial id can be also specified. >> >> I thought adding irq option to "console" kernel parameter before, >> but it was not good idea because the impact was not small >> and passing irq# was not required in most cases. >> - PnP serial device can get valid irq# >> - Most on-board serial for console use legacy fixed irq#, like irq3, irq4. >> >> So, I designed this patch like below. >> - It allows console serial to skip autoconfig_irq. >> Actually I assumes console serial uses a typical irq# in old_serial_port[], >> but it's the same case where CONFIG_SERIAL_8250_DETECT_IRQ is not defined. >> - It allows non-console serial to kick autoconfig_irq. >> setserial command can try it again later if it fails on boot time. >> >>>> >>>> For debugging purposes, can you use a kernel built with >>>> CONFIG_SERIAL_8250_DETECT_IRQ=n? >> >> I know "CONFIG_SERIAL_8250_DETECT_IRQ=n" is one of solutions >> because autoconfig_irq() is not used on boot time in this case. >> However, I know some Linux distributions actually use this config >> and I assume someone may require it. > > I don't want to add a module parameter to preemptively fix some > problem that "someone else might require". > > Module parameters should absolutely be a last resort solution to > an actual problem that is not solvable some other way. > > Regards, > Peter Hurley > >>>> What is the platform and device type? >>>> >>> >>> Taichi? >> >> I saw the original problem on x86-64 platforms with RHEL6.6. >> The serial was SOL(serial over LAN), not registered as PnP device. > > > [...] > >>>>>>> to control these cases but as long as auto_irq algorithm is used, >>>>>>> it's hard to know which CPU can handle an interrupt from a serial and >>>>>>> to assure the interrupt of the CPU is enabled during auto_irq. >>>>>>> Meanwhile for legacy consoles, they actually don't require auto_irq >>>>>>> because they basically use well-known irq number. >>>>>>> For non-console serials, this workaround is not required >>>>>>> because setserial command can kick autoconfig_irq() again for them. >>>>>>> >>>>>>> Signed-off-by: Taichi Kageyama >>>>>>> Cc: Naoya Horiguchi >>>>>>> --- >>>>>>> drivers/tty/serial/8250/8250_core.c | 17 +++++++++++++++++ >>>>>>> 1 files changed, 17 insertions(+), 0 deletions(-) >>>>>>> >>>>>>> diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c >>>>>>> index 6bf31f2..60fda28 100644 >>>>>>> --- a/drivers/tty/serial/8250/8250_core.c >>>>>>> +++ b/drivers/tty/serial/8250/8250_core.c >>>>>>> @@ -65,6 +65,8 @@ static int serial_index(struct uart_port *port) >>>>>>> >>>>>>> static unsigned int skip_txen_test; /* force skip of txen test at init time */ >>>>>>> >>>>>>> +static unsigned int skip_cons_autoirq; /* force skip autoirq for console */ >>>>>>> + >>>>>>> /* >>>>>>> * Debugging. >>>>>>> */ >>>>>>> @@ -3336,6 +3338,9 @@ serial8250_register_ports(struct uart_driver *drv, struct device *dev) >>>>>>> if (skip_txen_test) >>>>>>> up->port.flags |= UPF_NO_TXEN_TEST; >>>>>>> >>>>>>> + if (uart_console(&up->port) && skip_cons_autoirq) >>>>>>> + up->port.flags &= ~UPF_AUTO_IRQ; >>>>>>> + >>>>>>> uart_add_one_port(drv, &up->port); >>>>>>> } >>>>>>> } >>>>>>> @@ -3875,6 +3880,9 @@ int serial8250_register_8250_port(struct uart_8250_port *up) >>>>>>> if (skip_txen_test) >>>>>>> uart->port.flags |= UPF_NO_TXEN_TEST; >>>>>>> >>>>>>> + if (uart_console(&uart->port) && skip_cons_autoirq) >>>>>>> + uart->port.flags &= ~UPF_AUTO_IRQ; >>>>>>> + >>>>>>> if (up->port.flags & UPF_FIXED_TYPE) >>>>>>> uart->port.type = up->port.type; >>>>>>> >>>>>>> @@ -3936,6 +3944,10 @@ void serial8250_unregister_port(int line) >>>>>>> uart->port.flags &= ~UPF_BOOT_AUTOCONF; >>>>>>> if (skip_txen_test) >>>>>>> uart->port.flags |= UPF_NO_TXEN_TEST; >>>>>>> + >>>>>>> + if (uart_console(&uart->port) && skip_cons_autoirq) >>>>>>> + uart->port.flags &= ~UPF_AUTO_IRQ; >>>>>>> + >>>>>>> uart->port.type = PORT_UNKNOWN; >>>>>>> uart->port.dev = &serial8250_isa_devs->dev; >>>>>>> uart->capabilities = 0; >>>>>>> @@ -4044,6 +4056,9 @@ MODULE_PARM_DESC(nr_uarts, "Maximum number of UARTs supported. (1-" __MODULE_STR >>>>>>> module_param(skip_txen_test, uint, 0644); >>>>>>> MODULE_PARM_DESC(skip_txen_test, "Skip checking for the TXEN bug at init time"); >>>>>>> >>>>>>> +module_param(skip_cons_autoirq, uint, 0644); >>>>>>> +MODULE_PARM_DESC(skip_cons_autoirq, "Skip auto irq for console during boot"); >>>>>>> + >>>>>>> #ifdef CONFIG_SERIAL_8250_RSA >>>>>>> module_param_array(probe_rsa, ulong, &probe_rsa_count, 0444); >>>>>>> MODULE_PARM_DESC(probe_rsa, "Probe I/O ports for RSA"); >>>>>>> @@ -4070,6 +4085,8 @@ static void __used s8250_options(void) >>>>>>> module_param_cb(share_irqs, ¶m_ops_uint, &share_irqs, 0644); >>>>>>> module_param_cb(nr_uarts, ¶m_ops_uint, &nr_uarts, 0644); >>>>>>> module_param_cb(skip_txen_test, ¶m_ops_uint, &skip_txen_test, 0644); >>>>>>> + module_param_cb(skip_cons_autoirq, ¶m_ops_uint, >>>>>>> + &skip_cons_autoirq, 0644); >>>>>>> #ifdef CONFIG_SERIAL_8250_RSA >>>>>>> __module_param_call(MODULE_PARAM_PREFIX, probe_rsa, >>>>>>> ¶m_array_ops, .arr = &__param_arr_probe_rsa, >>>>>>> >>>>>> >>>> > {.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I