linux/drivers/infiniband/ulp/ipoib
Roland Dreier 9fdd5e5bf6 IPoIB: Handle case when P_Key is deleted and re-added at same index
If a P_Key is deleted and then re-added at the same index, then IPoIB
gets confused because __ipoib_ib_dev_flush() only checks whether the
index is the same without checking whether the P_Key was present, so
the interface is stopped when the P_Key is deleted, but the event when
the P_Key is re-added gets ignored and the interface never gets
restarted.

Also, switch to using ib_find_pkey() instead of ib_find_cached_pkey()
everywhere in IPoIB, since none of the places that look for P_Keys are
in a fast path or in non-sleeping context, and in general we want to
kill off the whole caching infrastructure eventually.  This also fixes
consistency problems caused because some IPoIB queries were cached and
some were uncached during the window where the cache was not updated.

Thanks to Venkata Subramonyam <vsubramo@cisco.com> for debugging this
problem and testing this fix.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
2008-04-16 21:09:35 -07:00
..
Kconfig IB: Use menuconfig for InfiniBand menu 2007-07-09 20:12:26 -07:00
Makefile IPoIB: Add basic ethtool support 2008-04-16 21:09:32 -07:00
ipoib.h IPoIB: Support modifying IPoIB CQ event moderation 2008-04-16 21:09:33 -07:00
ipoib_cm.c IPoIB: Handle case when P_Key is deleted and re-added at same index 2008-04-16 21:09:35 -07:00
ipoib_ethtool.c IPoIB: Support modifying IPoIB CQ event moderation 2008-04-16 21:09:33 -07:00
ipoib_fs.c IPoIB: Constify seq_operations function pointer tables 2008-01-25 14:17:46 -08:00
ipoib_ib.c IPoIB: Handle case when P_Key is deleted and re-added at same index 2008-04-16 21:09:35 -07:00
ipoib_main.c IPoIB: Add basic ethtool support 2008-04-16 21:09:32 -07:00
ipoib_multicast.c IPoIB: Don't drop multicast sends when they can be queued 2008-03-11 14:12:03 -07:00
ipoib_verbs.c IPoIB: Add LSO support 2008-04-16 21:09:27 -07:00
ipoib_vlan.c IPoIB: Allow setting policy to ignore multicast groups 2007-10-10 13:02:30 -07:00