The bulk 'userdata' pointer is categorically abused through the vc04_services interface. This series attempts to fix it and clarify what it is and its usage. Patch 1/6 simply renames a member for dma_addr handle for better readability. Patch 2/6 dissociates 'userdata' being used as bulk_waiter pointer in bulking mode. Patch 3/6 renames vchiq_bulk 'userdata' to 'cb_data' - which is what it essentially is - data pointer to callback in VCHIQ_BULK_CALLBACK_MODE Patch 4/6 similar to 3/6 for completion_data struct. Patch 5/6 and 6/6 helps track the data pointer when initiated from user interface. Umang Jain (6): staging: vchiq_arm: Rename a struct vchiq_bulk member staging: vchiq_core: Bulk waiter should not piggy back on bulk userdata staging: vchiq_core: Rename struct vchiq_bulk 'userdata' staging: vchiq: Rename vchiq_completion_data 'bulk_userdata' staging: vchiq_core: Pass vchiq_bulk pointer to make_service_callback() staging: vchiq_arm: Track bulk user data pointer separately .../bcm2835-audio/bcm2835-vchiq.c | 3 +- .../include/linux/raspberrypi/vchiq.h | 7 +-- drivers/staging/vc04_services/interface/TODO | 4 -- .../interface/vchiq_arm/vchiq_arm.c | 39 ++++++++------- .../interface/vchiq_arm/vchiq_arm.h | 3 +- .../interface/vchiq_arm/vchiq_core.c | 48 ++++++++++++------- .../interface/vchiq_arm/vchiq_core.h | 6 ++- .../interface/vchiq_arm/vchiq_dev.c | 16 +++---- .../interface/vchiq_arm/vchiq_ioctl.h | 2 +- .../vc04_services/vchiq-mmal/mmal-vchiq.c | 7 +-- 10 files changed, 74 insertions(+), 61 deletions(-) -- 2.45.2