1. 28 12月, 2006 23 次提交
  2. 27 12月, 2006 5 次提交
  3. 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
  4. 23 12月, 2006 6 次提交
    • 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