
On Thu, 2018-08-23 at 17:15 +0800, Yi Min Zhao wrote:
在 2018/8/23 下午4:12, Andrea Bolognani 写道:
Exactly. You can either just add zpci_uid and zpci_fid to the virPCIDeviceAddress struct, or have
struct _virZPCIDeviceAddress { unsigned int uid; unsigned int fid; };
struct _virPCIDeviceAddress { unsigned int domain; unsigned int bus; unsigned int slot; unsigned int function; int multi; /* virTristateSwitch */ virZPCIDeviceAddress zpci; };
There's an error in syntax-check. I think it's from common code.
src/util/virpci.h:47: unsigned int uid; maint.mk: use pid_t for pid, uid_t for uid, gid_t for gid
I think it mistakes zpci's uid.
Easy enough to fix: just apply the patch below, change the struct definition to struct _virZPCIDeviceAddress { unsigned int uid; /* exempt from syntax-check */ unsigned int fid; }; and it will go away :) diff --git a/cfg.mk b/cfg.mk index 609ae869c2..1116feb299 100644 --- a/cfg.mk +++ b/cfg.mk @@ -472,6 +472,7 @@ sc_prohibit_canonicalize_file_name: # Insist on correct types for [pug]id. sc_correct_id_types: @prohibit='\<(int|long) *[pug]id\>' \ + exclude='exempt from syntax-check' \ halt='use pid_t for pid, uid_t for uid, gid_t for gid' \ $(_sc_search_regexp) -- Andrea Bolognani / Red Hat / Virtualization