mirror of
https://github.com/torvalds/linux.git
synced 2026-05-03 14:02:43 -04:00
RDMA/hfi1: Defer setting VL15 credits to link-up interrupt
Keep VL15 credits at 0 during LNI, before link-up. Store VL15 credits value during verify cap interrupt and set in after link-up. This addresses an issue where VL15 MAD packets could be sent by one side of the link before the other side is ready to receive them. Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Reviewed-by: Dean Luick <dean.luick@intel.com> Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Jakub Byczkowski <jakub.byczkowski@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
committed by
Doug Ledford
parent
e4785b0633
commit
b3e6b4bdbb
@@ -1045,6 +1045,14 @@ struct hfi1_devdata {
|
||||
/* initial vl15 credits to use */
|
||||
u16 vl15_init;
|
||||
|
||||
/*
|
||||
* Cached value for vl15buf, read during verify cap interrupt. VL15
|
||||
* credits are to be kept at 0 and set when handling the link-up
|
||||
* interrupt. This removes the possibility of receiving VL15 MAD
|
||||
* packets before this HFI is ready.
|
||||
*/
|
||||
u16 vl15buf_cached;
|
||||
|
||||
/* Misc small ints */
|
||||
u8 n_krcv_queues;
|
||||
u8 qos_shift;
|
||||
@@ -1598,7 +1606,8 @@ int hfi1_rcvbuf_validate(u32 size, u8 type, u16 *encode);
|
||||
int fm_get_table(struct hfi1_pportdata *ppd, int which, void *t);
|
||||
int fm_set_table(struct hfi1_pportdata *ppd, int which, void *t);
|
||||
|
||||
void set_up_vl15(struct hfi1_devdata *dd, u8 vau, u16 vl15buf);
|
||||
void set_up_vau(struct hfi1_devdata *dd, u8 vau);
|
||||
void set_up_vl15(struct hfi1_devdata *dd, u16 vl15buf);
|
||||
void reset_link_credits(struct hfi1_devdata *dd);
|
||||
void assign_remote_cm_au_table(struct hfi1_devdata *dd, u8 vcu);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user