From: Alex Elder <elder@xxxxxxxxxx> Date: Fri, 20 Mar 2020 11:02:20 -0500 > Don't assume the receive buffer size is a power-of-2 number of pages. > Instead, define the receive buffer size independently, and then > compute the page order from that size when needed. > > This fixes a build problem that arises when the ARM64_PAGE_SHIFT > config option is set to have a page size greater than 4KB. The > problem was identified by Linux Kernel Functional Testing. > > The IPA code basically assumed the page size to be 4KB. A larger page > size caused the receive buffer size to become correspondingly larger > (32KB or 128KB for ARM64_16K_PAGES and ARM64_64K_PAGES, respectively). > The receive buffer size is used to compute an "aggregation byte limit" > value that gets programmed into the hardware, and the large page sizes > caused that limit value to be too big to fit in a 5 bit field. This > triggered a BUILD_BUG_ON() call in ipa_endpoint_validate_build(). > > This fix causes a lot of receive buffer memory to be wasted if > system is configured for page size greater than 4KB. But such a > misguided configuration will now build successfully. > > Reported-by: Naresh Kamboju <naresh.kamboju@xxxxxxxxxx> > Signed-off-by: Alex Elder <elder@xxxxxxxxxx> > --- > > Dave, I *hope* this is it for IPA for this release. -Alex Applied to net-next, thanks.