Greg Kroah-Hartman
gregk****@linux*****
2017年 1月 11日 (水) 15:46:24 JST
On Tue, Jan 10, 2017 at 04:56:41PM -0800, Bart Van Assche wrote: > Several RDMA drivers, e.g. drivers/infiniband/hw/qib, use the CPU to > transfer data between memory and PCIe adapter. Because of performance > reasons it is important that the CPU cache is not flushed when such > drivers transfer data. Make this possible by allowing these drivers to > override the dma_map_ops pointer. Additionally, introduce the function > set_dma_ops() that will be used by a later patch in this series. > > Signed-off-by: Bart Van Assche <bart.****@sandi*****> > Cc: Greg Kroah-Hartman <gregk****@linux*****> > Cc: Aurelien Jacquiot <a-jac****@ti*****> > Cc: Catalin Marinas <catal****@arm*****> > Cc: Chris Zankel <chris****@zanke*****> > Cc: David Howells <dhowe****@redha*****> > Cc: David S. Miller <davem****@davem*****> > Cc: Fenghua Yu <fengh****@intel*****> > Cc: Geert Uytterhoeven <geert****@linux*****> > Cc: Geoff Levand <geoff****@infra*****> > Cc: H. Peter Anvin <hpa****@zytor*****> > Cc: Haavard Skinnemoen <hskin****@gmail*****> > Cc: Hans-Christian Egtvedt <egtve****@samfu*****> > Cc: Helge Deller <delle****@gmx*****> > Cc: Ingo Molnar <mingo****@redha*****> > Cc: James E.J. Bottomley <jejb****@paris*****> > Cc: Jesper Nilsson <jespe****@axis*****> > Cc: Joerg Roedel <joro****@8byte*****> > Cc: Jon Mason <jdmas****@kudzu*****> > Cc: Jonas Bonn <jonas****@south*****> > Cc: Ley Foon Tan <lftan****@alter*****> > Cc: Mark Salter <msalt****@redha*****> > Cc: Max Filippov <jcmvb****@gmail*****> > Cc: Mikael Starvik <starv****@axis*****> > Cc: Muli Ben-Yehuda <mulix****@mulix*****> > Cc: Rich Felker <dalia****@libc*****> > Cc: Russell King <linux****@armli*****> > Cc: Stafford Horne <shorn****@gmail*****> > Cc: Stefan Kristiansson <stefa****@sauna*****> > Cc: Thomas Gleixner <tglx****@linut*****> > Cc: Tony Luck <tony.****@intel*****> > Cc: Will Deacon <will.****@arm*****> > Cc: x86****@kerne***** > Cc: Yoshinori Sato <ysato****@users*****> > Cc: adi-b****@lists***** > Cc: iommu****@lists***** > Cc: linux****@vger***** > Cc: linux****@redha***** > Cc: linux****@lists***** > Cc: linux****@linux***** > Cc: linux****@axis***** > Cc: linux****@vger***** > Cc: linux****@vger***** > Cc: linux****@lists***** > Cc: linux****@vger***** > Cc: linux****@linux***** > Cc: linux****@vger***** > Cc: linux****@vger***** > Cc: linux****@vger***** > Cc: linux****@vger***** > Cc: linux****@vger***** > Cc: linux****@lists***** > Cc: linux****@linux***** > Cc: linux****@lists***** > Cc: nios2****@lists***** > Cc: openr****@lists***** > Cc: sparc****@vger***** > Cc: uclin****@lists***** That's a crazy cc: list, you should break this up into smaller pieces, otherwise it's going to bounce... > diff --git a/include/linux/device.h b/include/linux/device.h > index 491b4c0ca633..c7cb225d36b0 100644 > --- a/include/linux/device.h > +++ b/include/linux/device.h > @@ -885,6 +885,8 @@ struct dev_links_info { > * a higher-level representation of the device. > */ > struct device { > + const struct dma_map_ops *dma_ops; /* See also get_dma_ops() */ > + > struct device *parent; > > struct device_private *p; Why not put this new pointer down with the other dma fields in this structure? Any specific reason it needs to be first? thanks, greg k-h