1. 19 Mar, 2004 11 commits
    • Rusty Russell's avatar
      [PATCH] Hotplug CPUs: Kswapd Changes · 9bd3badf
      Rusty Russell authored
      Keep track of kswapds: it's OK that they get moved off a node when the
      last CPU goes down, but when a CPU comes back, we should try to move
      the kswapd back onto its node.
      9bd3badf
    • Rusty Russell's avatar
      [PATCH] Hotplug CPUs: Workqueue Changes · 6bcaa29d
      Rusty Russell authored
      Workqueues need to bring up/destroy the per-cpu thread on cpu up/down.
      
      1) Add a global list of workqueues, and keep the name in the structure
         (to name the newly created thread).
      
      2) Remove BUG_ON in run_workqueue, since thread is dragged off CPU when
         it goes down.
      
      3) Lock out cpu up/down in flush_workqueue, create_workqueue and
         destroy_workqueue.
      
      4) Add notifier to add/destroy workqueue threads, and take over work.
      6bcaa29d
    • Rusty Russell's avatar
      [PATCH] Hotplug CPUs: Make ksoftirqd Handle CPU Going Down · 010b27dc
      Rusty Russell authored
      Change ksoftirqd not to assume it's on the CPU: when a cpu goes down,
      it will be rudely dragged off.  Since do_softirq() uses
      smp_processor_id(), it's easiest to disable preemption, check that the
      cpu is still up, then call do_softirq().
      
      If the cpu is actually offline, wait for the notifier, which kills us.
      
      Take over tasklets from dead cpu in the notifier.
      
      Clean up redundant double assignment in CPU_UP callback.
      010b27dc
    • Rusty Russell's avatar
      [PATCH] Hotplug CPUs: Read Copy Update Changes · 211b2fce
      Rusty Russell authored
      Add hook for RCU to handle jobs on dead cpu.  Requires new
      tasklet_kill_immediate for RCU to clean up its tasklet (which might
      have been about to run, so tasklet_kill won't work).
      211b2fce
    • Rusty Russell's avatar
      [PATCH] Hotplug CPUs: Make Migration Thread Handle CPUs Going · eac9256c
      Rusty Russell authored
      Change the migration thread to directly use its cpu arg, rather than
      smp_processor_id(): if a cpu goes up then down rapidly, it can be on
      the wrong cpu just before it is stopped.
      
      Add code to stop the migration thread on CPU_DEAD and CPU_UP_CANCELED.
      
      Remove the (bogus) priority of the notifier.
      eac9256c
    • Rusty Russell's avatar
      [PATCH] Hotplug CPUs: Set prio of migration thread before CPU · e7243e1b
      Rusty Russell authored
      We need the migration thread to be RT as soon as the CPU comes online:
      for example, stop_machine() (another RT task) expects to yield to it.
      Extract the core of setscheduler() and do that when the migration
      thread is created.  rq lock is a precaution against the (theoretical)
      possibility of someone else doing setscheduer on this thread at the
      same time.
      e7243e1b
    • Rusty Russell's avatar
      [PATCH] Hotplug CPUs: Keep IRQs off in Migration Thread Calling · 1329b6ab
      Rusty Russell authored
      Currently the migration thread re-enables irqs, then calls
      move_task_away which disables IRQs again and actually does the move.
      This means there is a race where the migration thread gets preempted,
      and the target CPU can go down.
      
      Hold irqs disabled in migration thread across move_task_away(), which
      now doesn't need to save flags (the other caller is the hotplug CPU
      code, where irqs are also disabled).
      1329b6ab
    • Rusty Russell's avatar
      [PATCH] Hotplug CPUs: Take cpu Lock Around Migration · d7517532
      Rusty Russell authored
      Grab cpu lock around sched_migrate_task() and sys_sched_setaffinity().
      This is a noop without CONFIG_HOTPLUG_CPU.
      
      The sched_migrate_task may have a performance penalty on NUMA if lots
      of exec rebalancing is happening, however this only applies to
      CONFIG_NUMA and CONFIG_HOTPLUG_CPU, which noone does at the moment
      anyway.
      
      Also, the scheduler in -mm solves the race another way, so this will
      vanish then.
      d7517532
    • Rusty Russell's avatar
      [PATCH] Hotplug CPUs: don't pull onto offline CPUs · a4d53cb7
      Rusty Russell authored
      Don't move tasks onto offline cpus in load_balance and wake_task (the
      latter is caused by a completion run from stop_machine).
      
      Note that cpu_is_offline() is a noop when CONFIG_HOTPLUG_CPU=n.
      a4d53cb7
    • Rusty Russell's avatar
      [PATCH] Hotplug CPUs: Sysfs Online Attribute · edf19689
      Rusty Russell authored
      Add "online" sysfs attribute to cpus to bring them up and down.
      
      Again, only under CONFIG_HOTPLUG_CPU.
      edf19689
    • Rusty Russell's avatar
      [PATCH] Hotplug CPUs: cpu_down() · 036f2137
      Rusty Russell authored
      Implement cpu_down(): uses stop_machine to freeze the machine, then
      uses (arch-specific) __cpu_disable() and migrate_all_tasks().
      
      Whole thing under CONFIG_HOTPLUG_CPU, so doesn't break archs which
      don't define that.
      036f2137
  2. 18 Mar, 2004 29 commits
    • Andrew Morton's avatar
      [PATCH] remove_suid() should return error code · c884a1a3
      Andrew Morton authored
      From: Nikita Danilov <Nikita@Namesys.COM>
      
      remove_suid() ignores return value of notify_change()->i_op->setattr().
      This mean, that even if file system fails to clear suid bit,
      generic_file_aio_write_nolock() proceeds with write, which is unsafe.
      
      Actually, even ext2's ->setattr() can fail, when trying to update ACL, for
      example.
      
      Attached patch modifies remove_suid() to return result of ->setattr(), and
      updates in-tree callers.
      c884a1a3
    • Andrew Morton's avatar
      [PATCH] meye driver update · 705e71d4
      Andrew Morton authored
      From: Stelian Pop <stelian@popies.net>
      
      This patchlet is just a resync with my tree, it only increments the meye
      driver version number and makes some small comment changes as suggested by
      Randy Dunlap.
      705e71d4
    • Andrew Morton's avatar
      [PATCH] VM overcommit documentation fixes · 2860cb86
      Andrew Morton authored
      From: Andy Whitcroft <andyw@uk.ibm.com>
      
      Whilst looking at the memory overcommit logic I noticed that the pointer to
      the documentation from the *_vm_enough_memory calls is incorrect.  Also
      that in one instance the routine does not have the expected pointers.
      2860cb86
    • Andrew Morton's avatar
      [PATCH] sonypi devinit section usage · c1d1c7cd
      Andrew Morton authored
      From: Stelian Pop <stelian@popies.net>
      
      This patch removes the usage of __devinit in the srs methods of the sonypi
      driver, because those functions are also called from sonypi_pm_callback().
      
      Patch originally from Randy Dunlap.
      c1d1c7cd
    • Andrew Morton's avatar
      [PATCH] add note about "Copyright" to SubmittingDrivers · 647abae9
      Andrew Morton authored
      From: Grant Grundler <grundler@parisc-linux.org>
      
      This patch adds a comment to "Documentation/SubmittingDrivers" about the
      importance of adding a Copyright notice in submitted code.
      
      The parisc-linux port has neglected this in the past and I've been slowly
      trying to correct that (along with proper GPL header).
      
      While I make it sound like GPL is the "only" acceptable license, I'll leave
      it up to lawyers to determine what other appropriate license could be used
      for a new driver.
      647abae9
    • Andrew Morton's avatar
      [PATCH] pte_chain comment fix · f1802d1c
      Andrew Morton authored
      From: Carl Spalletta <ioanamitu@yahoo.com>
      
      Fix a comment bug.
      f1802d1c
    • Andrew Morton's avatar
      [PATCH] EDD: split assembly code · b6187328
      Andrew Morton authored
      From: Matt Domsch <Matt_Domsch@dell.com>
      
      Split EDD assembly code from setup.S into edd.S.  This will enable it to be
      #included into x86-64 too.
      b6187328
    • Andrew Morton's avatar
      [PATCH] EDD: move code from i386-specific locations to generic · 51900ee5
      Andrew Morton authored
      From: Matt Domsch <Matt_Domsch@dell.com>
      
      move edd.c from arch/i386/kernel to new dir drivers/firmware.  Fix up
      makefiles and Kconfigs.
      51900ee5
    • Andrew Morton's avatar
      [PATCH] EDD: move code from i386-specific locations to generic · 927f7639
      Andrew Morton authored
      From: Matt Domsch <Matt_Domsch@dell.com>
      
      Three patches to move the BIOS Enhanced Disk Drive code from i386-specific
      locations into more generic locations, which will allow it to be used on
      x86-64 as well.
      
      move edd.h from include/asm-i386 to include/linux
      927f7639
    • Andrew Morton's avatar
      [PATCH] Fix uninlined memcmp on i386 · d50e304a
      Andrew Morton authored
      From: DHollenbeck <dick@softplc.com>
      
      This patch was needed against a pristine 2.6.4 kernel when compiling with
      "gcc 3.4 _very recent_" using the -Os option.
      
      Without this patch, modules would use a non-inline memcmp() and then not
      find it in the kernel, causing depmod to complain and some modules not to
      load.
      d50e304a
    • Andrew Morton's avatar
      [PATCH] fix HZ leaking to userspace in BSD accounting · aa550c0d
      Andrew Morton authored
      From: Tim Schmielau <tim@physik3.uni-rostock.de>
      
      BSD accounting was missed in the conversion from HZ to USER_HZ.  I thought
      nobody cared, but apparently there are still users to it.
      aa550c0d
    • Andrew Morton's avatar
      [PATCH] zlib: use kernel min/max · 65a0fc80
      Andrew Morton authored
      From: "Randy.Dunlap" <rddunlap@osdl.org>
      
      From: Michael Veeck <michael.veeck@gmx.net>
      
      Remove unnecessary min/max macros and changes calls to use kernel.h macros
      instead.
      65a0fc80
    • Andrew Morton's avatar
      [PATCH] sound: use kernel min/max · 688d6d30
      Andrew Morton authored
      From: "Randy.Dunlap" <rddunlap@osdl.org>
      
      From: Michael Veeck <michael.veeck@gmx.net>
      
      Remove unnecessary min/max macros and changes calls to use kernel.h macros
      instead.
      688d6d30
    • Andrew Morton's avatar
      [PATCH] reiserfs: use kernel min/max · aee768e0
      Andrew Morton authored
      From: "Randy.Dunlap" <rddunlap@osdl.org>
      
      From: Michael Veeck <michael.veeck@gmx.net>
      
      Remove unnecessary min/max macros and changes calls to use kernel.h macros
      instead.
      aee768e0
    • Andrew Morton's avatar
      [PATCH] procfs: use kernel min/max · f4358df8
      Andrew Morton authored
      From: "Randy.Dunlap" <rddunlap@osdl.org>
      
      From: Michael Veeck <michael.veeck@gmx.net>
      
      Patch (against 2.6.3) removes unnecessary min/max macros and changes calls to
      use kernel.h macros instead.
      f4358df8
    • Andrew Morton's avatar
      [PATCH] ip2: fix double operator · ac1a964d
      Andrew Morton authored
      From: "Randy.Dunlap" <rddunlap@osdl.org>
      
      This trivial patch fixes the bug #320:
      
      http://bugme.osdl.org/show_bug.cgi?id=320
      
      The additional comment:
      
      http://bugme.osdl.org/show_bug.cgi?id=320#c1
      
      Is wrong, because it will send the command twice.
      
      We only want to see if the command got success, thus is not necessary
      to test against < 0 (if the return value is not 1, we got a error).
      
      Note that I'm using the function (bad) style.
      ac1a964d
    • Andrew Morton's avatar
      [PATCH] doc. updates/typos · 56b586b8
      Andrew Morton authored
      From: "Randy.Dunlap" <rddunlap@osdl.org>
      
      Remove the rest of references to smp.tex
      Documentation/cpufreq => Documentation/cpu-freq
      DocBook/tulip.{pdf,ps,html} => DocBook/tulip-user.{pdf,ps,html}
      Bunch of other typos.
      56b586b8
    • Andrew Morton's avatar
      [PATCH] slab: start_cpu_timer() can be __init · 85328e8b
      Andrew Morton authored
      From: "Randy.Dunlap" <rddunlap@osdl.org>
      
      From: Luiz Fernando Capitulino <lcapitulino@prefeitura.sp.gov.br>
      85328e8b
    • Andrew Morton's avatar
      [PATCH] 8250_pnp: probe and remove can be __devinit/__devexit · 02bb9156
      Andrew Morton authored
      From: "Randy.Dunlap" <rddunlap@osdl.org>
      
      From: Luiz Fernando Capitulino <lcapitulino@prefeitura.sp.gov.br>
      02bb9156
    • Andrew Morton's avatar
      [PATCH] config: choice fix · 5a87d187
      Andrew Morton authored
      From: Roman Zippel <zippel@linux-m68k.org>
      
      When a boolean choice value has a dependency of 'm' it can be shortly
      treated as a tristate symbol.  This fixes this and also add a small
      optimization to precompute the value of the module symbol instead of
      checking it all the time.
      5a87d187
    • Andrew Morton's avatar
      [PATCH] config: persistent qconf configuration · 6fa4a50c
      Andrew Morton authored
      From: Roman Zippel <zippel@linux-m68k.org>
      
      This patch is by Andreas Fester <Andreas.Fester@gmx.de> and saves and
      restores various runtime options of qconf.
      6fa4a50c
    • Andrew Morton's avatar
      [PATCH] config: disable debug prints · a72c5f31
      Andrew Morton authored
      From: Roman Zippel <zippel@linux-m68k.org>
      
      This disables some debug prints, which are more confusing than helpful for
      normal users.
      a72c5f31
    • Andrew Morton's avatar
      [PATCH] kconfig: don't rename target dir when saving config · 86b5b992
      Andrew Morton authored
      From: Roman Zippel <zippel@linux-m68k.org>
      
      conf_write() now checks the target path whether it's a directory, so it
      saves the config in the directory instead of renaming it.
      86b5b992
    • Andrew Morton's avatar
      [PATCH] kconfig: fix xconfig on /lib64 properly · dfc78642
      Andrew Morton authored
      From: Roman Zippel <zippel@linux-m68k.org>
      
      The correct link path is needed at config time to find the correct library,
      so let's ask gcc for the real path.
      dfc78642
    • Andrew Morton's avatar
      [PATCH] don't abuse empty_zero_page (x86) · 10f0bf6b
      Andrew Morton authored
      From: Brian Gerst <bgerst@didntduck.org>
      
      Don't abuse empty_zero_page as temporary storage for boot parameters and
      command line.  This is a holdover from the days before discardable init
      sections.
      10f0bf6b
    • Andrew Morton's avatar
      [PATCH] proper alignment of init task in kernel image · 8a87e758
      Andrew Morton authored
      From: Matt Mackall <mpm@selenic.com>
      
      This keeps the alignment of the init task matched with the stack size.
      8a87e758
    • Andrew Morton's avatar
      [PATCH] sysfs: pin kobjects to fix use-after-free crashes · 2c0e195b
      Andrew Morton authored
      From: Maneesh Soni <maneesh@in.ibm.com>
      
      Fix a sysfs use-after-free crash.  The problem we have is of the kobject
      going away while we have a live dentry (the corresponding sysfs directory)
      still pointing to it throuh d_fsdata pointer.  The patch makes sure to keep
      the kobject alive by taking a reference to it during the life-time of
      corresponding dentry.
      
      
      o The following pins the kobject when sysfs assigns dentry and inode to
        the kobject. This ensures that kobject is alive during the life time of
        the dentry and inode, and people holding ref. to the dentry can access the
        kobject without any problems.
      
      o The ref. taken for the kobject is released through dentry->d_op->d_iput()
        call when the dentry ref. count drops to zero and it is being freed. For
        this sysfs_dentry_operations is introduced.
      
      For testing one has to run the following test on a SMP box:
      
      1) Do insmod/rmmod "dummy.o" network driver in a forever loop.
      
      2) Parallely do "find /sys/class/net | xargs cat" also in a forever loop.
      2c0e195b
    • Andrew Morton's avatar
      [PATCH] Fix dentry refcounting in sysfs_remove_group() · b67cee68
      Andrew Morton authored
      From: Maneesh Soni <maneesh@in.ibm.com>
      
      The following patch fixes the dentry refcounting, during
      sysfs_remove_group() and also adds the missing dput() for the "extra" ref
      taken during sysfs_create() for the sub-directory dentry corresponding to
      attribute group.
      b67cee68
    • Andrew Morton's avatar
      [PATCH] sysfs_remove_dir-vs-dcache_readdir race fix · f8f71d1b
      Andrew Morton authored
      From: Maneesh Soni <maneesh@in.ibm.com>
      
      I have re-done the patch fixing the race between sysfs_remove_dir() and
      dcache_readdir().  If you recall, sysfs_remove_dir(kobj) manipulates the
      ->d_subdirs list for the dentry corresponding to the sysfs directory being
      removed.  It can end up deleting the cursor dentry which is added to the
      ->d_subdirs list during a concurrent dcache_dir_open() ==> dcache_readdir()
      for the same directory.  And as a result dcache_readdir() can loop for ever
      holding dcache_lock.
      
      The earlier patch which was included in -mm1 created problems which
      resulted in list_del() BUG hits in prune_dcache().  The reason I think is
      that in the main loop in sysfs_remove_dir(), dcache_lock is dropped and
      re-acquired, and this could result in inconsistent ->d_subdirs list and
      prune_dcache() may try to delete an already deleted dentry.  I have
      corrected this in the new patch as below.
      
      I could do sysfs_remove_dir() more neatly on sysfs backing store patch set
      as there I don't use the ->d_subdirs list.  Instead the list of children
      sysfs_dirent works out well.  But untill sysfs backing store patch is
      picked up the existing code suffer from this race.  This can be easily
      tested by running following two loops on a SMP box
      
      # while true; do insmod drivers/net/dummy.ko; rmmod dummy; done
      # while true; do find /sys/class/net > /dev/null; done
      
      
      o This patch fixes sysfs_remove_dir race with dcache_readdir.  There is
        no need for sysfs_remove_dir to modify the d_subdirs list for the
        directory being deleted as it is taken care in the final dput.  Modifying
        this list results in inconsistent d_subdirs list and causes infinite loop
        in concurrently occurring dcache_readdir.
      
      o The main loop is restarted every time, dcache_lock is re-acquired in
        order to maintain consistency.
      f8f71d1b