diff --git a/src/gallium/winsys/svga/drm/vmw_msg.c b/src/gallium/winsys/svga/drm/vmw_msg.c index e664769c279..cc00b8ebc33 100644 --- a/src/gallium/winsys/svga/drm/vmw_msg.c +++ b/src/gallium/winsys/svga/drm/vmw_msg.c @@ -61,7 +61,7 @@ #define HIGH_WORD(X) ((X & 0xFFFF0000) >> 16) -#if defined(PIPE_CC_GCC) && (PIPE_CC_GCC_VERSION > 502) +#if defined(PIPE_CC_GCC) && (PIPE_CC_GCC_VERSION > 502) && (defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)) /** * Hypervisor-specific bi-directional communication channel. Should never @@ -426,15 +426,10 @@ vmw_send_msg(struct rpc_channel *channel, const char *msg) void vmw_svga_winsys_host_log(struct svga_winsys_screen *sws, const char *log) { - struct rpc_channel channel; struct vmw_winsys_screen *vws = vmw_winsys_screen(sws); char *msg; int msg_len; - int ret; - -#ifdef MSG_NOT_IMPLEMENTED - return; -#endif + int ret = 0; if (!log) return; @@ -459,10 +454,15 @@ vmw_svga_winsys_host_log(struct svga_winsys_screen *sws, const char *log) &msg_arg, sizeof(msg_arg)); } else { +#ifdef MSG_NOT_IMPLEMENTED + debug_printf("Old vmwgfx doesn't support message passing.\n"); +#else + struct rpc_channel channel; if (!(ret = vmw_open_channel(&channel, RPCI_PROTOCOL_NUM))) { ret = vmw_send_msg(&channel, msg); vmw_close_channel(&channel); } +#endif } if (ret)