Bug 357681
Summary: | PROBLEM: Kernel oops during interrupt context memory allocation | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Thomas Kordelle <thomas.kordelle> |
Component: | kernel | Assignee: | Kernel Maintainer List <kernel-maint> |
Status: | CLOSED WONTFIX | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | high | Docs Contact: | |
Priority: | low | ||
Version: | 6 | CC: | triage |
Target Milestone: | --- | Keywords: | Reopened |
Target Release: | --- | ||
Hardware: | i686 | ||
OS: | Linux | ||
Whiteboard: | bzcl34nup | ||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2008-05-06 19:47:48 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Thomas Kordelle
2007-10-30 07:59:45 UTC
What is the linuxdvb module? It's a module written by me. It run's stable for the last six year's. Since the latest kernel upgrade i got this BUG. This error is hard to reproduce, but it seems to trigger when a highmem address (allocated in userspace) is passed to vmalloc_to_page. The problem is almost certainly in the driver's vmap_to_dma_addr() function. If you can reporduce without the driver loaded, reopen the bug... Hi wise guy, maybe you are touched by god, but if you can read and learn then take some time and read the function vmalloc_to_page. And if this won't help then take a look here http://bugzilla.kernel.org/show_bug.cgi?id=8928. If you after that always think the macro BUG_ON() is a joke in highmem.c line 38, then you should change your job. Good luck .... To workaround the BUG inside the 'kmap_atomic_prot' function is to write your own version of 'vmalloc_to_page'. The big point is to avoid the use of 'kmap_atomic_prot'. We don't need to reinvent the wheel. There is already a similar function called 'lookup_address' in 'arch/i386/mm/pageattr.c'. Unfortunately this function is not exported as SYMBOL. So we copy the code and add two lines (see dvb_vmalloc_to_page) to have a working 'vmalloc_to_page'. static pte_t *dvb_lookup_address(unsigned long address) { pgd_t *pgd = pgd_offset_k(address); pud_t *pud; pmd_t *pmd; if (pgd_none(*pgd)) return NULL; pud = pud_offset(pgd, address); if (pud_none(*pud)) return NULL; pmd = pmd_offset(pud, address); if (pmd_none(*pmd)) return NULL; if (pmd_large(*pmd)) return (pte_t *)pmd; return pte_offset_kernel(pmd, address); } struct page* dvb_vmalloc_to_page(void * vmalloc_addr) { struct page *page = NULL; pte_t *ppte, pte; ppte = dvb_lookup_address((unsigned long)vmalloc_addr); if (ppte != NULL) { pte = *ppte; if (pte_present(pte)) page = pte_page(pte); } return page; } Fedora apologizes that these issues have not been resolved yet. We're sorry it's taken so long for your bug to be properly triaged and acted on. We appreciate the time you took to report this issue and want to make sure no important bugs slip through the cracks. If you're currently running a version of Fedora Core between 1 and 6, please note that Fedora no longer maintains these releases. We strongly encourage you to upgrade to a current Fedora release. In order to refocus our efforts as a project we are flagging all of the open bugs for releases which are no longer maintained and closing them. http://fedoraproject.org/wiki/LifeCycle/EOL If this bug is still open against Fedora Core 1 through 6, thirty days from now, it will be closed 'WONTFIX'. If you can reporduce this bug in the latest Fedora version, please change to the respective version. If you are unable to do this, please add a comment to this bug requesting the change. Thanks for your help, and we apologize again that we haven't handled these issues to this point. The process we are following is outlined here: http://fedoraproject.org/wiki/BugZappers/F9CleanUp We will be following the process here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping to ensure this doesn't happen again. And if you'd like to join the bug triage team to help make things better, check out http://fedoraproject.org/wiki/BugZappers This bug is open for a Fedora version that is no longer maintained and will not be fixed by Fedora. Therefore we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen thus bug against that version. Thank you for reporting this bug and we are sorry it could not be fixed. |