mbox series

[v3,00/19] scsi: libsas: Remove in_interrupt() check

Message ID 20210118100955.1761652-1-a.darwish@linutronix.de (mailing list archive)
Headers show
Series scsi: libsas: Remove in_interrupt() check | expand

Message

Ahmed S. Darwish Jan. 18, 2021, 10:09 a.m. UTC
Hi,

Changelog v3
------------

- Include latest version of John's patch. Collect r-b tags.

- Limit all code to 80 columns, even for intermediate patches.

- Rebase over v5.11-rc4

Changelog v2
------------

https://lkml.kernel.org/r/20210112110647.627783-1-a.darwish@linutronix.de

- Rebase on top of John's patch "scsi: libsas and users: Remove notifier
  indirection", as it affects every other patch. Include it in this
  series (patch #2).

- Introduce patches #13 => #19, which modify call sites back to use the
  original libsas notifier function names without _gfp() suffix.

- Rebase over v5.11-rc3

v1 / Cover letter
-----------------

https://lkml.kernel.org/r/20201218204354.586951-1-a.darwish@linutronix.de

In the discussion about preempt count consistency across kernel
configurations:

  https://lkml.kernel.org/r/20200914204209.256266093@linutronix.de

it was concluded that the usage of in_interrupt() and related context
checks should be removed from non-core code.

This includes memory allocation mode decisions (GFP_*). In the long run,
usage of in_interrupt() and its siblings should be banned from driver
code completely.

This series addresses SCSI libsas. Basically, the function:

  => drivers/scsi/libsas/sas_init.c:
  struct asd_sas_event *sas_alloc_event(struct asd_sas_phy *phy)
  {
        ...
        gfp_t flags = in_interrupt() ? GFP_ATOMIC : GFP_KERNEL;
        event = kmem_cache_zalloc(sas_event_cache, flags);
        ...
  }

is transformed so that callers explicitly pass the gfp_t memory
allocation flags. Affected libsas clients are modified accordingly.

Patches #1, #2 => #7 have "Fixes: " tags and address bugs the were
noticed during the context analysis.

Thanks!

8<--------------

Ahmed S. Darwish (18):
  Documentation: scsi: libsas: Remove notify_ha_event()
  scsi: libsas: Introduce a _gfp() variant of event notifiers
  scsi: mvsas: Pass gfp_t flags to libsas event notifiers
  scsi: isci: port: link down: Pass gfp_t flags
  scsi: isci: port: link up: Pass gfp_t flags
  scsi: isci: port: broadcast change: Pass gfp_t flags
  scsi: libsas: Pass gfp_t flags to event notifiers
  scsi: pm80xx: Pass gfp_t flags to libsas event notifiers
  scsi: aic94xx: Pass gfp_t flags to libsas event notifiers
  scsi: hisi_sas: Pass gfp_t flags to libsas event notifiers
  scsi: libsas: event notifiers API: Add gfp_t flags parameter
  scsi: hisi_sas: Switch back to original libsas event notifiers
  scsi: aic94xx: Switch back to original libsas event notifiers
  scsi: pm80xx: Switch back to original libsas event notifiers
  scsi: libsas: Switch back to original event notifiers API
  scsi: isci: Switch back to original libsas event notifiers
  scsi: mvsas: Switch back to original libsas event notifiers
  scsi: libsas: Remove temporarily-added _gfp() API variants

John Garry (1):
  scsi: libsas and users: Remove notifier indirection

 Documentation/scsi/libsas.rst          |  9 +----
 drivers/scsi/aic94xx/aic94xx_scb.c     | 24 ++++++------
 drivers/scsi/hisi_sas/hisi_sas.h       |  3 +-
 drivers/scsi/hisi_sas/hisi_sas_main.c  | 29 +++++++-------
 drivers/scsi/hisi_sas/hisi_sas_v1_hw.c |  7 ++--
 drivers/scsi/hisi_sas/hisi_sas_v2_hw.c |  7 ++--
 drivers/scsi/hisi_sas/hisi_sas_v3_hw.c |  7 ++--
 drivers/scsi/isci/port.c               | 11 +++---
 drivers/scsi/libsas/sas_event.c        | 27 ++++++-------
 drivers/scsi/libsas/sas_init.c         | 19 ++++-----
 drivers/scsi/libsas/sas_internal.h     |  6 +--
 drivers/scsi/mvsas/mv_sas.c            | 25 ++++++------
 drivers/scsi/pm8001/pm8001_hwi.c       | 54 ++++++++++++++++----------
 drivers/scsi/pm8001/pm8001_sas.c       | 12 ++----
 drivers/scsi/pm8001/pm80xx_hwi.c       | 46 ++++++++++++----------
 include/scsi/libsas.h                  |  9 +++--
 16 files changed, 149 insertions(+), 146 deletions(-)

base-commit: 19c329f6808995b142b3966301f217c831e7cf31
--
2.30.0

Comments

Martin K. Petersen Jan. 23, 2021, 2:32 a.m. UTC | #1
Ahmed,

> Ahmed S. Darwish (18):
>   Documentation: scsi: libsas: Remove notify_ha_event()
>   scsi: libsas: Introduce a _gfp() variant of event notifiers
>   scsi: mvsas: Pass gfp_t flags to libsas event notifiers
>   scsi: isci: port: link down: Pass gfp_t flags
>   scsi: isci: port: link up: Pass gfp_t flags
>   scsi: isci: port: broadcast change: Pass gfp_t flags
>   scsi: libsas: Pass gfp_t flags to event notifiers
>   scsi: pm80xx: Pass gfp_t flags to libsas event notifiers
>   scsi: aic94xx: Pass gfp_t flags to libsas event notifiers
>   scsi: hisi_sas: Pass gfp_t flags to libsas event notifiers
>   scsi: libsas: event notifiers API: Add gfp_t flags parameter
>   scsi: hisi_sas: Switch back to original libsas event notifiers
>   scsi: aic94xx: Switch back to original libsas event notifiers
>   scsi: pm80xx: Switch back to original libsas event notifiers
>   scsi: libsas: Switch back to original event notifiers API
>   scsi: isci: Switch back to original libsas event notifiers
>   scsi: mvsas: Switch back to original libsas event notifiers
>   scsi: libsas: Remove temporarily-added _gfp() API variants
>
> John Garry (1):
>   scsi: libsas and users: Remove notifier indirection

Applied to 5.12/scsi-staging, thanks!
Martin K. Petersen Jan. 27, 2021, 4:54 a.m. UTC | #2
On Mon, 18 Jan 2021 11:09:36 +0100, Ahmed S. Darwish wrote:

> Changelog v3
> ------------
> 
> - Include latest version of John's patch. Collect r-b tags.
> 
> - Limit all code to 80 columns, even for intermediate patches.
> 
> [...]

Applied to 5.12/scsi-queue, thanks!

[01/19] Documentation: scsi: libsas: Remove notify_ha_event()
        https://git.kernel.org/mkp/scsi/c/3f901c81dfad
[02/19] scsi: libsas and users: Remove notifier indirection
        https://git.kernel.org/mkp/scsi/c/121181f3f839
[03/19] scsi: libsas: Introduce a _gfp() variant of event notifiers
        https://git.kernel.org/mkp/scsi/c/c2d0f1a65ab9
[04/19] scsi: mvsas: Pass gfp_t flags to libsas event notifiers
        https://git.kernel.org/mkp/scsi/c/feb18e900f00
[05/19] scsi: isci: port: link down: Pass gfp_t flags
        https://git.kernel.org/mkp/scsi/c/885ab3b8926f
[06/19] scsi: isci: port: link up: Pass gfp_t flags
        https://git.kernel.org/mkp/scsi/c/5ce7902902ad
[07/19] scsi: isci: port: broadcast change: Pass gfp_t flags
        https://git.kernel.org/mkp/scsi/c/71dca5539fcf
[08/19] scsi: libsas: Pass gfp_t flags to event notifiers
        https://git.kernel.org/mkp/scsi/c/19a39831ff99
[09/19] scsi: pm80xx: Pass gfp_t flags to libsas event notifiers
        https://git.kernel.org/mkp/scsi/c/cd4e8176989f
[10/19] scsi: aic94xx: Pass gfp_t flags to libsas event notifiers
        https://git.kernel.org/mkp/scsi/c/111d06ab77c9
[11/19] scsi: hisi_sas: Pass gfp_t flags to libsas event notifiers
        https://git.kernel.org/mkp/scsi/c/26c7efc3f952
[12/19] scsi: libsas: event notifiers API: Add gfp_t flags parameter
        https://git.kernel.org/mkp/scsi/c/5d6a75a1edf6
[13/19] scsi: hisi_sas: Switch back to original libsas event notifiers
        https://git.kernel.org/mkp/scsi/c/872a90b5b466
[14/19] scsi: aic94xx: Switch back to original libsas event notifiers
        https://git.kernel.org/mkp/scsi/c/093289e40b52
[15/19] scsi: pm80xx: Switch back to original libsas event notifiers
        https://git.kernel.org/mkp/scsi/c/de6d7547ce1d
[16/19] scsi: libsas: Switch back to original event notifiers API
        https://git.kernel.org/mkp/scsi/c/f76d9f1a1511
[17/19] scsi: isci: Switch back to original libsas event notifiers
        https://git.kernel.org/mkp/scsi/c/c12208668aef
[18/19] scsi: mvsas: Switch back to original libsas event notifiers
        https://git.kernel.org/mkp/scsi/c/36cdfd0f7a8c
[19/19] scsi: libsas: Remove temporarily-added _gfp() API variants
        https://git.kernel.org/mkp/scsi/c/65f7cfba6196