<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/arch/arc/include/asm/cacheflush.h, branch v4.9</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v4.9</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.9'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2016-03-19T09:04:09Z</updated>
<entry>
<title>ARC: dma: ioremap: use phys_addr_t consistenctly in code paths</title>
<updated>2016-03-19T09:04:09Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2016-03-16T09:34:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f5db19e93f680160a0fb3e2b05ceb4832b24d486'/>
<id>urn:sha1:f5db19e93f680160a0fb3e2b05ceb4832b24d486</id>
<content type='text'>
To support dma in physical memory beyond 4GB with PAE40

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: mm: PAE40: switch to using phys_addr_t for physical addresses</title>
<updated>2015-10-28T14:20:29Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2015-09-15T01:43:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=28b4af729fc4f7ee748c4bccb50ba5a6066418eb'/>
<id>urn:sha1:28b4af729fc4f7ee748c4bccb50ba5a6066418eb</id>
<content type='text'>
That way a single flip of phys_addr_t to 64 bit ensures all places
dealing with physical addresses get correct data

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: fold ___flush_dcache_page into __flush_dcache_page</title>
<updated>2015-05-19T05:57:13Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2015-05-18T07:16:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=45309493509b5acd667246c8232dd4911a7a168c'/>
<id>urn:sha1:45309493509b5acd667246c8232dd4911a7a168c</id>
<content type='text'>
Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: [mm] Assume pagecache page dirty by default</title>
<updated>2013-06-22T13:53:19Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2013-05-13T11:53:58Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=2ed21dae021db1f9f988494ceee519290217520d'/>
<id>urn:sha1:2ed21dae021db1f9f988494ceee519290217520d</id>
<content type='text'>
Similar to ARM/SH

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: cache detection code bitrot</title>
<updated>2013-06-22T08:16:43Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2013-06-15T04:51:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=30499186602afa1d62c2e5d354d02214a0ee00b7'/>
<id>urn:sha1:30499186602afa1d62c2e5d354d02214a0ee00b7</id>
<content type='text'>
* Number of (i|d)cache ways can be retrieved from BCRs and hence no need
  to cross check with with built-in constants
* Use of IS_ENABLED() to check for a Kconfig option
* is_not_cache_aligned() not used anymore

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: Use enough bits for determining page's cache color</title>
<updated>2013-05-23T08:55:09Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2013-05-19T08:36:44Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=006dfb3c9c44192f06093d65b3a876fa5ad1319a'/>
<id>urn:sha1:006dfb3c9c44192f06093d65b3a876fa5ad1319a</id>
<content type='text'>
The current code uses 2 bits for determining page's dcache color, thus
sorting pages into 4 bins, whereas the aliasing dcache really has 2 bins
(8k page, 64k dcache - 4 way-set-assoc).
This can cause extraneous flushes - e.g. color 0 and 2.

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: Brown paper bag bug in macro for checking cache color</title>
<updated>2013-05-23T08:54:52Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2013-05-22T13:08:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=3e87974dec5ec25a8a4852d9292db6be659164e6'/>
<id>urn:sha1:3e87974dec5ec25a8a4852d9292db6be659164e6</id>
<content type='text'>
The VM_EXEC check in update_mmu_cache() was getting optimized away
because of a stupid error in definition of macro addr_not_cache_congruent()

The intention was to have the equivalent of following:

	if (a || (1 ? b : 0))

but we ended up with following:

	if (a || 1 ? b : 0)

And because precedence of '||' is more that that of '?', gcc was optimizing
away evaluation of &lt;a&gt;

Nasty Repercussions:
1. For non-aliasing configs it would mean some extraneous dcache flushes
   for non-code pages if U/K mappings were not congruent.
2. For aliasing config, some needed dcache flush for code pages might
   be missed if U/K mappings were congruent.

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: [mm] Aliasing VIPT dcache support 4/4</title>
<updated>2013-05-09T16:30:57Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2013-05-09T13:50:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=5bba49f5397c012d873c73860ad7b50c526e613b'/>
<id>urn:sha1:5bba49f5397c012d873c73860ad7b50c526e613b</id>
<content type='text'>
Enforce congruency of userspace shared mappings

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: [mm] Aliasing VIPT dcache support 3/4</title>
<updated>2013-05-09T16:30:57Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2013-05-09T16:25:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=de2a852cc0d4c4d6a9c22a597c9cc231f2e6ceb4'/>
<id>urn:sha1:de2a852cc0d4c4d6a9c22a597c9cc231f2e6ceb4</id>
<content type='text'>
Fix the one zillion warnings

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: [mm] Aliasing VIPT dcache support 2/4</title>
<updated>2013-05-09T16:29:46Z</updated>
<author>
<name>Vineet Gupta</name>
<email>vgupta@synopsys.com</email>
</author>
<published>2013-05-09T16:24:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=4102b53392d6397d80b6e09b516517efacf7ea77'/>
<id>urn:sha1:4102b53392d6397d80b6e09b516517efacf7ea77</id>
<content type='text'>
This is the meat of the series which prevents any dcache alias creation
by always keeping the U and K mapping of a page congruent.
If a mapping already exists, and other tries to access the page, prev
one is flushed to physical page (wback+inv)

Essentially flush_dcache_page()/copy_user_highpage() create K-mapping
of a page, but try to defer flushing, unless U-mapping exist.
When page is actually mapped to userspace, update_mmu_cache() flushes
the K-mapping (in certain cases this can be optimised out)

Additonally flush_cache_mm(), flush_cache_range(), flush_cache_page()
handle the puring of stale userspace mappings on exit/munmap...

flush_anon_page() handles the existing U-mapping for anon page before
kernel reads it via the GUP path.

Note that while not complete, this is enough to boot a simple
dynamically linked Busybox based rootfs

Signed-off-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;
</content>
</entry>
</feed>
