public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, linux-parisc@vger.kernel.org,
	Helge Deller <deller@gmx.de>,
	stable@kernel.org
Subject: [PATCH 6.1 034/119] parisc: Fix flush_dcache_page() for usage from irq context
Date: Sun, 28 May 2023 20:10:34 +0100	[thread overview]
Message-ID: <20230528190836.501279600@linuxfoundation.org> (raw)
In-Reply-To: <20230528190835.386670951@linuxfoundation.org>

From: Helge Deller <deller@gmx.de>

commit 61e150fb310729c98227a5edf6e4a3619edc3702 upstream.

Since at least kernel 6.1, flush_dcache_page() is called with IRQs
disabled, e.g. from aio_complete().

But the current implementation for flush_dcache_page() on parisc
unintentionally re-enables IRQs, which may lead to deadlocks.

Fix it by using xa_lock_irqsave() and xa_unlock_irqrestore()
for the flush_dcache_mmap_*lock() macros instead.

Cc: linux-parisc@vger.kernel.org
Cc: stable@kernel.org # 5.18+
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/parisc/include/asm/cacheflush.h | 4 ++++
 arch/parisc/kernel/cache.c           | 5 +++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/parisc/include/asm/cacheflush.h b/arch/parisc/include/asm/cacheflush.h
index 0bdee6724132..c8b6928cee1e 100644
--- a/arch/parisc/include/asm/cacheflush.h
+++ b/arch/parisc/include/asm/cacheflush.h
@@ -48,6 +48,10 @@ void flush_dcache_page(struct page *page);
 
 #define flush_dcache_mmap_lock(mapping)		xa_lock_irq(&mapping->i_pages)
 #define flush_dcache_mmap_unlock(mapping)	xa_unlock_irq(&mapping->i_pages)
+#define flush_dcache_mmap_lock_irqsave(mapping, flags)		\
+		xa_lock_irqsave(&mapping->i_pages, flags)
+#define flush_dcache_mmap_unlock_irqrestore(mapping, flags)	\
+		xa_unlock_irqrestore(&mapping->i_pages, flags)
 
 #define flush_icache_page(vma,page)	do { 		\
 	flush_kernel_dcache_page_addr(page_address(page)); \
diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c
index 1d3b8bc8a623..ca4a302d4365 100644
--- a/arch/parisc/kernel/cache.c
+++ b/arch/parisc/kernel/cache.c
@@ -399,6 +399,7 @@ void flush_dcache_page(struct page *page)
 	unsigned long offset;
 	unsigned long addr, old_addr = 0;
 	unsigned long count = 0;
+	unsigned long flags;
 	pgoff_t pgoff;
 
 	if (mapping && !mapping_mapped(mapping)) {
@@ -420,7 +421,7 @@ void flush_dcache_page(struct page *page)
 	 * to flush one address here for them all to become coherent
 	 * on machines that support equivalent aliasing
 	 */
-	flush_dcache_mmap_lock(mapping);
+	flush_dcache_mmap_lock_irqsave(mapping, flags);
 	vma_interval_tree_foreach(mpnt, &mapping->i_mmap, pgoff, pgoff) {
 		offset = (pgoff - mpnt->vm_pgoff) << PAGE_SHIFT;
 		addr = mpnt->vm_start + offset;
@@ -460,7 +461,7 @@ void flush_dcache_page(struct page *page)
 		}
 		WARN_ON(++count == 4096);
 	}
-	flush_dcache_mmap_unlock(mapping);
+	flush_dcache_mmap_unlock_irqrestore(mapping, flags);
 }
 EXPORT_SYMBOL(flush_dcache_page);
 
-- 
2.40.1




  parent reply	other threads:[~2023-05-28 19:35 UTC|newest]

