lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <eedb87e1131d74a77b49599648cc5aac@codeaurora.org>
Date:	Tue, 22 Mar 2016 15:53:02 +0530
From:	Sodagudi Prasad <psodagud@...eaurora.org>
To:	linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
	linux@....linux.org.uk
Cc:	shashim@...eaurora.org, sboyd@...eaurora.org,
	psodagud@...eaurora.org
Subject: [Query]  doubt on parameters passed to dma_map_single_attrs() API


Hi All,

Would like to check whether the dma_map_single_attrs() API, can accept 
ptr variable from high memory or not?
If we pass the memory pointer, which is pointing high memory does not 
work with virt_to_page API.

10 static inline dma_addr_t dma_map_single_attrs(struct device *dev, 
void *ptr,
  11                                               size_t size,
  12                                               enum 
dma_data_direction dir,
  13                                               struct dma_attrs 
*attrs)
  14 {
  15         const struct dma_map_ops *ops = get_dma_ops(dev);
  16         dma_addr_t addr;
  17
  18         kmemcheck_mark_initialized(ptr, size);
  19         BUG_ON(!valid_dma_direction(dir));
  20         addr = ops->map_page(dev, virt_to_page(ptr),
  21                              (unsigned long)ptr & ~PAGE_MASK, size,
  22                              dir, attrs);
<Prasad> using the virt_to_page for the high memory will end up with 
wrong address.
  23         debug_dma_map_page(dev, virt_to_page(ptr),
  24                            (unsigned long)ptr & ~PAGE_MASK, size,
  25                            dir, addr, true);
  26         return addr;
  27 }

The only restriction which is observed that, ptr should point to 
physically contiguous memory.

So can we pass high memory mapped address to dma_map_single API or not?

-Thanks, Prasad

-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora 
Forum,
Linux Foundation Collaborative Project

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