]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
RDMA/rxe: Add query_gid support
authorZhu Yanjun <yanjun.zhu@linux.dev>
Sun, 19 Jan 2025 17:28:30 +0000 (18:28 +0100)
committerLeon Romanovsky <leon@kernel.org>
Mon, 3 Feb 2025 11:38:43 +0000 (06:38 -0500)
The query_gid is not implemented in RXE. After the raw_gid is added,
this query_gid should be implemented in RXE.

Signed-off-by: Zhu Yanjun <yanjun.zhu@linux.dev>
Link: https://patch.msgid.link/20250119172831.3123110-3-yanjun.zhu@linux.dev
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/sw/rxe/rxe_verbs.c

index c46e94f7e86ee83ed905273c0116ec9d80c53ba4..08a5836c2600ecd63036bede8009cb75605f3eaf 100644 (file)
@@ -80,6 +80,18 @@ err_out:
        return err;
 }
 
+static int rxe_query_gid(struct ib_device *ibdev, u32 port, int idx,
+                        union ib_gid *gid)
+{
+       struct rxe_dev *rxe = to_rdev(ibdev);
+
+       /* subnet_prefix == interface_id == 0; */
+       memset(gid, 0, sizeof(*gid));
+       memcpy(gid->raw, rxe->raw_gid, ETH_ALEN);
+
+       return 0;
+}
+
 static int rxe_query_pkey(struct ib_device *ibdev,
                          u32 port_num, u16 index, u16 *pkey)
 {
@@ -1493,6 +1505,7 @@ static const struct ib_device_ops rxe_dev_ops = {
        .query_ah = rxe_query_ah,
        .query_device = rxe_query_device,
        .query_pkey = rxe_query_pkey,
+       .query_gid = rxe_query_gid,
        .query_port = rxe_query_port,
        .query_qp = rxe_query_qp,
        .query_srq = rxe_query_srq,