Module Name: src
Committed By: riastradh
Date: Tue Jun 25 14:55:23 UTC 2024
Modified Files:
src/sys/dev/pci: virtio_pci.c
Log Message:
virtio_pci.c: Use container_of, not cast.
To generate a diff of this commit:
cvs rdiff -u -r1.53 -r1.54 src/sys/dev/pci/virtio_pci.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/pci/virtio_pci.c
diff -u src/sys/dev/pci/virtio_pci.c:1.53 src/sys/dev/pci/virtio_pci.c:1.54
--- src/sys/dev/pci/virtio_pci.c:1.53 Tue Jun 25 14:55:09 2024
+++ src/sys/dev/pci/virtio_pci.c Tue Jun 25 14:55:23 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: virtio_pci.c,v 1.53 2024/06/25 14:55:09 riastradh Exp $ */
+/* $NetBSD: virtio_pci.c,v 1.54 2024/06/25 14:55:23 riastradh Exp $ */
/*
* Copyright (c) 2020 The NetBSD Foundation, Inc.
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: virtio_pci.c,v 1.53 2024/06/25 14:55:09 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: virtio_pci.c,v 1.54 2024/06/25 14:55:23 riastradh Exp $");
#include <sys/param.h>
#include <sys/types.h>
@@ -618,7 +618,8 @@ virtio_pci_find_cap(struct virtio_pci_so
static void
virtio_pci_kick_09(struct virtio_softc *sc, uint16_t idx)
{
- struct virtio_pci_softc * const psc = (struct virtio_pci_softc *)sc;
+ struct virtio_pci_softc * const psc = container_of(sc,
+ struct virtio_pci_softc, sc_sc);
bus_space_write_2(psc->sc_notify_iot, psc->sc_notify_ioh, 0, idx);
}
@@ -648,7 +649,8 @@ virtio_pci_adjust_config_region(struct v
static uint16_t
virtio_pci_read_queue_size_09(struct virtio_softc *sc, uint16_t idx)
{
- struct virtio_pci_softc * const psc = (struct virtio_pci_softc *)sc;
+ struct virtio_pci_softc * const psc = container_of(sc,
+ struct virtio_pci_softc, sc_sc);
bus_space_write_2(psc->sc_iot, psc->sc_ioh,
VIRTIO_CONFIG_QUEUE_SELECT, idx);
@@ -659,7 +661,8 @@ virtio_pci_read_queue_size_09(struct vir
static void
virtio_pci_setup_queue_09(struct virtio_softc *sc, uint16_t idx, uint64_t addr)
{
- struct virtio_pci_softc * const psc = (struct virtio_pci_softc *)sc;
+ struct virtio_pci_softc * const psc = container_of(sc,
+ struct virtio_pci_softc, sc_sc);
bus_space_write_2(psc->sc_iot, psc->sc_ioh,
VIRTIO_CONFIG_QUEUE_SELECT, idx);
@@ -678,7 +681,8 @@ virtio_pci_setup_queue_09(struct virtio_
static void
virtio_pci_set_status_09(struct virtio_softc *sc, int status)
{
- struct virtio_pci_softc * const psc = (struct virtio_pci_softc *)sc;
+ struct virtio_pci_softc * const psc = container_of(sc,
+ struct virtio_pci_softc, sc_sc);
int old = 0;
if (status != 0) {
@@ -693,7 +697,8 @@ static void
virtio_pci_negotiate_features_09(struct virtio_softc *sc,
uint64_t guest_features)
{
- struct virtio_pci_softc * const psc = (struct virtio_pci_softc *)sc;
+ struct virtio_pci_softc * const psc = container_of(sc,
+ struct virtio_pci_softc, sc_sc);
uint32_t r;
r = bus_space_read_4(psc->sc_iot, psc->sc_ioh,
@@ -714,7 +719,8 @@ virtio_pci_negotiate_features_09(struct
static void
virtio_pci_kick_10(struct virtio_softc *sc, uint16_t idx)
{
- struct virtio_pci_softc * const psc = (struct virtio_pci_softc *)sc;
+ struct virtio_pci_softc * const psc = container_of(sc,
+ struct virtio_pci_softc, sc_sc);
unsigned offset = sc->sc_vqs[idx].vq_notify_off *
psc->sc_notify_off_multiplier;
@@ -724,8 +730,9 @@ virtio_pci_kick_10(struct virtio_softc *
static uint16_t
virtio_pci_read_queue_size_10(struct virtio_softc *sc, uint16_t idx)
{
- struct virtio_pci_softc * const psc = (struct virtio_pci_softc *)sc;
- bus_space_tag_t iot = psc->sc_iot;
+ struct virtio_pci_softc * const psc = container_of(sc,
+ struct virtio_pci_softc, sc_sc);
+ bus_space_tag_t iot = psc->sc_iot;
bus_space_handle_t ioh = psc->sc_ioh;
bus_space_write_2(iot, ioh, VIRTIO_CONFIG1_QUEUE_SELECT, idx);
@@ -760,7 +767,8 @@ virtio_pci_bus_space_write_8(bus_space_t
static void
virtio_pci_setup_queue_10(struct virtio_softc *sc, uint16_t idx, uint64_t addr)
{
- struct virtio_pci_softc * const psc = (struct virtio_pci_softc *)sc;
+ struct virtio_pci_softc * const psc = container_of(sc,
+ struct virtio_pci_softc, sc_sc);
struct virtqueue *vq = &sc->sc_vqs[idx];
bus_space_tag_t iot = psc->sc_iot;
bus_space_handle_t ioh = psc->sc_ioh;
@@ -800,8 +808,9 @@ virtio_pci_setup_queue_10(struct virtio_
static void
virtio_pci_set_status_10(struct virtio_softc *sc, int status)
{
- struct virtio_pci_softc * const psc = (struct virtio_pci_softc *)sc;
- bus_space_tag_t iot = psc->sc_iot;
+ struct virtio_pci_softc * const psc = container_of(sc,
+ struct virtio_pci_softc, sc_sc);
+ bus_space_tag_t iot = psc->sc_iot;
bus_space_handle_t ioh = psc->sc_ioh;
int old = 0;
@@ -815,9 +824,10 @@ void
virtio_pci_negotiate_features_10(struct virtio_softc *sc,
uint64_t guest_features)
{
- struct virtio_pci_softc * const psc = (struct virtio_pci_softc *)sc;
- device_t self = sc->sc_dev;
- bus_space_tag_t iot = psc->sc_iot;
+ struct virtio_pci_softc * const psc = container_of(sc,
+ struct virtio_pci_softc, sc_sc);
+ device_t self = sc->sc_dev;
+ bus_space_tag_t iot = psc->sc_iot;
bus_space_handle_t ioh = psc->sc_ioh;
uint64_t host, negotiated, device_status;
@@ -873,8 +883,9 @@ virtio_pci_negotiate_features_10(struct
static int
virtio_pci_setup_interrupts_10(struct virtio_softc *sc, int reinit)
{
- struct virtio_pci_softc * const psc = (struct virtio_pci_softc *)sc;
- bus_space_tag_t iot = psc->sc_iot;
+ struct virtio_pci_softc * const psc = container_of(sc,
+ struct virtio_pci_softc, sc_sc);
+ bus_space_tag_t iot = psc->sc_iot;
bus_space_handle_t ioh = psc->sc_ioh;
int vector, ret, qid;
@@ -912,7 +923,8 @@ virtio_pci_setup_interrupts_10(struct vi
static int
virtio_pci_setup_interrupts_09(struct virtio_softc *sc, int reinit)
{
- struct virtio_pci_softc * const psc = (struct virtio_pci_softc *)sc;
+ struct virtio_pci_softc * const psc = container_of(sc,
+ struct virtio_pci_softc, sc_sc);
int offset, vector, ret, qid;
if (!virtio_pci_msix_enabled(psc))
@@ -960,7 +972,8 @@ static int
virtio_pci_establish_msix_interrupts(struct virtio_softc *sc,
const struct pci_attach_args *pa)
{
- struct virtio_pci_softc * const psc = (struct virtio_pci_softc *)sc;
+ struct virtio_pci_softc * const psc = container_of(sc,
+ struct virtio_pci_softc, sc_sc);
device_t self = sc->sc_dev;
pci_chipset_tag_t pc = pa->pa_pc;
struct virtqueue *vq;
@@ -1097,7 +1110,8 @@ static int
virtio_pci_establish_intx_interrupt(struct virtio_softc *sc,
const struct pci_attach_args *pa)
{
- struct virtio_pci_softc * const psc = (struct virtio_pci_softc *)sc;
+ struct virtio_pci_softc * const psc = container_of(sc,
+ struct virtio_pci_softc, sc_sc);
device_t self = sc->sc_dev;
pci_chipset_tag_t pc = pa->pa_pc;
char intrbuf[PCI_INTRSTR_LEN];
@@ -1123,7 +1137,8 @@ virtio_pci_establish_intx_interrupt(stru
static int
virtio_pci_alloc_interrupts(struct virtio_softc *sc)
{
- struct virtio_pci_softc * const psc = (struct virtio_pci_softc *)sc;
+ struct virtio_pci_softc * const psc = container_of(sc,
+ struct virtio_pci_softc, sc_sc);
device_t self = sc->sc_dev;
pci_chipset_tag_t pc = psc->sc_pa.pa_pc;
pcitag_t tag = psc->sc_pa.pa_tag;
@@ -1215,7 +1230,8 @@ retry:
static void
virtio_pci_free_interrupts(struct virtio_softc *sc)
{
- struct virtio_pci_softc * const psc = (struct virtio_pci_softc *)sc;
+ struct virtio_pci_softc * const psc = container_of(sc,
+ struct virtio_pci_softc, sc_sc);
for (int i = 0; i < psc->sc_ihs_num; i++) {
if (psc->sc_ihs[i] == NULL)
@@ -1254,7 +1270,8 @@ static int
virtio_pci_intr(void *arg)
{
struct virtio_softc *sc = arg;
- struct virtio_pci_softc * const psc = (struct virtio_pci_softc *)sc;
+ struct virtio_pci_softc * const psc = container_of(sc,
+ struct virtio_pci_softc, sc_sc);
int isr, r = 0;
/* check and ack the interrupt */