All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <1501759724.15969.49.camel@intel.com>

diff --git a/a/1.txt b/N1/1.txt
index 152813e..b50ad69 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,62 +1,47 @@
-On Thu, 2017-08-03 at 13:02 +0300, Kalle Valo wrote:
-> "Coelho, Luciano" <luciano.coelho@intel.com> writes:
-> 
-> > On Thu, 2017-08-03 at 11:10 +0200, Jiri Kosina wrote:
-> > > On Mon, 31 Jul 2017, Jiri Kosina wrote:
-> > > 
-> > > > Hi,
-> > > > 
-> > > > booting current Linus' tree, I'm seeing lockdep splat (see the end of this 
-> > > > mail).
-> > > > 
-> > > > Apparently, there is AB-BA between tz->lock and mvm->mutex through the CPU 
-> > > > hotplug lock.
-> > > > 
-> > > > The obivous depency is: thermal_zone_get_temp() acquires tz->lock, and 
-> > > > then calls iwl_mvm_tzone_get_temp() (through tz->ops->get_temp() 
-> > > > callback), which acquires mvm->mutex
-> > > > 
-> > > > The less obvious dependency is primarily caused by iwl_op_mode_mvm_start() 
-> > > > allocating workqueue (#2 stacktrace) while holding mvm->mutex (which is 
-> > > > broken, because that mutex is being taken also from CPU hotplug callback 
-> > > > path, hence the AB-BA).
-> > > 
-> > > As the "central" part of the dependency is being added by iwlwifi driver 
-> > > (_iwl_pcie_rx_init() allocating workqueue while holding 
-> > > trans_pcie->mutex), I'm adding iwlwifi folks as well to CC.
-
-[...]
-
-> > > >  -> #2 (cpu_hotplug_lock.rw_sem){++++++}:
-> > > >         lock_acquire+0xbd/0x220
-> > > >         cpus_read_lock+0x46/0x90
-> > > >         apply_workqueue_attrs+0x17/0x50
-> > > >         __alloc_workqueue_key+0x195/0x4d0
-> > > >         _iwl_pcie_rx_init+0x384/0x390 [iwlwifi]
-> > > >         iwl_pcie_rx_init+0x1e/0x380 [iwlwifi]
-> > > >         iwl_trans_pcie_start_fw+0x295/0x6f0 [iwlwifi]
-> > > >         iwl_mvm_load_ucode_wait_alive+0xe7/0x390 [iwlmvm]
-> > > >         iwl_run_init_mvm_ucode+0x84/0x320 [iwlmvm]
-> > > >         iwl_op_mode_mvm_start+0x964/0xd30 [iwlmvm]
-> > > >         _iwl_op_mode_start.isra.9+0x47/0xa0 [iwlwifi]
-> > > >         iwl_opmode_register+0xaa/0xd0 [iwlwifi]
-> > > >         iwl_mvm_init+0x37/0x1000 [iwlmvm]
-> > > >         do_one_initcall+0x51/0x1a9
-> > > >         do_init_module+0x60/0x20e
-> > > >         load_module+0x203f/0x2b50
-> > > >         SYSC_finit_module+0x96/0xd0
-> > > >         SyS_finit_module+0xe/0x10
-> > > >         entry_SYSCALL_64_fastpath+0x23/0xc2
-
-Okay, so as I understand it the problem has been there for a long time,
-but the splat is only coming up now because of Thomas' patch that adds
-the lockdep map[1], right?
-
-I see the workqueue allocation you mentioned.  I'll try to move this
-allocation out of the mutex and see how it goes.
-
-[1] http://lkml.kernel.org/r/20170524081549.709375845@linutronix.de
-
---
-Cheers,
-Luca.
+T24gVGh1LCAyMDE3LTA4LTAzIGF0IDEzOjAyICswMzAwLCBLYWxsZSBWYWxvIHdyb3RlOg0KPiAi
+Q29lbGhvLCBMdWNpYW5vIiA8bHVjaWFuby5jb2VsaG9AaW50ZWwuY29tPiB3cml0ZXM6DQo+IA0K
+PiA+IE9uIFRodSwgMjAxNy0wOC0wMyBhdCAxMToxMCArMDIwMCwgSmlyaSBLb3NpbmEgd3JvdGU6
+DQo+ID4gPiBPbiBNb24sIDMxIEp1bCAyMDE3LCBKaXJpIEtvc2luYSB3cm90ZToNCj4gPiA+IA0K
+PiA+ID4gPiBIaSwNCj4gPiA+ID4gDQo+ID4gPiA+IGJvb3RpbmcgY3VycmVudCBMaW51cycgdHJl
+ZSwgSSdtIHNlZWluZyBsb2NrZGVwIHNwbGF0IChzZWUgdGhlIGVuZCBvZiB0aGlzIA0KPiA+ID4g
+PiBtYWlsKS4NCj4gPiA+ID4gDQo+ID4gPiA+IEFwcGFyZW50bHksIHRoZXJlIGlzIEFCLUJBIGJl
+dHdlZW4gdHotPmxvY2sgYW5kIG12bS0+bXV0ZXggdGhyb3VnaCB0aGUgQ1BVIA0KPiA+ID4gPiBo
+b3RwbHVnIGxvY2suDQo+ID4gPiA+IA0KPiA+ID4gPiBUaGUgb2Jpdm91cyBkZXBlbmN5IGlzOiB0
+aGVybWFsX3pvbmVfZ2V0X3RlbXAoKSBhY3F1aXJlcyB0ei0+bG9jaywgYW5kIA0KPiA+ID4gPiB0
+aGVuIGNhbGxzIGl3bF9tdm1fdHpvbmVfZ2V0X3RlbXAoKSAodGhyb3VnaCB0ei0+b3BzLT5nZXRf
+dGVtcCgpIA0KPiA+ID4gPiBjYWxsYmFjayksIHdoaWNoIGFjcXVpcmVzIG12bS0+bXV0ZXgNCj4g
+PiA+ID4gDQo+ID4gPiA+IFRoZSBsZXNzIG9idmlvdXMgZGVwZW5kZW5jeSBpcyBwcmltYXJpbHkg
+Y2F1c2VkIGJ5IGl3bF9vcF9tb2RlX212bV9zdGFydCgpIA0KPiA+ID4gPiBhbGxvY2F0aW5nIHdv
+cmtxdWV1ZSAoIzIgc3RhY2t0cmFjZSkgd2hpbGUgaG9sZGluZyBtdm0tPm11dGV4ICh3aGljaCBp
+cyANCj4gPiA+ID4gYnJva2VuLCBiZWNhdXNlIHRoYXQgbXV0ZXggaXMgYmVpbmcgdGFrZW4gYWxz
+byBmcm9tIENQVSBob3RwbHVnIGNhbGxiYWNrIA0KPiA+ID4gPiBwYXRoLCBoZW5jZSB0aGUgQUIt
+QkEpLg0KPiA+ID4gDQo+ID4gPiBBcyB0aGUgImNlbnRyYWwiIHBhcnQgb2YgdGhlIGRlcGVuZGVu
+Y3kgaXMgYmVpbmcgYWRkZWQgYnkgaXdsd2lmaSBkcml2ZXIgDQo+ID4gPiAoX2l3bF9wY2llX3J4
+X2luaXQoKSBhbGxvY2F0aW5nIHdvcmtxdWV1ZSB3aGlsZSBob2xkaW5nIA0KPiA+ID4gdHJhbnNf
+cGNpZS0+bXV0ZXgpLCBJJ20gYWRkaW5nIGl3bHdpZmkgZm9sa3MgYXMgd2VsbCB0byBDQy4NCg0K
+Wy4uLl0NCg0KPiA+ID4gPiAgLT4gIzIgKGNwdV9ob3RwbHVnX2xvY2sucndfc2VtKXsrKysrKyt9
+Og0KPiA+ID4gPiAgICAgICAgIGxvY2tfYWNxdWlyZSsweGJkLzB4MjIwDQo+ID4gPiA+ICAgICAg
+ICAgY3B1c19yZWFkX2xvY2srMHg0Ni8weDkwDQo+ID4gPiA+ICAgICAgICAgYXBwbHlfd29ya3F1
+ZXVlX2F0dHJzKzB4MTcvMHg1MA0KPiA+ID4gPiAgICAgICAgIF9fYWxsb2Nfd29ya3F1ZXVlX2tl
+eSsweDE5NS8weDRkMA0KPiA+ID4gPiAgICAgICAgIF9pd2xfcGNpZV9yeF9pbml0KzB4Mzg0LzB4
+MzkwIFtpd2x3aWZpXQ0KPiA+ID4gPiAgICAgICAgIGl3bF9wY2llX3J4X2luaXQrMHgxZS8weDM4
+MCBbaXdsd2lmaV0NCj4gPiA+ID4gICAgICAgICBpd2xfdHJhbnNfcGNpZV9zdGFydF9mdysweDI5
+NS8weDZmMCBbaXdsd2lmaV0NCj4gPiA+ID4gICAgICAgICBpd2xfbXZtX2xvYWRfdWNvZGVfd2Fp
+dF9hbGl2ZSsweGU3LzB4MzkwIFtpd2xtdm1dDQo+ID4gPiA+ICAgICAgICAgaXdsX3J1bl9pbml0
+X212bV91Y29kZSsweDg0LzB4MzIwIFtpd2xtdm1dDQo+ID4gPiA+ICAgICAgICAgaXdsX29wX21v
+ZGVfbXZtX3N0YXJ0KzB4OTY0LzB4ZDMwIFtpd2xtdm1dDQo+ID4gPiA+ICAgICAgICAgX2l3bF9v
+cF9tb2RlX3N0YXJ0LmlzcmEuOSsweDQ3LzB4YTAgW2l3bHdpZmldDQo+ID4gPiA+ICAgICAgICAg
+aXdsX29wbW9kZV9yZWdpc3RlcisweGFhLzB4ZDAgW2l3bHdpZmldDQo+ID4gPiA+ICAgICAgICAg
+aXdsX212bV9pbml0KzB4MzcvMHgxMDAwIFtpd2xtdm1dDQo+ID4gPiA+ICAgICAgICAgZG9fb25l
+X2luaXRjYWxsKzB4NTEvMHgxYTkNCj4gPiA+ID4gICAgICAgICBkb19pbml0X21vZHVsZSsweDYw
+LzB4MjBlDQo+ID4gPiA+ICAgICAgICAgbG9hZF9tb2R1bGUrMHgyMDNmLzB4MmI1MA0KPiA+ID4g
+PiAgICAgICAgIFNZU0NfZmluaXRfbW9kdWxlKzB4OTYvMHhkMA0KPiA+ID4gPiAgICAgICAgIFN5
+U19maW5pdF9tb2R1bGUrMHhlLzB4MTANCj4gPiA+ID4gICAgICAgICBlbnRyeV9TWVNDQUxMXzY0
+X2Zhc3RwYXRoKzB4MjMvMHhjMg0KDQpPa2F5LCBzbyBhcyBJIHVuZGVyc3RhbmQgaXQgdGhlIHBy
+b2JsZW0gaGFzIGJlZW4gdGhlcmUgZm9yIGEgbG9uZyB0aW1lLA0KYnV0IHRoZSBzcGxhdCBpcyBv
+bmx5IGNvbWluZyB1cCBub3cgYmVjYXVzZSBvZiBUaG9tYXMnIHBhdGNoIHRoYXQgYWRkcw0KdGhl
+IGxvY2tkZXAgbWFwWzFdLCByaWdodD8NCg0KSSBzZWUgdGhlIHdvcmtxdWV1ZSBhbGxvY2F0aW9u
+IHlvdSBtZW50aW9uZWQuICBJJ2xsIHRyeSB0byBtb3ZlIHRoaXMNCmFsbG9jYXRpb24gb3V0IG9m
+IHRoZSBtdXRleCBhbmQgc2VlIGhvdyBpdCBnb2VzLg0KDQpbMV0gaHR0cDovL2xrbWwua2VybmVs
+Lm9yZy9yLzIwMTcwNTI0MDgxNTQ5LjcwOTM3NTg0NUBsaW51dHJvbml4LmRlDQoNCi0tDQpDaGVl
+cnMsDQpMdWNhLg==
diff --git a/a/content_digest b/N1/content_digest
index 2047d19..22a7035 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -24,67 +24,52 @@
  " Emmanuel <emmanuel.grumbach@intel.com>\0"
  "\00:1\0"
  "b\0"
