mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Niklas Schnelle <schnelle@linux.ibm.com>
To: Sasha Levin <sashal@kernel.org>,
	linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Matthew Rosato <mjrosato@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	gerald.schaefer@linux.ibm.com, hca@linux.ibm.com,
	agordeev@linux.ibm.com, linux-s390@vger.kernel.org
Subject: Re: [PATCH AUTOSEL 5.17 18/31] s390/pci: improve zpci_dev reference counting
Date: Thu, 07 Apr 2022 10:27:37 +0200	[thread overview]
Message-ID: <9a0af2fec80f1b46c3ad9d80c6424e168ca2e54e.camel@linux.ibm.com> (raw)
In-Reply-To: <20220407011029.113321-18-sashal@kernel.org>

On Wed, 2022-04-06 at 21:10 -0400, Sasha Levin wrote:
> From: Niklas Schnelle <schnelle@linux.ibm.com>
> 
> [ Upstream commit c122383d221dfa2f41cfe5e672540595de986fde ]
> 
> Currently zpci_dev uses kref based reference counting but only accounts
> for one original reference plus one reference from an added pci_dev to
> its underlying zpci_dev. Counting just the original reference worked
> until the pci_dev reference was added in commit 2a671f77ee49 ("s390/pci:
> fix use after free of zpci_dev") because once a zpci_dev goes away, i.e.
> enters the reserved state, it would immediately get released. However
> with the pci_dev reference this is no longer the case and the zpci_dev
> may still appear in multiple availability events indicating that it was
> reserved. This was solved by detecting when the zpci_dev is already on
> its way out but still hanging around. This has however shown some light
> on how unusual our zpci_dev reference counting is.
> 
> Improve upon this by modelling zpci_dev reference counting on pci_dev.
> Analogous to pci_get_slot() increment the reference count in
> get_zdev_by_fid(). Thus all users of get_zdev_by_fid() must drop the
> reference once they are done with the zpci_dev.
> 
> Similar to pci_scan_single_device(), zpci_create_device() returns the
> device with an initial count of 1 and the device added to the zpci_list
> (analogous to the PCI bus' device_list). In turn users of
> zpci_create_device() must only drop the reference once the device is
> gone from the point of view of the zPCI subsystem, it might still be
> referenced by the common PCI subsystem though.
> 
> Reviewed-by: Matthew Rosato <mjrosato@linux.ibm.com>
> Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
> Signed-off-by: Sasha Levin <sashal@kernel.org>
> ---

This isn't really a bug fix, as far as I'm aware the existing code
works correctly. It is just about making things more like PCI bus
reference counting and less weird. I also see some potential of the
state of things with just this commit added being confusing. That's why
there is a follow up commit 7dcfe50f58d2 ("s390/pci: rename
get_zdev_by_bus() to zdev_from_bus()") to make it more obvious when
zpci_zdev_put() is needed.

In short I'd propose to drop this patch from the stable queues.


  reply	other threads:[~2022-04-07  8:27 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-07  1:09 [PATCH AUTOSEL 5.17 01/31] gfs2: assign rgrp glock before compute_bitstructs Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 02/31] gfs2: cancel timed-out glock requests Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 03/31] gfs2: Switch lock order of inode and iopen glock Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 04/31] rtc: fix use-after-free on device removal Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 05/31] rtc: pcf2127: fix bug when reading alarm registers Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 06/31] kconfig: add fflush() before ferror() check Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 07/31] um: Cleanup syscall_handler_t definition/cast, fix warning Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 08/31] um: port_user: Improve error handling when port-helper is not found Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 09/31] Input: add bounds checking to input_set_capability() Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 10/31] Input: stmfts - fix reference leak in stmfts_input_open Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 11/31] nvme-pci: add quirks for Samsung X5 SSDs Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 12/31] gfs2: Disable page faults during lockless buffered reads Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 13/31] rtc: sun6i: Fix time overflow handling Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 14/31] crypto: stm32 - fix reference leak in stm32_crc_remove Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 15/31] crypto: x86/chacha20 - Avoid spurious jumps to other functions Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 16/31] ALSA: hda/realtek: Enable headset mic on Lenovo P360 Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 17/31] s390/traps: improve panic message for translation-specification exception Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 18/31] s390/pci: improve zpci_dev reference counting Sasha Levin
2022-04-07  8:27   ` Niklas Schnelle [this message]
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 19/31] vhost_vdpa: don't setup irq offloading when irq_num < 0 Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 20/31] tools/virtio: compile with -pthread Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 21/31] smb3: cleanup and clarify status of tree connections Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 22/31] nvmet: use a private workqueue instead of the system workqueue Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 23/31] nvme-multipath: fix hang when disk goes live over reconnect Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 24/31] rtc: mc146818-lib: Fix the AltCentury for AMD platforms Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 25/31] fs: fix an infinite loop in iomap_fiemap Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 26/31] MIPS: lantiq: check the return value of kzalloc() Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 27/31] drbd: remove usage of list iterator variable after loop Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 28/31] platform/chrome: cros_ec_debugfs: detach log reader wq from devm Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 29/31] ARM: 9191/1: arm/stacktrace, kasan: Silence KASAN warnings in unwind_frame() Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 30/31] nilfs2: fix lockdep warnings in page operations for btree nodes Sasha Levin
2022-04-07  1:10 ` [PATCH AUTOSEL 5.17 31/31] nilfs2: fix lockdep warnings during disk space reclamation Sasha Levin

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=9a0af2fec80f1b46c3ad9d80c6424e168ca2e54e.camel@linux.ibm.com \
    --to=schnelle@linux.ibm.com \
    --cc=agordeev@linux.ibm.com \
    --cc=gerald.schaefer@linux.ibm.com \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=mjrosato@linux.ibm.com \
    --cc=sashal@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

all inboxes | Powered by JetHome®