[PATCH v2 00/13] Eliminate drive_get_next()

Markus Armbruster posted 13 patches 2 years, 5 months ago
Failed in applying to current master (apply log)
include/sysemu/blockdev.h           |  1 -
blockdev.c                          | 10 ----------
hw/arm/aspeed.c                     | 21 +++++++++++++--------
hw/arm/cubieboard.c                 |  2 +-
hw/arm/imx25_pdk.c                  |  2 +-
hw/arm/integratorcp.c               |  2 +-
hw/arm/mcimx6ul-evk.c               |  2 +-
hw/arm/mcimx7d-sabre.c              |  2 +-
hw/arm/msf2-som.c                   |  2 +-
hw/arm/npcm7xx_boards.c             |  6 +++---
hw/arm/orangepi.c                   |  2 +-
hw/arm/raspi.c                      |  2 +-
hw/arm/realview.c                   |  2 +-
hw/arm/sabrelite.c                  |  2 +-
hw/arm/stellaris.c                  | 15 ++++++++++++++-
hw/arm/versatilepb.c                |  4 ++--
hw/arm/vexpress.c                   |  6 +++---
hw/arm/xilinx_zynq.c                | 16 +++++++++-------
hw/arm/xlnx-versal-virt.c           |  3 ++-
hw/arm/xlnx-zcu102.c                |  6 +++---
hw/microblaze/petalogix_ml605_mmu.c |  2 +-
hw/misc/sifive_u_otp.c              |  2 +-
hw/riscv/microchip_pfsoc.c          |  2 +-
hw/riscv/sifive_u.c                 | 15 +++++++++++++--
hw/sd/ssi-sd.c                      | 29 +----------------------------
hw/sparc64/niagara.c                |  2 +-
26 files changed, 77 insertions(+), 83 deletions(-)
[PATCH v2 00/13] Eliminate drive_get_next()
Posted by Markus Armbruster 2 years, 5 months ago
drive_get_next() is basically a bad idea.  It returns the "next" block
backend of a certain interface type.  "Next" means bus=0,unit=N, where
subsequent calls count N up from zero, per interface type.

This lets you define unit numbers implicitly by execution order.  If
the order changes, or new calls appear "in the middle", unit numbers
change.  ABI break.  Hard to spot in review.  Replace its uses by
drive_get(), then delete it.

Markus Armbruster (13):
  hw/sd/ssi-sd: Do not create SD card within controller's realize
  hw: Replace trivial drive_get_next() by drive_get()
  hw/arm/npcm7xx_boards: Replace drive_get_next() by drive_get()
  hw/arm/versatilepb hw/arm/vexpress: Replace drive_get_next() by
    drive_get()
  hw/arm/imx25_pdk: Replace drive_get_next() by drive_get()
  hw/arm/mcimx6ul-evk: Replace drive_get_next() by drive_get()
  hw/arm/mcimx7d-sabre: Replace drive_get_next() by drive_get()
  hw/arm/xlnx-versal-virt: Replace drive_get_next() by drive_get()
  hw/microblaze: Replace drive_get_next() by drive_get()
  hw/arm/xlnx-zcu102: Replace drive_get_next() by drive_get()
  hw/arm/xilinx_zynq: Replace drive_get_next() by drive_get()
  hw/arm/aspeed: Replace drive_get_next() by drive_get()
  blockdev: Drop unused drive_get_next()

 include/sysemu/blockdev.h           |  1 -
 blockdev.c                          | 10 ----------
 hw/arm/aspeed.c                     | 21 +++++++++++++--------
 hw/arm/cubieboard.c                 |  2 +-
 hw/arm/imx25_pdk.c                  |  2 +-
 hw/arm/integratorcp.c               |  2 +-
 hw/arm/mcimx6ul-evk.c               |  2 +-
 hw/arm/mcimx7d-sabre.c              |  2 +-
 hw/arm/msf2-som.c                   |  2 +-
 hw/arm/npcm7xx_boards.c             |  6 +++---
 hw/arm/orangepi.c                   |  2 +-
 hw/arm/raspi.c                      |  2 +-
 hw/arm/realview.c                   |  2 +-
 hw/arm/sabrelite.c                  |  2 +-
 hw/arm/stellaris.c                  | 15 ++++++++++++++-
 hw/arm/versatilepb.c                |  4 ++--
 hw/arm/vexpress.c                   |  6 +++---
 hw/arm/xilinx_zynq.c                | 16 +++++++++-------
 hw/arm/xlnx-versal-virt.c           |  3 ++-
 hw/arm/xlnx-zcu102.c                |  6 +++---
 hw/microblaze/petalogix_ml605_mmu.c |  2 +-
 hw/misc/sifive_u_otp.c              |  2 +-
 hw/riscv/microchip_pfsoc.c          |  2 +-
 hw/riscv/sifive_u.c                 | 15 +++++++++++++--
 hw/sd/ssi-sd.c                      | 29 +----------------------------
 hw/sparc64/niagara.c                |  2 +-
 26 files changed, 77 insertions(+), 83 deletions(-)

-- 
2.31.1


Re: [PATCH v2 00/13] Eliminate drive_get_next()
Posted by Markus Armbruster 2 years, 4 months ago
Markus Armbruster <armbru@redhat.com> writes:

> drive_get_next() is basically a bad idea.  It returns the "next" block
> backend of a certain interface type.  "Next" means bus=0,unit=N, where
> subsequent calls count N up from zero, per interface type.
>
> This lets you define unit numbers implicitly by execution order.  If
> the order changes, or new calls appear "in the middle", unit numbers
> change.  ABI break.  Hard to spot in review.  Replace its uses by
> drive_get(), then delete it.

Queued for 7.0.