
在 2018/8/23 下午6:01, Andrea Bolognani 写道:
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)
Thanks for your help! I will look into this. Never meet this before.