VirtualBox

Changes between Version 5 and Version 8 of Ticket #19312


Ignore:
Timestamp:
Mar 6, 2020 10:30:15 AM (4 years ago)
Author:
Frank Batschulat (Oracle)
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #19312 – Description

    v5 v8  
    3232obvious fix:[[BR]]
    3333=> replace use of ioremap_nocache() with ioremap_cache()
     34
     35Edit:
     36
     37ioremap_cache() is uncached by default since a long time.
     38
     39all 5.X kernels down to version 5.0
     40all 4.X kernels down to version 4.0
     41all 3.X kernels down to version 3.0
     42
     43from version 2.6.25 onwards we know for sure
     44that ioremap_cache() has uncached semantics by default.
     45
     46[https://elixir.bootlin.com/linux/v2.6.25/source/include/asm-x86/io_64.h#L161][[BR]]
     47
     48{{{
     49 * This one maps high address device memory and turns off caching for that area.
     50 * it's useful if some control registers are in such an area and write combining
     51 * or read caching is not desirable:
     52 */
     53extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size);
     54extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size);
     55
     56/*
     57 * The default ioremap() behavior is non-cached:
     58 */
     59static inline void __iomem *ioremap(resource_size_t offset, unsigned long size)
     60{
     61        return ioremap_nocache(offset, size);
     62}
     63}}}
     64
     65That means we can and should replace ioremap_nocache() usage
     66with ioremap_cache() and make kernel version 2.6.25 the tipping
     67point for this.

© 2023 Oracle
ContactPrivacy policyTerms of Use