Commit fa5ab66e authored by Logan Gunthorpe's avatar Logan Gunthorpe Committed by Jon Mason

NTB: Add check and comment for link up to mw_count() and mw_get_align()

Adds a comment and a check to ntb_mw_get_align() so that it always fails
if the function is called before the link is up.

Also adds a comment to ntb_mw_count() to note that it may return 0 if
it is called before the link is up.

This is to prevent accidental mis-use in clients that are testing
on hardware that this doesn't matter for.
Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
Acked-by: default avatarAllen Hubbe <Allen.Hubbe@dell.com>
Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
parent 980c41c8
...@@ -730,7 +730,8 @@ static inline int ntb_link_disable(struct ntb_dev *ntb) ...@@ -730,7 +730,8 @@ static inline int ntb_link_disable(struct ntb_dev *ntb)
* Hardware and topology may support a different number of memory windows. * Hardware and topology may support a different number of memory windows.
* Moreover different peer devices can support different number of memory * Moreover different peer devices can support different number of memory
* windows. Simply speaking this method returns the number of possible inbound * windows. Simply speaking this method returns the number of possible inbound
* memory windows to share with specified peer device. * memory windows to share with specified peer device. Note: this may return
* zero if the link is not up yet.
* *
* Return: the number of memory windows. * Return: the number of memory windows.
*/ */
...@@ -751,7 +752,7 @@ static inline int ntb_mw_count(struct ntb_dev *ntb, int pidx) ...@@ -751,7 +752,7 @@ static inline int ntb_mw_count(struct ntb_dev *ntb, int pidx)
* Get the alignments of an inbound memory window with specified index. * Get the alignments of an inbound memory window with specified index.
* NULL may be given for any output parameter if the value is not needed. * NULL may be given for any output parameter if the value is not needed.
* The alignment and size parameters may be used for allocation of proper * The alignment and size parameters may be used for allocation of proper
* shared memory. * shared memory. Note: this must only be called when the link is up.
* *
* Return: Zero on success, otherwise a negative error number. * Return: Zero on success, otherwise a negative error number.
*/ */
...@@ -760,6 +761,9 @@ static inline int ntb_mw_get_align(struct ntb_dev *ntb, int pidx, int widx, ...@@ -760,6 +761,9 @@ static inline int ntb_mw_get_align(struct ntb_dev *ntb, int pidx, int widx,
resource_size_t *size_align, resource_size_t *size_align,
resource_size_t *size_max) resource_size_t *size_max)
{ {
if (!(ntb_link_is_up(ntb, NULL, NULL) & (1 << pidx)))
return -ENOTCONN;
return ntb->ops->mw_get_align(ntb, pidx, widx, addr_align, size_align, return ntb->ops->mw_get_align(ntb, pidx, widx, addr_align, size_align,
size_max); size_max);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment