On 18.08.2022 16:58, Rahul Singh wrote: >> On 17 Aug 2022, at 4:18 pm, Jan Beulich <jbeul...@suse.com> wrote: >> On 17.08.2022 16:45, Rahul Singh wrote: >>> @@ -363,6 +373,42 @@ int __init pci_host_bridge_mappings(struct domain *d) >>> return 0; >>> } >>> >>> +static int is_bar_valid(const struct dt_device_node *dev, >>> + u64 addr, u64 len, void *data) >> >> s/u64/uint64_t/g please. > > Ack. >> >>> +{ >>> + struct pdev_bar *bar_data = data;
const? >>> + unsigned long s = mfn_x(bar_data->start); >>> + unsigned long e = mfn_x(bar_data->end); >>> + >>> + if ( (s < e) && (s >= PFN_UP(addr)) && (e <= PFN_UP(addr + len - 1)) ) >> >> Doesn't this need to be s >= PFN_DOWN(addr)? Or else why is e checked >> against PFN_UP()? > > Ack. I will modify as if ( (s < e) && (s >= PFN_DOWN(addr)) && (e <= > PFN_UP(addr + len - 1)) ) Hmm, doesn't it further need to be s <= e, seeing that the range passed to pci_check_bar() is an inclusive one? Jan