1. 18 Feb, 2004 23 commits
    • Andrew Morton's avatar
      [PATCH] Use CPU_UP_PREPARE properly · 86c1b9ae
      Andrew Morton authored
      From: Rusty Russell <rusty@rustcorp.com.au>
      
      The cpu hotplug code actually provides two notifiers: CPU_UP_PREPARE
      which preceeds the online and can fail, and CPU_ONLINE which can't.
      
      Current usage is only done at boot, so this distinction doesn't
      matter, but it's a bad example to set.  This also means that the
      migration threads do not have to be higher priority than the
      others, since they are ready to go before any CPU_ONLINE callbacks
      are done.
      
      This patch is experimental but fairly straight foward: I haven't been
      able to test it since extracting it from the hotplug cpu code, so it's
      possible I screwed something up.
      86c1b9ae
    • Andrew Morton's avatar
      [PATCH] Remove More Unneccessary CPU Notifiers · 79caa7d5
      Andrew Morton authored
      From: Rusty Russell <rusty@rustcorp.com.au>
      
      Three more removed CPU notifiers extracted from the hotplug CPU patch.
      
      kernel/softirq.c: the tasklet cpu prepration callback is useless:
      the vectors are already initialized to NULL.  Even with the hotplug
      CPU patches, they're of little or no use.
      
      fs/buffer.c: once again, they are already initialized to zero.
      
      mm/page_alloc.c: once again, already initialized to zero.
      79caa7d5
    • Andrew Morton's avatar
      [PATCH] Minor workqueue.c cleanup · d01feda8
      Andrew Morton authored
      From: Rusty Russell <rusty@rustcorp.com.au>
      
      Move duplicated code to __queue_work(), and don't set the CPU for
      queue_delayed_work() until the timer goes off.  The second one only has an
      effect on CONFIG_HOTPLUG_CPU where the CPU goes down and the timer goes off
      on a different CPU than it was scheduled on.
      d01feda8
    • Andrew Morton's avatar
      [PATCH] Remove kstat cpu notifiers · 35651c8c
      Andrew Morton authored
      From: Rusty Russell <rusty@rustcorp.com.au>
      
      Some well-meaning person put a notifier in for CPUs to update the kstat
      structures in sched.c.  However, it does nothing, and even with the full
      hotplug CPU patch, it still does nothing.
      
      Simple counters very rarely need anything done when CPUs come up or go
      down.  If you have per-cpu caches, or per-cpu threads, you need to do
      something.  But very rarely for stats.
      35651c8c
    • Andrew Morton's avatar
      [PATCH] kthread primitive · 933ba102
      Andrew Morton authored
      From: Rusty Russell <rusty@rustcorp.com.au>
      
      These two patches provide the framework for stopping kernel threads to
      allow hotplug CPU.  This one just adds kthread.c and kthread.h, next
      one uses it.
      
      Most importantly, adds a Monty Python quote to the kernel.
      
      Details:
      
      The hotplug CPU code introduces two major problems:
      
      1) Threads which previously never stopped (migration thread,
         ksoftirqd, keventd) have to be stopped cleanly as CPUs go offline.
      2) Threads which previously never had to be created now have
         to be created when a CPU goes online.
      
      Unfortunately, stopping a thread is fairly baroque, involving memory
      barriers, a completion and spinning until the task is actually dead
      (for example, complete_and_exit() must be used if inside a module).
      
      There are also three problems in starting a thread:
      1) Doing it from a random process context risks environment contamination:
         better to do it from keventd to guarantee a clean environment, a-la
         call_usermodehelper.
      2) Getting the task struct without races is a hard: see kernel/sched.c
         migration_call(), kernel/workqueue.c create_workqueue_thread().
      3) There are races in starting a thread for a CPU which is not yet
         online: migration thread does a complex dance at the moment for
         a similar reason (there may be no migration thread to migrate us).
      
      Place all this logic in some primitives to make life easier:
      kthread_create() and kthread_stop().  These primitives require no
      extra data-structures in the caller: they operate on normal "struct
      task_struct"s.
      
      Other changes:
      
      - Expose keventd_up(), as keventd and migration threads will use kthread to
        launch, and kthread normally uses workqueues and must recognize this case.
      
      - Kthreads created at boot before "keventd" are spawned directly.  However,
        this means that they don't have all signals blocked, and hence can be
        killed.  The simplest solution is to always explicitly block all signals in
        the kthread.
      
      - Change over the migration threads, the workqueue threads and the
        ksoftirqd threads to use kthread.
      
      - module.c currently spawns threads directly to stop the machine, so a
        module can be atomically tested for removal.
      
      - Unfortunately, this means that the current task is manipulated (which
        races with set_cpus_allowed, for example), and it can't set its priority
        artificially high.  Using a kernel thread can solve this cleanly, and with
        kthread_run, it's simple.
      
      - kthreads use keventd, so they inherit its cpus_allowed mask.  Unset it.
        All current users set it explicity anyway, but it's nice to fix.
      
      - call_usermode_helper uses keventd, so the process created inherits its
        cpus_allowed mask.  Unset it.
      
      - Prevent errors in boot when cpus_possible() contains a cpu which is not
        online (ie.  a cpu didn't come up).  This doesn't happen on x86, since a
        boot failure makes that CPU no longer possible (hacky, but it works).
      
      - When the cpu fails to come up, some callbacks do kthread_stop(), which
        doesn't work without keventd (which hasn't started yet).  Call it directly,
        and take care that it restores signal state (note: do_sigaction does a
        flush on blocked signals, so we don't need to repeat it).
      933ba102
    • Andrew Morton's avatar
      [PATCH] ACPI PM timer · ad77865c
      Andrew Morton authored
      From: Dominik Brodowski <linux@dominikbrodowski.de>,
            John Stultz <johnstul@us.ibm.com>,
            Dmitry Torokhov
      
      Add the ACPI Powermanagement Timer as x86 kernel timing source.  Unlike the
      Time Stamp Counter, it is a reliable timing source which does not get
      affected by aggressive powermanagement features like CPU frequency scaling.
      
      Some ideas and some code are based on Arjan van de Ven's implementation for
      2.4, and on R.  Byron Moore's drivers/acpi/hardware/hwtimer.c.
      
      
      We also replace the loop based delay_pmtmr with a TSC based delay_pmtmr,
      which resolves a number of issues caused by the loop based delay.  Unsynced
      TSCs as well frequency changing TSCs will effect the length of __delay(), but
      it seems this method works best.
      ad77865c
    • Andrew Morton's avatar
      [PATCH] loop: remove redundant initialisation · ee6afa31
      Andrew Morton authored
      From: "Yury V. Umanets" <umka@namesys.com>
      
      This removes a redundant assignment in loop.
      ee6afa31
    • Andrew Morton's avatar
      [PATCH] loop.c doesn't fail init gracefully · 685eba2c
      Andrew Morton authored
      From: BlaisorBlade <blaisorblade_spam@yahoo.it>
      
      loop_init doesn't fail gracefully for two reasons:
      
      1) If initialization of loop driver fails, we have an call to
         devfs_add("loop") without any devfs_remove; I add that.
      
      2) On lwn.net 2.6 kernel docs, Jonathan Corbet says: "If you are calling
         add_disk() in your driver initialization routine, you should not fail
         the initialization process after the first call."
      
      So I make loop.c conform to this request by moving add_disk after all
      memory allocations.
      685eba2c
    • Andrew Morton's avatar
      [PATCH] loop: BIO handling fix · 56b63427
      Andrew Morton authored
      From: Ben Slusky <sluskyb@paranoiacs.org>
      
      One more patch --- this fixes a minor bio handling bug in the filebacked
      code path. I'd fixed it incidentally in the loop-recycle patch.
      
      I don't think you could actually see damage from this bug unless you
      run device mapper on top of loop devices, but still this is the correct
      behavior.
      56b63427
    • Andrew Morton's avatar
      [PATCH] remove useless highmem bounce from loop/cryptoloop · 3185e663
      Andrew Morton authored
      From: Ben Slusky <sluskyb@paranoiacs.org>
      
      The attached patch changes the loop device transfer functions (including
      cryptoloop transfers) to accept page/offset pairs instead of virtual
      addresses, and removes the redundant kmaps in do_lo_send, do_lo_receive,
      and loop_transfer_bio. Per Andrew Morton's request a while back.
      3185e663
    • Andrew Morton's avatar
      [PATCH] loop: remove the bio remapping capability · a34c0ae9
      Andrew Morton authored
      This patch removes the loop feature wherein we remap BIOs for block-backed
      loop.  So file-backed and block-backed loop are handled identically.
      
      It cleans up the code a lot and fixes the low-on-memory lockups which
      block-backed loop currently suffers.
      
      What we lose is the journalling ordering guarantees which
      exts-on-loop-on-blockdev had.  But dm-crypt provides that.
      a34c0ae9
    • Andrew Morton's avatar
      [PATCH] ppc64: iseries IRQ fix · 749e32b6
      Andrew Morton authored
      From: Stephen Rothwell <sfr@canb.auug.org.au>
      
      This patch lets 2.6.3-rc4 build and boot on an PPC64 iSeries box (at least
      for my configuration).  The veth.o bit in the networking Makefile got there
      by accident and should be removed anyway ...
      
      There is more to make it work properly (note the "Temporary hack"), but
      this gets us closer.
      749e32b6
    • Andrew Morton's avatar
      [PATCH] ppc64: fix debugger() warnings · 7f4afd7a
      Andrew Morton authored
      From: Anton Blanchard <anton@samba.org>
      
      Fix compile warnings and add some type safety to debugger macros.
      7f4afd7a
    • Andrew Morton's avatar
      [PATCH] ppc64: fix saved_command_line/cmd_line lengths · 06c3f1d6
      Andrew Morton authored
      From: Anton Blanchard <anton@samba.org>
      
      cmd_line was twice the size of saved_command_line but we did a strcpy from
      the larger into the smaller.  Create COMMAND_LINE_SIZE and use it.
      06c3f1d6
    • Andrew Morton's avatar
      [PATCH] ppc64: Fix prom.c warnings · 2115cc34
      Andrew Morton authored
      arch/ppc64/kernel/prom.c:200: warning: missing braces around initializer
      arch/ppc64/kernel/prom.c:200: warning: (near initialization for `hmt_thread_data[0]')
      arch/ppc64/kernel/prom.c: In function `prom_hold_cpus':
      arch/ppc64/kernel/prom.c:1090: warning: implicit declaration of function `_get_PIR'
      2115cc34
    • Andrew Morton's avatar
      [PATCH] msg.h needs list.h · 5434d62a
      Andrew Morton authored
      msg.h uses list_head.  (I'm not sure what config actually required this, but
      it is legit).
      5434d62a
    • Andrew Morton's avatar
      [PATCH] Remove BDEV_RAW and friends · b23c4682
      Andrew Morton authored
      These no longer do anything.
      
      This patch changes modules API.  It was acked by Arjan@RH and Hubert@Suse.
      b23c4682
    • Andrew Morton's avatar
      [PATCH] early printk tweaks · 80c085f9
      Andrew Morton authored
      - Use __pa() around the VGA base address: more friendly for the 4g/4g split.
      
      - Use cpu_relax() rather than open-coding rep_nop().
      
      - Default to 9600 baud
      
      - Move documentation to Documentation/kernel-parameters.txt
      
      - Make CONFIG_EARLY_PRINTK disableable if CONFIG_EMBEDDED
      80c085f9
    • Andrew Morton's avatar
      [PATCH] ia32 early printk · 6b2672bf
      Andrew Morton authored
      From: Andi Kleen <ak@muc.de>
      
      Implement VGA and serial early printk on x86.  We just include the x86_64
      version.
      6b2672bf
    • Andrew Morton's avatar
      [PATCH] Fix for PPP activ/passiv filter · cf4389cb
      Andrew Morton authored
      From: Karsten Keil <kkeil@suse.de>
      
      I found a bug in the PPPIOCSPASS PPPIOCSACTIVE IOCTL implementation in
      kernel 2.5/2.6.
      
      The current pppd code use a empty filter (uprog.len=0) to detach the filter
      in the kernel, but this code was removed in 2.5.71 while fixing a compiler
      warning.
      
      Here the new patch, also with better limit checking.
      
      The second patch check for flen == 0 in the filter check too, since later
      in this code a filter[flen - 1] access is done, which is not so funny with
      flen 0.  Maybe it's not really needed anymore, since with the first patch
      it would not longer called with flen=0.
      
      paulus says:
      
          It looks correct.  Previously we had (and in 2.4 we still have)
      
              if (uprog.len > 0 && uprog.len < 65536) {
      		...
      
          which gave warnings since uprog.len is unsigned short.  So someone
          decided that both parts of the condition were redundant.
      cf4389cb
    • Andrew Morton's avatar
      [PATCH] i4l: hisax deadlock fix · 93ab17e8
      Andrew Morton authored
      From: Karsten Keil <kkeil@suse.de>
      
      This patch fix a deadlock in HiSax (reported from David Woodhouse
      <dwmw2@infradead.org>).  upper layer was called back while holding the card
      lock fix is to move the wakeup call into BH handler to avoid direct
      callbacks.
      93ab17e8
    • Andrew Morton's avatar
      [PATCH] ISDN udpate · bb257be4
      Andrew Morton authored
      From: Karsten Keil <kkeil@suse.de>
      
      - new port of 2.4 I4L core to 2.6
      
      - new port of 2.4 I4L HiSax to 2.6
      
      - fixes for I4L CAPI subsystem to make it stable in 2.6
      
      - fix parameter handling of AVM ISA cards (calle)
      
      - cleanup ISDN config variables
      
      - SMP in act2000 and pcbit driver
      
      - remove check_region in act2000
      
      - mark hysdn, isdnloop and divert as BROKEN_ON_SMP
      bb257be4
    • Linus Torvalds's avatar
      Merge bk://linux-dj.bkbits.net/cpufreq · f7d6fe84
      Linus Torvalds authored
      into ppc970.osdl.org:/home/torvalds/v2.5/linux
      f7d6fe84
  2. 19 Feb, 2004 2 commits
  3. 18 Feb, 2004 15 commits
    • Linus Torvalds's avatar
      Merge bk://kernel.bkbits.net/davem/net-2.6 · f5106b15
      Linus Torvalds authored
      into ppc970.osdl.org:/home/torvalds/v2.5/linux
      f5106b15
    • Linus Torvalds's avatar
      Merge bk://gkernel.bkbits.net/net-drivers-2.5 · 5b4f4d19
      Linus Torvalds authored
      into ppc970.osdl.org:/home/torvalds/v2.5/linux
      5b4f4d19
    • Andrew Morton's avatar
      [PATCH] tulip printk warning fix · eecc0af5
      Andrew Morton authored
      Don't assume the size of a dma_addr_t
      eecc0af5
    • François Romieu's avatar
      [PATCH] 2.6.3 - drivers/net/sis190.c - Tx desc overflow · f16f29b7
      François Romieu authored
      Tx descriptor overflow - take II.
      
      Assume tp->dirty_tx = NUM_TX_DESC/2, tp->cur_tx = NUM_TX_DESC - 1,
      watch "entry" go beyond NUM_TX_DESC. Actually this is where the same
      bug in r8169 driver comes from.
      f16f29b7
    • Randy Dunlap's avatar
      [PATCH] tr/3c359: handle kmalloc failures during init · 714da829
      Randy Dunlap authored
      From: Pablo Menichini <pablo@menichini.com.ar>
      and maximilian attems <janitor@sternwelten.at>
      
      
      while looking at kj mails from 200212 and 200301
      this patch slept through
      originally from: Pablo Menichini <pablo@menichini.com.ar>
      rediffed and compile tested
      patch applies on plain 2.6.0
      
      maximilian attems <janitor@sternwelten.at>
      
      handle kmalloc failures during init
      
      diff -puN drivers/net/tokenring/3c359.c~tr3c_kmalloc drivers/net/tokenring/3c359.c
      
      
       linux-261-bk4-kj1-rddunlap/drivers/net/tokenring/3c359.c |   13 +++++++++++++
       1 files changed, 13 insertions(+)
      714da829
    • Don Fry's avatar
      [PATCH] 2.6.3 pcnet32.c transmit hang fix · 5f0ccf26
      Don Fry authored
      The transmit routine will stop interrupting and hang, causing the
      tx_timeout routine to attempt to restart the device when the 32-bit
      cur_tx counter wraps below dirty_tx.  If the device had called
      netif_stop_queue it will never call netif_wake_queue in the interrupt
      routine (at least on an IA32 system) due to 32-bit wrap around arithmetic.
      
      On my IA32 system 'dirty_tx > lp->cur_tx - TX_RING_SIZE + 2' would
      always evaluate to false when dirty and cur_tx were less than 15,
      preventing netif_wake_queue to be called.
      
      By starting dirty_tx and cur_tx at 0xfffffff0 (to reduce test time) I
      found that once cur_tx wrapped to zero, that transmitted buffers would
      never be unmapped or freed because 'while (dirty_tx < lp->cur_tx) {'
      was not true.  cur_tx would keep incrementing (in start_xmit) but dirty_tx
      would not (in pcnet32_interrupt), thus leaking skb's and pci map entries.
      On PPC machines, the system would quickly run out of pci maps.
      
      Fix tested on PPC and IA32.
      5f0ccf26
    • Randy Dunlap's avatar
      [PATCH] depca: remove double semi-colon · caddcf6d
      Randy Dunlap authored
      description:      remove double semi-colon typo;
      caddcf6d
    • Joseph Fannin's avatar
      [netdrvr sis900] fix multicast bug · ca15b788
      Joseph Fannin authored
      ca15b788
    • Shmulik Hen's avatar
      [PATCH] Add VLAN support in ALB mode · 18d45937
      Shmulik Hen authored
      Add capability to tag self generated ARP packets that are required
      for receive load balancing in bonding. VLAN Id's are saved and used
      each time a new IP connection is established since 8021q currently
      supports IP binding.
      
      Update module version and comment blocks.
      18d45937
    • Shmulik Hen's avatar
      [PATCH] Add VLAN support in TLB mode · 7d585d7e
      Shmulik Hen authored
      Add capability to tag self generated learning packets that are
      required to speed up port selection in the switch after a fail
      over in bonding since some switches will only update their MAC
      tables from tagged packets when VLAN support is turned on. All
      VLAN Id's that have been configured on top of the bond interface
      will be used in cyclic order.
      7d585d7e
    • Shmulik Hen's avatar
      [PATCH] Add support for HW accel. slaves · 7e299113
      Shmulik Hen authored
      Now that David Miller accepted the first half of this set into 2.6,
      I'm resending the last half to you for inclusion in netdev-2.6.
      
      Tested against latest netdev-2.6. Summary:
      
      Change the bond interface to publish full VLAN hardware acceleration
      offloading capabilities, and add capability in all xmit functions to
      take special care for VLAN HW accel. tagged skb's that are going out
      through a slave that is not offloading capable.
      
      Add a mechanism to collect and save the VLAN Id's that have been
      added on top of a bond interface, and propagate the register/add/kill
      operations to the slaves.
      
      Add blocking mechanism to prevent adding VLAN interfaces on top of a
      bond that contains VLAN challenged slaves and to prevent adding VLAN
      challenged slaves to a bond that already has VLAN interfaces on top
      of it.
      
      Add a section about VLAN to Documentation/networking/bonding.txt and
      also correct some minor spelling/grammer errors.
      7e299113
    • Jeroen Vreeken's avatar
      [PATCH] 6pack reinit bug · 5055a79b
      Jeroen Vreeken authored
      This patch is the same as to mkiss a while ago, the current code triggers a
      bug when reattaching a network device.
      5055a79b
    • Mirko Lindner's avatar
      [PATCH] [kernel 2.6] sk98lin: Insert revision version and date · 14309012
      Mirko Lindner authored
      to uniquely identify the files, it's necessary to add the version of
      each file. Please, don't remove the revision infos. It's really
      important for us.
      
      Patch 2/2
      [SK98LIN]: Insert revision version and date [back] into the files
      14309012
    • Mirko Lindner's avatar
      [PATCH] sk98lin: Added Support for Belkin adapter · a2dfeaf8
      Mirko Lindner authored
      Patch 1/2
      [SK98LIN]: Added Support for Belkin adapter
      [SK98LIN]: Don't handle Yukon2 cards at the moment
      a2dfeaf8
    • Don Fry's avatar
      [PATCH] 2.6.3 pcnet32.c SLAB_DEBUG length error fix · b1fb49c2
      Don Fry authored
      The pcnet32 driver uses the incorrect length (of zero) in
      pci_[un]map_single for receive buffers.  This is seen with SLAB_DEBUG
      enabled.
      
      Tested in IA32 system.  If this patch is not applied after my previous
      one hunks #1, #3, and #5 will have an offset of -2 lines.
      b1fb49c2