1. 02 6月, 2009 3 次提交
  2. 29 5月, 2009 3 次提交
  3. 28 5月, 2009 1 次提交
  4. 27 4月, 2009 1 次提交
    • J
      dma-debug: remove broken dma memory leak detection for 2.6.30 · 314eeac9
      Joerg Roedel 提交于
      The feature needs some more work because the notfier which is used to
      check for pending allocations is called before the device drivers
      ->remove() function. Therefore this feature reports false positives.
      
      A real fix for this issue is to introduce a new notifier event which sent
      _after_ the driver has deinitialized itself. That will done for the next
      kernel version.
      
      [ Impact: reduce the scope of CONFIG_DMA_API_DEBUG=y checks ]
      Signed-off-by: NJoerg Roedel <joerg.roedel@amd.com>
      Cc: iommu@lists.linux-foundation.org
      LKML-Reference: <1240576557-22442-1-git-send-email-joerg.roedel@amd.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      314eeac9
  5. 25 4月, 2009 1 次提交
  6. 23 4月, 2009 1 次提交
  7. 22 4月, 2009 1 次提交
  8. 20 4月, 2009 1 次提交
    • K
      driver: dont update dev_name via device_add path · 8a577ffc
      Kay Sievers 提交于
      notice one system /proc/iomem some entries missed the name for pci_devices
      
      it turns that dev->dev.kobj name is changed after device_add.
      
      for pci code: via acpi_pci_root_driver.ops.add (aka acpi_pci_root_add)
      ==> pci_acpi_scan_root is used to scan pci bus/device, and at the same
      time we read the resource for pci_dev in the pci_read_bases, we have
      res->name = pci_name(pci_dev); pci_name is calling dev_name.
      
      later via acpi_pci_root_driver.ops.start (aka acpi_pci_root_start) ==>
      pci_bus_add_device to add all pci_dev in kobj tree.  pci_bus_add_device
      will call device_add.
      
      actually in device_add
      
              /* first, register with generic layer. */
              error = kobject_add(&dev->kobj, dev->kobj.parent, "%s", dev_name(dev));
              if (error)
                      goto Error;
      
      will get one new name for that kobj, old name is freed.
      
      [Impact: fix corrupted names in /proc/iomem ]
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8a577ffc
  9. 17 4月, 2009 2 次提交
  10. 15 4月, 2009 1 次提交
  11. 12 4月, 2009 1 次提交
    • F
      lockdep: warn about lockdep disabling after kernel taint · 9eeba613
      Frederic Weisbecker 提交于
      Impact: provide useful missing info for developers
      
      Kernel taint can occur in several situations such as warnings,
      load of prorietary or staging modules, bad page, etc...
      
      But when such taint happens, a developer might still be working on
      the kernel, expecting that lockdep is still enabled. But a taint
      disables lockdep without ever warning about it.
      Such a kernel behaviour doesn't really help for kernel development.
      
      This patch adds this missing warning.
      
      Since the taint is done most of the time after the main message that
      explain the real source issue, it seems safe to warn about it inside
      add_taint() so that it appears at last, without hurting the main
      information.
      
      v2: Use a generic helper to disable lockdep instead of an
          open coded xchg().
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      LKML-Reference: <1239412638-6739-1-git-send-email-fweisbec@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      9eeba613
  12. 08 4月, 2009 8 次提交
  13. 07 4月, 2009 2 次提交
  14. 03 4月, 2009 5 次提交
    • P
      kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_unlzma.c · e65a1b7c
      Pekka Enberg 提交于
      Impact: cleanup
      
      lib/decompress_unlzma.c depends on slab.h without including it:
      
          CC      lib/decompress_unlzma.o
        lib/decompress_unlzma.c: In function ‘rc_free’:
        lib/decompress_unlzma.c:122: error: implicit declaration of function ‘kfree’
        lib/decompress_unlzma.c: In function ‘unlzma’:
        lib/decompress_unlzma.c:551: error: implicit declaration of function ‘kmalloc’
        lib/decompress_unlzma.c:551: warning: assignment makes pointer from integer without a cast
        make[1]: *** [lib/decompress_unlzma.o] Error 1
        make: *** [lib/] Error 2
      
      It gets included implicitly currently - but this will not be the
      case with upcoming kmemtrace changes.
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
      LKML-Reference: <1237886521.25315.58.camel@penberg-laptop>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e65a1b7c
    • P
      kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_bunzip2.c · ba56617e
      Pekka Enberg 提交于
      Impact: cleanup
      
      lib/decompress_bunzip2.c depends on slab.h without including it:
      
          CC      lib/decompress_bunzip2.o
        lib/decompress_bunzip2.c: In function ‘start_bunzip’:
        lib/decompress_bunzip2.c:636: error: implicit declaration of function ‘kmalloc’
        lib/decompress_bunzip2.c:636: warning: assignment makes pointer from integer without a cast
        lib/decompress_bunzip2.c: In function ‘bunzip2’:
        lib/decompress_bunzip2.c:682: warning: assignment makes pointer from integer without a cast
        lib/decompress_bunzip2.c:693: warning: assignment makes pointer from integer without a cast
        lib/decompress_bunzip2.c:726: error: implicit declaration of function ‘kfree’
        make[1]: *** [lib/decompress_bunzip2.o] Error 1
        make: *** [lib/] Error 2
      
      It gets included implicitly currently - but this will not be the
      case with upcoming kmemtrace changes.
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
      LKML-Reference: <1237886032.25315.48.camel@penberg-laptop>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ba56617e
    • P
      kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_inflate.c · 079effb6
      Pekka Enberg 提交于
      Impact: fix build
      
      lib/decompress_inflate.c depends on slab.h without including it:
      
          CC      lib/decompress_inflate.o
        lib/decompress_inflate.c: In function ‘gunzip’:
        lib/decompress_inflate.c:45: error: implicit declaration of function ‘kmalloc’
        lib/decompress_inflate.c:45: warning: assignment makes pointer from integer without a cast
        lib/decompress_inflate.c:57: warning: assignment makes pointer from integer without a cast
        lib/decompress_inflate.c:65: warning: assignment makes pointer from integer without a cast
        lib/decompress_inflate.c:71: warning: assignment makes pointer from integer without a cast
        lib/decompress_inflate.c:154: error: implicit declaration of function ‘kfree’
        make[1]: *** [lib/decompress_inflate.o] Error 1
        make: *** [lib/] Error 2
      
      It gets included implicitly currently - but this will not be the
      case with upcoming kmemtrace changes.
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
      LKML-Reference: <1237886030.25315.47.camel@penberg-laptop>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      079effb6
    • J
      cpumask: fix slab corruption caused by alloc_cpumask_var_node() · 4f032ac4
      Jack Steiner 提交于
      Fix slab corruption caused by alloc_cpumask_var_node() overwriting the
      tail end of an off-stack cpumask.
      
      The function zeros out cpumask bits beyond the last possible cpu.  The
      starting point for zeroing should be the beginning of the mask offset by a
      byte count derived from the number of possible cpus.  The offset was
      calculated in bits instead of bytes.  This resulted in overwriting the end
      of the cpumask.
      Signed-off-by: NJack Steiner <steiner@sgi.com>
      Acked-by: Mike Travis <travis.sgi.com>
      Acked-by: NIngo Molnar <mingo@elte.hu>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Cc: <stable@kernel.org>		[2.6.29.x]
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4f032ac4
    • K
      cgroup: CSS ID support · 38460b48
      KAMEZAWA Hiroyuki 提交于
      Patch for Per-CSS(Cgroup Subsys State) ID and private hierarchy code.
      
      This patch attaches unique ID to each css and provides following.
      
       - css_lookup(subsys, id)
         returns pointer to struct cgroup_subysys_state of id.
       - css_get_next(subsys, id, rootid, depth, foundid)
         returns the next css under "root" by scanning
      
      When cgroup_subsys->use_id is set, an id for css is maintained.
      
      The cgroup framework only parepares
      	- css_id of root css for subsys
      	- id is automatically attached at creation of css.
      	- id is *not* freed automatically. Because the cgroup framework
      	  don't know lifetime of cgroup_subsys_state.
      	  free_css_id() function is provided. This must be called by subsys.
      
      There are several reasons to develop this.
      	- Saving space .... For example, memcg's swap_cgroup is array of
      	  pointers to cgroup. But it is not necessary to be very fast.
      	  By replacing pointers(8bytes per ent) to ID (2byes per ent), we can
      	  reduce much amount of memory usage.
      
      	- Scanning without lock.
      	  CSS_ID provides "scan id under this ROOT" function. By this, scanning
      	  css under root can be written without locks.
      	  ex)
      	  do {
      		rcu_read_lock();
      		next = cgroup_get_next(subsys, id, root, &found);
      		/* check sanity of next here */
      		css_tryget();
      		rcu_read_unlock();
      		id = found + 1
      	 } while(...)
      
      Characteristics:
      	- Each css has unique ID under subsys.
      	- Lifetime of ID is controlled by subsys.
      	- css ID contains "ID" and "Depth in hierarchy" and stack of hierarchy
      	- Allowed ID is 1-65535, ID 0 is UNUSED ID.
      
      Design Choices:
      	- scan-by-ID v.s. scan-by-tree-walk.
      	  As /proc's pid scan does, scan-by-ID is robust when scanning is done
      	  by following kind of routine.
      	  scan -> rest a while(release a lock) -> conitunue from interrupted
      	  memcg's hierarchical reclaim does this.
      
      	- When subsys->use_id is set, # of css in the system is limited to
      	  65535.
      
      [bharata@linux.vnet.ibm.com: remove rcu_read_lock() from css_get_next()]
      Signed-off-by: NKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Acked-by: NPaul Menage <menage@google.com>
      Cc: Li Zefan <lizf@cn.fujitsu.com>
      Cc: Balbir Singh <balbir@in.ibm.com>
      Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
      Signed-off-by: NBharata B Rao <bharata@linux.vnet.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      38460b48
  15. 01 4月, 2009 2 次提交
  16. 31 3月, 2009 1 次提交
    • R
      dma-debug: fix printk formats (i386) · 93c36ed8
      Randy Dunlap 提交于
      Fix printk format warnings in dma-debug:
      
        lib/dma-debug.c:645: warning: format '%016llx' expects type 'long long unsigned int', but argument 6 has type 'dma_addr_t'
        lib/dma-debug.c:662: warning: format '%016llx' expects type 'long long unsigned int', but argument 6 has type 'dma_addr_t'
        lib/dma-debug.c:676: warning: format '%016llx' expects type 'long long unsigned int', but argument 6 has type 'dma_addr_t'
        lib/dma-debug.c:686: warning: format '%016llx' expects type 'long long unsigned int', but argument 6 has type 'dma_addr_t'
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      93c36ed8
  17. 25 3月, 2009 6 次提交
    • G
      Dynamic debug: allow simple quoting of words · 9898abb3
      Greg Banks 提交于
      Allow simple quoting of words in the dynamic debug control language.
      
      This allows more natural specification when using the control language
      to match against printk formats, e.g
      
      #echo -n 'format "Setting node for non-present cpu" +p' >
      	/mnt/debugfs/dynamic_debug/control
      
      instead of
      
      #echo -n 'format Setting\040node\040for\040non-present\040cpu +p' >
      	/mnt/debugfs/dynamic_debug/control
      
      Adjust the dynamic debug documention to describe that and provide a
      new example.  Adjust the existing examples in the documentation to
      reflect the current whitespace escaping behaviour when reading the
      control file.  Fix some minor documentation trailing whitespace.
      Signed-off-by: NGreg Banks <gnb@melbourne.sgi.com>
      Acked-by: NJason Baron <jbaron@redhat.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      9898abb3
    • J
      dynamic debug: update docs · 86151fdf
      Jason Baron 提交于
      updates the documentation for 'dynamic debug' feature.
      Signed-off-by: NGreg Banks <gnb@sgi.com>
      Signed-off-by: NJason Baron <jbaron@redhat.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      86151fdf
    • J
      dynamic debug: combine dprintk and dynamic printk · e9d376f0
      Jason Baron 提交于
      This patch combines Greg Bank's dprintk() work with the existing dynamic
      printk patchset, we are now calling it 'dynamic debug'.
      
      The new feature of this patchset is a richer /debugfs control file interface,
      (an example output from my system is at the bottom), which allows fined grained
      control over the the debug output. The output can be controlled by function,
      file, module, format string, and line number.
      
      for example, enabled all debug messages in module 'nf_conntrack':
      
      echo -n 'module nf_conntrack +p' > /mnt/debugfs/dynamic_debug/control
      
      to disable them:
      
      echo -n 'module nf_conntrack -p' > /mnt/debugfs/dynamic_debug/control
      
      A further explanation can be found in the documentation patch.
      Signed-off-by: NGreg Banks <gnb@sgi.com>
      Signed-off-by: NJason Baron <jbaron@redhat.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      e9d376f0
    • A
      kobject: don't block for each kobject_uevent · f520360d
      Arjan van de Ven 提交于
      Right now, the kobject_uevent code blocks for each uevent that's being
      generated, due to using (for hystoric reasons) UHM_WAIT_EXEC as flag to
      call_usermode_helper().  Specifically, the effect is that each uevent
      that is being sent causes the code to wake up keventd, then block until
      keventd has processed the work. Needless to say, this happens many times
      during the system boot.
      
      This patches changes that to UHN_NO_WAIT (brilliant name for a constant
      btw) so that we only schedule the work to fire the uevent message, but
      do not wait for keventd to process the work.
      
      This removes one of the bottlenecks during boot; each one of them is
      only a small effect, but the sum of them does add up.
      
      [Note, distros that need this are broken, they should be setting
      CONFIG_UEVENT_HELPER_PATH to "", that way this code path will never be
      excuted at all -- gregkh]
      Signed-off-by: NArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      f520360d
    • M
      Driver core: implement uevent suppress in kobject · f67f129e
      Ming Lei 提交于
      This patch implements uevent suppress in kobject and removes it
      from struct device, based on the following ideas:
      
      1,Uevent sending should be one attribute of kobject, so suppressing it
      in kobject layer is more natural than in device layer. By this way,
      we can do it for other objects embedded with kobject.
      
      2,It may save several bytes for each instance of struct device.(On my
      omap3(32bit ARM) based box, can save 8bytes per device object)
      
      This patch also introduces dev_set|get_uevent_suppress() helpers to
      set and query uevent_suppress attribute in case to help kobject
      as private part of struct device in future.
      
      [This version is against the latest driver-core patch set of Greg,please
      ignore the last version.]
      Signed-off-by: NMing Lei <tom.leiming@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      f67f129e
    • K
      driver core: get rid of struct device's bus_id string array · 1fa5ae85
      Kay Sievers 提交于
      Now that all users of bus_id is gone, we can remove it from struct
      device.
      Signed-off-by: NKay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      1fa5ae85