linux_dsm_epyc7002/drivers/infiniband/hw/ipath
Bryan O'Sullivan 3977026462 IB/ipath: fix null deref during rdma ops
The problem was that node A's sending thread, which handles sending RDMA
read response data, would write the trigger word, the last packet would
be sent, node B would send a new RDMA read request, node A's interrupt
handler would initialize s_rdma_sge, then node A's sending thread would
update s_rdma_sge.  This didn't happen very often naturally but was more
frequent with 1 byte RDMA reads.  Rather than adding more locking or
increasing the QP structure size and copying sge data, I modified the
copy routine to update the pointers before writing the trigger word to
avoid the update race.

Signed-off-by: Ralph Campbell <ralphc@pathscale.com>
Signed-off-by: Bryan O'Sullivan <bos@pathscale.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2006-05-23 13:29:35 -07:00
..
ipath_common.h IB/ipath: core driver header files 2006-03-31 13:14:18 -08:00
ipath_cq.c IB/ipath: misc infiniband code, part 1 2006-03-31 13:14:20 -08:00
ipath_debug.h IB/ipath: tidy up white space in a few files 2006-05-01 12:14:23 -07:00
ipath_diag.c IB/ipath: fix race with exposing reset file 2006-05-01 12:14:11 -07:00
ipath_driver.c IB/ipath: fix NULL dereference during cleanup 2006-05-23 13:27:06 -07:00
ipath_eeprom.c IB/ipath: enable GPIO interrupt on HT-460 2006-05-23 13:29:34 -07:00
ipath_file_ops.c IB/ipath: enable PE800 receive interrupts on user ports 2006-05-23 13:29:35 -07:00
ipath_fs.c IB/ipath: sysfs and ipathfs support for core driver 2006-03-31 13:14:19 -08:00
ipath_ht400.c IB/ipath: enable GPIO interrupt on HT-460 2006-05-23 13:29:34 -07:00
ipath_init_chip.c IB/ipath: enable GPIO interrupt on HT-460 2006-05-23 13:29:34 -07:00
ipath_intr.c IB/ipath: fix label name in interrupt handler 2006-05-01 12:14:22 -07:00
ipath_kernel.h IB/ipath: enable GPIO interrupt on HT-460 2006-05-23 13:29:34 -07:00
ipath_keys.c IB/ipath: fix spinlock recursion bug 2006-05-23 13:27:06 -07:00
ipath_layer.c IB/ipath: fix null deref during rdma ops 2006-05-23 13:29:35 -07:00
ipath_layer.h IB/ipath: layering interfaces used by higher-level driver code 2006-03-31 13:14:20 -08:00
ipath_mad.c IB/ipath: misc infiniband code, part 2 2006-03-31 13:14:21 -08:00
ipath_mr.c IB/ipath: misc infiniband code, part 1 2006-03-31 13:14:20 -08:00
ipath_pe800.c IB/ipath: enable GPIO interrupt on HT-460 2006-05-23 13:29:34 -07:00
ipath_qp.c IB/ipath: replace uses of LIST_POISON 2006-05-23 13:27:06 -07:00
ipath_rc.c IB/ipath: replace uses of LIST_POISON 2006-05-23 13:27:06 -07:00
ipath_registers.h IB/ipath: tidy up white space in a few files 2006-05-01 12:14:23 -07:00
ipath_ruc.c IB/ipath: replace uses of LIST_POISON 2006-05-23 13:27:06 -07:00
ipath_srq.c IB/ipath: misc infiniband code, part 1 2006-03-31 13:14:20 -08:00
ipath_stats.c IB/ipath: misc driver support code 2006-03-31 13:14:19 -08:00
ipath_sysfs.c IB/ipath: fix race with exposing reset file 2006-05-01 12:14:11 -07:00
ipath_uc.c IB/ipath: infiniband UC and UD protocol support 2006-03-31 13:14:20 -08:00
ipath_ud.c IB/ipath: tidy up white space in a few files 2006-05-01 12:14:23 -07:00
ipath_user_pages.c IB/ipath: support for userspace apps using core driver 2006-03-31 13:14:19 -08:00
ipath_verbs_mcast.c IB/ipath: infiniband verbs support 2006-03-31 13:14:21 -08:00
ipath_verbs.c IB/ipath: register as IB device owner 2006-05-23 13:29:35 -07:00
ipath_verbs.h IB/ipath: simplify IB timer usage 2006-05-01 12:14:21 -07:00
ipath_wc_x86_64.c IB/ipath: misc driver support code 2006-03-31 13:14:19 -08:00
ips_common.h IB/ipath: improve sparse annotation 2006-05-01 12:14:21 -07:00
Kconfig IB/ipath: kbuild infrastructure 2006-03-31 13:14:21 -08:00
Makefile IB/ipath: kbuild infrastructure 2006-03-31 13:14:21 -08:00
verbs_debug.h IB/ipath: infiniband header files 2006-03-31 13:14:20 -08:00