VCHIQ_HEADER_T *header, void *bulk_userdata)
 {
        VCHIQ_STATUS_T status;
-       vchiq_log_trace(vchiq_core_log_level, "%d: callback:%d (%s, %x, %x)",
+       vchiq_log_trace(vchiq_core_log_level, "%d: callback:%d (%s, %pK, %pK)",
                service->state->id, service->localport, reason_names[reason],
-               (unsigned int)header, (unsigned int)bulk_userdata);
+               header, bulk_userdata);
        status = service->base.callback(reason, header, service->handle,
                bulk_userdata);
        if (status == VCHIQ_ERROR) {
                char *data = (char *)SLOT_DATA_FROM_INDEX(state, slot_index);
                int data_found = 0;
 
-               vchiq_log_trace(vchiq_core_log_level, "%d: pfq %d=%x %x %x",
-                       state->id, slot_index, (unsigned int)data,
+               vchiq_log_trace(vchiq_core_log_level, "%d: pfq %d=%pK %x %x",
+                       state->id, slot_index, data,
                        local->slot_queue_recycle, slot_queue_available);
 
                /* Initialise the bitmask for services which have used this
                                        up(&service_quota->quota_event);
                                else if (count == 0) {
                                        vchiq_log_error(vchiq_core_log_level,
-                                               "service %d "
-                                               "message_use_count=%d "
-                                               "(header %x, msgid %x, "
-                                               "header->msgid %x, "
-                                               "header->size %x)",
+                                               "service %d message_use_count=%d (header %pK, msgid %x, header->msgid %x, header->size %x)",
                                                port,
-                                               service_quota->
-                                                       message_use_count,
-                                               (unsigned int)header, msgid,
-                                               header->msgid,
+                                               service_quota->message_use_count,
+                                               header, msgid, header->msgid,
                                                header->size);
                                        WARN(1, "invalid message use count\n");
                                }
                                                up(&service_quota->quota_event);
                                                vchiq_log_trace(
                                                        vchiq_core_log_level,
-                                                       "%d: pfq:%d %x@%x - "
-                                                       "slot_use->%d",
+                                                       "%d: pfq:%d %x@%pK - slot_use->%d",
                                                        state->id, port,
-                                                       header->size,
-                                                       (unsigned int)header,
+                                                       header->size, header,
                                                        count - 1);
                                        } else {
                                                vchiq_log_error(
                                                        vchiq_core_log_level,
-                                                               "service %d "
-                                                               "slot_use_count"
-                                                               "=%d (header %x"
-                                                               ", msgid %x, "
-                                                               "header->msgid"
-                                                               " %x, header->"
-                                                               "size %x)",
-                                                       port, count,
-                                                       (unsigned int)header,
-                                                       msgid,
-                                                       header->msgid,
+                                                               "service %d slot_use_count=%d (header %pK, msgid %x, header->msgid %x, header->size %x)",
+                                                       port, count, header,
+                                                       msgid, header->msgid,
                                                        header->size);
                                                WARN(1, "bad slot use count\n");
                                        }
                        pos += calc_stride(header->size);
                        if (pos > VCHIQ_SLOT_SIZE) {
                                vchiq_log_error(vchiq_core_log_level,
-                                       "pfq - pos %x: header %x, msgid %x, "
-                                       "header->msgid %x, header->size %x",
-                                       pos, (unsigned int)header, msgid,
-                                       header->msgid, header->size);
+                                       "pfq - pos %x: header %pK, msgid %x, header->msgid %x, header->size %x",
+                                       pos, header, msgid, header->msgid,
+                                       header->size);
                                WARN(1, "invalid slot position\n");
                        }
                }
                int slot_use_count;
 
                vchiq_log_info(vchiq_core_log_level,
-                       "%d: qm %s@%x,%x (%d->%d)",
-                       state->id,
-                       msg_type_str(VCHIQ_MSG_TYPE(msgid)),
-                       (unsigned int)header, size,
-                       VCHIQ_MSG_SRCPORT(msgid),
+                       "%d: qm %s@%pK,%x (%d->%d)",
+                       state->id, msg_type_str(VCHIQ_MSG_TYPE(msgid)),
+                       header, size, VCHIQ_MSG_SRCPORT(msgid),
                        VCHIQ_MSG_DSTPORT(msgid));
 
                BUG_ON(!service);
                VCHIQ_SERVICE_STATS_ADD(service, ctrl_tx_bytes, size);
        } else {
                vchiq_log_info(vchiq_core_log_level,
-                       "%d: qm %s@%x,%x (%d->%d)", state->id,
+                       "%d: qm %s@%pK,%x (%d->%d)", state->id,
                        msg_type_str(VCHIQ_MSG_TYPE(msgid)),
-                       (unsigned int)header, size,
-                       VCHIQ_MSG_SRCPORT(msgid),
+                       header, size, VCHIQ_MSG_SRCPORT(msgid),
                        VCHIQ_MSG_DSTPORT(msgid));
                if (size != 0) {
                        WARN_ON(!((count == 1) && (size == elements[0].size)));
                int i, pos;
 
                vchiq_log_info(vchiq_sync_log_level,
-                       "%d: qms %s@%x,%x (%d->%d)", state->id,
+                       "%d: qms %s@%pK,%x (%d->%d)", state->id,
                        msg_type_str(VCHIQ_MSG_TYPE(msgid)),
-                       (unsigned int)header, size,
-                       VCHIQ_MSG_SRCPORT(msgid),
+                       header, size, VCHIQ_MSG_SRCPORT(msgid),
                        VCHIQ_MSG_DSTPORT(msgid));
 
                for (i = 0, pos = 0; i < (unsigned int)count;
                VCHIQ_SERVICE_STATS_ADD(service, ctrl_tx_bytes, size);
        } else {
                vchiq_log_info(vchiq_sync_log_level,
-                       "%d: qms %s@%x,%x (%d->%d)", state->id,
+                       "%d: qms %s@%pK,%x (%d->%d)", state->id,
                        msg_type_str(VCHIQ_MSG_TYPE(msgid)),
-                       (unsigned int)header, size,
-                       VCHIQ_MSG_SRCPORT(msgid),
+                       header, size, VCHIQ_MSG_SRCPORT(msgid),
                        VCHIQ_MSG_DSTPORT(msgid));
                if (size != 0) {
                        WARN_ON(!((count == 1) && (size == elements[0].size)));
                                "Send Bulk to" : "Recv Bulk from";
                        if (bulk->actual != VCHIQ_BULK_ACTUAL_ABORTED)
                                vchiq_log_info(SRVTRACE_LEVEL(service),
-                                       "%s %c%c%c%c d:%d len:%d %x<->%x",
+                                       "%s %c%c%c%c d:%d len:%d %pK<->%pK",
                                        header,
                                        VCHIQ_FOURCC_AS_4CHARS(
                                                service->base.fourcc),
-                                       service->remoteport,
-                                       bulk->size,
-                                       (unsigned int)bulk->data,
-                                       (unsigned int)bulk->remote_data);
+                                       service->remoteport, bulk->size,
+                                       bulk->data, bulk->remote_data);
                        else
                                vchiq_log_info(SRVTRACE_LEVEL(service),
                                        "%s %c%c%c%c d:%d ABORTED - tx len:%d,"
-                                       " rx len:%d %x<->%x",
+                                       " rx len:%d %pK<->%pK",
                                        header,
                                        VCHIQ_FOURCC_AS_4CHARS(
                                                service->base.fourcc),
                                        service->remoteport,
-                                       bulk->size,
-                                       bulk->remote_size,
-                                       (unsigned int)bulk->data,
-                                       (unsigned int)bulk->remote_data);
+                                       bulk->size, bulk->remote_size,
+                                       bulk->data, bulk->remote_data);
                }
 
                vchiq_complete_bulk(bulk);
 
                fourcc = payload->fourcc;
                vchiq_log_info(vchiq_core_log_level,
-                       "%d: prs OPEN@%x (%d->'%c%c%c%c')",
-                       state->id, (unsigned int)header,
-                       localport,
+                       "%d: prs OPEN@%pK (%d->'%c%c%c%c')",
+                       state->id, header, localport,
                        VCHIQ_FOURCC_AS_4CHARS(fourcc));
 
                service = get_listening_service(state, fourcc);
                                        remoteport);
                                if (service)
                                        vchiq_log_warning(vchiq_core_log_level,
-                                               "%d: prs %s@%x (%d->%d) - "
-                                               "found connected service %d",
+                                               "%d: prs %s@%pK (%d->%d) - found connected service %d",
                                                state->id, msg_type_str(type),
-                                               (unsigned int)header,
-                                               remoteport, localport,
+                                               header, remoteport, localport,
                                                service->localport);
                        }
 
                        if (!service) {
                                vchiq_log_error(vchiq_core_log_level,
-                                       "%d: prs %s@%x (%d->%d) - "
-                                       "invalid/closed service %d",
+                                       "%d: prs %s@%pK (%d->%d) - invalid/closed service %d",
                                        state->id, msg_type_str(type),
-                                       (unsigned int)header,
-                                       remoteport, localport, localport);
+                                       header, remoteport, localport,
+                                       localport);
                                goto skip_message;
                        }
                        break;
                if (((unsigned int)header & VCHIQ_SLOT_MASK) + calc_stride(size)
                        > VCHIQ_SLOT_SIZE) {
                        vchiq_log_error(vchiq_core_log_level,
-                               "header %x (msgid %x) - size %x too big for "
-                               "slot",
-                               (unsigned int)header, (unsigned int)msgid,
+                               "header %pK (msgid %x) - size %x too big for slot",
+                               header, (unsigned int)msgid,
                                (unsigned int)size);
                        WARN(1, "oversized for slot\n");
                }
                                service->peer_version = payload->version;
                        }
                        vchiq_log_info(vchiq_core_log_level,
-                               "%d: prs OPENACK@%x,%x (%d->%d) v:%d",
-                               state->id, (unsigned int)header, size,
-                               remoteport, localport, service->peer_version);
+                               "%d: prs OPENACK@%pK,%x (%d->%d) v:%d",
+                               state->id, header, size, remoteport, localport,
+                               service->peer_version);
                        if (service->srvstate ==
                                VCHIQ_SRVSTATE_OPENING) {
                                service->remoteport = remoteport;
                        WARN_ON(size != 0); /* There should be no data */
 
                        vchiq_log_info(vchiq_core_log_level,
-                               "%d: prs CLOSE@%x (%d->%d)",
-                               state->id, (unsigned int)header,
-                               remoteport, localport);
+                               "%d: prs CLOSE@%pK (%d->%d)",
+                               state->id, header, remoteport, localport);
 
                        mark_service_closing_internal(service, 1);
 
                        break;
                case VCHIQ_MSG_DATA:
                        vchiq_log_info(vchiq_core_log_level,
-                               "%d: prs DATA@%x,%x (%d->%d)",
-                               state->id, (unsigned int)header, size,
-                               remoteport, localport);
+                               "%d: prs DATA@%pK,%x (%d->%d)",
+                               state->id, header, size, remoteport, localport);
 
                        if ((service->remoteport == remoteport)
                                && (service->srvstate ==
                        break;
                case VCHIQ_MSG_CONNECT:
                        vchiq_log_info(vchiq_core_log_level,
-                               "%d: prs CONNECT@%x",
-                               state->id, (unsigned int)header);
+                               "%d: prs CONNECT@%pK", state->id, header);
                        state->version_common = ((VCHIQ_SLOT_ZERO_T *)
                                                 state->slot_data)->version;
                        up(&state->connect);
                                wmb();
 
                                vchiq_log_info(vchiq_core_log_level,
-                                       "%d: prs %s@%x (%d->%d) %x@%x",
+                                       "%d: prs %s@%pK (%d->%d) %x@%pK",
                                        state->id, msg_type_str(type),
-                                       (unsigned int)header,
-                                       remoteport, localport,
-                                       bulk->remote_size,
-                                       (unsigned int)bulk->remote_data);
+                                       header, remoteport, localport,
+                                       bulk->remote_size, bulk->remote_data);
 
                                queue->remote_insert++;
 
                                if ((int)(queue->remote_insert -
                                        queue->local_insert) >= 0) {
                                        vchiq_log_error(vchiq_core_log_level,
-                                               "%d: prs %s@%x (%d->%d) "
+                                               "%d: prs %s@%pK (%d->%d) "
                                                "unexpected (ri=%d,li=%d)",
                                                state->id, msg_type_str(type),
-                                               (unsigned int)header,
-                                               remoteport, localport,
+                                               header, remoteport, localport,
                                                queue->remote_insert,
                                                queue->local_insert);
                                        mutex_unlock(&service->bulk_mutex);
                                queue->remote_insert++;
 
                                vchiq_log_info(vchiq_core_log_level,
-                                       "%d: prs %s@%x (%d->%d) %x@%x",
+                                       "%d: prs %s@%pK (%d->%d) %x@%pK",
                                        state->id, msg_type_str(type),
-                                       (unsigned int)header,
-                                       remoteport, localport,
-                                       bulk->actual, (unsigned int)bulk->data);
+                                       header, remoteport, localport,
+                                       bulk->actual, bulk->data);
 
                                vchiq_log_trace(vchiq_core_log_level,
                                        "%d: prs:%d %cx li=%x ri=%x p=%x",
                        break;
                case VCHIQ_MSG_PADDING:
                        vchiq_log_trace(vchiq_core_log_level,
-                               "%d: prs PADDING@%x,%x",
-                               state->id, (unsigned int)header, size);
+                               "%d: prs PADDING@%pK,%x",
+                               state->id, header, size);
                        break;
                case VCHIQ_MSG_PAUSE:
                        /* If initiated, signal the application thread */
                        vchiq_log_trace(vchiq_core_log_level,
-                               "%d: prs PAUSE@%x,%x",
-                               state->id, (unsigned int)header, size);
+                               "%d: prs PAUSE@%pK,%x",
+                               state->id, header, size);
                        if (state->conn_state == VCHIQ_CONNSTATE_PAUSED) {
                                vchiq_log_error(vchiq_core_log_level,
                                        "%d: PAUSE received in state PAUSED",
                        break;
                case VCHIQ_MSG_RESUME:
                        vchiq_log_trace(vchiq_core_log_level,
-                               "%d: prs RESUME@%x,%x",
-                               state->id, (unsigned int)header, size);
+                               "%d: prs RESUME@%pK,%x",
+                               state->id, header, size);
                        /* Release the slot mutex */
                        mutex_unlock(&state->slot_mutex);
                        if (state->is_master)
 
                default:
                        vchiq_log_error(vchiq_core_log_level,
-                               "%d: prs invalid msgid %x@%x,%x",
-                               state->id, msgid, (unsigned int)header, size);
+                               "%d: prs invalid msgid %x@%pK,%x",
+                               state->id, msgid, header, size);
                        WARN(1, "invalid message\n");
                        break;
                }
 
                if (!service) {
                        vchiq_log_error(vchiq_sync_log_level,
-                               "%d: sf %s@%x (%d->%d) - "
-                               "invalid/closed service %d",
+                               "%d: sf %s@%pK (%d->%d) - invalid/closed service %d",
                                state->id, msg_type_str(type),
-                               (unsigned int)header,
-                               remoteport, localport, localport);
+                               header, remoteport, localport, localport);
                        release_message_sync(state, header);
                        continue;
                }
                                service->peer_version = payload->version;
                        }
                        vchiq_log_info(vchiq_sync_log_level,
-                               "%d: sf OPENACK@%x,%x (%d->%d) v:%d",
-                               state->id, (unsigned int)header, size,
-                               remoteport, localport, service->peer_version);
+                               "%d: sf OPENACK@%pK,%x (%d->%d) v:%d",
+                               state->id, header, size, remoteport, localport,
+                               service->peer_version);
                        if (service->srvstate == VCHIQ_SRVSTATE_OPENING) {
                                service->remoteport = remoteport;
                                vchiq_set_service_state(service,
 
                case VCHIQ_MSG_DATA:
                        vchiq_log_trace(vchiq_sync_log_level,
-                               "%d: sf DATA@%x,%x (%d->%d)",
-                               state->id, (unsigned int)header, size,
-                               remoteport, localport);
+                               "%d: sf DATA@%pK,%x (%d->%d)",
+                               state->id, header, size, remoteport, localport);
 
                        if ((service->remoteport == remoteport) &&
                                (service->srvstate ==
 
                default:
                        vchiq_log_error(vchiq_sync_log_level,
-                               "%d: sf unexpected msgid %x@%x,%x",
-                               state->id, msgid, (unsigned int)header, size);
+                               "%d: sf unexpected msgid %x@%pK,%x",
+                               state->id, msgid, header, size);
                        release_message_sync(state, header);
                        break;
                }
        int i;
 
        vchiq_log_warning(vchiq_core_log_level,
-               "%s: slot_zero = 0x%08lx, is_master = %d",
-               __func__, (unsigned long)slot_zero, is_master);
+               "%s: slot_zero = %pK, is_master = %d",
+               __func__, slot_zero, is_master);
 
        /* Check the input configuration */
 
        if (slot_zero->magic != VCHIQ_MAGIC) {
                vchiq_loud_error_header();
                vchiq_loud_error("Invalid VCHIQ magic value found.");
-               vchiq_loud_error("slot_zero=%x: magic=%x (expected %x)",
-                       (unsigned int)slot_zero, slot_zero->magic, VCHIQ_MAGIC);
+               vchiq_loud_error("slot_zero=%pK: magic=%x (expected %x)",
+                       slot_zero, slot_zero->magic, VCHIQ_MAGIC);
                vchiq_loud_error_footer();
                return VCHIQ_ERROR;
        }
        if (slot_zero->version < VCHIQ_VERSION_MIN) {
                vchiq_loud_error_header();
                vchiq_loud_error("Incompatible VCHIQ versions found.");
-               vchiq_loud_error("slot_zero=%x: VideoCore version=%d "
-                       "(minimum %d)",
-                       (unsigned int)slot_zero, slot_zero->version,
-                       VCHIQ_VERSION_MIN);
+               vchiq_loud_error("slot_zero=%pK: VideoCore version=%d (minimum %d)",
+                       slot_zero, slot_zero->version, VCHIQ_VERSION_MIN);
                vchiq_loud_error("Restart with a newer VideoCore image.");
                vchiq_loud_error_footer();
                return VCHIQ_ERROR;
        if (VCHIQ_VERSION < slot_zero->version_min) {
                vchiq_loud_error_header();
                vchiq_loud_error("Incompatible VCHIQ versions found.");
-               vchiq_loud_error("slot_zero=%x: version=%d (VideoCore "
-                       "minimum %d)",
-                       (unsigned int)slot_zero, VCHIQ_VERSION,
-                       slot_zero->version_min);
+               vchiq_loud_error("slot_zero=%pK: version=%d (VideoCore minimum %d)",
+                       slot_zero, VCHIQ_VERSION, slot_zero->version_min);
                vchiq_loud_error("Restart with a newer kernel.");
                vchiq_loud_error_footer();
                return VCHIQ_ERROR;
                 (slot_zero->max_slots_per_side != VCHIQ_MAX_SLOTS_PER_SIDE)) {
                vchiq_loud_error_header();
                if (slot_zero->slot_zero_size != sizeof(VCHIQ_SLOT_ZERO_T))
-                       vchiq_loud_error("slot_zero=%x: slot_zero_size=%x "
-                               "(expected %x)",
-                               (unsigned int)slot_zero,
-                               slot_zero->slot_zero_size,
-                               sizeof(VCHIQ_SLOT_ZERO_T));
+                       vchiq_loud_error("slot_zero=%pK: slot_zero_size=%d (expected %d)",
+                               slot_zero, slot_zero->slot_zero_size,
+                               (int)sizeof(VCHIQ_SLOT_ZERO_T));
                if (slot_zero->slot_size != VCHIQ_SLOT_SIZE)
-                       vchiq_loud_error("slot_zero=%x: slot_size=%d "
-                               "(expected %d",
-                               (unsigned int)slot_zero, slot_zero->slot_size,
+                       vchiq_loud_error("slot_zero=%pK: slot_size=%d (expected %d)",
+                               slot_zero, slot_zero->slot_size,
                                VCHIQ_SLOT_SIZE);
                if (slot_zero->max_slots != VCHIQ_MAX_SLOTS)
-                       vchiq_loud_error("slot_zero=%x: max_slots=%d "
-                               "(expected %d)",
-                               (unsigned int)slot_zero, slot_zero->max_slots,
+                       vchiq_loud_error("slot_zero=%pK: max_slots=%d (expected %d)",
+                               slot_zero, slot_zero->max_slots,
                                VCHIQ_MAX_SLOTS);
                if (slot_zero->max_slots_per_side != VCHIQ_MAX_SLOTS_PER_SIDE)
-                       vchiq_loud_error("slot_zero=%x: max_slots_per_side=%d "
-                               "(expected %d)",
-                               (unsigned int)slot_zero,
-                               slot_zero->max_slots_per_side,
+                       vchiq_loud_error("slot_zero=%pK: max_slots_per_side=%d (expected %d)",
+                               slot_zero, slot_zero->max_slots_per_side,
                                VCHIQ_MAX_SLOTS_PER_SIDE);
                vchiq_loud_error_footer();
                return VCHIQ_ERROR;
                                if ((port == service->localport) &&
                                        (msgid & VCHIQ_MSGID_CLAIMED)) {
                                        vchiq_log_info(vchiq_core_log_level,
-                                               "  fsi - hdr %x",
-                                               (unsigned int)header);
+                                               "  fsi - hdr %pK", header);
                                        release_slot(state, slot_info, header,
                                                NULL);
                                }
                                pos += calc_stride(header->size);
                                if (pos > VCHIQ_SLOT_SIZE) {
                                        vchiq_log_error(vchiq_core_log_level,
-                                               "fsi - pos %x: header %x, "
-                                               "msgid %x, header->msgid %x, "
-                                               "header->size %x",
-                                               pos, (unsigned int)header,
-                                               msgid, header->msgid,
-                                               header->size);
+                                               "fsi - pos %x: header %pK, msgid %x, header->msgid %x, header->size %x",
+                                               pos, header, msgid,
+                                               header->msgid, header->size);
                                        WARN(1, "invalid slot position\n");
                                }
                        }
        wmb();
 
        vchiq_log_info(vchiq_core_log_level,
-               "%d: bt (%d->%d) %cx %x@%x %x",
-               state->id,
-               service->localport, service->remoteport, dir_char,
-               size, (unsigned int)bulk->data, (unsigned int)userdata);
+               "%d: bt (%d->%d) %cx %x@%pK %pK",
+               state->id, service->localport, service->remoteport, dir_char,
+               size, bulk->data, userdata);
 
        /* The slot mutex must be held when the service is being closed, so
           claim it here to ensure that isn't happening */
        vchiq_dump(dump_context, buf, len + 1);
 
        len = snprintf(buf, sizeof(buf),
-               "  tx_pos=%x(@%x), rx_pos=%x(@%x)",
+               "  tx_pos=%x(@%pK), rx_pos=%x(@%pK)",
                state->local->tx_pos,
-               (uint32_t)state->tx_data +
-                       (state->local_tx_pos & VCHIQ_SLOT_MASK),
+               state->tx_data + (state->local_tx_pos & VCHIQ_SLOT_MASK),
                state->rx_pos,
-               (uint32_t)state->rx_data +
-                       (state->rx_pos & VCHIQ_SLOT_MASK));
+               state->rx_data + (state->rx_pos & VCHIQ_SLOT_MASK));
        vchiq_dump(dump_context, buf, len + 1);
 
        len = snprintf(buf, sizeof(buf),