Thread overview: 135+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-28 19:10 [PATCH 6.1 000/119] 6.1.31-rc1 review Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 001/119] usb: dwc3: fix gadget mode suspend interrupt handler issue Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 002/119] tpm, tpm_tis: Avoid cache incoherency in test for interrupts Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 003/119] tpm, tpm_tis: Only handle supported interrupts Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 004/119] tpm_tis: Use tpm_chip_{start,stop} decoration inside tpm_tis_resume Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 005/119] tpm, tpm_tis: startup chip before testing for interrupts Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 006/119] tpm: Re-enable TPM chip boostrapping non-tpm_tis TPM drivers Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 007/119] tpm: Prevent hwrng from activating during resume Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 008/119] watchdog: sp5100_tco: Immediately trigger upon starting Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 009/119] drm/amd/amdgpu: update mes11 api def Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 010/119] drm/amdgpu/mes11: enable reg active poll Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 011/119] skbuff: Proactively round up to kmalloc bucket size Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 012/119] platform/x86: hp-wmi: Fix cast to smaller integer type warning Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 013/119] net: dsa: mv88e6xxx: Add RGMII delay to 88E6320 Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 014/119] drm/amd/display: hpd rx irq not working with eDP interface Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 015/119] ocfs2: Switch to security_inode_init_security() Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 016/119] arm64: Also reset KASAN tag if page is not PG_mte_tagged Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 017/119] x86/mm: Avoid incomplete Global INVLPG flushes Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 018/119] platform/x86/intel/ifs: Annotate work queue on stack so object debug does not complain Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 019/119] ALSA: hda/ca0132: add quirk for EVGA X299 DARK Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 020/119] ALSA: hda: Fix unhandled register update during auto-suspend period Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 021/119] ALSA: hda/realtek: Enable headset onLenovo M70/M90 Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 022/119] SUNRPC: Dont change task->tk_status after the call to rpc_exit_task Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 023/119] mmc: sdhci-esdhc-imx: make "no-mmc-hs400" works Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 024/119] mmc: block: ensure error propagation for non-blk Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 025/119] power: supply: axp288_fuel_gauge: Fix external_power_changed race Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 026/119] power: supply: bq25890: " Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 027/119] ASoC: rt5682: Disable jack detection interrupt during suspend Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 028/119] net: cdc_ncm: Deal with too low values of dwNtbOutMaxSize Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 029/119] m68k: Move signal frame following exception on 68020/030 Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 030/119] xtensa: fix signal delivery to FDPIC process Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 031/119] xtensa: add __bswap{si,di}2 helpers Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 032/119] parisc: Use num_present_cpus() in alternative patching code Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 033/119] parisc: Handle kgdb breakpoints only in kernel context Greg Kroah-Hartman
2023-05-28 19:10 ` Greg Kroah-Hartman [this message]
2023-05-28 19:10 ` [PATCH 6.1 035/119] parisc: Allow to reboot machine after system halt Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 036/119] parisc: Enable LOCKDEP support Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 037/119] parisc: Handle kprobes breakpoints only in kernel context Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 038/119] gpio: mockup: Fix mode of debugfs files Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 039/119] btrfs: use nofs when cleaning up aborted transactions Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 040/119] dt-binding: cdns,usb3: Fix cdns,on-chip-buff-size type Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 041/119] drm/mgag200: Fix gamma lut not initialized Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 042/119] drm/radeon: reintroduce radeon_dp_work_func content Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 043/119] drm/amd/pm: add missing NotifyPowerSource message mapping for SMU13.0.7 Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 044/119] drm/amd/pm: Fix output of pp_od_clk_voltage Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 045/119] Revert "binder_alloc: add missing mmap_lock calls when using the VMA" Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 046/119] Revert "android: binder: stop saving a pointer to " Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 047/119] binder: add lockless binder_alloc_(set|get)_vma() Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 048/119] binder: fix UAF caused by faulty buffer cleanup Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 049/119] binder: fix UAF of alloc->vma in race with munmap() Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 050/119] selftests/memfd: Fix unknown type name build failure Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 051/119] drm/amd/amdgpu: limit one queue per gang Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 052/119] perf/x86/uncore: Correct the number of CHAs on SPR Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 053/119] x86/topology: Fix erroneous smp_num_siblings on Intel Hybrid platforms Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 054/119] irqchip/mips-gic: Dont touch vl_map if a local interrupt is not routable Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 055/119] irqchip/mips-gic: Use raw spinlock for gic_lock Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 056/119] debugobjects: Dont wake up kswapd from fill_pool() Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 057/119] fbdev: udlfb: Fix endpoint check Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 058/119] net: fix stack overflow when LRO is disabled for virtual interfaces Greg Kroah-Hartman
2023-05-28 19:10 ` [PATCH 6.1 059/119] udplite: Fix NULL pointer dereference in __sk_mem_raise_allocated() Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 060/119] USB: core: Add routines for endpoint checks in old drivers Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 061/119] USB: sisusbvga: Add endpoint checks Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 062/119] media: radio-shark: " Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 063/119] ASoC: lpass: Fix for KASAN use_after_free out of bounds Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 064/119] net: fix skb leak in __skb_tstamp_tx() Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 065/119] drm: fix drmm_mutex_init() Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 066/119] selftests: fib_tests: mute cleanup error message Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 067/119] octeontx2-pf: Fix TSOv6 offload Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 068/119] bpf: Fix mask generation for 32-bit narrow loads of 64-bit fields Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 069/119] bpf: fix a memory leak in the LRU and LRU_PERCPU hash maps Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 070/119] lan966x: Fix unloading/loading of the driver Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 071/119] ipv6: Fix out-of-bounds access in ipv6_find_tlv() Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 072/119] cifs: mapchars mount option ignored Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 073/119] power: supply: leds: Fix blink to LED on transition Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 074/119] power: supply: mt6360: add a check of devm_work_autocancel in mt6360_charger_probe Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 075/119] power: supply: bq27xxx: Fix bq27xxx_battery_update() race condition Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 076/119] power: supply: bq27xxx: Fix I2C IRQ race on remove Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 077/119] power: supply: bq27xxx: Fix poll_interval handling and races " Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 078/119] power: supply: bq27xxx: Add cache parameter to bq27xxx_battery_current_and_status() Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 079/119] power: supply: bq27xxx: Move bq27xxx_battery_update() down Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 080/119] power: supply: bq27xxx: Ensure power_supply_changed() is called on current sign changes Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 081/119] power: supply: bq27xxx: After charger plug in/out wait 0.5s for things to stabilize Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 082/119] power: supply: bq25890: Call power_supply_changed() after updating input current or voltage Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 083/119] power: supply: bq24190: Call power_supply_changed() after updating input current Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 084/119] power: supply: sbs-charger: Fix INHIBITED bit for Status reg Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 085/119] optee: fix uninited async notif value Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 086/119] firmware: arm_ffa: Check if ffa_driver remove is present before executing Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 087/119] firmware: arm_ffa: Fix FFA device names for logical partitions Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 088/119] fs: fix undefined behavior in bit shift for SB_NOUSER Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 089/119] regulator: pca9450: Fix BUCK2 enable_mask Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 090/119] platform/x86: ISST: Remove 8 socket limit Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 091/119] coresight: Fix signedness bug in tmc_etr_buf_insert_barrier_packet() Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 092/119] ARM: dts: imx6qdl-mba6: Add missing pvcie-supply regulator Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 093/119] x86/pci/xen: populate MSI sysfs entries Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 094/119] xen/pvcalls-back: fix double frees with pvcalls_new_active_socket() Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 095/119] x86/show_trace_log_lvl: Ensure stack pointer is aligned, again Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 096/119] ASoC: Intel: Skylake: Fix declaration of enum skl_ch_cfg Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 097/119] ASoC: Intel: avs: Fix declaration of enum avs_channel_config Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 098/119] ASoC: Intel: avs: Access path components under lock Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 099/119] cxl: Wait Memory_Info_Valid before access memory related info Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 100/119] sctp: fix an issue that plpmtu can never go to complete state Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 101/119] forcedeth: Fix an error handling path in nv_probe() Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 102/119] platform/mellanox: mlxbf-pmc: fix sscanf() error checking Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 103/119] net/mlx5e: Fix SQ wake logic in ptp napi_poll context Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 104/119] net/mlx5e: Fix deadlock in tc route query code Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 105/119] net/mlx5e: Use correct encap attribute during invalidation Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 106/119] net/mlx5e: do as little as possible in napi poll when budget is 0 Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 107/119] net/mlx5: DR, Fix crc32 calculation to work on big-endian (BE) CPUs Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 108/119] net/mlx5: Handle pairing of E-switch via uplink un/load APIs Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 109/119] net/mlx5: DR, Check force-loopback RC QP capability independently from RoCE Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 110/119] net/mlx5: Fix error message when failing to allocate device memory Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 111/119] net/mlx5: Collect command failures data only for known commands Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 112/119] net/mlx5: Devcom, fix error flow in mlx5_devcom_register_device Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 113/119] net/mlx5: Devcom, serialize devcom registration Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 114/119] arm64: dts: imx8mn-var-som: fix PHY detection bug by adding deassert delay Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 115/119] firmware: arm_ffa: Set reserved/MBZ fields to zero in the memory descriptors Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 116/119] regulator: mt6359: add read check for PMIC MT6359 Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 117/119] net/smc: Reset connection when trying to use SMCRv2 fails Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 118/119] 3c589_cs: Fix an error handling path in tc589_probe() Greg Kroah-Hartman
2023-05-28 19:11 ` [PATCH 6.1 119/119] net: phy: mscc: add VSC8502 to MODULE_DEVICE_TABLE Greg Kroah-Hartman
2023-05-29  5:11 ` [PATCH 6.1 000/119] 6.1.31-rc1 review Bagas Sanjaya
2023-05-29 10:09 ` ogasawara takeshi
2023-05-29 12:03 ` Conor Dooley
2023-05-29 13:12 ` Markus Reichelt
2023-05-29 13:28 ` Naresh Kamboju
2023-05-29 16:07 ` Guenter Roeck
2023-05-29 21:49 ` Ron Economos
2023-05-30  9:19 ` Jon Hunter
2023-05-30 10:46 ` Wrong/strange TPM patches was " Pavel Machek
2023-05-30 11:50   ` Linus Torvalds
2023-05-30 13:02   ` Greg Kroah-Hartman
2023-05-30 13:58     ` Lino Sanfilippo
2023-05-30 11:52 ` Chris Paterson
2023-05-30 17:02 ` Allen Pais
2023-05-30 19:29 ` Florian Fainelli

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=20230528190836.501279600@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=deller@gmx.de \
    --cc=linux-parisc@vger.kernel.org \
    --cc=patches@lists.linux.dev \
    --cc=stable@kernel.org \
    --cc=stable@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox