                          List of maintainers

Generally patches should be submitted to the main development mailing list:

linux-rdma@vger.kernel.org

Descriptions of section entries:
        F: Files and directories with wildcard patterns.
           A trailing slash includes all files and subdirectory files.
           F:   providers/mlx4/ all files in and below providers/mlx4/
           F:   providers/*     all files in providers, but not below
           F:   */net/*         all files in "any top level directory"/net
           One pattern per line.  Multiple F: lines acceptable.
        H: Historical authors
        L: Mailing list that is relevant to this area
        M: Designated reviewer: FullName <address@domain>
           These reviewers should be CCed on patches.
        S: Status, one of the following:
           Supported:   Someone is actually paid to look after this.
           Maintained:  Someone actually looks after it.
           Odd Fixes:   It has a maintainer but they don't have time to do
                        much other than throw the odd patch in. See below..
           Orphan:      No current maintainer [but maybe you could take the
                        role as you write your new code].
           Obsolete:    Old code. Something tagged obsolete generally means
                        it has been replaced by a better system and you
                        should be using that.

                -----------------------------------

* OVERALL PACKAGE
M:	Leon Romanovsky <leon@kernel.org>
M:	Jason Gunthorpe <jgg@mellanox.com>
H:	Doug Ledford <dledford@redhat.com>
S:	Supported

BUILD SYSTEM
M:	Jason Gunthorpe <jgg@mellanox.com>
S:	Supported
F:	*/CMakeLists.txt
F:	*/lib*.map
F:	buildlib/

DEBIAN PACKAGING
M:	Benjamin Drung <bdrung@ubuntu.com>
S:	Supported
F:	debian/

BNXT_RE USERSPACE PROVIDER (for bnxt_re.ko)
M:	Selvin Xavier <selvin.xavier@broadcom.com>
S:	Supported
F:	providers/bnxt_re/

CXGB4 USERSPACE PROVIDER (for iw_cxgb4.ko)
M:	Steve Wise <swise@opengridcomputing.com>
S:	Supported
F:	providers/cxgb4/

EFA USERSPACE PROVIDER (for efa.ko)
M:	Michael Margolin <mrgolin@amazon.com>
S:	Supported
F:	providers/efa/

ERDMA USERSPACE PROVIDER (for erdma.ko)
M:	Cheng Xu <chengyou@linux.alibaba.com>
S:	Supported
F:	providers/erdma/

HF1 USERSPACE PROVIDER (for hf1.ko)
M:	Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
S:	Supported
F:	providers/hfi1verbs/

HNS USERSPACE PROVIDER (for hns-roce-hw-v2.ko)
M:	Junxian Huang <huangjunxian6@hisilicon.com>
M:	Chengchang Tang <tangchengchang@huawei.com>
S:	Supported
F:	providers/hns/

IONIC USERSPACE PROVIDER (for ionic_rdma.ko)
M:	Allen Hubbe <Allen.Hubbe@amd.com>
M:	Andrew Boyer <Andrew.Boyer@amd.com>
M:	Abhijit Gangurde <abhijit.gangurde@amd.com>
S:	Supported
F:	providers/ionic/

IRDMA USERSPACE PROVIDER (for i40iw.ko and irdma.ko)
M:	Sindhu Devale <sindhu.devale@intel.com>
M:	Tatyana Nikolova <tatyana.e.nikolova@intel.com>
S:	Supported
F:	providers/irdma/

