From: Julian Margetson <runaway@candw.ms>
To: "Måns Rullgård" <mans@mansr.com>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Tejun Heo <tj@kernel.org>,
linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/3] ata: sata_dwc_460ex: use "dmas" DT property to find dma channel
Date: Fri, 18 Dec 2015 07:48:07 -0400 [thread overview]
Message-ID: <5673F277.2050607@candw.ms> (raw)
In-Reply-To: <yw1xvb7wbowu.fsf@unicorn.mansr.com>
On 12/17/2015 8:06 PM, Måns Rullgård wrote:
> Julian Margetson <runaway@candw.ms> writes:
>
>> On 12/17/2015 3:53 PM, Måns Rullgård wrote:
>>> Julian Margetson <runaway@candw.ms> writes:
>>>
>>>> On 12/17/2015 2:51 PM, Måns Rullgård wrote:
>>>>> Julian Margetson <runaway@candw.ms> writes:
>>>>>
>>>>>> On 12/17/2015 1:59 PM, Måns Rullgård wrote:
>>>>>>> Julian Margetson <runaway@candw.ms> writes:
>>>>>>>
>>>>>>>> I have been running my machine mostly configured for pciex1 thus with
>>>>>>>> the sata_dwc disabled.
>>>>>>>> The changes to sata_dwc-460ex do cause an oops.
>>>>>>>> I will try to give more detailed info over this weekend .
>>>>>>> The driver as is upstream would do that since it unconditionally
>>>>>>> dereferences a null pointer in the probe function. My patch fixes that
>>>>>>> as a side-effect.
>>>>>>>
>>>>>> patching file drivers/ata/Kconfig
>>>>>>
>>>>>> Hunk #1 FAILED at 296.
>>>>> [...]
>>>>>
>>>>>> root@julian-VirtualBox:/usr/src/linux-3.18.25#
>>>>> The patch is against 4.4-rc5.
>>>>>
>>>> CC drivers/ata/sata_dwc_460ex.o
>>>>
>>>> drivers/ata/sata_dwc_460ex.c:198:15: error: variable ‘sata_dwc_dma_dws’ has initializer but incomplete type
>>>>
>>>> static struct dw_dma_slave sata_dwc_dma_dws = {
>>>> ^
>>> It builds, albeit with an unrelated warning, using the attached config.
>>> Maybe there's a missing config dependency somewhere.
>>>
>> I am attempting to cross compile under Ubuntu 14.04 X86 in Virtualbox
>> with your .config.
>> 4.4.0-rc5 builds ok with no patches applied .
>> Once your patch is applied it fails to build .
>>
>> CC drivers/ata/sata_dwc_460ex.o
>> drivers/ata/sata_dwc_460ex.c:198:15: error: variable ‘sata_dwc_dma_dws’ has initializer but incomplete type
>> static struct dw_dma_slave sata_dwc_dma_dws = {
>> ^
> Bizarre. This is what it looks like here:
>
> mru@unicorn:/tmp/linux-sata$ git status
> On branch sata-dwc
> nothing to commit, working directory clean
> mru@unicorn:/tmp/linux-sata$ git describe
> v4.4-rc5
> mru@unicorn:/tmp/linux-sata$ sha1sum /tmp/0001-ata-sata_dwc_460ex-use-dmas-DT-property-to-find-dma-.patch
> e300971aa483390f82de2e9120dc16e460e74feb /tmp/0001-ata-sata_dwc_460ex-use-dmas-DT-property-to-find-dma-.patch
> mru@unicorn:/tmp/linux-sata$ git am /tmp/0001-ata-sata_dwc_460ex-use-dmas-DT-property-to-find-dma-.patch
> Applying: ata: sata_dwc_460ex: use "dmas" DT property to find dma channel
> mru@unicorn:/tmp/linux-sata$ sha1sum .config
> 4e7615b8d2fa9a1c4b4ae9ffc363aefcaf3789ca .config
> mru@unicorn:/tmp/linux-sata$ make ARCH=powerpc CROSS_COMPILE=powerpc64-none-linux-gnu- oldconfig
> HOSTCC scripts/basic/fixdep
> HOSTCC scripts/kconfig/conf.o
> SHIPPED scripts/kconfig/zconf.tab.c
> SHIPPED scripts/kconfig/zconf.lex.c
> SHIPPED scripts/kconfig/zconf.hash.c
> HOSTCC scripts/kconfig/zconf.tab.o
> HOSTLD scripts/kconfig/conf
> scripts/kconfig/conf --oldconfig Kconfig
> #
> # configuration written to .config
> #
> mru@unicorn:/tmp/linux-sata$ make ARCH=powerpc CROSS_COMPILE=powerpc64-none-linux-gnu- drivers/ata/sata_dwc_460ex.o
> scripts/kconfig/conf --silentoldconfig Kconfig
> CHK include/config/kernel.release
> UPD include/config/kernel.release
> WRAP arch/powerpc/include/generated/asm/clkdev.h
> WRAP arch/powerpc/include/generated/asm/div64.h
> WRAP arch/powerpc/include/generated/asm/irq_regs.h
> WRAP arch/powerpc/include/generated/asm/irq_work.h
> WRAP arch/powerpc/include/generated/asm/local64.h
> WRAP arch/powerpc/include/generated/asm/mcs_spinlock.h
> WRAP arch/powerpc/include/generated/asm/preempt.h
> WRAP arch/powerpc/include/generated/asm/rwsem.h
> WRAP arch/powerpc/include/generated/asm/vtime.h
> CHK include/generated/uapi/linux/version.h
> UPD include/generated/uapi/linux/version.h
> CHK include/generated/utsrelease.h
> UPD include/generated/utsrelease.h
> CC kernel/bounds.s
> CHK include/generated/bounds.h
> UPD include/generated/bounds.h
> CHK include/generated/timeconst.h
> UPD include/generated/timeconst.h
> CC arch/powerpc/kernel/asm-offsets.s
> CHK include/generated/asm-offsets.h
> UPD include/generated/asm-offsets.h
> CALL scripts/checksyscalls.sh
> HOSTCC scripts/dtc/dtc.o
> HOSTCC scripts/dtc/flattree.o
> HOSTCC scripts/dtc/fstree.o
> HOSTCC scripts/dtc/data.o
> HOSTCC scripts/dtc/livetree.o
> HOSTCC scripts/dtc/treesource.o
> HOSTCC scripts/dtc/srcpos.o
> HOSTCC scripts/dtc/checks.o
> HOSTCC scripts/dtc/util.o
> SHIPPED scripts/dtc/dtc-lexer.lex.c
> SHIPPED scripts/dtc/dtc-parser.tab.h
> HOSTCC scripts/dtc/dtc-lexer.lex.o
> SHIPPED scripts/dtc/dtc-parser.tab.c
> HOSTCC scripts/dtc/dtc-parser.tab.o
> HOSTLD scripts/dtc/dtc
> CC scripts/mod/empty.o
> HOSTCC scripts/mod/mk_elfconfig
> MKELF scripts/mod/elfconfig.h
> HOSTCC scripts/mod/modpost.o
> CC scripts/mod/devicetable-offsets.s
> GEN scripts/mod/devicetable-offsets.h
> HOSTCC scripts/mod/file2alias.o
> HOSTCC scripts/mod/sumversion.o
> HOSTLD scripts/mod/modpost
> HOSTCC scripts/kallsyms
> CC drivers/ata/sata_dwc_460ex.o
> drivers/ata/sata_dwc_460ex.c: In function 'dma_dwc_xfer_setup':
> drivers/ata/sata_dwc_460ex.c:383:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
> dma_addr_t addr = (dma_addr_t)&hsdev->sata_dwc_regs->dmadr;
> ^
> mru@unicorn:/tmp/linux-sata$
>
> Patch file and .config attached.
>
> Looking into that warning, I doubt it works as is, but that's not caused
> by my patch. I can try to come up with a fix, but again, I can't test it.
>
Builds now. Using my own .config.
[ 4.784199] sata-dwc 4bffd1000.sata: id 0, controller version 1.82
[ 4.791186] scsi host0: sata-dwc
[ 4.794830] ata1: SATA max UDMA/133 irq 36
[ 4.799463] sata_sil 0001:00:04.0: Applying R_ERR on DMA activate FIS
errata fix
[ 4.807959] scsi host1: sata_sil
[ 4.811662] scsi host2: sata_sil
[ 4.815242] ata2: SATA max UDMA/100 mmio m512@0xd84280000 tf
0xd84280080 irq 21
[ 4.822990] ata3: SATA max UDMA/100 mmio m512@0xd84280000 tf
0xd842800c0 irq 21
[ 5.143502] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 5.164367] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[ 5.185174] ppc-of-ohci 4bffd0000.usb: irq 32, io mem 0x4bffd0000
[ 5.206125] Unable to handle kernel paging request for data at
address 0x00000000
[ 5.228546] Faulting instruction address: 0xc043a2c8
[ 5.248577] Vector: 300 (Data Access) at [eddafae0]
[ 5.268658] pc: c043a2c8: sata_dwc_qc_issue+0xb8/0x204
[ 5.289439] lr: c0427c34: ata_qc_issue+0x338/0x3a0
[ 5.309708] sp: eddafb90
[ 5.327573] msr: 21000
[ 5.345108] dar: 0
[ 5.362242] dsisr: 0
[ 5.379257] current = 0xedda85c0
[ 5.397452] pid = 81, comm = scsi_eh_0
[ 5.416599] enter ? for help
[ 5.434346] [eddafbe0] c0427c34 ata_qc_issue+0x338/0x3a0
[ 5.454892] [eddafc10] c0427f0c ata_exec_internal_sg+0x270/0x47c
[ 5.476090] [eddafc80] c042818c ata_exec_internal+0x74/0x7c
[ 5.496645] [eddafcc0] c042839c ata_dev_read_id+0x150/0x4e0
[ 5.517001] [eddafd40] c0434b4c ata_eh_recover+0xfac/0x1088
[ 5.537210] [eddafdd0] c043516c ata_do_eh+0x4c/0x9c
[ 5.556724] [eddafe00] c0434e10 ata_scsi_port_error_handler+0x148/0x3a4
[ 5.578026] [eddafe30] c04350f0 ata_scsi_error+0x84/0xb4
[ 5.597878] [eddafe60] c0410844 scsi_error_handler+0xa4/0x44c
[ 5.618242] [eddafed0] c0038938 kthread+0xc8/0xcc
[ 5.637383] [eddaff40] c000ad90 ret_from_kernel_thread+0x5c/0x64
[ 5.657798] mon> <no input ...>
[ 7.675523] Oops: Kernel access of bad area, sig: 11 [#1]
[ 7.695357] PREEMPT Canyonlands
[ 7.712998] Modules linked in:
[ 7.730338] CPU: 0 PID: 81 Comm: scsi_eh_0 Not tainted
4.4.0-rc5-Sam460ex #2
[ 7.751933] task: edda85c0 ti: eddae000 task.ti: eddae000
[ 7.771844] NIP: c043a2c8 LR: c0427c34 CTR: c043a210
[ 7.791229] REGS: eddafae0 TRAP: 0300 Not tainted (4.4.0-rc5-Sam460ex)
[ 7.812519] MSR: 00021000 <CE,ME> CR: 24000022 XER: 20000000
[ 7.833197] DEAR: 00000000 ESR: 00000000
GPR00: c0427c34 eddafb90 edda85c0 00000000 00000000 00000000 ee3c1724
00000000
GPR08: ffffffff 00000004 00000002 eddafc10 22000022 00000000 00000001
c09314dc
GPR16: fafbfcfd 00000000 00000001 00000000 00000000 00029000 00000200
eddafc18
GPR24: 000000ec 00000000 00000000 edcba7d0 edcae200 00000000 ee3c0000
ee3c1700
[ 7.939668] NIP [c043a2c8] sata_dwc_qc_issue+0xb8/0x204
[ 7.959417] LR [c0427c34] ata_qc_issue+0x338/0x3a0
[ 7.978735] Call Trace:
[ 7.995605] [eddafb90] [00000006] 0x6 (unreliable)
[ 8.015009] [eddafbe0] [c0427c34] ata_qc_issue+0x338/0x3a0
[ 8.035078] [eddafc10] [c0427f0c] ata_exec_internal_sg+0x270/0x47c
[ 8.055763] [eddafc80] [c042818c] ata_exec_internal+0x74/0x7c
[ 8.075824] [eddafcc0] [c042839c] ata_dev_read_id+0x150/0x4e0
[ 8.095822] [eddafd40] [c0434b4c] ata_eh_recover+0xfac/0x1088
[ 8.115762] [eddafdd0] [c043516c] ata_do_eh+0x4c/0x9c
[ 8.134973] [eddafe00] [c0434e10] ata_scsi_port_error_handler+0x148/0x3a4
[ 8.155945] [eddafe30] [c04350f0] ata_scsi_error+0x84/0xb4
[ 8.175503] [eddafe60] [c0410844] scsi_error_handler+0xa4/0x44c
[ 8.195428] [eddafed0] [c0038938] kthread+0xc8/0xcc
[ 8.214218] [eddaff40] [c000ad90] ret_from_kernel_thread+0x5c/0x64
[ 8.234351] Instruction dump:
[ 8.251202] 91010018 9121001c 39200000 99210030 39200040 807c0104
91210028 9121002c
[ 8.273517] 39200004 91410008 91210020 91210024 <81230000> 81290084
2f890000 419e0010
[ 8.296123] ---[ end trace 63c0d319677b6964 ]---
[ 8.315133]
[ 8.330746] note: scsi_eh_0[81] exited with preempt_count 1
[ 8.402946] ata2.00: ATA-8: WDC WD5000AAKS-00V1A0, 05.01D05, max UDMA/133
[ 8.444867] ata2.00: 976773168 sectors, multi 0: LBA48 NCQ (depth 0/32)
[ 8.474873] usb 1-1: new high-speed USB device number 2 using ppc-of-ehci
[ 8.521159] ata2.00: configured for UDMA/100
[ 11.324174] usb-storage 1-1.7:1.0: USB Mass Storage device detected
[ 11.351056] scsi host3: usb-storage 1-1.7:1.0
[ 12.377078] scsi 3:0:0:0: Direct-Access Generic Ultra HS-COMBO
1.98 PQ: 0 ANSI: 0
[ 12.406742] sd 3:0:0:0: Attached scsi generic sg0 type 0
[ 12.434765] sd 3:0:0:0: [sda] Attached SCSI removable disk
Boot ends here and wont go any further.
next prev parent reply other threads:[~2015-12-18 11:48 UTC|newest]
Thread overview: 154+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-15 23:25 [PATCH 1/3] ata: sata_dwc_460ex: use "dmas" DT property to find dma channel Mans Rullgard
2015-12-15 23:25 ` [PATCH 2/3] ata: sata_dwc_460ex: add phy support Mans Rullgard
2015-12-16 11:14 ` Sergei Shtylyov
2015-12-16 11:24 ` Måns Rullgård
2015-12-15 23:25 ` [PATCH 3/3] ata: sata_dwc_460ex: get rid of global data Mans Rullgard
2015-12-17 15:06 ` Andy Shevchenko
2015-12-17 15:19 ` Måns Rullgård
2015-12-17 15:37 ` Andy Shevchenko
2015-12-17 15:57 ` Måns Rullgård
2015-12-15 23:34 ` [PATCH 1/3] ata: sata_dwc_460ex: use "dmas" DT property to find dma channel Måns Rullgård
2015-12-17 14:59 ` Andy Shevchenko
2015-12-17 15:13 ` Måns Rullgård
2015-12-17 15:55 ` Andy Shevchenko
2015-12-17 16:04 ` Måns Rullgård
2015-12-17 16:53 ` Andy Shevchenko
2015-12-17 17:57 ` Julian Margetson
2015-12-17 17:59 ` Måns Rullgård
[not found] ` <567302E8.5050303@candw.ms>
2015-12-17 18:51 ` Måns Rullgård
[not found] ` <5673061A.4070700@candw.ms>
2015-12-17 19:53 ` Måns Rullgård
[not found] ` <56732C04.9040100@candw.ms>
2015-12-18 0:06 ` Måns Rullgård
2015-12-18 0:59 ` Julian Margetson
2015-12-18 1:38 ` Måns Rullgård
2015-12-18 11:48 ` Julian Margetson [this message]
2015-12-18 12:04 ` Måns Rullgård
2015-12-18 12:23 ` Andy Shevchenko
2015-12-18 12:49 ` Måns Rullgård
[not found] ` <5674271B.9090308@candw.ms>
2015-12-18 17:18 ` Måns Rullgård
2015-12-18 18:48 ` Andy Shevchenko
[not found] ` <56745BA4.1090607@candw.ms>
2015-12-18 22:33 ` Måns Rullgård
2015-12-18 22:49 ` Julian Margetson
2015-12-18 23:16 ` Måns Rullgård
2015-12-19 2:34 ` Andy Shevchenko
2015-12-19 11:39 ` Julian Margetson
2015-12-19 15:40 ` Måns Rullgård
2015-12-19 15:40 ` Måns Rullgård
[not found] ` <567585CD.9080105@candw.ms>
2015-12-19 16:39 ` Måns Rullgård
2015-12-19 16:39 ` Måns Rullgård
2015-12-19 16:56 ` Andy Shevchenko
2015-12-19 17:05 ` Måns Rullgård
2015-12-19 17:05 ` Måns Rullgård
2015-12-19 17:09 ` Julian Margetson
2015-12-19 17:11 ` Andy Shevchenko
2015-12-19 17:19 ` Måns Rullgård
2015-12-19 17:19 ` Måns Rullgård
2015-12-19 18:56 ` Julian Margetson
2015-12-19 19:07 ` Måns Rullgård
2015-12-19 19:07 ` Måns Rullgård
2015-12-19 20:16 ` Julian Margetson
2015-12-19 20:39 ` Andy Shevchenko
2015-12-19 20:41 ` Måns Rullgård
2015-12-19 20:41 ` Måns Rullgård
2015-12-19 20:48 ` Julian Margetson
2015-12-19 20:55 ` Julian Margetson
2015-12-20 17:11 ` Måns Rullgård
2015-12-20 17:11 ` Måns Rullgård
2015-12-20 17:41 ` Andy Shevchenko
2015-12-20 17:54 ` Måns Rullgård
2015-12-20 17:54 ` Måns Rullgård
2015-12-20 17:44 ` Julian Margetson
2015-12-20 18:49 ` Måns Rullgård
2015-12-20 18:49 ` Måns Rullgård
2015-12-20 20:17 ` Andy Shevchenko
2015-12-20 20:55 ` Andy Shevchenko
2015-12-21 1:19 ` Måns Rullgård
2015-12-21 1:19 ` Måns Rullgård
2015-12-21 19:08 ` Andy Shevchenko
2015-12-21 19:27 ` Måns Rullgård
2015-12-21 19:27 ` Måns Rullgård
2015-12-21 20:54 ` Andy Shevchenko
2015-12-21 21:06 ` Måns Rullgård
2015-12-21 21:06 ` Måns Rullgård
2015-12-22 0:08 ` Måns Rullgård
2015-12-22 0:08 ` Måns Rullgård
2015-12-22 10:58 ` Andy Shevchenko
2016-01-06 16:26 ` Måns Rullgård
2016-01-06 16:26 ` Måns Rullgård
2016-01-06 17:36 ` Andy Shevchenko
2016-01-07 9:34 ` Andy Shevchenko
2016-01-07 18:32 ` Måns Rullgård
2016-01-07 18:32 ` Måns Rullgård
2016-01-08 8:57 ` Andy Shevchenko
2016-01-08 10:57 ` Måns Rullgård
2016-01-08 10:57 ` Måns Rullgård
2016-01-20 18:50 ` Måns Rullgård
2016-01-20 18:50 ` Måns Rullgård
2016-01-20 19:23 ` Andy Shevchenko
2016-01-20 19:24 ` Måns Rullgård
2016-01-20 19:24 ` Måns Rullgård
2016-01-20 19:38 ` Andy Shevchenko
2016-01-20 19:46 ` Måns Rullgård
2016-01-20 19:46 ` Måns Rullgård
2016-01-20 19:51 ` Andy Shevchenko
2016-01-20 20:07 ` Måns Rullgård
2016-01-20 20:07 ` Måns Rullgård
2016-01-22 10:04 ` Andy Shevchenko
2016-01-22 11:13 ` Måns Rullgård
2016-01-22 11:13 ` Måns Rullgård
2016-01-22 11:56 ` Andy Shevchenko
2016-01-22 12:05 ` Måns Rullgård
2016-01-22 12:05 ` Måns Rullgård
2016-01-22 12:15 ` Andy Shevchenko
2015-12-21 16:48 ` Andy Shevchenko
2015-12-21 17:20 ` Julian Margetson
2015-12-21 17:26 ` Julian Margetson
2015-12-21 17:55 ` Andy Shevchenko
2015-12-21 18:23 ` Julian Margetson
2015-12-21 18:27 ` Måns Rullgård
2015-12-21 18:27 ` Måns Rullgård
2015-12-21 19:08 ` Julian Margetson
2015-12-21 19:19 ` Julian Margetson
2015-12-21 19:27 ` Måns Rullgård
2015-12-21 19:27 ` Måns Rullgård
2015-12-21 19:47 ` Julian Margetson
2015-12-21 20:25 ` Andy Shevchenko
2015-12-21 20:29 ` Julian Margetson
2016-01-22 10:07 ` Andy Shevchenko
2015-12-21 20:33 ` Måns Rullgård
2015-12-21 20:33 ` Måns Rullgård
2015-12-21 18:25 ` Måns Rullgård
2015-12-21 18:25 ` Måns Rullgård
2015-12-21 0:47 ` Måns Rullgård
2015-12-21 0:47 ` Måns Rullgård
2015-12-21 0:53 ` Måns Rullgård
2015-12-21 0:53 ` Måns Rullgård
2015-12-21 0:58 ` Måns Rullgård
2015-12-21 0:58 ` Måns Rullgård
2015-12-21 8:40 ` Andy Shevchenko
2015-12-21 12:15 ` Måns Rullgård
2015-12-21 12:15 ` Måns Rullgård
2015-12-21 17:24 ` Andy Shevchenko
2015-12-21 18:16 ` Måns Rullgård
2015-12-21 18:16 ` Måns Rullgård
2015-12-21 19:23 ` Andy Shevchenko
2015-12-21 19:50 ` Måns Rullgård
2015-12-21 19:50 ` Måns Rullgård
[not found] ` <5677D447.40906@candw.ms>
2015-12-21 12:16 ` Måns Rullgård
2015-12-21 12:16 ` Måns Rullgård
2015-12-21 13:18 ` Julian Margetson
2015-12-21 13:24 ` Måns Rullgård
2015-12-21 13:24 ` Måns Rullgård
2015-12-21 14:40 ` Julian Margetson
2015-12-21 15:24 ` Måns Rullgård
2015-12-21 15:24 ` Måns Rullgård
2015-12-21 16:44 ` Andy Shevchenko
2015-12-21 18:19 ` Måns Rullgård
2015-12-21 18:19 ` Måns Rullgård
2015-12-18 12:33 ` Julian Margetson
2015-12-18 12:38 ` Andy Shevchenko
2015-12-18 12:45 ` Måns Rullgård
[not found] ` <56740F9F.5020500@candw.ms>
2015-12-18 14:24 ` Andy Shevchenko
2015-12-18 14:27 ` Måns Rullgård
2015-12-18 10:08 ` Andy Shevchenko
2015-12-18 11:24 ` Måns Rullgård
2015-12-17 14:58 ` Andy Shevchenko
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=5673F277.2050607@candw.ms \
--to=runaway@candw.ms \
--cc=andriy.shevchenko@linux.intel.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mans@mansr.com \
--cc=tj@kernel.org \
/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.