1. 24 12月, 2006 6 次提交
    • L
      Linux 2.6.20-rc2 · 3bf8ba38
      Linus Torvalds 提交于
      3bf8ba38
    • L
      Fix up CIFS for "test_clear_page_dirty()" removal · cb876f45
      Linus Torvalds 提交于
      This also adds he required page "writeback" flag handling, that cifs
      hasn't been doing and that the page dirty flag changes made obvious.
      Acked-by: NSteve French <smfltc@us.ibm.com>
      Acked-by: NDave Kleikamp <shaggy@linux.vnet.ibm.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      cb876f45
    • O
      [PATCH] arch/i386/pci/mmconfig.c tlb flush fix · 8d1c4819
      OGAWA Hirofumi 提交于
      We use the fixmap for accessing pci config space in pci_mmcfg_read/write().
      The problem is in pci_exp_set_dev_base(). It is caching a last
      accessed address to avoid calling set_fixmap_nocache() whenever
      pci_mmcfg_read/write() is used.
      
        static inline void pci_exp_set_dev_base(int bus, int devfn)
        {
      	u32 dev_base = base | (bus << 20) | (devfn << 12);
      	if (dev_base != mmcfg_last_accessed_device) {
      		mmcfg_last_accessed_device = dev_base;
      		set_fixmap_nocache(FIX_PCIE_MCFG, dev_base);
      	}
        }
      
                  cpu0                                        cpu1
        ---------------------------------------------------------------------------
          pci_mmcfg_read("device-A")
              pci_exp_set_dev_base()
                  set_fixmap_nocache()
                                                    pci_mmcfg_read("device-B")
                                                        pci_exp_set_dev_base()
                                                            set_fixmap_nocache()
          pci_mmcfg_read("device-B")
              pci_exp_set_dev_base()
                  /* doesn't flush tlb */
      
      But if cpus accessed the above order, the second pci_mmcfg_read() on
      cpu0 doesn't flush the TLB, because "mmcfg_last_accessed_device" is
      device-B.  So, second pci_mmcfg_read() on cpu0 accesses a device-A via
      a previous TLB cache. This problem became the cause of several strange
      behavior.
      
      This patches fixes this situation by adds "mmcfg_last_accessed_cpu" check.
      
      [ Alternatively, we could make a per-cpu mapping area or something. Not
        that it's probably worth it, but if we wanted to avoid all locking and
        instead just disable preemption, that would be the way to go. --Linus ]
      Signed-off-by: NOGAWA Hirofumi <hogawa@miraclelinux.com>
      Signed-off-by: NOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8d1c4819
    • I
      [PATCH] suspend: fix suspend on single-CPU systems · e1d9fd2e
      Ingo Molnar 提交于
      Clark Williams reported that suspend doesnt work on his laptop on
      2.6.20-rc1-rt kernels. The bug was introduced by the following cleanup
      commit:
      
       commit 112cecb2
       Author: Siddha, Suresh B <suresh.b.siddha@intel.com>
       Date:   Wed Dec 6 20:34:31 2006 -0800
      
          [PATCH] suspend: don't change cpus_allowed for task initiating the suspend
      
      because with this change 'error' is not initialized to 0 anymore, if
      there are no other online CPUs. (i.e. if the system is single-CPU).
      
      the fix is the initialize it to 0. The really weird thing is that my
      version of gcc does not warn about this non-initialized variable
      situation ...
      
      (also fix the kernel printk in the error branch, it was missing a
       newline)
      Reported-by: NClark Williams <williams@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      e1d9fd2e
    • L
      Fix reiserfs after "test_clear_page_dirty()" removal · ffaa8200
      Linus Torvalds 提交于
      Thanks to Len Brown for testing this fix, since while they have in the
      past, none of my machines run reiserfs at the moment.
      
      Cc: Vladimir V. Saveliev <vs@namesys.com>
      Acked-by: NLen Brown <lenb@kernel.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      ffaa8200
    • L
      Clean up and export cancel_dirty_page() to modules · 8368e328
      Linus Torvalds 提交于
      Make cancel_dirty_page() act more like all the other dirty and writeback
      accounting functions: test for "mapping" being NULL, and do the
      NR_FILE_DIRY accounting purely based on mapping_cap_account_dirty()).
      
      Also, add it to the exports, so that modular filesystems can use it.
      Acked-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8368e328
  2. 23 12月, 2006 34 次提交
    • L
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 · 18ed1c05
      Linus Torvalds 提交于
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (68 commits)
        ACPI: replace kmalloc+memset with kzalloc
        ACPI: Add support for acpi_load_table/acpi_unload_table_id
        fbdev: update after backlight argument change
        ACPI: video: Add dev argument for backlight_device_register
        ACPI: Implement acpi_video_get_next_level()
        ACPI: Kconfig - depend on PM rather than selecting it
        ACPI: fix NULL check in drivers/acpi/osl.c
        ACPI: make drivers/acpi/ec.c:ec_ecdt static
        ACPI: prevent processor module from loading on failures
        ACPI: fix single linked list manipulation
        ACPI: ibm_acpi: allow clean removal
        ACPI: fix git automerge failure
        ACPI: ibm_acpi: respond to workqueue update
        ACPI: dock: add uevent to indicate change in device status
        ACPI: ec: Lindent once again
        ACPI: ec: Change #define to enums there possible.
        ACPI: ec: Style changes.
        ACPI: ec: Acquire Global Lock under EC mutex.
        ACPI: ec: Drop udelay() from poll mode. Loop by reading status field instead.
        ACPI: ec: Rename gpe_bit to gpe
        ...
      18ed1c05
    • M
      [PATCH] Call init_timer() for ISDN PPP CCP reset state timer · dab6df63
      Marcel Holtmann 提交于
      The function isdn_ppp_ccp_reset_alloc_state() sets ->timer.function
      and ->timer.data and later on calls add_timer() with no init_timer()
      ever done.
      
      Noted by Al Viro.
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Karsten Keil <kkeil@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      dab6df63
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 · f2a67a57
      Linus Torvalds 提交于
      * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
        [UDP]: Fix reversed logic in udp_get_port().
        [IPV6]: Dumb typo in generic csum_ipv6_magic()
        [SCTP]: make 2 functions static
        [SCTP]: Fix typo adaption -> adaptation as per the latest API draft.
        [SCTP]: Don't export include/linux/sctp.h to userspace.
        [TCP]: Fix ambiguity in the `before' relation.
        [ATM] drivers/atm/fore200e.c: Cleanups.
        [ATM]: Remove dead ATM_TNETA1570 option.
        NetLabel: correctly fill in unused CIPSOv4 level and category mappings
        NetLabel: perform input validation earlier on CIPSOv4 DOI add ops
      f2a67a57
    • J
      [PATCH] cfq-iosched: tighten allow merge criteria · 719d3402
      Jens Axboe 提交于
      The logic in cfq_allow_merge() wasn't clear enough - basically allow
      merging for the same queues only.  Do a fast check for 'rq and bio both
      sync/async' before doing the cfqq hash lookup.
      
      This is verified to work with the fixed elv_try_merge() from commit
      bb4067e3.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      719d3402
    • D
      [UDP]: Fix reversed logic in udp_get_port(). · 5c668704
      David S. Miller 提交于
      When this code was converted to use sk_for_each() the
      logic for the "best hash chain length" code was reversed,
      breaking everything.
      
      The original code was of the form:
      
      			size = 0;
      			do {
      				if (++size >= best_size_so_far)
      					goto next;
      			} while ((sk = sk->next) != NULL);
      			best_size_so_far = size;
      			best = result;
      		next:;
      
      and this got converted into:
      
      			sk_for_each(sk2, node, head)
      				if (++size < best_size_so_far) {
      					best_size_so_far = size;
      					best = result;
      				}
      
      Which does something very very different from the original.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5c668704
    • A
      [IPV6]: Dumb typo in generic csum_ipv6_magic() · b23e3536
      Al Viro 提交于
      ... duh
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b23e3536
    • A
      [SCTP]: make 2 functions static · 24123186
      Adrian Bunk 提交于
      This patch makes the following needlessly global functions static:
      - ipv6.c: sctp_inet6addr_event()
      - protocol.c: sctp_inetaddr_event()
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NSridhar Samudrala <sri@us.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      24123186
    • I
    • S
      [SCTP]: Don't export include/linux/sctp.h to userspace. · a3f7f142
      Sridhar Samudrala 提交于
      This file contains protocol definitions and there are no SCTP apps
      that use this file.
      Signed-off-by: NSridhar Samudrala <sri@us.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a3f7f142
    • G
      [TCP]: Fix ambiguity in the `before' relation. · 9a036b9c
      Gerrit Renker 提交于
      While looking at DCCP sequence numbers, I stumbled over a problem with
      the following definition of before in tcp.h:
      
      static inline int before(__u32 seq1, __u32 seq2)
      {
              return (__s32)(seq1-seq2) < 0;
      }
      
      Problem: This definition suffers from an an ambiguity, i.e. always
      
                 before(a, (a + 2^31) % 2^32)) = 1
                 before((a + 2^31) % 2^32), a) = 1
      
               In text: when the difference between a and b amounts to 2^31,
               a is always considered `before' b, the function can not decide.
               The reason is that implicitly 0 is `before' 1 ... 2^31-1 ... 2^31
      
      Solution: There is a simple fix, by defining before in such a way that
                0 is no longer `before' 2^31, i.e. 0 `before' 1 ... 2^31-1
                By not using the middle between 0 and 2^32, before can be made
                unambiguous.
                This is achieved by testing whether seq2-seq1 > 0 (using signed
                32-bit arithmetic).
      
      I attach a patch to codify this. Also the `after' relation is basically
      a redefinition of `before', it is now defined as a macro after before.
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9a036b9c
    • A
      [ATM] drivers/atm/fore200e.c: Cleanups. · 1f8a5fb8
      Adrian Bunk 提交于
      This patch contains the following transformations from custom functions
      to standard kernel version:
      - fore200e_kmalloc() -> kzalloc()
      - fore200e_kfree() -> kfree()
      - fore200e_swap() -> cpu_to_be32()
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1f8a5fb8
    • A
      [ATM]: Remove dead ATM_TNETA1570 option. · 52a91071
      Adrian Bunk 提交于
      This patch removes the unconverted ATM_TNETA1570 option that also lacks
      any code in the kernel.
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      52a91071
    • P
      NetLabel: correctly fill in unused CIPSOv4 level and category mappings · caff5b6a
      Paul Moore 提交于
      Back when the original NetLabel patches were being changed to use Netlink
      attributes correctly some code was accidentially dropped which set all of the
      undefined CIPSOv4 level and category mappings to a sentinel value.  The result
      is the mappings data in the kernel contains bogus mappings which always map to
      zero.  This patch restores the old/correct behavior by initializing the mapping
      data to the correct sentinel value.
      Signed-off-by: NPaul Moore <paul.moore@hp.com>
      Signed-off-by: NJames Morris <jmorris@namei.org>
      caff5b6a
    • P
      NetLabel: perform input validation earlier on CIPSOv4 DOI add ops · 1fd2a25b
      Paul Moore 提交于
      There are a couple of cases where the user input for a CIPSOv4 DOI add
      operation was not being done soon enough; the result was unexpected behavior
      which was resulting in oops/panics/lockups on some platforms.  This patch moves
      the existing input validation code earlier in the code path to protect against
      bogus user input.
      Signed-off-by: NPaul Moore <paul.moore@hp.com>
      Signed-off-by: NJames Morris <jmorris@namei.org>
      1fd2a25b
    • P
      [PATCH] Fix up page_mkclean_one(): virtual caches, s390 · c2fda5fe
      Peter Zijlstra 提交于
       - add flush_cache_page() for all those virtual indexed cache
         architectures.
      
       - handle s390.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      c2fda5fe
    • P
      [PATCH] serial/uartlite: Only enable port if request_port succeeded · e21654a7
      Peter Korsgaard 提交于
      The uartlite driver used to always enable the port even if request_port
      failed causing havoc. This patch fixes it.
      Signed-off-by: NPeter Korsgaard <jacmet@sunsite.dk>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      e21654a7
    • E
      [PATCH] Fix reparenting to the same thread group. (take 2) · b2b2cbc4
      Eric W. Biederman 提交于
      This patch fixes the case when we reparent to a different thread in the
      same thread group.  This modifies the code so that we do not send
      signals and do not change the signal to send to SIGCHLD unless we have
      change the thread group of our parents.  It also suppresses sending
      pdeath_sig in this cas as well since the result of geppid doesn't
      change.
      
      Thanks to Oleg for spotting my bug of only fixing this for non-ptraced
      tasks.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Albert Cahalan <acahalan@gmail.com>
      Cc: Andrew Morton <akpm@osdl.org>
      Cc: Roland McGrath <roland@redhat.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Coywolf Qi Hunt <qiyong@fc-cn.com>
      Acked-by: NOleg Nesterov <oleg@tv-sign.ru>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b2b2cbc4
    • A
      [PATCH] build compile.h earlier · ef129412
      Andrew Morton 提交于
      compile.h is created super-late in the build.  But proc_misc.c want to include
      it, and it's generally not sane to have a header file in include/linux be
      created at the end of the build: it's either not present or, worse, wrong for
      most of the build.
      
      So the patch arranges for compile.h to be built at the start of the build
      process.  It also consolidates the compile.h rules with those for version.h
      and utsname.h, so they all get built together.
      
      I hope.  My chances of having got this right are about 2%.
      
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      ef129412
    • I
      [PATCH] sched: fix bad missed wakeups in the i386, x86_64, ia64, ACPI and APM idle code · 0888f06a
      Ingo Molnar 提交于
      Fernando Lopez-Lezcano reported frequent scheduling latencies and audio
      xruns starting at the 2.6.18-rt kernel, and those problems persisted all
      until current -rt kernels. The latencies were serious and unjustified by
      system load, often in the milliseconds range.
      
      After a patient and heroic multi-month effort of Fernando, where he
      tested dozens of kernels, tried various configs, boot options,
      test-patches of mine and provided latency traces of those incidents, the
      following 'smoking gun' trace was captured by him:
      
                       _------=> CPU#
                      / _-----=> irqs-off
                     | / _----=> need-resched
                     || / _---=> hardirq/softirq
                     ||| / _--=> preempt-depth
                     |||| /
                     |||||     delay
         cmd     pid ||||| time  |   caller
            \   /    |||||   \   |   /
        IRQ_19-1479  1D..1    0us : __trace_start_sched_wakeup (try_to_wake_up)
        IRQ_19-1479  1D..1    0us : __trace_start_sched_wakeup <<...>-5856> (37 0)
        IRQ_19-1479  1D..1    0us : __trace_start_sched_wakeup (c01262ba 0 0)
        IRQ_19-1479  1D..1    0us : resched_task (try_to_wake_up)
        IRQ_19-1479  1D..1    0us : __spin_unlock_irqrestore (try_to_wake_up)
        ...
        <idle>-0     1...1   11us!: default_idle (cpu_idle)
        ...
        <idle>-0     0Dn.1  602us : smp_apic_timer_interrupt (c0103baf 1 0)
        ...
         <...>-5856  0D..2  618us : __switch_to (__schedule)
         <...>-5856  0D..2  618us : __schedule <<idle>-0> (20 162)
         <...>-5856  0D..2  619us : __spin_unlock_irq (__schedule)
         <...>-5856  0...1  619us : trace_stop_sched_switched (__schedule)
         <...>-5856  0D..1  619us : trace_stop_sched_switched <<...>-5856> (37 0)
      
      what is visible in this trace is that CPU#1 ran try_to_wake_up() for
      PID:5856, it placed PID:5856 on CPU#0's runqueue and ran resched_task()
      for CPU#0. But it decided to not send an IPI that no CPU - due to
      TS_POLLING. But CPU#0 never woke up after its NEED_RESCHED bit was set,
      and only rescheduled to PID:5856 upon the next lapic timer IRQ. The
      result was a 600+ usecs latency and a missed wakeup!
      
      the bug turned out to be an idle-wakeup bug introduced into the mainline
      kernel this summer via an optimization in the x86_64 tree:
      
          commit 495ab9c0
          Author: Andi Kleen <ak@suse.de>
          Date:   Mon Jun 26 13:59:11 2006 +0200
      
          [PATCH] i386/x86-64/ia64: Move polling flag into thread_info_status
      
          During some profiling I noticed that default_idle causes a lot of
          memory traffic. I think that is caused by the atomic operations
          to clear/set the polling flag in thread_info. There is actually
          no reason to make this atomic - only the idle thread does it
          to itself, other CPUs only read it. So I moved it into ti->status.
      
      the problem is this type of change:
      
              if (!hlt_counter && boot_cpu_data.hlt_works_ok) {
      -               clear_thread_flag(TIF_POLLING_NRFLAG);
      +               current_thread_info()->status &= ~TS_POLLING;
                      smp_mb__after_clear_bit();
                      while (!need_resched()) {
                              local_irq_disable();
      
      this changes clear_thread_flag() to an explicit clearing of TS_POLLING.
      clear_thread_flag() is defined as:
      
              clear_bit(flag, &ti->flags);
      
      and clear_bit() is a LOCK-ed atomic instruction on all x86 platforms:
      
        static inline void clear_bit(int nr, volatile unsigned long * addr)
        {
                __asm__ __volatile__( LOCK_PREFIX
                        "btrl %1,%0"
      
      hence smp_mb__after_clear_bit() is defined as a simple compile barrier:
      
        #define smp_mb__after_clear_bit()       barrier()
      
      but the explicit TS_POLLING clearing introduced by the patch:
      
      +               current_thread_info()->status &= ~TS_POLLING;
      
      is not an atomic op! So the clearing of the TS_POLLING bit is freely
      reorderable with the reading of the NEED_RESCHED bit - and both now
      reside in different memory addresses.
      
      CPU idle wakeup very much depends on ordered memory ops, the clearing of
      the TS_POLLING flag must always be done before we test need_resched()
      and hit the idle instruction(s). [Symmetrically, the wakeup code needs
      to set NEED_RESCHED before it tests the TS_POLLING flag, so memory
      ordering is paramount.]
      
      Fernando's dual-core Athlon64 system has a sufficiently advanced memory
      ordering model so that it triggered this scenario very often.
      
      ( And it also turned out that the reason why these latencies never
        triggered on my testsystems is that i routinely use idle=poll, which
        was the only idle variant not affected by this bug. )
      
      The fix is to change the smp_mb__after_clear_bit() to an smp_mb(), to
      act as an absolute barrier between the TS_POLLING write and the
      NEED_RESCHED read. This affects almost all idling methods (default,
      ACPI, APM), on all 3 x86 architectures: i386, x86_64, ia64.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Tested-by: NFernando Lopez-Lezcano <nando@ccrma.Stanford.EDU>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      0888f06a
    • H
      [PATCH] jbd: wait for already submitted t_sync_datalist buffer to complete · 6f5a9da1
      Hisashi Hifumi 提交于
      In the current jbd code, if a buffer on BJ_SyncData list is dirty and not
      locked, the buffer is refiled to BJ_Locked list, submitted to the IO and
      waited for IO completion.
      
      But the fsstress test showed the case that when a buffer was already
      submitted to the IO just before the buffer_dirty(bh) check, the buffer was
      not waited for IO completion.
      
      Following patch solves this problem.  If it is assumed that a buffer is
      submitted to the IO before the buffer_dirty(bh) check and still being
      written to disk, this buffer is refiled to BJ_Locked list.
      Signed-off-by: NHisashi Hifumi <hifumi.hisashi@oss.ntt.co.jp>
      Cc: Jan Kara <jack@ucw.cz>
      Cc: "Stephen C. Tweedie" <sct@redhat.com>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      6f5a9da1
    • B
      [PATCH] fix s3c24xx gpio driver (include linux/workqueue.h) · 6d3a25f1
      Ben Dooks 提交于
      The general gpio driver includes seem to now depend on having
      <linux/workqueue.h> included before they are.
      Signed-off-by: NBen Dooks <ben-linux@fluff.org>
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      6d3a25f1
    • N
      [PATCH] md: fix a few problems with the interface (sysfs and ioctl) to md · 3f9d7b0d
      NeilBrown 提交于
      While developing more functionality in mdadm I found some bugs in md...
      
      - When we remove a device from an inactive array (write 'remove' to
        the 'state' sysfs file - see 'state_store') would should not
        update the superblock information - as we may not have
        read and processed it all properly yet.
      
      - initialise all raid_disk entries to '-1' else the 'slot sysfs file
        will claim '0' for all devices in an array before the array is
        started.
      
      - all '\n' not to be present at the end of words written to
        sysfs files
      
      - when we use SET_ARRAY_INFO to set the md metadata version,
        set the flag to say that there is persistant metadata.
      
      - allow GET_BITMAP_FILE to be called on an array that hasn't
        been started yet.
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3f9d7b0d
    • A
      [PATCH] increase CARDBUS_MEM_SIZE · fe0e5c4d
      Andrew Morton 提交于
      Linus sayeth:
      
      Google knows everything, and finds, on MS own site no less:
      
        "Windows 2000 default resources:
      
         One 4K memory window
      
         One 2 MB memory window
      
         Two 256-byte I/O windows"
      
      which is clearly utterly bogus and insufficient. But Microsoft apparently
      realized this, and:
      
        "Windows XP default resources:
      
         Because one memory window of 4K and one window of 2 MB are not
         sufficient for CardBus controllers in many configurations, Windows XP
         allocates larger memory windows to CardBus controllers where possible.
         However, resource windows are static (that is, the operating system
         does not dynamically allocate larger memory windows if new devices
         appear.) Under Windows XP, CardBus controllers will be assigned the
         following resources:
      
         One 4K memory window, as in Windows 2000
      
         64 MB memory, if that amount of memory is available. If 64 MB is not
         available the controller will receive 32 MB; if 32 MB is not available,
         the controller will receive 16 MB; if 16 MB is not available, the
         bridge will receive 8 MB; and so on down to a minimum assignment of 1
         MB in configurations where memory is too constrained for the operating
         system to provide a larger window.
      
         Two 256-byte I/O windows"
      
      So I think we have our answer. Windows uses one 4k window, and one 64MB
      window. And they are no more dynamic than we are (we _could_ try to do it
      dynamically, but let's face it, it's fairly painful to dynamically expand
      PCI bus resources - you may need to reprogram everything up to the root,
      so it would be absolutely crazy to do that unless you have some serious
      masochistic tendencies).
      
      So let's just increase our default value to 64M too.
      
      Cc: Markus Rechberger <mrechberger@gmail.com>
      Cc: Daniel Ritz <daniel.ritz@gmx.ch>
      Cc: Dominik Brodowski <linux@dominikbrodowski.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      fe0e5c4d
    • A
      [PATCH] relay: remove inlining · 192636ad
      Andrew Morton 提交于
                text    data     bss     dec     hex filename
      before:   4036      44       0    4080     ff0 kernel/relay.o
      after:    3727      44       0    3771     ebb kernel/relay.o
      
      Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      Cc: Tom Zanussi <zanussi@us.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      192636ad
    • J
      [PATCH] ptrace: Fix EFL_OFFSET value according to i386 pda changes · 8701ea95
      Jeremy Fitzhardinge 提交于
      The PDA patches introduced a bug in ptrace: it reads eflags from the wrong
      place on the target's stack, but writes it back to the correct place.  The
      result is a corrupted eflags, which is most visible when it turns interrupts
      off unexpectedly.
      
      This patch fixes this by making the ptrace code a little less fragile.  It
      changes [gs]et_stack_long to take a straightforward byte offset into struct
      pt_regs, rather than requiring all callers to do a sizeof(struct pt_regs)
      offset adjustment.  This means that the eflag's offset (EFL_OFFSET) on the
      target stack can be simply computed with offsetof().
      Signed-off-by: NJeremy Fitzhardinge <jeremy@xensource.com>
      Cc: Frederik Deweerdt <deweerdt@free.fr>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8701ea95
    • Y
      [PATCH] memory hotplug: fix compile error for i386 with NUMA config · 7c7e9425
      Yasunori Goto 提交于
      Fix compile error when config memory hotplug with numa on i386.
      
      The cause of compile error was missing of arch_add_memory(),
      remove_memory(), and memory_add_physaddr_to_nid().
      Signed-off-by: NYasunori Goto <y-goto@jp.fujitsu.com>
      Acked-by: NDavid Rientjes <rientjes@cs.washington.edu>
      Acked-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      7c7e9425
    • M
      [PATCH] mips: if_fddi.h: Add a missing inclusion · 080dd51d
      Maciej W. Rozycki 提交于
      This is a change to include <linux/netdevice.h> in <linux/if_fddi.h> which is
      needed for "struct fddi_statistics".
      Signed-off-by: NMaciej W. Rozycki <macro@linux-mips.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Jeff Garzik <jeff@garzik.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      080dd51d
    • M
      [PATCH] kernel-doc: remove Martin from MAINTAINERS · 73fa186e
      Martin Waitz 提交于
      I don't have the time to work on Linux Documentation, so I really should
      document that in MAINTAINERS.  With Randy, kernel-doc is in good hands
      anyway.
      Signed-off-by: NMartin Waitz <tali@admingilde.org>
      Cc: Randy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      73fa186e
    • R
      [PATCH] kernel-doc: allow unnamed structs/unions · 134fe01b
      Randy Dunlap 提交于
      Make kernel-doc support unnamed (anonymous) structs and unions.  There is
      one (union) in include/linux/skbuff.h (inside struct sk_buff) that is
      currently generating a kernel-doc warning, so this fixes that warning.
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      134fe01b
    • V
      [PATCH] fdtable: Provide free_fdtable() wrapper · 01b2d93c
      Vadim Lobanov 提交于
      Christoph Hellwig has expressed concerns that the recent fdtable changes
      expose the details of the RCU methodology used to release no-longer-used
      fdtable structures to the rest of the kernel.  The trivial patch below
      addresses these concerns by introducing the appropriate free_fdtable()
      calls, which simply wrap the release RCU usage.  Since free_fdtable() is a
      one-liner, it makes sense to promote it to an inline helper.
      Signed-off-by: NVadim Lobanov <vlobanov@speakeasy.net>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      01b2d93c
    • P
      [PATCH] gxt4500: Fix colormap and PLL setting, support GXT6000P · 31fccf7f
      Paul Mackerras 提交于
      This fixes some bugs in the gxt4500 framebuffer driver, and adds support
      for GXT6000P cards.
      
      First, I had the red and blue channels swapped in the colormap update code,
      resulting in penguins' noses and feet turning blue (though the penguins
      weren't actually shivering :).
      
      Secondly, the code that calculated the values to put in the PLL that
      generates the pixel clock wasn't observing some constraints that I wasn't
      originally aware of, but am now that I have some documentation on the chip.
      
      The GXT6000P is essentially identical from software's point of view, except
      for a different reference clock for the PLL, and the addition of a geometry
      engine (which this driver doesn't use).
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      Cc: James Simmons <jsimmons@infradead.org>
      Cc: "Antonino A. Daplas" <adaplas@pol.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      31fccf7f
    • A
      [PATCH] tlclk: delete unnecessary sysfs_remove_group · 5e40508e
      Akinobu Mita 提交于
      It is unnecessary and invalid to call sysfs_remove_group() after
      sysfs_create_group() failure.
      
      Cc: Sebastien Bouchard <sebastien.bouchard@ca.kontron.com>
      Cc: Mark Gross <mark.gross@intel.com>
      Signed-off-by: NAkinobu Mita <akinobu.mita@gmail.com>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5e40508e
    • B
      [PATCH] MAINTAINERS: fix email for S3C2410 and S3C2440 · 449d4dd5
      Ben Dooks 提交于
      Change the email address for the S3C2410 and S3C2440 maintainer.  The old
      addresses have been deleted due to spam issues.
      Signed-off-by: NBen Dooks <ben-linux@fluff.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      449d4dd5
    • J
      [PATCH] microcode: fix mc_cpu_notifier section warning · be31f9cb
      Jean Delvare 提交于
      Structure mc_cpu_notifier references a __cpuinit function, but isn't
      declared __cpuinitdata itself:
      
      WARNING: arch/i386/kernel/microcode.o - Section mismatch: reference
      to .init.text: from .data after 'mc_cpu_notifier' (at offset 0x118)
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      Cc: Tigran Aivazian <tigran@aivazian.fsnet.co.uk>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      be31f9cb