lkml.org 
[lkml]   [2007]   [Nov]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [rfc][patch] remove nopage
Nick Piggin wrote:
> Index: linux-2.6/sound/oss/via82cxxx_audio.c
> ===================================================================
> --- linux-2.6.orig/sound/oss/via82cxxx_audio.c
> +++ linux-2.6/sound/oss/via82cxxx_audio.c
> @@ -2099,8 +2099,7 @@ static void via_dsp_cleanup (struct via_
> }
>
>
> -static struct page * via_mm_nopage (struct vm_area_struct * vma,
> - unsigned long address, int *type)
> +static int via_mm_fault (struct vm_area_struct *vma, struct vm_fault *vmf)
> {
> struct via_info *card = vma->vm_private_data;
> struct via_channel *chan = &card->ch_out;
> @@ -2108,22 +2107,14 @@ static struct page * via_mm_nopage (stru
> unsigned long pgoff;
> int rd, wr;
>
> - DPRINTK ("ENTER, start %lXh, ofs %lXh, pgoff %ld, addr %lXh\n",
> - vma->vm_start,
> - address - vma->vm_start,
> - (address - vma->vm_start) >> PAGE_SHIFT,
> - address);
> -
> - if (address > vma->vm_end) {
> - DPRINTK ("EXIT, returning NOPAGE_SIGBUS\n");
> - return NOPAGE_SIGBUS; /* Disallow mremap */
> - }
> + DPRINTK ("ENTER, pgoff %ld\n", vmf->pgoff);
> +
> if (!card) {
> - DPRINTK ("EXIT, returning NOPAGE_SIGBUS\n");
> - return NOPAGE_SIGBUS; /* Nothing allocated */
> + DPRINTK ("EXIT, returning VM_FAULT_SIGBUS\n");
> + return VM_FAULT_SIGBUS; /* Nothing allocated */
> }
>
> - pgoff = vma->vm_pgoff + ((address - vma->vm_start) >> PAGE_SHIFT);
> + pgoff = vmf->pgoff;
> rd = card->ch_in.is_mapped;
> wr = card->ch_out.is_mapped;
>
> @@ -2150,9 +2141,8 @@ static struct page * via_mm_nopage (stru
> DPRINTK ("EXIT, returning page %p for cpuaddr %lXh\n",
> dmapage, (unsigned long) chan->pgtbl[pgoff].cpuaddr);
> get_page (dmapage);
> - if (type)
> - *type = VM_FAULT_MINOR;
> - return dmapage;
> + vmf->page = dmapage;
> + return 0;
> }


Although the overall concept looks nice (ACK, good work), the above
change does not build. The code continues to reference via_mm_nopage(),
which has been renamed to via_mm_fault() in your patch.

Jeff


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2007-11-12 03:07    [W:0.043 / U:0.896 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site