- "On Thu, 2017-08-03 at 13:02 +0300, Kalle Valo wrote:\n"
- "> \"Coelho, Luciano\" <luciano.coelho@intel.com> writes:\n"
- "> \n"
- "> > On Thu, 2017-08-03 at 11:10 +0200, Jiri Kosina wrote:\n"
- "> > > On Mon, 31 Jul 2017, Jiri Kosina wrote:\n"
- "> > > \n"
- "> > > > Hi,\n"
- "> > > > \n"
- "> > > > booting current Linus' tree, I'm seeing lockdep splat (see the end of this \n"
- "> > > > mail).\n"
- "> > > > \n"
- "> > > > Apparently, there is AB-BA between tz->lock and mvm->mutex through the CPU \n"
- "> > > > hotplug lock.\n"
- "> > > > \n"
- "> > > > The obivous depency is: thermal_zone_get_temp() acquires tz->lock, and \n"
- "> > > > then calls iwl_mvm_tzone_get_temp() (through tz->ops->get_temp() \n"
- "> > > > callback), which acquires mvm->mutex\n"
- "> > > > \n"
- "> > > > The less obvious dependency is primarily caused by iwl_op_mode_mvm_start() \n"
- "> > > > allocating workqueue (#2 stacktrace) while holding mvm->mutex (which is \n"
- "> > > > broken, because that mutex is being taken also from CPU hotplug callback \n"
- "> > > > path, hence the AB-BA).\n"
- "> > > \n"
- "> > > As the \"central\" part of the dependency is being added by iwlwifi driver \n"
- "> > > (_iwl_pcie_rx_init() allocating workqueue while holding \n"
- "> > > trans_pcie->mutex), I'm adding iwlwifi folks as well to CC.\n"
- "\n"
- "[...]\n"
- "\n"
- "> > > >  -> #2 (cpu_hotplug_lock.rw_sem){++++++}:\n"
- "> > > >         lock_acquire+0xbd/0x220\n"
- "> > > >         cpus_read_lock+0x46/0x90\n"
- "> > > >         apply_workqueue_attrs+0x17/0x50\n"
- "> > > >         __alloc_workqueue_key+0x195/0x4d0\n"
- "> > > >         _iwl_pcie_rx_init+0x384/0x390 [iwlwifi]\n"
- "> > > >         iwl_pcie_rx_init+0x1e/0x380 [iwlwifi]\n"
- "> > > >         iwl_trans_pcie_start_fw+0x295/0x6f0 [iwlwifi]\n"
- "> > > >         iwl_mvm_load_ucode_wait_alive+0xe7/0x390 [iwlmvm]\n"
- "> > > >         iwl_run_init_mvm_ucode+0x84/0x320 [iwlmvm]\n"
- "> > > >         iwl_op_mode_mvm_start+0x964/0xd30 [iwlmvm]\n"
- "> > > >         _iwl_op_mode_start.isra.9+0x47/0xa0 [iwlwifi]\n"
- "> > > >         iwl_opmode_register+0xaa/0xd0 [iwlwifi]\n"
- "> > > >         iwl_mvm_init+0x37/0x1000 [iwlmvm]\n"
- "> > > >         do_one_initcall+0x51/0x1a9\n"
- "> > > >         do_init_module+0x60/0x20e\n"
- "> > > >         load_module+0x203f/0x2b50\n"
- "> > > >         SYSC_finit_module+0x96/0xd0\n"
- "> > > >         SyS_finit_module+0xe/0x10\n"
- "> > > >         entry_SYSCALL_64_fastpath+0x23/0xc2\n"
- "\n"
- "Okay, so as I understand it the problem has been there for a long time,\n"
- "but the splat is only coming up now because of Thomas' patch that adds\n"
- "the lockdep map[1], right?\n"
- "\n"
- "I see the workqueue allocation you mentioned.  I'll try to move this\n"
- "allocation out of the mutex and see how it goes.\n"
- "\n"
- "[1] http://lkml.kernel.org/r/20170524081549.709375845@linutronix.de\n"
- "\n"
- "--\n"
- "Cheers,\n"
- Luca.
+ "T24gVGh1LCAyMDE3LTA4LTAzIGF0IDEzOjAyICswMzAwLCBLYWxsZSBWYWxvIHdyb3RlOg0KPiAi\n"
+ "Q29lbGhvLCBMdWNpYW5vIiA8bHVjaWFuby5jb2VsaG9AaW50ZWwuY29tPiB3cml0ZXM6DQo+IA0K\n"
+ "PiA+IE9uIFRodSwgMjAxNy0wOC0wMyBhdCAxMToxMCArMDIwMCwgSmlyaSBLb3NpbmEgd3JvdGU6\n"
+ "DQo+ID4gPiBPbiBNb24sIDMxIEp1bCAyMDE3LCBKaXJpIEtvc2luYSB3cm90ZToNCj4gPiA+IA0K\n"
+ "PiA+ID4gPiBIaSwNCj4gPiA+ID4gDQo+ID4gPiA+IGJvb3RpbmcgY3VycmVudCBMaW51cycgdHJl\n"
+ "ZSwgSSdtIHNlZWluZyBsb2NrZGVwIHNwbGF0IChzZWUgdGhlIGVuZCBvZiB0aGlzIA0KPiA+ID4g\n"
+ "PiBtYWlsKS4NCj4gPiA+ID4gDQo+ID4gPiA+IEFwcGFyZW50bHksIHRoZXJlIGlzIEFCLUJBIGJl\n"
+ "dHdlZW4gdHotPmxvY2sgYW5kIG12bS0+bXV0ZXggdGhyb3VnaCB0aGUgQ1BVIA0KPiA+ID4gPiBo\n"
+ "b3RwbHVnIGxvY2suDQo+ID4gPiA+IA0KPiA+ID4gPiBUaGUgb2Jpdm91cyBkZXBlbmN5IGlzOiB0\n"
+ "aGVybWFsX3pvbmVfZ2V0X3RlbXAoKSBhY3F1aXJlcyB0ei0+bG9jaywgYW5kIA0KPiA+ID4gPiB0\n"
+ "aGVuIGNhbGxzIGl3bF9tdm1fdHpvbmVfZ2V0X3RlbXAoKSAodGhyb3VnaCB0ei0+b3BzLT5nZXRf\n"
+ "dGVtcCgpIA0KPiA+ID4gPiBjYWxsYmFjayksIHdoaWNoIGFjcXVpcmVzIG12bS0+bXV0ZXgNCj4g\n"
+ "PiA+ID4gDQo+ID4gPiA+IFRoZSBsZXNzIG9idmlvdXMgZGVwZW5kZW5jeSBpcyBwcmltYXJpbHkg\n"
+ "Y2F1c2VkIGJ5IGl3bF9vcF9tb2RlX212bV9zdGFydCgpIA0KPiA+ID4gPiBhbGxvY2F0aW5nIHdv\n"
+ "cmtxdWV1ZSAoIzIgc3RhY2t0cmFjZSkgd2hpbGUgaG9sZGluZyBtdm0tPm11dGV4ICh3aGljaCBp\n"
+ "cyANCj4gPiA+ID4gYnJva2VuLCBiZWNhdXNlIHRoYXQgbXV0ZXggaXMgYmVpbmcgdGFrZW4gYWxz\n"
+ "byBmcm9tIENQVSBob3RwbHVnIGNhbGxiYWNrIA0KPiA+ID4gPiBwYXRoLCBoZW5jZSB0aGUgQUIt\n"
+ "QkEpLg0KPiA+ID4gDQo+ID4gPiBBcyB0aGUgImNlbnRyYWwiIHBhcnQgb2YgdGhlIGRlcGVuZGVu\n"
+ "Y3kgaXMgYmVpbmcgYWRkZWQgYnkgaXdsd2lmaSBkcml2ZXIgDQo+ID4gPiAoX2l3bF9wY2llX3J4\n"
+ "X2luaXQoKSBhbGxvY2F0aW5nIHdvcmtxdWV1ZSB3aGlsZSBob2xkaW5nIA0KPiA+ID4gdHJhbnNf\n"
+ "cGNpZS0+bXV0ZXgpLCBJJ20gYWRkaW5nIGl3bHdpZmkgZm9sa3MgYXMgd2VsbCB0byBDQy4NCg0K\n"
+ "Wy4uLl0NCg0KPiA+ID4gPiAgLT4gIzIgKGNwdV9ob3RwbHVnX2xvY2sucndfc2VtKXsrKysrKyt9\n"
+ "Og0KPiA+ID4gPiAgICAgICAgIGxvY2tfYWNxdWlyZSsweGJkLzB4MjIwDQo+ID4gPiA+ICAgICAg\n"
+ "ICAgY3B1c19yZWFkX2xvY2srMHg0Ni8weDkwDQo+ID4gPiA+ICAgICAgICAgYXBwbHlfd29ya3F1\n"
+ "ZXVlX2F0dHJzKzB4MTcvMHg1MA0KPiA+ID4gPiAgICAgICAgIF9fYWxsb2Nfd29ya3F1ZXVlX2tl\n"
+ "eSsweDE5NS8weDRkMA0KPiA+ID4gPiAgICAgICAgIF9pd2xfcGNpZV9yeF9pbml0KzB4Mzg0LzB4\n"
+ "MzkwIFtpd2x3aWZpXQ0KPiA+ID4gPiAgICAgICAgIGl3bF9wY2llX3J4X2luaXQrMHgxZS8weDM4\n"
+ "MCBbaXdsd2lmaV0NCj4gPiA+ID4gICAgICAgICBpd2xfdHJhbnNfcGNpZV9zdGFydF9mdysweDI5\n"
+ "NS8weDZmMCBbaXdsd2lmaV0NCj4gPiA+ID4gICAgICAgICBpd2xfbXZtX2xvYWRfdWNvZGVfd2Fp\n"
+ "dF9hbGl2ZSsweGU3LzB4MzkwIFtpd2xtdm1dDQo+ID4gPiA+ICAgICAgICAgaXdsX3J1bl9pbml0\n"
+ "X212bV91Y29kZSsweDg0LzB4MzIwIFtpd2xtdm1dDQo+ID4gPiA+ICAgICAgICAgaXdsX29wX21v\n"
+ "ZGVfbXZtX3N0YXJ0KzB4OTY0LzB4ZDMwIFtpd2xtdm1dDQo+ID4gPiA+ICAgICAgICAgX2l3bF9v\n"
+ "cF9tb2RlX3N0YXJ0LmlzcmEuOSsweDQ3LzB4YTAgW2l3bHdpZmldDQo+ID4gPiA+ICAgICAgICAg\n"
+ "aXdsX29wbW9kZV9yZWdpc3RlcisweGFhLzB4ZDAgW2l3bHdpZmldDQo+ID4gPiA+ICAgICAgICAg\n"
+ "aXdsX212bV9pbml0KzB4MzcvMHgxMDAwIFtpd2xtdm1dDQo+ID4gPiA+ICAgICAgICAgZG9fb25l\n"
+ "X2luaXRjYWxsKzB4NTEvMHgxYTkNCj4gPiA+ID4gICAgICAgICBkb19pbml0X21vZHVsZSsweDYw\n"
+ "LzB4MjBlDQo+ID4gPiA+ICAgICAgICAgbG9hZF9tb2R1bGUrMHgyMDNmLzB4MmI1MA0KPiA+ID4g\n"
+ "PiAgICAgICAgIFNZU0NfZmluaXRfbW9kdWxlKzB4OTYvMHhkMA0KPiA+ID4gPiAgICAgICAgIFN5\n"
+ "U19maW5pdF9tb2R1bGUrMHhlLzB4MTANCj4gPiA+ID4gICAgICAgICBlbnRyeV9TWVNDQUxMXzY0\n"
+ "X2Zhc3RwYXRoKzB4MjMvMHhjMg0KDQpPa2F5LCBzbyBhcyBJIHVuZGVyc3RhbmQgaXQgdGhlIHBy\n"
+ "b2JsZW0gaGFzIGJlZW4gdGhlcmUgZm9yIGEgbG9uZyB0aW1lLA0KYnV0IHRoZSBzcGxhdCBpcyBv\n"
+ "bmx5IGNvbWluZyB1cCBub3cgYmVjYXVzZSBvZiBUaG9tYXMnIHBhdGNoIHRoYXQgYWRkcw0KdGhl\n"
+ "IGxvY2tkZXAgbWFwWzFdLCByaWdodD8NCg0KSSBzZWUgdGhlIHdvcmtxdWV1ZSBhbGxvY2F0aW9u\n"
+ "IHlvdSBtZW50aW9uZWQuICBJJ2xsIHRyeSB0byBtb3ZlIHRoaXMNCmFsbG9jYXRpb24gb3V0IG9m\n"
+ "IHRoZSBtdXRleCBhbmQgc2VlIGhvdyBpdCBnb2VzLg0KDQpbMV0gaHR0cDovL2xrbWwua2VybmVs\n"
+ "Lm9yZy9yLzIwMTcwNTI0MDgxNTQ5LjcwOTM3NTg0NUBsaW51dHJvbml4LmRlDQoNCi0tDQpDaGVl\n"
+ cnMsDQpMdWNhLg==
 
-349058912c51a214fe8a72aa59fe7fe2fc2c172ef98d8eb28643e489a7dcbe9c
+4b04291a73295930d43ae8ff555603b58ccb6305f26ca3138980c2e7ab9c4ff7

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.