1. 08 Jan, 2009 20 commits
    • David Howells's avatar
      NOMMU: Make VMAs per MM as for MMU-mode linux · 8feae131
      David Howells authored
      Make VMAs per mm_struct as for MMU-mode linux.  This solves two problems:
      
       (1) In SYSV SHM where nattch for a segment does not reflect the number of
           shmat's (and forks) done.
      
       (2) In mmap() where the VMA's vm_mm is set to point to the parent mm by an
           exec'ing process when VM_EXECUTABLE is specified, regardless of the fact
           that a VMA might be shared and already have its vm_mm assigned to another
           process or a dead process.
      
      A new struct (vm_region) is introduced to track a mapped region and to remember
      the circumstances under which it may be shared and the vm_list_struct structure
      is discarded as it's no longer required.
      
      This patch makes the following additional changes:
      
       (1) Regions are now allocated with alloc_pages() rather than kmalloc() and
           with no recourse to __GFP_COMP, so the pages are not composite.  Instead,
           each page has a reference on it held by the region.  Anything else that is
           interested in such a page will have to get a reference on it to retain it.
           When the pages are released due to unmapping, each page is passed to
           put_page() and will be freed when the page usage count reaches zero.
      
       (2) Excess pages are trimmed after an allocation as the allocation must be
           made as a power-of-2 quantity of pages.
      
       (3) VMAs are added to the parent MM's R/B tree and mmap lists.  As an MM may
           end up with overlapping VMAs within the tree, the VMA struct address is
           appended to the sort key.
      
       (4) Non-anonymous VMAs are now added to the backing inode's prio list.
      
       (5) Holes may be punched in anonymous VMAs with munmap(), releasing parts of
           the backing region.  The VMA and region structs will be split if
           necessary.
      
       (6) sys_shmdt() only releases one attachment to a SYSV IPC shared memory
           segment instead of all the attachments at that addresss.  Multiple
           shmat()'s return the same address under NOMMU-mode instead of different
           virtual addresses as under MMU-mode.
      
       (7) Core dumping for ELF-FDPIC requires fewer exceptions for NOMMU-mode.
      
       (8) /proc/maps is now the global list of mapped regions, and may list bits
           that aren't actually mapped anywhere.
      
       (9) /proc/meminfo gains a line (tagged "MmapCopy") that indicates the amount
           of RAM currently allocated by mmap to hold mappable regions that can't be
           mapped directly.  These are copies of the backing device or file if not
           anonymous.
      
      These changes make NOMMU mode more similar to MMU mode.  The downside is that
      NOMMU mode requires some extra memory to track things over NOMMU without this
      patch (VMAs are no longer shared, and there are now region structs).
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Tested-by: default avatarMike Frysinger <vapier.adi@gmail.com>
      Acked-by: default avatarPaul Mundt <lethal@linux-sh.org>
      8feae131
    • David Howells's avatar
      NOMMU: Delete askedalloc and realalloc variables · 41836382
      David Howells authored
      Delete the askedalloc and realalloc variables as nothing actually uses the
      value calculated.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Tested-by: default avatarMike Frysinger <vapier.adi@gmail.com>
      Acked-by: default avatarPaul Mundt <lethal@linux-sh.org>
      41836382
    • David Howells's avatar
      NOMMU: Rename ARM's struct vm_region · 9c93af1e
      David Howells authored
      Rename ARM's struct vm_region so that I can introduce my own global version
      for NOMMU.  It's feasible that the ARM version may wish to use my global one
      instead.
      
      The NOMMU vm_region struct defines areas of the physical memory map that are
      under mmap.  This may include chunks of RAM or regions of memory mapped
      devices, such as flash.  It is also used to retain copies of file content so
      that shareable private memory mappings of files can be made.  As such, it may
      be compatible with what is described in the banner comment for ARM's vm_region
      struct.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      9c93af1e
    • David Howells's avatar
      NOMMU: Fix cleanup handling in ramfs_nommu_get_umapped_area() · 0e8f989a
      David Howells authored
      Fix cleanup handling in ramfs_nommu_get_umapped_area() by only freeing the
      number of pages that find_get_pages() said it had returned (nr) rather than
      attempting to free the number of pages we asked for (lpages) - thus avoiding
      the situation whereby put_page() may be handed NULL pointers if
      find_get_pages() returned fewer pages that were requested.
      
      Also avoid a warning about nr being uninitialised and the need for an
      if-statement in the cleanup path by using appropriate gotos.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      0e8f989a
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 · 9e42d0cf
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
        sparc64: Work around branch tracer warning.
        sparc64: Fix unsigned long long warnings in drivers.
        sparc64: Use unsigned long long for u64.
        sparc: refactor code in fault_32.c
        sparc64: refactor code in init_64.c
        sparc64: refactor code in viohs.c
        sparc: make proces_ver_nack a bit more readable
      9e42d0cf
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 · 97c440ba
      Linus Torvalds authored
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6:
        V4L/DVB (10191a): Update MAINTAINERS entries on media drivers
        V4L/DVB (10190): cx88: Fix some Kbuild troubles
        V4L/DVB (10189): dm1105: Fix build with INPUT=m and DVB_DM1105=y
        V4L/DVB (10185): Use negated usb_endpoint_xfer_control, etc
        V4L/DVB (10182): tda8290: fix TDA8290 + TDA18271 initialization
        V4L/DVB (10181): v4l2-device: Fix some sparse warnings
        V4L/DVB (10180): drivers/media: Fix a number of sparse warnings
        V4L/DVB (10179): tda8290: Fix two sparse warnings
        V4L/DVB (10178): dvb_frontend: Fix some sparse warnings due to static symbols
        V4L/DVB (10177): Fix sparse warnings on em28xx
        V4L/DVB (10176b): pxa-camera: fix redefinition warnings and missing DMA definitions
        V4L/DVB (10176a): Switch remaining clear_user_page users over to clear_user_highpage
      97c440ba
    • Linus Torvalds's avatar
      Merge branch 'for-2.6.29' of git://linux-nfs.org/~bfields/linux · 713404d6
      Linus Torvalds authored
      * 'for-2.6.29' of git://linux-nfs.org/~bfields/linux: (67 commits)
        nfsd: get rid of NFSD_VERSION
        nfsd: last_byte_offset
        nfsd: delete wrong file comment from nfsd/nfs4xdr.c
        nfsd: git rid of nfs4_cb_null_ops declaration
        nfsd: dprint each op status in nfsd4_proc_compound
        nfsd: add etoosmall to nfserrno
        NFSD: FIDs need to take precedence over UUIDs
        SUNRPC: The sunrpc server code should not be used by out-of-tree modules
        svc: Clean up deferred requests on transport destruction
        nfsd: fix double-locks of directory mutex
        svc: Move kfree of deferral record to common code
        CRED: Fix NFSD regression
        NLM: Clean up flow of control in make_socks() function
        NLM: Refactor make_socks() function
        nfsd: Ensure nfsv4 calls the underlying filesystem on LOCKT
        SUNRPC: Ensure the server closes sockets in a timely fashion
        NFSD: Add documenting comments for nfsctl interface
        NFSD: Replace open-coded integer with macro
        NFSD: Fix a handful of coding style issues in write_filehandle()
        NFSD: clean up failover sysctl function naming
        ...
      713404d6
    • David S. Miller's avatar
      sparc64: Work around branch tracer warning. · 18b8e08e
      David S. Miller authored
      As reported by Sam Ravnborg, Gcc-3.4.5 does not handle:
      
      	if (get_user() || get_user())
      
      with the new branch tracer enabled.
      
      Just seperate it out into seperate statements for now
      so people can get work done.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      18b8e08e
    • Mauro Carvalho Chehab's avatar
      V4L/DVB (10191a): Update MAINTAINERS entries on media drivers · 661263b5
      Mauro Carvalho Chehab authored
      This patch updates the MAINTAINERS entries for the media drivers.
      
      We are doing a few changes during 2009 to improve patch handling for
      drivers/media stuff.
      
      Currently, v4l-dvb-maintainer list at linuxtv.org were used to to be v4l/dvb
      driver maintainers ML, in order to keep track of patch merge requests and to
      receive bug fixes. This list allows posting for everybody, but, in order to
      avoid spam, the user subscribe/unsubscribe at the ML is moderated. Other
      development discussions and end-user forums happened on two separated ML (one
      for V4L and another for DVB).
      
      At the beginning of 2009, we've created linux-media@vger.kernel.org, meaning to
      be the main upstream development mailing list for drivers/media, including V4L
      and DVB core and drivers.
      
      The choice for vger.kernel.org were due to the fact that most of upstream lists
      are there. Also, its anti-spam filtering rules are better than what we
      currently have at linuxtv.org.
      
      For now, both video4linux-list and linux-dvb ML will remain active, but more
      focused on end users. It is expected that those lists will gradually be
      replaced also by linux-media@vger.kernel.org.
      
      This patch reflect those changes at linux MAINTAINERS file.
      
      Since the development and bug fix discussions will now happen at
      linux-media@vger.kernel.org, this patch does the following changes
      
      	- replaces v4l-dvb-maintainer ML for the new
      	  linux-media@vger.kernel.org;
      
      	- replaces video4linux ML for the new linux-media@vger.kernel.org;
      
      While here, it also:
      
      	- Fixes the existing -git tree entries for drivers/media (since the
                repository name changed);
      
      	- Adds the missing drivers/media -git tree entry on a few maintainers
                entries that don't point to a tree.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      661263b5
    • Mauro Carvalho Chehab's avatar
      V4L/DVB (10190): cx88: Fix some Kbuild troubles · e32fadc4
      Mauro Carvalho Chehab authored
      As Randy Dunlap <randy.dunlap@oracle.com> reported, cx88 has some compilation issues:
      
      drivers/built-in.o: In function `cx88_call_i2c_clients':
      (.text+0x20af17): undefined reference to `videobuf_dvb_get_frontend'
      drivers/built-in.o: In function `cx8802_probe':
      cx88-mpeg.c:(.devinit.text+0x268c4): undefined reference to `videobuf_dvb_alloc_frontend'
      cx88-mpeg.c:(.devinit.text+0x268ea): undefined reference to `videobuf_dvb_dealloc_frontends'
      
      With those configs:
      
      CONFIG_VIDEO_CX88=y
      CONFIG_VIDEO_CX88_BLACKBIRD=y
      CONFIG_VIDEO_CX88_DVB=m
      CONFIG_DVB_CORE=m
      
      After carefully examining the code, with the current code, several cx88 drivers
      (cx8800, cx8802, cx88_dvb and cx88_blackbird) should be compiled as a module,
      if one of them is marked as such. Just fixing Kconfig could create a very complex
      set of rules. Also, this hides a problem with the current approach where the dvb
      functionality weren't confined inside dvb module.
      
      What happens is that:
      	- cx88-i2c (part of cx8800) has some special rules if DVB;
      	- cx88-mpeg (cx8802 module) has also part of DVB init code;
      	- cx88-dvb has the rest of the dvb code;
      	- cx88-blackbird can be used with cx88-mpeg, having cx88-dvb or not.
      
      So, instead of doing some tricks at Kconfig and wait for a next breakage,
      this patch moves the dvb code inside cx88-i2c and cx88-mpeg into cx88-dvb.
      
      Another problem is that cx8802 were being compiled, even without cx88-dvb
      and cx88-blackbird modules.
      
      While on this code, let's fix also a reported problem:
      http://www.linuxtv.org/pipermail/linux-dvb/2009-January/031225.html
      
      A solution for the issue were proposed here:
      http://www.mail-archive.com/linux-media@vger.kernel.org/msg00021.html
      
      Thanks to Randy, Andy, Gregoire and Thomas for helping us to detect
      and solve the issues.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      e32fadc4
    • Mauro Carvalho Chehab's avatar
      V4L/DVB (10189): dm1105: Fix build with INPUT=m and DVB_DM1105=y · 571d864c
      Mauro Carvalho Chehab authored
      As reported by Randy Dunlap <randy.dunlap@oracle.com>:
      
      With CONFIG_INPUT=m and CONFIG_DVB_DM1105=y:
      
      drivers/built-in.o: In function `input_sync':
      dm1105.c:(.text+0x120c33): undefined reference to `input_event'
      drivers/built-in.o: In function `dm1105_emit_key':
      dm1105.c:(.text+0x120c6c): undefined reference to `input_event'
      dm1105.c:(.text+0x120c82): undefined reference to `input_event'
      dm1105.c:(.text+0x120cb2): undefined reference to `input_event'
      dm1105.c:(.text+0x120cd1): undefined reference to `input_event'
      drivers/built-in.o: In function `dm1105_ir_init':
      (.devinit.text+0xd8ae): undefined reference to `input_allocate_device'
      drivers/built-in.o: In function `dm1105_ir_init':
      (.devinit.text+0xd9f6): undefined reference to `input_register_device'
      drivers/built-in.o: In function `dm1105_ir_init':
      (.devinit.text+0xda09): undefined reference to `input_free_device'
      drivers/built-in.o: In function `dm1105_ir_exit':
      (.devexit.text+0xcde): undefined reference to `input_unregister_device'
      
      This is due to the lack of a dependency between dm1105 and CONFIG_INPUT
      
      Cc: Igor M. Liplianin <liplianin@me.by>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      571d864c
    • Julia Lawall's avatar
      V4L/DVB (10185): Use negated usb_endpoint_xfer_control, etc · 2230c3c8
      Julia Lawall authored
      This patch extends 13417982 by using
      usb_endpoint_xfer_control, usb_endpoint_xfer_isoc, usb_endpoint_xfer_bulk,
      and usb_endpoint_xfer_int in the negated case as well.
      
      The semantic patch that makes this change is as follows:
      (http://www.emn.fr/x-info/coccinelle/)
      
      // <smpl>
      @@ struct usb_endpoint_descriptor *epd; @@
      
      - (usb_endpoint_type(epd) != \(USB_ENDPOINT_XFER_CONTROL\|0\))
      + !usb_endpoint_xfer_control(epd)
      
      @@ struct usb_endpoint_descriptor *epd; @@
      
      - (usb_endpoint_type(epd) != \(USB_ENDPOINT_XFER_ISOC\|1\))
      + !usb_endpoint_xfer_isoc(epd)
      
      @@ struct usb_endpoint_descriptor *epd; @@
      
      - (usb_endpoint_type(epd) != \(USB_ENDPOINT_XFER_BULK\|2\))
      + !usb_endpoint_xfer_bulk(epd)
      
      @@ struct usb_endpoint_descriptor *epd; @@
      
      - (usb_endpoint_type(epd) != \(USB_ENDPOINT_XFER_INT\|3\))
      + !usb_endpoint_xfer_int(epd)
      // </smpl>
      Signed-off-by: default avatarJulia Lawall <julia@diku.dk>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      2230c3c8
    • Michael Krufky's avatar
      V4L/DVB (10182): tda8290: fix TDA8290 + TDA18271 initialization · 439b72b6
      Michael Krufky authored
      Don't call tda8290_init_tuner unless we have either a TDA8275 or TDA8275A
      present. Calling this function will cause a TDA18271 to get sick, so we
      should only call it when needed.
      Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      439b72b6
    • Mauro Carvalho Chehab's avatar
      V4L/DVB (10181): v4l2-device: Fix some sparse warnings · 43266337
      Mauro Carvalho Chehab authored
      /home/v4l/master/v4l/v4l2-device.c:32:2: warning: Using plain integer as NULL pointer
      /home/v4l/master/v4l/v4l2-device.c:64:2: warning: Using plain integer as NULL pointer
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      43266337
    • Mauro Carvalho Chehab's avatar
      V4L/DVB (10180): drivers/media: Fix a number of sparse warnings · ffbc5f88
      Mauro Carvalho Chehab authored
      anysee.c:44:5: warning: symbol 'dvb_usb_anysee_delsys' was not declared. Should it be static?
      cx24116.c:378:3: warning: symbol 'CX24116_MODFEC_MODES' was not declared. Should it be static?
      stb0899_algo.c:57:5: warning: symbol 'stb0899_get_srate' was not declared. Should it be static?
      stb0899_algo.c:766:6: warning: symbol 'Log2Int' was not declared. Should it be static?
      stb0899_drv.c:137:20: warning: symbol 'stb0899_quant_tab' was not declared. Should it be static?
      stb0899_drv.c:180:20: warning: symbol 'stb0899_est_tab' was not declared. Should it be static?
      stb0899_drv.c:220:5: warning: symbol '_stb0899_read_reg' was not declared. Should it be static?
      budget-ci.c:1348:23: warning: symbol 'tt3200_stb6100_config' was not declared. Should it be static?
      /home/v4l/master/v4l/cx25840-core.c:190:6: warning: symbol 'cx25840_work_handler' was not declared. Should it be static?
      /home/v4l/master/v4l/m5602_s5k83a.c:116:6: warning: symbol 's5k83a_dump_registers' was not declared. Should it be static?
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      ffbc5f88
    • Mauro Carvalho Chehab's avatar
      V4L/DVB (10179): tda8290: Fix two sparse warnings · 4c27f1a4
      Mauro Carvalho Chehab authored
      /home/v4l/master/v4l/tda8290.c:233:7: warning: symbol 'i' shadows an earlier one
      /home/v4l/master/v4l/tda8290.c:178:3: warning: symbol 'fm_mode' was not declared. Should it be static?
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      4c27f1a4
    • Mauro Carvalho Chehab's avatar
      V4L/DVB (10178): dvb_frontend: Fix some sparse warnings due to static symbols · 072ce0c5
      Mauro Carvalho Chehab authored
      /home/v4l/master/v4l/dvb_frontend.c:838:19: warning: symbol 'dtv_cmds' was not declared. Should it be static?
      /home/v4l/master/v4l/dvb_frontend.c:1035:6: warning: symbol 'dtv_property_dump' was not declared. Should it be static?
      /home/v4l/master/v4l/dvb_frontend.c:1066:5: warning: symbol 'is_legacy_delivery_system' was not declared. Should it be static?
      /home/v4l/master/v4l/dvb_frontend.c:1080:6: warning: symbol 'dtv_property_cache_sync' was not declared. Should it be static?
      /home/v4l/master/v4l/dvb_frontend.c:1132:6: warning: symbol 'dtv_property_legacy_params_sync' was not declared. Should it be static?
      /home/v4l/master/v4l/dvb_frontend.c:1187:6: warning: symbol 'dtv_property_adv_params_sync' was not declared. Should it be static?
      /home/v4l/master/v4l/dvb_frontend.c:1222:6: warning: symbol 'dtv_property_cache_submit' was not declared. Should it be static?
      /home/v4l/master/v4l/dvb_frontend.c:1253:5: warning: symbol 'dtv_property_process_get' was not declared. Should it be static?
      /home/v4l/master/v4l/dvb_frontend.c:1362:5: warning: symbol 'dtv_property_process_set' was not declared. Should it be static?
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      072ce0c5
    • Mauro Carvalho Chehab's avatar
      V4L/DVB (10177): Fix sparse warnings on em28xx · 26cdc76b
      Mauro Carvalho Chehab authored
      /home/v4l/master/v4l/em28xx-core.c:396:25: warning: symbol 'outputs' was not declared. Should it be static?
      /home/v4l/master/v4l/em28xx-input.c:324:6: warning: symbol 'em28xx_ir_start' was not declared. Should it be static?
      /home/v4l/master/v4l/em28xx-cards.c:1925:5: warning: symbol 'em28xx_init_dev' was not declared. Should it be static?
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      26cdc76b
    • Eric Miao's avatar
      V4L/DVB (10176b): pxa-camera: fix redefinition warnings and missing DMA definitions · cfbaf4df
      Eric Miao authored
      1. now pxa_camera.c uses ioremap() for register access, pxa_camera.h is
         totally useless. Remove it.
      
      2. <asm/dma.h> does no longer include <mach/dma.h>, include the latter
         file explicitly
      
       delete mode 100644 drivers/media/video/pxa_camera.h
      Signed-off-by: default avatarEric Miao <eric.miao@marvell.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      cfbaf4df
    • Guennadi Liakhovetski's avatar
      V4L/DVB (10176a): Switch remaining clear_user_page users over to clear_user_highpage · c0cd5010
      Guennadi Liakhovetski authored
      Not all architectures provide clear_user_page(), but clear_user_highpage()
      is available everywhere at least via the compatibility inline function.
      
      Is this the "trivial patch" that's required for these two drivers?
      Signed-off-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      c0cd5010
  2. 07 Jan, 2009 20 commits