Stable Archive mirror
 help / color / mirror / Atom feed
From: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Nam Cao <namcao@linutronix.de>
Cc: patches@lists.linux.dev, Thomas Zimmermann <tzimmermann@suse.de>,
	Vegard Nossum <vegard.nossum@oracle.com>,
	Darren Kenny <darren.kenny@oracle.com>
Subject: Re: [PATCH 5.15 76/80] fbdev: fix incorrect address computation in deferred IO
Date: Thu, 2 May 2024 14:04:42 +0530	[thread overview]
Message-ID: <23938ba3-2952-4fa5-97c3-05892fea4663@oracle.com> (raw)
In-Reply-To: <20240430103045.656528789@linuxfoundation.org>

Hi Greg,

On 30/04/24 16:10, Greg Kroah-Hartman wrote:
> 5.15-stable review patch.  If anyone has any objections, please let me know.
> 
> ------------------
> 
> From: Nam Cao <namcao@linutronix.de>
> 
> commit 78d9161d2bcd442d93d917339297ffa057dbee8c upstream.
> 
> With deferred IO enabled, a page fault happens when data is written to the
> framebuffer device. Then driver determines which page is being updated by
> calculating the offset of the written virtual address within the virtual
> memory area, and uses this offset to get the updated page within the
> internal buffer. This page is later copied to hardware (thus the name
> "deferred IO").
> 
> This offset calculation is only correct if the virtual memory area is
> mapped to the beginning of the internal buffer. Otherwise this is wrong.
> For example, if users do:
>      mmap(ptr, 4096, PROT_WRITE, MAP_FIXED | MAP_SHARED, fd, 0xff000);
> 
> Then the virtual memory area will mapped at offset 0xff000 within the
> internal buffer. This offset 0xff000 is not accounted for, and wrong page
> is updated.
> 
> Correct the calculation by using vmf->pgoff instead. With this change, the
> variable "offset" will no longer hold the exact offset value, but it is
> rounded down to multiples of PAGE_SIZE. But this is still correct, because
> this variable is only used to calculate the page offset.
> 
> Reported-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
> Closes: https://lore.kernel.org/linux-fbdev/271372d6-e665-4e7f-b088-dee5f4ab341a@oracle.com
> Fixes: 56c134f7f1b5 ("fbdev: Track deferred-I/O pages in pageref struct")
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Nam Cao <namcao@linutronix.de>
> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
> Tested-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> Link: https://patchwork.freedesktop.org/patch/msgid/20240423115053.4490-1-namcao@linutronix.de
> [rebase to v5.15]


FYI,

The reproducer doesnot create task hung messages anymore. This was 
initially reported when we first saw regression after fbdev commits in 
5.15.149 update: 
https://lore.kernel.org/all/271372d6-e665-4e7f-b088-dee5f4ab341a@oracle.com/

Regression is fixed after this patch in 5.15.158

Thanks to Nam for quick 5.15.y backport and for helping with the fix.

Thanks,
Harshit