RDMA Communication Manager Assistant (for librdmacm.so)
M:	Haakon Bugge <haakon.bugge@oracle.com>
M:	Mark Haywood <mark.haywood@oracle.com>
S:	Supported
F:	ibacm/*

IPATH/QIB USERSPACE PROVIDER (for ib_qib.ko)
M:	Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
S:	Supported
F:	providers/ipathverbs/

IWARP PORT MAPPER DAEMON (for iwarp kernel providers)
M:	Tatyana Nikolova <Tatyana.E.Nikolova@intel.com>
M:	Steve Wise <swise@opengridcomputing.com>
H:	Robert Sharp <robert.o.sharp@intel.com>
S:	Supported
F:	iwpmd/

LIBIBUMAD USERSPACE LIBRARY FOR SMP AND GMP MAD PROCESSING (/dev/infiniband/umadX)
M:	Daniel Klein <danielk@mellanox.com>
H:	Hal Rosenstock <hal@dev.mellanox.co.il>
H:	Sasha Khapyorsky <sashak@voltaire.com>
H:	Shahar Frank <shahar@voltaire.com>
S:	Supported
F:	libibumad/

LIBIBVERBS USERSPACE LIBRARY FOR RDMA VERBS (/dev/infiniband/uverbsX)
M:	Yishai Hadas <yishaih@dev.mellanox.co.il>
H:	Michael S. Tsirkin <mst@mellanox.co.il>
H:	Doug Ledford <dledford@redhat.com>
H:	Sean Hefty <sean.hefty@intel.com>
H:	Dotan Barak <dotanba@gmail.com>
H:	Roland Dreier <roland@topspin.com>
S:	Supported
F:	libibverbs/

LIBRDMACM USERSPACE LIBRARY FOR RDMA CONNECTION MANAGEMENT (/dev/infiniband/rdma_cm)
M:	Sean Hefty <sean.hefty@intel.com>
S:	Supported
F:	librdmacm/

MANA USERSPACE PROVIDER (for mana_ib.ko)
M:	Long Li <longli@microsoft.com>
S:	Supported
F:	providers/mana/

MLX4 USERSPACE PROVIDER (for mlx4_ib.ko)
M:	Yishai Hadas <yishaih@mellanox.com>
H:	Roland Dreier <rolandd@cisco.com>
S:	Supported
F:	providers/mlx4/

MLX5 USERSPACE PROVIDER (for mlx5_ib.ko)
M:	Yishai Hadas <yishaih@mellanox.com>
H:	Eli Cohen <eli@mellanox.com>
S:	Supported
F:	providers/mlx5/

MTHCA USERSPACE PROVIDER (for ib_mthca.ko)
M:	Vladimir Sokolovsky <vlad@mellanox.com>
H:	Michael S. Tsirkin <mst@mellanox.co.il>
H:	Roland Dreier <roland@topspin.com>
S:	Supported
F:	providers/mthca/

OCRDMA USERSPACE PROVIDER (for ocrdma.ko)
M:	Selvin Xavier <selvin.xavier@broadcom.com>
S:	Supported
F:	providers/ocrdma/

QEDR USERSPACE PROVIDER (for qedr.ko)
M:	Michal Kalderon <michal.kalderon@marvell.com>
M:	Ariel Elior <ariel.elior@marvell.com>
S:	Supported
F:	providers/qedr/

RXE SOFT ROCEE USERSPACE PROVIDER (for rdma_rxe.ko)
M:	Moni Shoua <monis@mellanox.com>
S:	Supported
F:	providers/rxe/

SIW SOFT IWARP USERSPACE PROVIDER (for siw.ko)
M:	Bernard Metzler <bmt@zurich.ibm.com>
S:	Supported
F:	providers/siw/

SRP DAEMON (for ib_srp.ko)
M:	Bart Van Assche <bvanassche@acm.org>
S:	Supported
F:	srp_daemon/

SUSE PACKAGING
M:	Nicolas Morey-Chaisemartin <nmorey@suse.com>
S:	Supported
F:	suse/

VMWARE PVRDMA USERSPACE PROVIDER (for vmw_pvrdma.ko)
M:	Adit Ranadive <aditr@vmware.com>
L:	pv-drivers@vmware.com
S:	Supported
F:	providers/vmw_pvrdma/

PYVERBS
M:	Edward Srouji <edwards@mellanox.com>
S:	Supported
F:	pyverbs/
