1. 20 Feb, 2007 1 commit
  2. 17 Feb, 2007 1 commit
  3. 16 Feb, 2007 4 commits
    • Randy Dunlap's avatar
      PCI/sysfs/kobject kernel-doc fixes · f95d882d
      Randy Dunlap authored
      
      Fix kernel-doc warnings in PCI, sysfs, and kobject files.
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      f95d882d
    • Martin Stoilov's avatar
      kobject: kobj->k_name verification fix · 13507701
      Martin Stoilov authored
      
      The function 'kobject_add' tries to verify the name of
      a new kobject instance is properly set before continuing.
          if (!kobj->k_name)
              kobj->k_name = kobj->name;
          if (!kobj->k_name) {
              pr_debug("kobject attempted to be registered with no name!\n");
              WARN_ON(1);
              return -EINVAL;
          }
      The statement:
          if (!kobj->k_name) {
              pr_debug("kobject attempted to be registered with no name!\n");
              WARN_ON(1);
              return -EINVAL;
          }
      is useless the way it is right now, because it can never be true. I
      think the
      code was intended to be:
          if (!kobj->k_name)
              kobj->k_name = kobj->name;
          if (!*kobj->k_name) {
              pr_debug("kobject attempted to be registered with no name!\n");
              WARN_ON(1);
              return -EINVAL;
          }
      because this would make sure the kobj->name buffer has something in it.
      So the missing '*' is just a typo. Although, I would much prefer
      expression like:
          if (*kobj->k_name == '\0') {
              pr_debug("kobject attempted to be registered with no name!\n");
              WARN_ON(1);
              return -EINVAL;
          }
      
      because this would've made the intention clear, in this patch I just restore
      the missing '*' without changing the coding style of the function.
      Signed-off-by: default avatarMartin Stoilov <mstoilov@odesys.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      13507701
    • Ingo Molnar's avatar
      [PATCH] Add debugging feature /proc/timer_stat · 82f67cd9
      Ingo Molnar authored
      
      Add /proc/timer_stats support: debugging feature to profile timer expiration.
      Both the starting site, process/PID and the expiration function is captured.
      This allows the quick identification of timer event sources in a system.
      
      Sample output:
      
      # echo 1 > /proc/timer_stats
      # cat /proc/timer_stats
      Timer Stats Version: v0.1
      Sample period: 4.010 s
        24,     0 swapper          hrtimer_stop_sched_tick (hrtimer_sched_tick)
        11,     0 swapper          sk_reset_timer (tcp_delack_timer)
         6,     0 swapper          hrtimer_stop_sched_tick (hrtimer_sched_tick)
         2,     1 swapper          queue_delayed_work_on (delayed_work_timer_fn)
        17,     0 swapper          hrtimer_restart_sched_tick (hrtimer_sched_tick)
         2,     1 swapper          queue_delayed_work_on (delayed_work_timer_fn)
         4,  2050 pcscd            do_nanosleep (hrtimer_wakeup)
         5,  4179 sshd             sk_reset_timer (tcp_write_timer)
         4,  2248 yum-updatesd     schedule_timeout (process_timeout)
        18,     0 swapper          hrtimer_restart_sched_tick (hrtimer_sched_tick)
         3,     0 swapper          sk_reset_timer (tcp_delack_timer)
         1,     1 swapper          neigh_table_init_no_netlink (neigh_periodic_timer)
         2,     1 swapper          e1000_up (e1000_watchdog)
         1,     1 init             schedule_timeout (process_timeout)
      100 total events, 25.24 events/sec
      
      [ cleanups and hrtimers support from Thomas Gleixner <tglx@linutronix.de> ]
      [bunk@stusta.de: nr_entries can become static]
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: john stultz <johnstul@us.ibm.com>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      82f67cd9
    • Frederik Deweerdt's avatar
      [PATCH] pci_iomap_regions() error handling fix · fb4d64e7
      Frederik Deweerdt authored
      
      It appears that the pcim_iomap_regions() function doesn't get the error
      handling right. It BUGs early at boot with a backtrace along the lines of:
      
      ahci_init
      pci_register_driver
      driver_register
      [...]
      ahci_init_one
      pcim_iomap_region
      pcim_iounmap
      
      The following patch allows me to boot. Only the if(mask..) continue;
      part fixes the problem actually, the gotos where changed so that we
      don't try to unmap something we couldn't map anyway.
      Signed-off-by: default avatarFrederik Deweerdt <frederik.deweerdt@gmail.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Tejun Heo <htejun@gmail.com>
      Cc: Jeff Garzik <jeff@garzik.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fb4d64e7
  4. 12 Feb, 2007 3 commits
  5. 11 Feb, 2007 5 commits
  6. 09 Feb, 2007 3 commits
    • Tejun Heo's avatar
      iomap: iomap should be in obj-y not in lib-y · ca299788
      Tejun Heo authored
      
      devres change moved iomap.o from obj-$(CONFIG_GENERIC_IOMAP) to lib-y
      making it not linked if no in-kernel driver uses it.  Fix it.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      ca299788
    • Tejun Heo's avatar
      devres: implement pcim_iomap_regions() · d24bbbf2
      Tejun Heo authored
      
      Implement pcim_iomap_regions().  This function takes mask of BARs to
      request and iomap.  No BAR should have length of zero.  BARs are
      iomapped using pcim_iomap_table().
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      d24bbbf2
    • Tejun Heo's avatar
      devres: device resource management · 9ac7849e
      Tejun Heo authored
      
      Implement device resource management, in short, devres.  A device
      driver can allocate arbirary size of devres data which is associated
      with a release function.  On driver detach, release function is
      invoked on the devres data, then, devres data is freed.
      
      devreses are typed by associated release functions.  Some devreses are
      better represented by single instance of the type while others need
      multiple instances sharing the same release function.  Both usages are
      supported.
      
      devreses can be grouped using devres group such that a device driver
      can easily release acquired resources halfway through initialization
      or selectively release resources (e.g. resources for port 1 out of 4
      ports).
      
      This patch adds devres core including documentation and the following
      managed interfaces.
      
      * alloc/free	: devm_kzalloc(), devm_kzfree()
      * IO region	: devm_request_region(), devm_release_region()
      * IRQ		: devm_request_irq(), devm_free_irq()
      * DMA		: dmam_alloc_coherent(), dmam_free_coherent(),
      		  dmam_declare_coherent_memory(), dmam_pool_create(),
      		  dmam_pool_destroy()
      * PCI		: pcim_enable_device(), pcim_pin_device(), pci_is_managed()
      * iomap		: devm_ioport_map(), devm_ioport_unmap(), devm_ioremap(),
      		  devm_ioremap_nocache(), devm_iounmap(), pcim_iomap_table(),
      		  pcim_iomap(), pcim_iounmap()
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      9ac7849e
  7. 07 Feb, 2007 4 commits
    • Eric W. Biederman's avatar
      sysfs: Shadow directory support · b592fcfe
      Eric W. Biederman authored
      
      The problem.  When implementing a network namespace I need to be able
      to have multiple network devices with the same name.  Currently this
      is a problem for /sys/class/net/*. 
      
      What I want is a separate /sys/class/net directory in sysfs for each
      network namespace, and I want to name each of them /sys/class/net.
      
      I looked and the VFS actually allows that.  All that is needed is
      for /sys/class/net to implement a follow link method to redirect
      lookups to the real directory you want. 
      
      Implementing a follow link method that is sensitive to the current
      network namespace turns out to be 3 lines of code so it looks like a
      clean approach.  Modifying sysfs so it doesn't get in my was is a bit
      trickier. 
      
      I am calling the concept of multiple directories all at the same path
      in the filesystem shadow directories.  With the directory entry really
      at that location the shadow master. 
      
      The following patch modifies sysfs so it can handle a directory
      structure slightly different from the kobject tree so I can implement
      the shadow directories for handling /sys/class/net/.
      Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
      Cc: Maneesh Soni <maneesh@in.ibm.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      b592fcfe
    • Mariusz Kozlowski's avatar
      kobject: kobject_put cleanup · b067db49
      Mariusz Kozlowski authored
      
      This patch removes redundant argument checks for kobject_put().
      Signed-off-by: default avatarMariusz Kozlowski <m.kozlowski@tuxland.pl>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      b067db49
    • Cornelia Huck's avatar
      driver core: Allow device_move(dev, NULL). · c744aeae
      Cornelia Huck authored
      
      If we allow NULL as the new parent in device_move(), we need to make sure
      that the device is placed into the same place as it would if it was
      newly registered:
      
      - Consider the device virtual tree. In order to be able to reuse code,
        setup_parent() has been tweaked a bit.
      - kobject_move() can fall back to the kset's kobject.
      - sysfs_move_dir() uses the sysfs root dir as fallback.
      Signed-off-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
      Cc: Marcel Holtmann <marcel@holtmann.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      c744aeae
    • Greg Kroah-Hartman's avatar
      Kobject: make kobject apis more robust in handling NULL pointers · 31b9025a
      Greg Kroah-Hartman authored
      
      It should be ok to pass in NULL for some kobject functions, so add error
      checking for all exported kobject functions to be more robust.
      
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      31b9025a
  8. 05 Feb, 2007 4 commits
  9. 20 Dec, 2006 2 commits
  10. 15 Dec, 2006 1 commit
    • Linus Torvalds's avatar
      Remove stack unwinder for now · d1526e2c
      Linus Torvalds authored
      
      It has caused more problems than it ever really solved, and is
      apparently not getting cleaned up and fixed.  We can put it back when
      it's stable and isn't likely to make warning or bug events worse.
      
      In the meantime, enable frame pointers for more readable stack traces.
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      d1526e2c
  11. 13 Dec, 2006 2 commits
    • Al Viro's avatar
      [PATCH] uml problems with linux/io.h · ee36c2bf
      Al Viro authored
      
      Remove useless includes of linux/io.h, don't even try to build iomap_copy
      on uml (it doesn't have readb() et.al., so...)
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Acked-by: default avatarJeff Dike <jdike@addtoit.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      ee36c2bf
    • Eric Dumazet's avatar
      [PATCH] SLAB: use a multiply instead of a divide in obj_to_index() · 6a2d7a95
      Eric Dumazet authored
      
      When some objects are allocated by one CPU but freed by another CPU we can
      consume lot of cycles doing divides in obj_to_index().
      
      (Typical load on a dual processor machine where network interrupts are
      handled by one particular CPU (allocating skbufs), and the other CPU is
      running the application (consuming and freeing skbufs))
      
      Here on one production server (dual-core AMD Opteron 285), I noticed this
      divide took 1.20 % of CPU_CLK_UNHALTED events in kernel.  But Opteron are
      quite modern cpus and the divide is much more expensive on oldest
      architectures :
      
      On a 200 MHz sparcv9 machine, the division takes 64 cycles instead of 1
      cycle for a multiply.
      
      Doing some math, we can use a reciprocal multiplication instead of a divide.
      
      If we want to compute V = (A / B)  (A and B being u32 quantities)
      we can instead use :
      
      V = ((u64)A * RECIPROCAL(B)) >> 32 ;
      
      where RECIPROCAL(B) is precalculated to ((1LL << 32) + (B - 1)) / B
      
      Note :
      
      I wrote pure C code for clarity. gcc output for i386 is not optimal but
      acceptable :
      
      mull   0x14(%ebx)
      mov    %edx,%eax // part of the >> 32
      xor     %edx,%edx // useless
      mov    %eax,(%esp) // could be avoided
      mov    %edx,0x4(%esp) // useless
      mov    (%esp),%ebx
      
      [akpm@osdl.org: small cleanups]
      Signed-off-by: default avatarEric Dumazet <dada1@cosmosbay.com>
      Cc: Christoph Lameter <clameter@sgi.com>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      6a2d7a95
  12. 12 Dec, 2006 1 commit
  13. 10 Dec, 2006 2 commits
  14. 08 Dec, 2006 7 commits