1. 24 10月, 2008 24 次提交
  2. 23 10月, 2008 16 次提交
    • K
      memcg: fix page_cgroup allocation · 94b6da5a
      KAMEZAWA Hiroyuki 提交于
      page_cgroup_init() is called from mem_cgroup_init(). But at this
      point, we cannot call alloc_bootmem().
      (and this caused panic at boot.)
      
      This patch moves page_cgroup_init() to init/main.c.
      
      Time table is following:
      ==
        parse_args(). # we can trust mem_cgroup_subsys.disabled bit after this.
        ....
        cgroup_init_early()  # "early" init of cgroup.
        ....
        setup_arch()         # memmap is allocated.
        ...
        page_cgroup_init();
        mem_init();   # we cannot call alloc_bootmem after this.
        ....
        cgroup_init() # mem_cgroup is initialized.
      ==
      
      Before page_cgroup_init(), mem_map must be initialized. So,
      I added page_cgroup_init() to init/main.c directly.
      
      (*) maybe this is not very clean but
          - cgroup_init_early() is too early
          - in cgroup_init(), we have to use vmalloc instead of alloc_bootmem().
          use of vmalloc area in x86-32 is important and we should avoid very large
          vmalloc() in x86-32. So, we want to use alloc_bootmem() and added page_cgroup_init()
          directly to init/main.c
      
      [akpm@linux-foundation.org: remove unneeded/bad mem_cgroup_subsys declaration]
      [akpm@linux-foundation.org: fix build]
      Acked-by: NBalbir Singh <balbir@linux.vnet.ibm.com>
      Tested-by: NBalbir Singh <balbir@linux.vnet.ibm.com>
      Signed-off-by: NKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      94b6da5a
    • D
      jbd: abort instead of waiting for nonexistent transactions · be07c4ed
      Duane Griffin 提交于
      The __log_wait_for_space function sits in a loop checkpointing
      transactions until there is sufficient space free in the journal.
      However, if there are no transactions to be processed (e.g.  because the
      free space calculation is wrong due to a corrupted filesystem) it will
      never progress.
      
      Check for space being required when no transactions are outstanding and
      abort the journal instead of endlessly looping.
      
      This patch fixes the bug reported by Sami Liedes at:
      http://bugzilla.kernel.org/show_bug.cgi?id=10976Signed-off-by: NDuane Griffin <duaneg@dghda.com>
      Tested-by: NSami Liedes <sliedes@cc.hut.fi>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      be07c4ed
    • H
      jbd: test BH_Write_EIO to detect errors on metadata buffers · 9f818b4a
      Hidehiro Kawai 提交于
      __try_to_free_cp_buf(), __process_buffer(), and __wait_cp_io() test
      BH_Uptodate flag to detect write I/O errors on metadata buffers.  But by
      commit 95450f5a "ext3: don't read inode
      block if the buffer has a write error"(*), BH_Uptodate flag can be set to
      inode buffers with BH_Write_EIO in order to avoid reading old inode data.
      So now, we have to test BH_Write_EIO flag of checkpointing inode buffers
      instead of BH_Uptodate.  This patch does it.
      Signed-off-by: NHidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
      Acked-by: NJan Kara <jack@suse.cz>
      Acked-by: NEric Sandeen <sandeen@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9f818b4a
    • H
      ext3: add checks for errors from jbd · 2d7c820e
      Hidehiro Kawai 提交于
      If the journal has aborted due to a checkpointing failure, we have to
      keep the contents of the journal space.  Otherwise, the filesystem will
      lose uncheckpointed metadata completely and become inconsistent.  To
      avoid this, we need to keep needs_recovery flag if checkpoint has
      failed.
      
      With this patch, ext3_put_super() detects a checkpointing failure from
      the return value of journal_destroy(), then it invokes ext3_abort() to
      make the filesystem read only and keep needs_recovery flag.  Errors
      from journal_flush() are also handled by this patch in some places.
      Signed-off-by: NHidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
      Cc: Jan Kara <jack@ucw.cz>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2d7c820e
    • H
      jbd: fix error handling for checkpoint io · 4afe9785
      Hidehiro Kawai 提交于
      When a checkpointing IO fails, current JBD code doesn't check the error
      and continue journaling.  This means latest metadata can be lost from both
      the journal and filesystem.
      
      This patch leaves the failed metadata blocks in the journal space and
      aborts journaling in the case of log_do_checkpoint().  To achieve this, we
      need to do:
      
      1. don't remove the failed buffer from the checkpoint list where in
         the case of __try_to_free_cp_buf() because it may be released or
         overwritten by a later transaction
      2. log_do_checkpoint() is the last chance, remove the failed buffer
         from the checkpoint list and abort the journal
      3. when checkpointing fails, don't update the journal super block to
         prevent the journaled contents from being cleaned.  For safety,
         don't update j_tail and j_tail_sequence either
      4. when checkpointing fails, notify this error to the ext3 layer so
         that ext3 don't clear the needs_recovery flag, otherwise the
         journaled contents are ignored and cleaned in the recovery phase
      5. if the recovery fails, keep the needs_recovery flag
      6. prevent cleanup_journal_tail() from being called between
         __journal_drop_transaction() and journal_abort() (a race issue
         between journal_flush() and __log_wait_for_space()
      Signed-off-by: NHidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
      Acked-by: NJan Kara <jack@suse.cz>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4afe9785
    • P
      profiling: fix up CONFIG_PROC_FS=n build · 66f50ee3
      Paul Mundt 提交于
      In the case where procfs is disabled, create_proc_profile() does not
      exist. Stub it in with the others.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      66f50ee3
    • P
      mm: page_cgroup needs linux/vmalloc.h for vmalloc_node()/vfree(). · 4c821042
      Paul Mundt 提交于
      mm/page_cgroup.c: In function 'init_section_page_cgroup':
      mm/page_cgroup.c:111: error: implicit declaration of function 'vmalloc_node'
      mm/page_cgroup.c:111: warning: assignment makes pointer from integer without a cast
      mm/page_cgroup.c: In function '__free_page_cgroup':
      mm/page_cgroup.c:140: error: implicit declaration of function 'vfree'
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      Reviewed-by: NKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4c821042
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 9bf9b2f3
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (53 commits)
        powerpc: Support for relocatable kdump kernel
        powerpc: Don't use a 16G page if beyond mem= limits
        powerpc: Add del_node() for early boot code to prune inapplicable devices.
        powerpc: Further compile fixup for STRICT_MM_TYPECHECKS
        powerpc: Remove empty #else from signal_64.c
        powerpc: Move memory size print into common show_cpuinfo for 32-bit
        hvc_console: Remove __devexit annotation of hvc_remove()
        hvc_console: Add support for tty window resizing
        hvc_console: Fix loop if put_char() returns 0
        hvc_console: Add tty driver flag TTY_DRIVER_RESET_TERMIOS
        hvc_console: Add a hangup notifier for backends
        powerpc/83xx: Add DS1339 RTC support for MPC8349E-mITX boards .dts
        powerpc/83xx: Add support for MCU microcontroller in .dts files
        powerpc/85xx: Move mpc8572ds.dts to address-cells/size-cells = <2>
        of/spi: Support specifying chip select as active high via device tree
        powerpc: Remove device_type = "board_control" properties in .dts files
        i2c-cpm: Suppress autoprobing for devices
        powerpc/85xx: Fix mpc8536ds dma interrupt numbers
        powerpc/85xx: Enable enhanced functions for 8536 TSEC
        powerpc: Delete unused prom_strtoul and prom_memparse
        ...
      9bf9b2f3
    • L
      Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/dvrabel/uwb · 9779a832
      Linus Torvalds 提交于
      * 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/dvrabel/uwb: (47 commits)
        uwb: wrong sizeof argument in mac address compare
        uwb: don't use printk_ratelimit() so often
        uwb: use kcalloc where appropriate
        uwb: use time_after() when purging stale beacons
        uwb: add credits for the original developers of the UWB/WUSB/WLP subsystems
        uwb: add entries in the MAINTAINERS file
        uwb: depend on EXPERIMENTAL
        wusb: wusb-cbaf (CBA driver) sysfs ABI simplification
        uwb: document UWB and WUSB sysfs files
        uwb: add symlinks in sysfs between radio controllers and PALs
        uwb: dont tranmit identification IEs
        uwb: i1480/GUWA100U: fix firmware download issues
        uwb: i1480: remove MAC/PHY information checking function
        uwb: add Intel i1480 HWA to the UWB RC quirk table
        uwb: disable command/event filtering for D-Link DUB-1210
        uwb: initialize the debug sub-system
        uwb: Fix handling IEs with empty IE data in uwb_est_get_size()
        wusb: fix bmRequestType for Abort RPipe request
        wusb: fix error path for wusb_set_dev_addr()
        wusb: add HWA host controller driver
        ...
      9779a832
    • L
      Merge branch 'for-next' of git://git.o-hand.com/linux-mfd · 309e1e42
      Linus Torvalds 提交于
      * 'for-next' of git://git.o-hand.com/linux-mfd:
        mfd: check for platform_get_irq() return value in sm501
        mfd: use pci_ioremap_bar() in sm501
        mfd: Don't store volatile bits in WM8350 register cache
        mfd: don't export wm3850 static functions
        mfd: twl4030-gpio driver
        mfd: rtc-twl4030 driver
        mfd: twl4030 IRQ handling update
      309e1e42
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · 724bdd09
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
        IB/ehca: Reject dynamic memory add/remove when ehca adapter is present
        IB/ehca: Fix reported max number of QPs and CQs in systems with >1 adapter
        IPoIB: Set netdev offload features properly for child (VLAN) interfaces
        IPoIB: Clean up ethtool support
        mlx4_core: Add Ethernet PCI device IDs
        mlx4_en: Add driver for Mellanox ConnectX 10GbE NIC
        mlx4_core: Multiple port type support
        mlx4_core: Ethernet MAC/VLAN management
        mlx4_core: Get ethernet MTU and default address from firmware
        mlx4_core: Support multiple pre-reserved QP regions
        Update NetEffect maintainer emails to Intel emails
        RDMA/cxgb3: Remove cmid reference on tid allocation failures
        IB/mad: Use krealloc() to resize snoop table
        IPoIB: Always initialize poll_timer to avoid crash on unload
        IB/ehca: Don't allow creating UC QP with SRQ
        mlx4_core: Add QP range reservation support
        RDMA/ucma: Test ucma_alloc_multicast() return against NULL, not with IS_ERR()
      724bdd09
    • L
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · dc8dcad8
      Linus Torvalds 提交于
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
        sata_via: load DEVICE register when CTL changes
        libata: set device class to NONE if phys_offline
        libata-eh: fix slave link EH action mask handling
        libata: transfer EHI control flags to slave ehc.i
        libata-sff: fix ata_sff_post_internal_cmd()
        libata: initialize port_task when !CONFIG_ATA_SFF
      dc8dcad8
    • L
      Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm · fdc76bf9
      Linus Torvalds 提交于
      * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm:
        [ARM] clps711x: add sparsemem definitions
        [ARM] 5315/1: Fix section mismatch warning (sa1111)
        [ARM] Orion: activate workaround for 88f6183 SPI clock erratum
        [ARM] Orion: instantiate the dsa switch driver
        [ARM] mv78xx0: force link speed/duplex on eth2/eth3
        [ARM] remove extra brace in arch/arm/mach-pxa/trizeps4.c
        [ARM] balance parenthesis in header file
        [ARM] pxa: fix trizeps PCMCIA build
        [ARM] pxa: fix trizeps defconfig
        [ARM] dmabounce requires ZONE_DMA
        [ARM] 5303/1: period_cycles should be greater than 1
        [ARM] 5310/1: Fix cache flush functions for ARMv4
        [ARM] pxa: fix 3bca103a
        [ARM] pxa: fix redefinition of NR_IRQS
        [ARM] S3C24XX: Fix redefine of DEFINE_TIMER() in s3c24xx pwm-clock.c
        [ARM] S3C2443: Fix HCLK rate
        [ARM] S3C24XX: Serial driver debug depends on DEBUG_LL
        [ARM] S3C24XX: pwm-clock set_parent mask fix
      fdc76bf9
    • L
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 · 72441bdc
      Linus Torvalds 提交于
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6: (41 commits)
        [IA64] Fix annoying IA64_TR_ALLOC_MAX message.
        [IA64] kill sys32_pipe
        [IA64] remove sys32_pause
        [IA64] Add Variable Page Size and IA64 Support in Intel IOMMU
        ia64/pv_ops: paravirtualized instruction checker.
        ia64/xen: a recipe for using xen/ia64 with pv_ops.
        ia64/pv_ops: update Kconfig for paravirtualized guest and xen.
        ia64/xen: preliminary support for save/restore.
        ia64/xen: define xen machine vector for domU.
        ia64/pv_ops/xen: implement xen pv_time_ops.
        ia64/pv_ops/xen: implement xen pv_irq_ops.
        ia64/pv_ops/xen: define the nubmer of irqs which xen needs.
        ia64/pv_ops/xen: implement xen pv_iosapic_ops.
        ia64/pv_ops/xen: paravirtualize entry.S for ia64/xen.
        ia64/pv_ops/xen: paravirtualize ivt.S for xen.
        ia64/pv_ops/xen: paravirtualize DO_SAVE_MIN for xen.
        ia64/pv_ops/xen: define xen paravirtualized instructions for hand written assembly code
        ia64/pv_ops/xen: define xen pv_cpu_ops.
        ia64/pv_ops/xen: define xen pv_init_ops for various xen initialization.
        ia64/pv_ops/xen: elf note based xen startup.
        ...
      72441bdc
    • E
    • E
      drm: Add 32-bit compatibility for DRM_IOCTL_UPDATE_DRAW. · 49568873
      Eric Anholt 提交于
      This fixes vblank support for a 32-bit X Server on a 64-bit kernel.
      Signed-off-by: NEric Anholt <eric@anholt.net>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      49568873