Skip to content

Commit 7d096cb

Browse files
jasowangmstsirkin
authored andcommitted
virtio_ring: constify virtqueue pointer for DMA helpers
This patch constifies the virtqueue pointer for DMA helpers. Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> Reviewed-by: Eugenio Pérez <eperezma@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com> Message-Id: <20250821064641.5025-2-jasowang@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Tested-by: Lei Yang <leiyang@redhat.com> Reviewed-by: Eugenio Pérez <eperezma@redhat.com>
1 parent 642d82e commit 7d096cb

2 files changed

Lines changed: 19 additions & 18 deletions

File tree

drivers/virtio/virtio_ring.c

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3149,12 +3149,12 @@ EXPORT_SYMBOL_GPL(virtqueue_get_vring);
31493149
*
31503150
* return DMA address. Caller should check that by virtqueue_dma_mapping_error().
31513151
*/
3152-
dma_addr_t virtqueue_dma_map_single_attrs(struct virtqueue *_vq, void *ptr,
3152+
dma_addr_t virtqueue_dma_map_single_attrs(const struct virtqueue *_vq, void *ptr,
31533153
size_t size,
31543154
enum dma_data_direction dir,
31553155
unsigned long attrs)
31563156
{
3157-
struct vring_virtqueue *vq = to_vvq(_vq);
3157+
const struct vring_virtqueue *vq = to_vvq(_vq);
31583158

31593159
if (!vq->use_dma_api) {
31603160
kmsan_handle_dma(virt_to_page(ptr), offset_in_page(ptr), size, dir);
@@ -3176,11 +3176,12 @@ EXPORT_SYMBOL_GPL(virtqueue_dma_map_single_attrs);
31763176
* Unmap the address that is mapped by the virtqueue_dma_map_* APIs.
31773177
*
31783178
*/
3179-
void virtqueue_dma_unmap_single_attrs(struct virtqueue *_vq, dma_addr_t addr,
3179+
void virtqueue_dma_unmap_single_attrs(const struct virtqueue *_vq,
3180+
dma_addr_t addr,
31803181
size_t size, enum dma_data_direction dir,
31813182
unsigned long attrs)
31823183
{
3183-
struct vring_virtqueue *vq = to_vvq(_vq);
3184+
const struct vring_virtqueue *vq = to_vvq(_vq);
31843185

31853186
if (!vq->use_dma_api)
31863187
return;
@@ -3196,9 +3197,9 @@ EXPORT_SYMBOL_GPL(virtqueue_dma_unmap_single_attrs);
31963197
*
31973198
* Returns 0 means dma valid. Other means invalid dma address.
31983199
*/
3199-
int virtqueue_dma_mapping_error(struct virtqueue *_vq, dma_addr_t addr)
3200+
int virtqueue_dma_mapping_error(const struct virtqueue *_vq, dma_addr_t addr)
32003201
{
3201-
struct vring_virtqueue *vq = to_vvq(_vq);
3202+
const struct vring_virtqueue *vq = to_vvq(_vq);
32023203

32033204
if (!vq->use_dma_api)
32043205
return 0;
@@ -3217,9 +3218,9 @@ EXPORT_SYMBOL_GPL(virtqueue_dma_mapping_error);
32173218
*
32183219
* return bool
32193220
*/
3220-
bool virtqueue_dma_need_sync(struct virtqueue *_vq, dma_addr_t addr)
3221+
bool virtqueue_dma_need_sync(const struct virtqueue *_vq, dma_addr_t addr)
32213222
{
3222-
struct vring_virtqueue *vq = to_vvq(_vq);
3223+
const struct vring_virtqueue *vq = to_vvq(_vq);
32233224

32243225
if (!vq->use_dma_api)
32253226
return false;
@@ -3240,12 +3241,12 @@ EXPORT_SYMBOL_GPL(virtqueue_dma_need_sync);
32403241
* the DMA address really needs to be synchronized
32413242
*
32423243
*/
3243-
void virtqueue_dma_sync_single_range_for_cpu(struct virtqueue *_vq,
3244+
void virtqueue_dma_sync_single_range_for_cpu(const struct virtqueue *_vq,
32443245
dma_addr_t addr,
32453246
unsigned long offset, size_t size,
32463247
enum dma_data_direction dir)
32473248
{
3248-
struct vring_virtqueue *vq = to_vvq(_vq);
3249+
const struct vring_virtqueue *vq = to_vvq(_vq);
32493250
struct device *dev = vring_dma_dev(vq);
32503251

32513252
if (!vq->use_dma_api)
@@ -3266,12 +3267,12 @@ EXPORT_SYMBOL_GPL(virtqueue_dma_sync_single_range_for_cpu);
32663267
* Before calling this function, use virtqueue_dma_need_sync() to confirm that
32673268
* the DMA address really needs to be synchronized
32683269
*/
3269-
void virtqueue_dma_sync_single_range_for_device(struct virtqueue *_vq,
3270+
void virtqueue_dma_sync_single_range_for_device(const struct virtqueue *_vq,
32703271
dma_addr_t addr,
32713272
unsigned long offset, size_t size,
32723273
enum dma_data_direction dir)
32733274
{
3274-
struct vring_virtqueue *vq = to_vvq(_vq);
3275+
const struct vring_virtqueue *vq = to_vvq(_vq);
32753276
struct device *dev = vring_dma_dev(vq);
32763277

32773278
if (!vq->use_dma_api)

include/linux/virtio.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -262,18 +262,18 @@ void unregister_virtio_driver(struct virtio_driver *drv);
262262
module_driver(__virtio_driver, register_virtio_driver, \
263263
unregister_virtio_driver)
264264

265-
dma_addr_t virtqueue_dma_map_single_attrs(struct virtqueue *_vq, void *ptr, size_t size,
265+
dma_addr_t virtqueue_dma_map_single_attrs(const struct virtqueue *_vq, void *ptr, size_t size,
266266
enum dma_data_direction dir, unsigned long attrs);
267-
void virtqueue_dma_unmap_single_attrs(struct virtqueue *_vq, dma_addr_t addr,
267+
void virtqueue_dma_unmap_single_attrs(const struct virtqueue *_vq, dma_addr_t addr,
268268
size_t size, enum dma_data_direction dir,
269269
unsigned long attrs);
270-
int virtqueue_dma_mapping_error(struct virtqueue *_vq, dma_addr_t addr);
270+
int virtqueue_dma_mapping_error(const struct virtqueue *_vq, dma_addr_t addr);
271271

272-
bool virtqueue_dma_need_sync(struct virtqueue *_vq, dma_addr_t addr);
273-
void virtqueue_dma_sync_single_range_for_cpu(struct virtqueue *_vq, dma_addr_t addr,
272+
bool virtqueue_dma_need_sync(const struct virtqueue *_vq, dma_addr_t addr);
273+
void virtqueue_dma_sync_single_range_for_cpu(const struct virtqueue *_vq, dma_addr_t addr,
274274
unsigned long offset, size_t size,
275275
enum dma_data_direction dir);
276-
void virtqueue_dma_sync_single_range_for_device(struct virtqueue *_vq, dma_addr_t addr,
276+
void virtqueue_dma_sync_single_range_for_device(const struct virtqueue *_vq, dma_addr_t addr,
277277
unsigned long offset, size_t size,
278278
enum dma_data_direction dir);
279279

0 commit comments

Comments
 (0)