IB/core: disallow registering 0-sized memory region
If ib_umem_get() is called with a size equal to 0 and an non-page aligned address, one page will be pinned and a 0-sized umem will be returned to the caller. This should not be allowed: it's not expected for a memory region to have a size equal to 0. This patch adds a check to explicitly refuse to register a 0-sized region. Link: http://mid.gmane.org/cover.1428929103.git.ydroneaud@opteya.com Cc: <stable@vger.kernel.org> Cc: Shachar Raindel <raindel@mellanox.com> Cc: Jack Morgenstein <jackm@mellanox.com> Cc: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: Yann Droneaud <ydroneaud@opteya.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
		
							parent
							
								
									c841e12add
								
							
						
					
					
						commit
						8abaae62f3
					
				| @ -99,6 +99,9 @@ struct ib_umem *ib_umem_get(struct ib_ucontext *context, unsigned long addr, | ||||
| 	if (dmasync) | ||||
| 		dma_set_attr(DMA_ATTR_WRITE_BARRIER, &attrs); | ||||
| 
 | ||||
| 	if (!size) | ||||
| 		return ERR_PTR(-EINVAL); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * If the combination of the addr and size requested for this memory | ||||
| 	 * region causes an integer overflow, return error. | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user