> -----Original Message----- > From: Michael Kelley (LINUX) <mikelley@xxxxxxxxxxxxx> > Sent: Monday, January 30, 2023 10:33 PM > To: KY Srinivasan <kys@xxxxxxxxxxxxx>; Haiyang Zhang > <haiyangz@xxxxxxxxxxxxx>; wei.liu@xxxxxxxxxx; Dexuan Cui > <decui@xxxxxxxxxxxxx>; davem@xxxxxxxxxxxxx; edumazet@xxxxxxxxxx; > kuba@xxxxxxxxxx; pabeni@xxxxxxxxxx; netdev@xxxxxxxxxxxxxxx; linux- > hyperv@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx > Cc: Michael Kelley (LINUX) <mikelley@xxxxxxxxxxxxx>; stable@xxxxxxxxxxxxxxx > Subject: [PATCH net 1/1] hv_netvsc: Fix missed pagebuf entries in > netvsc_dma_map/unmap() > > netvsc_dma_map() and netvsc_dma_unmap() currently check the cp_partial > flag and adjust the page_count so that pagebuf entries for the RNDIS > portion of the message are skipped when it has already been copied into > a send buffer. But this adjustment has already been made by code in > netvsc_send(). The duplicate adjustment causes some pagebuf entries to > not be mapped. In a normal VM, this doesn't break anything because the > mapping doesn’t change the PFN. But in a Confidential VM, > dma_map_single() does bounce buffering and provides a different PFN. > Failing to do the mapping causes the wrong PFN to be passed to Hyper-V, > and various errors ensue. > > Fix this by removing the duplicate adjustment in netvsc_dma_map() and > netvsc_dma_unmap(). > > Fixes: 846da38de0e8 ("net: netvsc: Add Isolation VM support for netvsc > driver") > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Michael Kelley <mikelley@xxxxxxxxxxxxx> Reviewed-by: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx> Thanks!