> Signed-off-by: Nam Cao <namcao@linutronix.de>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
>   drivers/video/fbdev/core/fb_defio.c |    2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> --- a/drivers/video/fbdev/core/fb_defio.c
> +++ b/drivers/video/fbdev/core/fb_defio.c
> @@ -149,7 +149,7 @@ static vm_fault_t fb_deferred_io_mkwrite
>   	unsigned long offset;
>   	vm_fault_t ret;
>   
> -	offset = (vmf->address - vmf->vma->vm_start);
> +	offset = vmf->pgoff << PAGE_SHIFT;
>   
>   	/* this is a callback we get when userspace first tries to
>   	write to the page. we schedule a workqueue. that workqueue
> 
> 
> 


  reply	other threads:[~2024-05-02  8:35 UTC|newest]

Thread overview: 90+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-30 10:39 [PATCH 5.15 00/80] 5.15.158-rc1 review Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 01/80] smb: client: fix rename(2) regression against samba Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 02/80] cifs: reinstate original behavior again for forceuid/forcegid Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 03/80] HID: intel-ish-hid: ipc: Fix dev_err usage with uninitialized dev->devc Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 04/80] HID: logitech-dj: allow mice to use all types of reports Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 05/80] arm64: dts: rockchip: enable internal pull-up on Q7_USB_ID for RK3399 Puma Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 06/80] arm64: dts: rockchip: fix alphabetical ordering RK3399 puma Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 07/80] arm64: dts: rockchip: enable internal pull-up on PCIE_WAKE# for RK3399 Puma Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 08/80] arm64: dts: rockchip: Remove unsupported node from the Pinebook Pro dts Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 09/80] arm64: dts: mediatek: mt8183: Add power-domains properity to mfgcfg Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 10/80] arm64: dts: mediatek: mt7622: add support for coherent DMA Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 11/80] arm64: dts: mediatek: mt7622: introduce nodes for Wireless Ethernet Dispatch Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 12/80] arm64: dts: mediatek: mt7622: fix clock controllers Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 13/80] arm64: dts: mediatek: mt7622: fix IR nodename Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 14/80] arm64: dts: mediatek: mt7622: fix ethernet controller "compatible" Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 15/80] arm64: dts: mediatek: mt7622: drop "reset-names" from thermal block Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 16/80] arm64: dts: mediatek: mt2712: fix validation errors Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 17/80] ARC: [plat-hsdk]: Remove misplaced interrupt-cells property Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 18/80] wifi: iwlwifi: mvm: remove old PASN station when adding a new one Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 19/80] wifi: iwlwifi: mvm: return uid from iwl_mvm_build_scan_cmd Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 20/80] vxlan: drop packets from invalid src-address Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 21/80] mlxsw: core: Unregister EMAD trap using FORWARD action Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 22/80] icmp: prevent possible NULL dereferences from icmp_build_probe() Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 23/80] bridge/br_netlink.c: no need to return void function Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 24/80] NFC: trf7970a: disable all regulators on removal Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 25/80] ipv4: check for NULL idev in ip_route_use_hint() Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 26/80] net: usb: ax88179_178a: stop lying about skb->truesize Greg Kroah-Hartman
2024-04-30 10:39 ` [PATCH 5.15 27/80] net: gtp: Fix Use-After-Free in gtp_dellink Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 28/80] ipvs: Fix checksumming on GSO of SCTP packets Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 29/80] net: openvswitch: Fix Use-After-Free in ovs_ct_exit Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 30/80] mlxsw: spectrum_acl_tcam: Fix race during rehash delayed work Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 31/80] mlxsw: spectrum_acl_tcam: Fix possible use-after-free during activity update Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 32/80] mlxsw: spectrum_acl_tcam: Fix possible use-after-free during rehash Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 33/80] mlxsw: spectrum_acl_tcam: Rate limit error message Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 34/80] mlxsw: spectrum_acl_tcam: Fix memory leak during rehash Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 35/80] mlxsw: spectrum_acl_tcam: Fix warning " Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 36/80] mlxsw: spectrum_acl_tcam: Fix incorrect list API usage Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 37/80] mlxsw: spectrum_acl_tcam: Fix memory leak when canceling rehash work Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 38/80] netfilter: nf_tables: honor table dormant flag from netdev release event path Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 39/80] i40e: Do not use WQ_MEM_RECLAIM flag for workqueue Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 40/80] i40e: Report MFS in decimal base instead of hex Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 41/80] iavf: Fix TC config comparison with existing adapter TC config Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 42/80] net: ethernet: ti: am65-cpts: Fix PTPv1 message type on TX packets Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 43/80] af_unix: Suppress false-positive lockdep splat for spin_lock() in __unix_gc() Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 44/80] serial: core: Provide port lock wrappers Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 45/80] serial: mxs-auart: add spinlock around changing cts state Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 46/80] drm-print: add drm_dbg_driver to improve namespace symmetry Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 47/80] drm/vmwgfx: Fix crtcs atomic check conditional Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 48/80] Revert "crypto: api - Disallow identical driver names" Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 49/80] net/mlx5e: Fix a race in command alloc flow Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 50/80] tracing: Show size of requested perf buffer Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 51/80] tracing: Increase PERF_MAX_TRACE_SIZE to handle Sentinel1 and docker together Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 52/80] x86/cpu: Fix check for RDPKRU in __show_regs() Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 53/80] Bluetooth: Fix type of len in {l2cap,sco}_sock_getsockopt_old() Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 54/80] Bluetooth: btusb: Add Realtek RTL8852BE support ID 0x0bda:0x4853 Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 55/80] Bluetooth: qca: fix NULL-deref on non-serdev suspend Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 56/80] mmc: sdhci-msm: pervent access to suspended controller Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 57/80] btrfs: fix information leak in btrfs_ioctl_logical_to_ino() Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 58/80] cpu: Re-enable CPU mitigations by default for !X86 architectures Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 59/80] arm64: dts: rockchip: enable internal pull-up for Q7_THRM# on RK3399 Puma Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 60/80] drm/amdgpu/sdma5.2: use legacy HDP flush for SDMA2/3 Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 61/80] drm/amdgpu: Fix leak when GPU memory allocation fails Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 62/80] irqchip/gic-v3-its: Prevent double free on error Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 63/80] ethernet: Add helper for assigning packet type when dest address does not match device address Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 64/80] net: b44: set pause params only when interface is up Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 65/80] stackdepot: respect __GFP_NOLOCKDEP allocation flag Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 66/80] mtd: diskonchip: work around ubsan link failure Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 67/80] tcp: Clean up kernel listeners reqsk in inet_twsk_purge() Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 68/80] tcp: Fix NEW_SYN_RECV handling " Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 69/80] dmaengine: owl: fix register access functions Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 70/80] idma64: Dont try to serve interrupts when device is powered off Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 71/80] dma: xilinx_dpdma: Fix locking Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 72/80] dmaengine: idxd: Fix oops during rmmod on single-CPU platforms Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 73/80] riscv: fix VMALLOC_START definition Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 74/80] riscv: Fix TASK_SIZE on 64-bit NOMMU Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 75/80] i2c: smbus: fix NULL function pointer dereference Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 76/80] fbdev: fix incorrect address computation in deferred IO Greg Kroah-Hartman
2024-05-02  8:34   ` Harshit Mogalapalli [this message]
2024-04-30 10:40 ` [PATCH 5.15 77/80] HID: i2c-hid: remove I2C_HID_READ_PENDING flag to prevent lock-up Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 78/80] bounds: Use the right number of bits for power-of-two CONFIG_NR_CPUS Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 79/80] udp: preserve the connected status if only UDP cmsg Greg Kroah-Hartman
2024-04-30 10:40 ` [PATCH 5.15 80/80] serial: core: fix kernel-doc for uart_port_unlock_irqrestore() Greg Kroah-Hartman
2024-04-30 16:31 ` [PATCH 5.15 00/80] 5.15.158-rc1 review Harshit Mogalapalli
2024-04-30 16:47 ` SeongJae Park
2024-04-30 18:49 ` Florian Fainelli
2024-05-01  8:52 ` Ron Economos
2024-05-01 10:30 ` Naresh Kamboju
2024-05-01 13:38 ` Jon Hunter
2024-05-02  3:05 ` Shuah Khan
2024-05-02  6:38 ` Pascal Ernster

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=23938ba3-2952-4fa5-97c3-05892fea4663@oracle.com \
    --to=harshit.m.mogalapalli@oracle.com \
    --cc=darren.kenny@oracle.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=namcao@linutronix.de \
    --cc=patches@lists.linux.dev \
    --cc=stable@vger.kernel.org \
    --cc=tzimmermann@suse.de \
    --cc=vegard.nossum@oracle.com \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).