mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02:00
Two ksmbd server fixes
-----BEGIN PGP SIGNATURE----- iQGzBAABCgAdFiEE6fsu8pdIjtWE/DpLiiy9cAdyT1EFAmkNTw4ACgkQiiy9cAdy T1FILAv+ICa4OhWFeZEczTxbrM5RP6qfkMww5pm1OZLaw431h2KhZB2ak9C1iYBJ WqU7rE2panFRlN3I79z88gGGxMKjWVDApaIExm0Aab4Nui+rUslCyHiJzX+25XTi FwfCHKmM10yLUfcUfMXMg1fr2LO/tqEh11cluAOOdoofPOIpYB5/DtJ3fSK01/Ab Knn12KMpExfhRtit4wJ3eTyBWI/UIOQ9BOgHez6ELWpFCnhNK9/Q8qNBjefI+JnY h8bsqwwtTN46JbPmRLVIJq8PuM704DOF7KPzfT85W2/6+UV3ULA9PBICeIBmJN9w ZNQ5sYw72mJTIZwSTiYYgX0YH5Iv0gsvagnac2HLO/p0UZXQXXAgXfbddrFVV4Jt AtHRdBqQJFz2OQk1Wqat2QrPxOiP31nkUAe1fNB6P28wCgGzr1da75m65ccTP8Mg 8X9q9MPGKQOIuFYx/s/7Ln5dv9XmuqTvvJVa4SQOZCVWJbAAtKtAC52i5fDp4SEV naMgcuTr =QNQi -----END PGP SIGNATURE----- Merge tag 'v6.18-rc4-smb-server-fixes' of git://git.samba.org/ksmbd Pull smb server fixes from Steve French: - More safely detect RDMA capable devices correctly * tag 'v6.18-rc4-smb-server-fixes' of git://git.samba.org/ksmbd: ksmbd: detect RDMA capable netdevs include IPoIB ksmbd: detect RDMA capable lower devices when bridge and vlan netdev is used
This commit is contained in:
commit
cff0a1be08
|
|
@ -2606,7 +2606,7 @@ void ksmbd_rdma_destroy(void)
|
|||
}
|
||||
}
|
||||
|
||||
bool ksmbd_rdma_capable_netdev(struct net_device *netdev)
|
||||
static bool ksmbd_find_rdma_capable_netdev(struct net_device *netdev)
|
||||
{
|
||||
struct smb_direct_device *smb_dev;
|
||||
int i;
|
||||
|
|
@ -2648,6 +2648,28 @@ bool ksmbd_rdma_capable_netdev(struct net_device *netdev)
|
|||
return rdma_capable;
|
||||
}
|
||||
|
||||
bool ksmbd_rdma_capable_netdev(struct net_device *netdev)
|
||||
{
|
||||
struct net_device *lower_dev;
|
||||
struct list_head *iter;
|
||||
|
||||
if (ksmbd_find_rdma_capable_netdev(netdev))
|
||||
return true;
|
||||
|
||||
/* check if netdev is bridge or VLAN */
|
||||
if (netif_is_bridge_master(netdev) ||
|
||||
netdev->priv_flags & IFF_802_1Q_VLAN)
|
||||
netdev_for_each_lower_dev(netdev, lower_dev, iter)
|
||||
if (ksmbd_find_rdma_capable_netdev(lower_dev))
|
||||
return true;
|
||||
|
||||
/* check if netdev is IPoIB safely without layer violation */
|
||||
if (netdev->type == ARPHRD_INFINIBAND)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static const struct ksmbd_transport_ops ksmbd_smb_direct_transport_ops = {
|
||||
.prepare = smb_direct_prepare,
|
||||
.disconnect = smb_direct_disconnect,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user