libefi: pdinfo_t pd_unit and pd_open should be unsigned

The device index, partition index and reference counter are all positive
numbers. However, since our internal partition number may be negative
to indicate GPT table, the compare expression need to take care when comparing
pdinfo_t and partition data.
This commit is contained in:
tsoome 2017-09-22 07:29:26 +00:00
parent e2a38ef632
commit aee8c6eefe
2 changed files with 3 additions and 3 deletions

View File

@ -56,8 +56,8 @@ typedef struct pdinfo
EFI_HANDLE pd_alias;
EFI_DEVICE_PATH *pd_devpath;
EFI_BLOCK_IO *pd_blkio;
int pd_unit; /* unit number */
int pd_open; /* reference counter */
uint32_t pd_unit; /* unit number */
uint32_t pd_open; /* reference counter */
void *pd_bcache; /* buffer cache data */
} pdinfo_t;

View File

@ -901,7 +901,7 @@ command_chain(int argc, char *argv[])
/*
* d_partition should be 255
*/
if (pd->pd_unit == d_dev->d_slice) {
if (pd->pd_unit == (uint32_t)d_dev->d_slice) {
loaded_image->DeviceHandle =
pd->pd_handle;
break;