<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: vmalloc (ядра 2.4 и 2.6)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9470.html</link>
    <description>Добрый день.&lt;br&gt;Нужен совет по направлению &quot;раскопок&quot; для портирования драйвера ядра 2.6 на 2.4&lt;br&gt;В драйверах для ядра 2.6 встречаю два варианта варианта работы с виртуальной памятью:&lt;br&gt;1. vmalloc_32(), vmalloc_to_page(), vm_insert_page() - например UVC&lt;br&gt;2. vmalloc_32(), vmalloc_to_page() - например SPCA5xx&lt;br&gt;&lt;br&gt;Отсюда собственно вопросы:&lt;br&gt;1. какую задачу решает vm_insert_page(), почему spca спокойно обходится без него ?&lt;br&gt;2. есть ли аналог vm_insert_page() для ядра 2.4 ?&lt;br&gt;&lt;br&gt;В LDD2 и LDD3 этот метод не рассмартривается.&lt;br&gt;Заранее спасибо.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt; &lt;br&gt;</description>

<item>
    <title>vmalloc (ядра 2.4 и 2.6) (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9470.html#1</link>
    <pubDate>Wed, 30 May 2012 14:08:12 GMT</pubDate>
    <description>&amp;gt; ... для портирования драйвера ядра 2.6 на 2.4 &lt;br&gt;&lt;br&gt;Нахуа? :)&lt;br&gt;&lt;br&gt;&amp;gt; В драйверах для ядра 2.6 встречаю два варианта варианта работы с виртуальной &lt;br&gt;&amp;gt; памятью: &lt;br&gt;&amp;gt; 1. vmalloc_32(), vmalloc_to_page(), vm_insert_page() - например UVC &lt;br&gt;&amp;gt; 2. vmalloc_32(), vmalloc_to_page() - например SPCA5xx &lt;br&gt;&lt;br&gt;&#091;code&#093;&lt;br&gt;#if LINUX_VERSION_CODE &amp;gt; KERNEL_VERSION(2,5,0)&lt;br&gt;&lt;br&gt;    kva = (unsigned long) page_address(vmalloc_to_page((void *) adr));&lt;br&gt;    kva &amp;#124;= adr &amp; (PAGE_SIZE - 1);&lt;br&gt;&lt;br&gt;#else&lt;br&gt;&lt;br&gt;    va = VMALLOC_VMADDR(adr);&lt;br&gt;    kva = uvirt_to_kva(pgd_offset_k(va), va);&lt;br&gt;&lt;br&gt;&#091;/code&#093;&lt;br&gt;&lt;br&gt;http://mxhaard.free.fr/spca50x/Download/oldrelease/spca5xx-20060501.tar.gz&lt;br&gt;&lt;br&gt;&amp;gt; Отсюда собственно вопросы: &lt;br&gt;&amp;gt; 1. какую задачу решает vm_insert_page(), почему spca спокойно обходится без него ? &lt;br&gt;&lt;br&gt;This allows drivers to insert individual pages they&apos;ve allocated into a user vma.&lt;br&gt;&lt;br&gt;The page has to be a nice clean _individual_ kernel allocation. If you allocate &lt;br&gt;a compound page, you need to have marked it as such (__GFP_COMP), or manually &lt;br&gt;just split the page</description>
</item>

</channel>
</rss>
