On Tue, Nov 26, 2024 at 09:49:03AM +0530, Manivannan Sadhasivam wrote: > On Mon, Nov 25, 2024 at 02:22:23PM -0500, Frank Li wrote: > > On Sun, Nov 24, 2024 at 01:02:39PM +0530, Manivannan Sadhasivam wrote: > > > On Sat, Nov 16, 2024 at 09:40:43AM -0500, Frank Li wrote: > > > > +static inline int pci_epf_align_inbound_addr_lo_hi(struct pci_epf *epf, enum pci_barno bar, > > > > + u32 low, u32 high, u64 *base, size_t *off) > > > > > > Why can't you just use pci_epf_align_inbound_addr() directly? Or the caller > > > could pass u64 address directly. > > > > > > msi message sperate low32 and high32. (h << 32 | low) is quite easy to > > cause build warning. it should be ((u64) h << 32) | low. Avoid copy this > > logic code at many EPF places. > > > > There is absolutely no overhead in doing so. Also the concern for me is, > pci_epf_align_inbound_addr() is exported but only used within > pci_epf_align_inbound_addr_lo_hi(). This causes confusion. So I'd prefer to have > a single exported API that is used by the callers. Yes, other EPF drivers will need to copy the line: pci_epf_align_inbound_addr(..., ((u64) h << 32) | low, ...) instead of: pci_epf_align_inbound_addr_lo_hi(..., low, high, ...) which I think is fine to be honest. Probably simplest thing is just to kill pci_epf_align_inbound_addr_lo_hi(). Kind regards, Niklas