1. 05 12月, 2008 22 次提交
  2. 04 12月, 2008 6 次提交
  3. 03 12月, 2008 12 次提交
    • A
      powerpc/83xx: Fix MCU support merge issue in mpc8349emitx.dts · dafdb613
      Anton Vorontsov 提交于
      Just found the merge issue in 44274698
      ("powerpc/83xx: Add support for MCU microcontroller in .dts files"):
      the commit adds the MCU controller node into the DMA node, which is
      wrong because the MCU sits on the I2C bus. Fix this by moving the MCU
      node into the I2C controller node.
      
      The original patch[1] was OK though. ;-)
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      dafdb613
    • M
      block: fix setting of max_segment_size and seg_boundary mask · 0e435ac2
      Milan Broz 提交于
      Fix setting of max_segment_size and seg_boundary mask for stacked md/dm
      devices.
      
      When stacking devices (LVM over MD over SCSI) some of the request queue
      parameters are not set up correctly in some cases by default, namely
      max_segment_size and and seg_boundary mask.
      
      If you create MD device over SCSI, these attributes are zeroed.
      
      Problem become when there is over this mapping next device-mapper mapping
      - queue attributes are set in DM this way:
      
      request_queue   max_segment_size  seg_boundary_mask
      SCSI                65536             0xffffffff
      MD RAID1                0                      0
      LVM                 65536                 -1 (64bit)
      
      Unfortunately bio_add_page (resp.  bio_phys_segments) calculates number of
      physical segments according to these parameters.
      
      During the generic_make_request() is segment cout recalculated and can
      increase bio->bi_phys_segments count over the allowed limit.  (After
      bio_clone() in stack operation.)
      
      Thi is specially problem in CCISS driver, where it produce OOPS here
      
          BUG_ON(creq->nr_phys_segments > MAXSGENTRIES);
      
      (MAXSEGENTRIES is 31 by default.)
      
      Sometimes even this command is enough to cause oops:
      
        dd iflag=direct if=/dev/<vg>/<lv> of=/dev/null bs=128000 count=10
      
      This command generates bios with 250 sectors, allocated in 32 4k-pages
      (last page uses only 1024 bytes).
      
      For LVM layer, it allocates bio with 31 segments (still OK for CCISS),
      unfortunatelly on lower layer it is recalculated to 32 segments and this
      violates CCISS restriction and triggers BUG_ON().
      
      The patch tries to fix it by:
      
       * initializing attributes above in queue request constructor
         blk_queue_make_request()
      
       * make sure that blk_queue_stack_limits() inherits setting
      
       (DM uses its own function to set the limits because it
       blk_queue_stack_limits() was introduced later.  It should probably switch
       to use generic stack limit function too.)
      
       * sets the default seg_boundary value in one place (blkdev.h)
      
       * use this mask as default in DM (instead of -1, which differs in 64bit)
      
      Bugs related to this:
      https://bugzilla.redhat.com/show_bug.cgi?id=471639
      http://bugzilla.kernel.org/show_bug.cgi?id=8672Signed-off-by: NMilan Broz <mbroz@redhat.com>
      Reviewed-by: NAlasdair G Kergon <agk@redhat.com>
      Cc: Neil Brown <neilb@suse.de>
      Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Cc: Tejun Heo <htejun@gmail.com>
      Cc: Mike Miller <mike.miller@hp.com>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      0e435ac2
    • T
      block: internal dequeue shouldn't start timer · 53a08807
      Tejun Heo 提交于
      blkdev_dequeue_request() and elv_dequeue_request() are equivalent and
      both start the timeout timer.  Barrier code dequeues the original
      barrier request but doesn't passes the request itself to lower level
      driver, only broken down proxy requests; however, as the original
      barrier code goes through the same dequeue path and timeout timer is
      started on it.  If barrier sequence takes long enough, this timer
      expires but the low level driver has no idea about this request and
      oops follows.
      
      Timeout timer shouldn't have been started on the original barrier
      request as it never goes through actual IO.  This patch unexports
      elv_dequeue_request(), which has no external user anyway, and makes it
      operate on elevator proper w/o adding the timer and make
      blkdev_dequeue_request() call elv_dequeue_request() and add timer.
      Internal users which don't pass the request to driver - barrier code
      and end_that_request_last() - are converted to use
      elv_dequeue_request().
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Mike Anderson <andmike@linux.vnet.ibm.com>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      53a08807
    • C
      block: set disk->node_id before it's being used · bf91db18
      Cheng Renquan 提交于
      disk->node_id will be refered in allocating in disk_expand_part_tbl, so we
      should set it before disk->node_id is refered.
      Signed-off-by: NCheng Renquan <crquan@gmail.com>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      bf91db18
    • P
      When block layer fails to map iov, it calls bio_unmap_user to undo · 53cc0b29
      Petr Vandrovec 提交于
      mapping.  Which is good if pages were mapped - but if they were provided
      by someone else and just copied then bad things happen - pages are
      released once here, and once by caller, leading to user triggerable BUG
      at include/linux/mm.h:246.
      Signed-off-by: NPetr Vandrovec <petr@vandrovec.name>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      53cc0b29
    • C
      sparc64: Fix bug in PTRACE_SETFPREGS64 handling. · ee4ee527
      Chris Torek 提交于
      From: Chris Torek <chris.torek@windriver.com>
      
      >The SPARC64 kernel code for PTRACE_SETFPREGS64 appears to be an exact copy 
      >of that for PTRACE_GETFPREGS64.  This means that gdbserver and native 
      >64-bit GDB cannot set floating-point registers.
      
      It looks like a simple typo.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ee4ee527
    • B
      powerpc: Fix dma_map_sg() cache flushing on non coherent platforms · 2434bbb3
      Benjamin Herrenschmidt 提交于
      On PowerPC 4xx or other non cache-coherent platforms, we lost the
      appropriate cache flushing in dma_map_sg() when merging the 32 and
      64-bit DMA code (commit 4fc665b8,
      "powerpc: Merge 32 and 64-bit dma code").  This restores it.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Acked-by: NBecky Bruce <beckyb@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      2434bbb3
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog · f6f7b52e
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog:
        [WATCHDOG] hpwdt: Fix kdump when using hpwdt
        [WATCHDOG] hpwdt: set the mapped BIOS address space as executable
        [WATCHDOG] iTCO_wdt: add PCI ID's for ICH9 & ICH10 chipsets
        [WATCHDOG] iTCO_wdt : correct status clearing
        [WATCHDOG] iTCO_wdt : problem with rebooting on new ICH9 based motherboards
        [WATCHDOG] fix mtx1_wdt compilation failure
      f6f7b52e
    • L
      Merge branch 'linux-next' of git://git.infradead.org/ubifs-2.6 · 51eaaa67
      Linus Torvalds 提交于
      * 'linux-next' of git://git.infradead.org/ubifs-2.6:
        UBIFS: pre-allocate bulk-read buffer
        UBIFS: do not allocate too much
        UBIFS: do not print scary memory allocation warnings
        UBIFS: allow for gaps when dirtying the LPT
        UBIFS: fix compilation warnings
        MAINTAINERS: change UBI/UBIFS git tree URLs
        UBIFS: endian handling fixes and annotations
        UBIFS: remove printk
      51eaaa67
    • L
      Merge branch 'kvm-updates/2.6.28' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm · b7d62660
      Linus Torvalds 提交于
      * 'kvm-updates/2.6.28' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm:
        KVM: MMU: avoid creation of unreachable pages in the shadow
        KVM: ppc: stop leaking host memory on VM exit
        KVM: MMU: fix sync of ptes addressed at owner pagetable
        KVM: ia64: Fix: Use correct calling convention for PAL_VPS_RESUME_HANDLER
        KVM: ia64: Fix incorrect kbuild CFLAGS override
        KVM: VMX: Fix interrupt loss during race with NMI
        KVM: s390: Fix problem state handling in guest sigp handler
      b7d62660
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 · e6d9f0fb
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
        sparc64: Fix offset calculation in compute_size()
        rtc: rtc-starfire fixes
      e6d9f0fb
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · e1825e75
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (30 commits)
        MAINTAINERS: add netdev to ATM
        ATM: horizon, fix hrz_probe fail path
        pppol2tp: Add missing sock_put() in pppol2tp_release()
        net: Fix soft lockups/OOM issues w/ unix garbage collector
        macvlan: don't broadcast PAUSE frames to macvlan devices
        Phonet: fix oops in phonet_address_del() on non-Phonet device
        netfilter: ctnetlink: fix GFP_KERNEL allocation under spinlock
        sungem: Fix PCS_MIICTRL register write in gem_init_phy().
        net: make skb_truesize_bug() call WARN()
        net: hp-plus uses eip_poll
        net/wireless/reg.c: fix bad WARN_ON in if statement
        ath5k: disable beacon filter when station is not associated
        ath5k: fix Security issue in DebugFS part of ath5k
        ath9k: correct expected max RX buffer size
        ath9k: Fix SW-IOMMU bounce buffer starvation
        mac80211 : Fix setting ad-hoc mode and non-ibss channel
        iwlagn: fix DMA sync
        phylib: Add Vitesse VSC8221 SGMII PHY
        rose: zero length frame filtering in af_rose.c
        bridge: netfilter: fix update_pmtu crash with GRE
        ...
      e1825e75