提交 73fd546a 编写于 作者: J Jens Axboe

SG: clear termination bit in sg_chain()

Since we are using the last entry in the list, clear any possible
termination bit that may have already been set. Pointed out by Rusty.
Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
上级 2a397e82
...@@ -179,7 +179,11 @@ static inline void sg_chain(struct scatterlist *prv, unsigned int prv_nents, ...@@ -179,7 +179,11 @@ static inline void sg_chain(struct scatterlist *prv, unsigned int prv_nents,
#ifndef ARCH_HAS_SG_CHAIN #ifndef ARCH_HAS_SG_CHAIN
BUG(); BUG();
#endif #endif
prv[prv_nents - 1].page_link = (unsigned long) sgl | 0x01; /*
* Set lowest bit to indicate a link pointer, and make sure to clear
* the termination bit if it happens to be set.
*/
prv[prv_nents - 1].page_link = ((unsigned long) sgl | 0x01) & ~0x02;
} }
/** /**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册