1. 19 Mar, 2011 2 commits
  2. 18 Mar, 2011 38 commits
    • Mike Frysinger's avatar
      headers: use __aligned_xx types for userspace · b51bdad6
      Mike Frysinger authored
      Now that we finally have __aligned_xx exported to userspace, convert
      the headers that get exported over to the proper type.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b51bdad6
    • Herbert Xu's avatar
      bridge: Reset IPCB when entering IP stack on NF_FORWARD · 6b1e960f
      Herbert Xu authored
      Whenever we enter the IP stack proper from bridge netfilter we
      need to ensure that the skb is in a form the IP stack expects
      it to be in.
      
      The entry point on NF_FORWARD did not meet the requirements of
      the IP stack, therefore leading to potential crashes/panics.
      
      This patch fixes the problem.
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Acked-by: default avatarStephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6b1e960f
    • Eric Dumazet's avatar
      vlan: should take into account needed_headroom · d870bfb9
      Eric Dumazet authored
      Commit c95b819a (gre: Use needed_headroom)
      made gre use needed_headroom instead of hard_header_len
      
      This uncover a bug in vlan code.
      
      We should make sure vlan devices take into account their
      real_dev->needed_headroom or we risk a crash in ipgre_header(), because
      we dont have enough room to push IP header in skb.
      Reported-by: default avatarDiddi Oscarsson <diddi@diddi.se>
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Cc: Patrick McHardy <kaber@trash.net>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Acked-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d870bfb9
    • Ben Hutchings's avatar
      ethtool: Compat handling for struct ethtool_rxnfc · 3a7da39d
      Ben Hutchings authored
      This structure was accidentally defined such that its layout can
      differ between 32-bit and 64-bit processes.  Add compat structure
      definitions and an ioctl wrapper function.
      Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
      Acked-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
      Cc: stable@kernel.org [2.6.30+]
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3a7da39d
    • Roger Luethi's avatar
      ethtool: __ethtool_set_sg: check for function pointer before using it · 5e5069b4
      Roger Luethi authored
      __ethtool_set_sg does not check if dev->ethtool_ops->set_sg is defined
      which can result in a NULL pointer dereference when ethtool is used to
      change SG settings for drivers without SG support.
      Signed-off-by: default avatarRoger Luethi <rl@hellgate.ch>
      Reviewed-by: default avatarBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5e5069b4
    • Vasiliy Kulikov's avatar
      econet: 4 byte infoleak to the network · 67c5c6cb
      Vasiliy Kulikov authored
      struct aunhdr has 4 padding bytes between 'pad' and 'handle' fields on
      x86_64.  These bytes are not initialized in the variable 'ah' before
      sending 'ah' to the network.  This leads to 4 bytes kernel stack
      infoleak.
      
      This bug was introduced before the git epoch.
      Signed-off-by: default avatarVasiliy Kulikov <segoon@openwall.com>
      Acked-by: default avatarPhil Blundell <philb@gnu.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      67c5c6cb
    • Alex Dubov's avatar
      gianfar: Fall back to software tcp/udp checksum on older controllers · 4363c2fd
      Alex Dubov authored
      As specified by errata eTSEC49 of MPC8548 and errata eTSEC12 of MPC83xx,
      older revisions of gianfar controllers will be unable to calculate a TCP/UDP
      packet checksum for some alignments of the appropriate FCB. This patch checks
      for FCB alignment on such controllers and falls back to software checksumming
      if the alignment is known to be bad.
      Signed-off-by: default avatarAlex Dubov <oakad@yahoo.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4363c2fd
    • Linus Torvalds's avatar
      Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 · 99759619
      Linus Torvalds authored
      * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
        PCI: label: remove #include of ACPI header to avoid warnings
        PCI: label: Fix compilation error when CONFIG_ACPI is unset
        PCI: pre-allocate additional resources to devices only after successful allocation of essential resources.
        PCI: introduce reset_resource()
        PCI: data structure agnostic free list function
        PCI: refactor io size calculation code
        PCI: do not create quirk I/O regions below PCIBIOS_MIN_IO for ICH
        PCI hotplug: acpiphp: set current_state to D0 in register_slot
        PCI: Export ACPI _DSM provided firmware instance number and string name to sysfs
        PCI: add more checking to ICH region quirks
        PCI: aer-inject: Override PCIe AER Mask Registers
        PCI: fix tlan build when CONFIG_PCI is not enabled
        PCI: remove quirk for pre-production systems
        PCI: Avoid potential NULL pointer dereference in pci_scan_bridge
        PCI/lpc: irq and pci_ids patch for Intel DH89xxCC DeviceIDs
        PCI: sysfs: Fix failure path for addition of "vpd" attribute
      99759619
    • Linus Torvalds's avatar
      Merge branch 'spi/next' of git://git.secretlab.ca/git/linux-2.6 · b061c59c
      Linus Torvalds authored
      * 'spi/next' of git://git.secretlab.ca/git/linux-2.6: (34 commits)
        spi/dw_spi: move dw_spi.h into drivers/spi
        spi/dw_spi: Fix missing header
        gpio/langwell: Clear edge bit before handling
        gpio/langwell: Simplify demux loop
        gpio/langwell: Convert irq name space
        gpio/langwell: Fix broken irq_eoi change.
        gpio; Make Intel chipset gpio drivers depend on x86
        gpio/cs5535-gpio: Fix section mismatch
        spi/rtc-{ds1390,ds3234,m41t94}: Use spi_get_drvdata() for SPI devices
        spi/davinci: Support DMA transfers larger than 65535 words
        spi/davinci: Use correct length parameter to dma_map_single calls
        gpio: Use __devexit at necessary places
        gpio: add MODULE_DEVICE_TABLE to pch_gpio and ml_ioh_gpio
        gpio/mcp23s08: support mcp23s17 variant
        of_mmc_spi: add card detect irq support
        spi/omap_mcspi: catch xfers of non-multiple SPI word size
        spi/omap_mcspi: Off-by-one error in finding the right divisor
        gpio/pca953x: Fix wrong pointer type
        spi/pl022: rid dangling labels
        spi: add support for SuperH SPI
        ...
      b061c59c
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm · 99f4065b
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:
        dlm: use alloc_workqueue function
        dlm: increase default hash table sizes
        dlm: record full callback state
      99f4065b
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 · f539abec
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
        fs: call security_d_instantiate in d_obtain_alias V2
        lose 'mounting_here' argument in ->d_manage()
        don't pass 'mounting_here' flag to follow_down()
        change the locking order for namespace_sem
        fix deadlock in pivot_root()
        vfs: split off vfsmount-related parts of vfs_kern_mount()
        Some fixes for pstore
        kill simple_set_mnt()
      f539abec
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bcopeland/omfs · 3f6f7e6d
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bcopeland/omfs:
        omfs: make readdir stop when filldir says so
        omfs: merge unlink() and rmdir(), close leak in rename()
        omfs: stop playing silly buggers with omfs_unlink() in ->rename()
        omfs: rename() needs to mark old_inode dirty after ctime update
      3f6f7e6d
    • Linus Torvalds's avatar
      Merge branch 'linux-next' of git://git.infradead.org/ubifs-2.6 · 8f627a8a
      Linus Torvalds authored
      * 'linux-next' of git://git.infradead.org/ubifs-2.6: (25 commits)
        UBIFS: clean-up commentaries
        UBIFS: save 128KiB or more RAM
        UBIFS: allocate orphans scan buffer on demand
        UBIFS: allocate lpt dump buffer on demand
        UBIFS: allocate ltab checking buffer on demand
        UBIFS: allocate scanning buffer on demand
        UBIFS: allocate dump buffer on demand
        UBIFS: do not check data crc by default
        UBIFS: simplify UBIFS Kconfig menu
        UBIFS: print max. index node size
        UBIFS: handle allocation failures in UBIFS write path
        UBIFS: use max_write_size during recovery
        UBIFS: use max_write_size for write-buffers
        UBIFS: introduce write-buffer size field
        UBI: incorporate LEB offset information
        UBIFS: incorporate maximum write size
        UBI: provide LEB offset information
        UBI: incorporate maximum write size
        UBIFS: fix LEB number in printk
        UBIFS: restrict world-writable debugfs files
        ...
      8f627a8a
    • Linus Torvalds's avatar
      Merge branch 'linux-next' of git://git.infradead.org/ubi-2.6 · fd57ed02
      Linus Torvalds authored
      * 'linux-next' of git://git.infradead.org/ubi-2.6:
        UBI: make tests modes dynamic
        UBI: make self-checks dynamic
        UBI: make debugging messages dynamic
        UBI: remove UBI_IO_DEBUG macro
        UBI: kill debugging buffer
        UBI: allocate erase checking buffer on demand
        UBI: allocate write checking buffer on demand
        UBI: always re-read in case of read failures
        UBI: cleanup comments about corrupted PEBs
        UBI: add slab cache for ubi_scan_leb objects
        UBI: use raw mtd read function in debugging code
        UBI: try to reveal buggy MTD drivers
        UBI: add a commentary about allocating VID header buffer on stack
        UBI: cleanup LEB start calculations
        UBI: fix NOR erase preparation quirk
      fd57ed02
    • Alan Cox's avatar
      MAINTAINERS: Add serial · ca749e2a
      Alan Cox authored
      Add an entry for serial maintainers.
      Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ca749e2a
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 · d3e458d7
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (308 commits)
        ALSA: sound/pci/asihpi: check adapter index in hpi_ioctl
        ALSA: aloop - Fix possible IRQ lock inversion
        ALSA: sound/core: merge list_del()/list_add_tail() to list_move_tail()
        ALSA: ctxfi - use list_move() instead of list_del()/list_add() combination
        ALSA: firewire - msleep needs delay.h
        ALSA: firewire-lib, firewire-speakers: handle packet queueing errors
        ALSA: firewire-lib: allocate DMA buffer separately
        ALSA: firewire-lib: use no-info SYT for packets without SYT sample
        ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver
        ALSA: hda - Remove an unused variable in patch_realtek.c
        ALSA: hda - pin-adc-mux-dmic auto-configuration of 92HD8X codecs
        ALSA: hda - fix digital mic selection in mixer on 92HD8X codecs
        ALSA: hda - Move default input-src selection to init part
        ALSA: hda - Initialize special cases for input src in init phase
        ALSA: ctxfi - Clear input settings before initialization
        ALSA: ctxfi - Fix SPDIF status retrieval
        ALSA: ctxfi - Fix incorrect SPDIF status bit mask
        ALSA: ctxfi - Fix microphone boost codes/comments
        ALSA: atiixp - Fix wrong time-out checks during ac-link reset
        ALSA: intel8x0m: append 'm' to "r_intel8x0"
        ...
      d3e458d7
    • Linus Torvalds's avatar
      Merge branch 'x86-fixes-for-linus' of... · f2e1fbb5
      Linus Torvalds authored
      Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86: Flush TLB if PGD entry is changed in i386 PAE mode
        x86, dumpstack: Correct stack dump info when frame pointer is available
        x86: Clean up csum-copy_64.S a bit
        x86: Fix common misspellings
        x86: Fix misspelling and align params
        x86: Use PentiumPro-optimized partial_csum() on VIA C7
      f2e1fbb5
    • Linus Torvalds's avatar
      Merge branches 'irq-fixes-for-linus' and 'sched-fixes-for-linus' of... · 508996b6
      Linus Torvalds authored
      Merge branches 'irq-fixes-for-linus' and 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'irq-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        genirq: Fix incorrect unlock in __setup_irq()
        cris: Use generic show_interrupts()
        genirq: show_interrupts: Check desc->name before printing it blindly
        cris: Use accessor functions to set IRQ_PER_CPU flag
        cris: Fix irq conversion fallout
      
      * 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        sched, kernel-doc: Fix runqueue_is_locked() description
      508996b6
    • Linus Torvalds's avatar
      Merge branch 'perf-fixes-for-linus' of... · 61929785
      Linus Torvalds authored
      Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (30 commits)
        trace, filters: Initialize the match variable in process_ops() properly
        trace, documentation: Fix branch profiling location in debugfs
        oprofile, s390: Cleanups
        oprofile, s390: Remove hwsampler_files.c and merge it into init.c
        perf: Fix tear-down of inherited group events
        perf: Reorder & optimize perf_event_context to remove alignment padding on 64 bit builds
        perf: Handle stopped state with tracepoints
        perf: Fix the software events state check
        perf, powerpc: Handle events that raise an exception without overflowing
        perf, x86: Use INTEL_*_CONSTRAINT() for all PEBS event constraints
        perf, x86: Clean up SandyBridge PEBS events
        perf lock: Fix sorting by wait_min
        perf tools: Version incorrect with some versions of grep
        perf evlist: New command to list the names of events present in a perf.data file
        perf script: Add support for H/W and S/W events
        perf script: Add support for dumping symbols
        perf script: Support custom field selection for output
        perf script: Move printing of 'common' data from print_event and rename
        perf tracing: Remove print_graph_cpu and print_graph_proc from trace-event-parse
        perf script: Change process_event prototype
        ...
      61929785
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial · e16b396c
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (47 commits)
        doc: CONFIG_UNEVICTABLE_LRU doesn't exist anymore
        Update cpuset info & webiste for cgroups
        dcdbas: force SMI to happen when expected
        arch/arm/Kconfig: remove one to many l's in the word.
        asm-generic/user.h: Fix spelling in comment
        drm: fix printk typo 'sracth'
        Remove one to many n's in a word
        Documentation/filesystems/romfs.txt: fixing link to genromfs
        drivers:scsi Change printk typo initate -> initiate
        serial, pch uart: Remove duplicate inclusion of linux/pci.h header
        fs/eventpoll.c: fix spelling
        mm: Fix out-of-date comments which refers non-existent functions
        drm: Fix printk typo 'failled'
        coh901318.c: Change initate to initiate.
        mbox-db5500.c Change initate to initiate.
        edac: correct i82975x error-info reported
        edac: correct i82975x mci initialisation
        edac: correct commented info
        fs: update comments to point correct document
        target: remove duplicate include of target/target_core_device.h from drivers/target/target_core_hba.c
        ...
      
      Trivial conflict in fs/eventpoll.c (spelling vs addition)
      e16b396c
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 7fd23a24
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (48 commits)
        HID: add support for Logitech Driving Force Pro wheel
        HID: hid-ortek: remove spurious reference
        HID: add support for Ortek PKB-1700
        HID: roccat-koneplus: vorrect mode of sysfs attr 'sensor'
        HID: hid-ntrig: init settle and mode check
        HID: merge hid-egalax into hid-multitouch
        HID: hid-multitouch: Send events per slot if CONTACTCOUNT is missing
        HID: ntrig remove if and drop an indent
        HID: ACRUX - activate the device immediately after binding
        HID: ntrig: apply NO_INIT_REPORTS quirk
        HID: hid-magicmouse: Correct touch orientation direction
        HID: ntrig don't dereference unclaimed hidinput
        HID: Do not create input devices for feature reports
        HID: bt hidp: send Output reports using SET_REPORT on the Control channel
        HID: hid-sony.c: Fix sending Output reports to the Sixaxis
        HID: add support for Keytouch IEC 60945
        HID: Add HID Report Descriptor to sysfs
        HID: add IRTOUCH infrared USB to hid_have_special_driver
        HID: kernel oops in out_cleanup in function hidinput_connect
        HID: Add teletext/color keys - gyration remote - EU version (GYAR3101CKDE)
        ...
      7fd23a24
    • Grant Likely's avatar
      spi/dw_spi: move dw_spi.h into drivers/spi · 568a60ed
      Grant Likely authored
      include/linux/dw_spi.h only includes driver internal data.  It doesn't
      expose a platform_data configuration structure or similar (at least
      nothing in-tree).  This patch moves the header into drivers/spi so
      that the scope is limited to only the dw_spi_*.c driver files
      Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
      Cc: Feng Tang <feng.tang@intel.com>
      Cc: spi-devel-general@lists.sourceforge.net
      568a60ed
    • Jiri Slaby's avatar
      spi/dw_spi: Fix missing header · 46165a3d
      Jiri Slaby authored
      Currently, build on PPC dies with:
      In file included from drivers/spi/dw_spi_mmio.c:16:
      include/linux/spi/dw_spi.h:147: error: field ‘tx_sgl’ has incomplete type
      include/linux/spi/dw_spi.h:149: error: field ‘rx_sgl’ has incomplete type
      
      Add linux/scatterlist.h include to dw_spi.h, because we need to know
      the contents of the structure.
      Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
      Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
      46165a3d
    • Josef Bacik's avatar
      fs: call security_d_instantiate in d_obtain_alias V2 · 24ff6663
      Josef Bacik authored
      While trying to track down some NFS problems with BTRFS, I kept noticing I was
      getting -EACCESS for no apparent reason.  Eric Paris and printk() helped me
      figure out that it was SELinux that was giving me grief, with the following
      denial
      
      type=AVC msg=audit(1290013638.413:95): avc:  denied  { 0x800000 } for  pid=1772
      comm="nfsd" name="" dev=sda1 ino=256 scontext=system_u:system_r:kernel_t:s0
      tcontext=system_u:object_r:unlabeled_t:s0 tclass=file
      
      Turns out this is because in d_obtain_alias if we can't find an alias we create
      one and do all the normal instantiation stuff, but we don't do the
      security_d_instantiate.
      
      Usually we are protected from getting a hashed dentry that hasn't yet run
      security_d_instantiate() by the parent's i_mutex, but obviously this isn't an
      option there, so in order to deal with the case that a second thread comes in
      and finds our new dentry before we get to run security_d_instantiate(), we go
      ahead and call it if we find a dentry already.  Eric assures me that this is ok
      as the code checks to see if the dentry has been initialized already so calling
      security_d_instantiate() against the same dentry multiple times is ok.  With
      this patch I'm no longer getting errant -EACCESS values.
      Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      24ff6663
    • Al Viro's avatar
      lose 'mounting_here' argument in ->d_manage() · 1aed3e42
      Al Viro authored
      it's always false...
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      1aed3e42
    • Ingo Molnar's avatar
      trace, filters: Initialize the match variable in process_ops() properly · 1ef1d1c2
      Ingo Molnar authored
      Make sure the 'match' variable always has a value.
      
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      1ef1d1c2
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 0a95d92c
      Linus Torvalds authored
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (62 commits)
        powerpc/85xx: Fix signedness bug in cache-sram
        powerpc/fsl: 85xx: document cache sram bindings
        powerpc/fsl: define binding for fsl mpic interrupt controllers
        powerpc/fsl_msi: Handle msi-available-ranges better
        drivers/serial/ucc_uart.c: Add of_node_put to avoid memory leak
        powerpc/85xx: Fix SPE float to integer conversion failure
        powerpc/85xx: Update sata controller compatible for p1022ds board
        ATA: Add FSL sata v2 controller support
        powerpc/mpc8xxx_gpio: simplify searching for 'fsl, qoriq-gpio' compatiable
        powerpc/8xx: remove obsolete mgsuvd board
        powerpc/82xx: rename and update mgcoge board support
        powerpc/83xx: rename and update kmeter1
        powerpc/85xx: Workaroudn e500 CPU erratum A005
        powerpc/fsl_pci: Add support for FSL PCIe controllers v2.x
        powerpc/85xx: Fix writing to spin table 'cpu-release-addr' on ppc64e
        powerpc/pseries: Disable MSI using new interface if possible
        powerpc: Enable GENERIC_HARDIRQS_NO_DEPRECATED.
        powerpc: core irq_data conversion.
        powerpc: sysdev/xilinx_intc irq_data conversion.
        powerpc: sysdev/uic irq_data conversion.
        ...
      
      Fix up conflicts in arch/powerpc/sysdev/fsl_msi.c (due to getting rid of
      of_platform_driver in arch/powerpc)
      0a95d92c
    • Al Viro's avatar
      don't pass 'mounting_here' flag to follow_down() · 7cc90cc3
      Al Viro authored
      it's always false now
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      7cc90cc3
    • Al Viro's avatar
      change the locking order for namespace_sem · b12cea91
      Al Viro authored
      Have it nested inside ->i_mutex.  Instead of using follow_down()
      under namespace_sem, followed by grabbing i_mutex and checking that
      mountpoint to be is not dead, do the following:
      	grab i_mutex
      	check that it's not dead
      	grab namespace_sem
      	see if anything is mounted there
      	if not, we've won
      	otherwise
      		drop locks
      		put_path on what we had
      		replace with what's mounted
      		retry everything with new mountpoint to be
      
      New helper (lock_mount()) does that.  do_add_mount(), do_move_mount(),
      do_loopback() and pivot_root() switched to it; in case of the last
      two that eliminates a race we used to have - original code didn't
      do follow_down().
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      b12cea91
    • Al Viro's avatar
      fix deadlock in pivot_root() · 27cb1572
      Al Viro authored
      Don't hold vfsmount_lock over the loop traversing ->mnt_parent;
      do check_mnt(new.mnt) under namespace_sem instead; combined with
      namespace_sem held over all that code it'll guarantee the stability
      of ->mnt_parent chain all the way to the root.
      
      Doing check_mnt() outside of namespace_sem in case of pivot_root()
      is wrong anyway.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      27cb1572
    • Shaohua Li's avatar
      x86: Flush TLB if PGD entry is changed in i386 PAE mode · 4981d01e
      Shaohua Li authored
      According to intel CPU manual, every time PGD entry is changed in i386 PAE
      mode, we need do a full TLB flush. Current code follows this and there is
      comment for this too in the code.
      
      But current code misses the multi-threaded case. A changed page table
      might be used by several CPUs, every such CPU should flush TLB. Usually
      this isn't a problem, because we prepopulate all PGD entries at process
      fork. But when the process does munmap and follows new mmap, this issue
      will be triggered.
      
      When it happens, some CPUs keep doing page faults:
      
        http://marc.info/?l=linux-kernel&m=129915020508238&w=2
      
      Reported-by: Yasunori Goto<y-goto@jp.fujitsu.com>
      Tested-by: Yasunori Goto<y-goto@jp.fujitsu.com>
      Reviewed-by: default avatarRik van Riel <riel@redhat.com>
      Signed-off-by: Shaohua Li<shaohua.li@intel.com>
      Cc: Mallick Asit K <asit.k.mallick@intel.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: linux-mm <linux-mm@kvack.org>
      Cc: stable <stable@kernel.org>
      LKML-Reference: <1300246649.2337.95.camel@sli10-conroe>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      4981d01e
    • Namhyung Kim's avatar
      x86, dumpstack: Correct stack dump info when frame pointer is available · e8e999cf
      Namhyung Kim authored
      Current stack dump code scans entire stack and check each entry
      contains a pointer to kernel code. If CONFIG_FRAME_POINTER=y it
      could mark whether the pointer is valid or not based on value of
      the frame pointer. Invalid entries could be preceded by '?' sign.
      
      However this was not going to happen because scan start point
      was always higher than the frame pointer so that they could not
      meet.
      
      Commit 9c0729dc ("x86: Eliminate bp argument from the stack
      tracing routines") delayed bp acquisition point, so the bp was
      read in lower frame, thus all of the entries were marked
      invalid.
      
      This patch fixes this by reverting above commit while retaining
      stack_frame() helper as suggested by Frederic Weisbecker.
      
      End result looks like below:
      
      before:
      
       [    3.508329] Call Trace:
       [    3.508551]  [<ffffffff814f35c9>] ? panic+0x91/0x199
       [    3.508662]  [<ffffffff814f3739>] ? printk+0x68/0x6a
       [    3.508770]  [<ffffffff81a981b2>] ? mount_block_root+0x257/0x26e
       [    3.508876]  [<ffffffff81a9821f>] ? mount_root+0x56/0x5a
       [    3.508975]  [<ffffffff81a98393>] ? prepare_namespace+0x170/0x1a9
       [    3.509216]  [<ffffffff81a9772b>] ? kernel_init+0x1d2/0x1e2
       [    3.509335]  [<ffffffff81003894>] ? kernel_thread_helper+0x4/0x10
       [    3.509442]  [<ffffffff814f6880>] ? restore_args+0x0/0x30
       [    3.509542]  [<ffffffff81a97559>] ? kernel_init+0x0/0x1e2
       [    3.509641]  [<ffffffff81003890>] ? kernel_thread_helper+0x0/0x10
      
      after:
      
       [    3.522991] Call Trace:
       [    3.523351]  [<ffffffff814f35b9>] panic+0x91/0x199
       [    3.523468]  [<ffffffff814f3729>] ? printk+0x68/0x6a
       [    3.523576]  [<ffffffff81a981b2>] mount_block_root+0x257/0x26e
       [    3.523681]  [<ffffffff81a9821f>] mount_root+0x56/0x5a
       [    3.523780]  [<ffffffff81a98393>] prepare_namespace+0x170/0x1a9
       [    3.523885]  [<ffffffff81a9772b>] kernel_init+0x1d2/0x1e2
       [    3.523987]  [<ffffffff81003894>] kernel_thread_helper+0x4/0x10
       [    3.524228]  [<ffffffff814f6880>] ? restore_args+0x0/0x30
       [    3.524345]  [<ffffffff81a97559>] ? kernel_init+0x0/0x1e2
       [    3.524445]  [<ffffffff81003890>] ? kernel_thread_helper+0x0/0x10
      
       -v5:
         * fix build breakage with oprofile
      
       -v4:
         * use 0 instead of regs->bp
         * separate out printk changes
      
       -v3:
         * apply comment from Frederic
         * add a couple of printk fixes
      Signed-off-by: default avatarNamhyung Kim <namhyung@gmail.com>
      Acked-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Acked-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Soren Sandmann <ssp@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Robert Richter <robert.richter@amd.com>
      LKML-Reference: <1300416006-3163-1-git-send-email-namhyung@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      e8e999cf
    • Ingo Molnar's avatar
      x86: Clean up csum-copy_64.S a bit · 2c76397b
      Ingo Molnar authored
      The many stray whitespaces and other uncleanlinesses made this code
      almost unreadable to me - so fix those.
      
      No changes to the code.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      2c76397b
    • Lucas De Marchi's avatar
      x86: Fix common misspellings · 0d2eb44f
      Lucas De Marchi authored
      They were generated by 'codespell' and then manually reviewed.
      Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@profusion.mobi>
      Cc: trivial@kernel.org
      LKML-Reference: <1300389856-1099-3-git-send-email-lucas.demarchi@profusion.mobi>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      0d2eb44f
    • Lucas De Marchi's avatar
      x86: Fix misspelling and align params · a6c3270b
      Lucas De Marchi authored
      Fix 'upto' misspelling and align parameters.
      Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@profusion.mobi>
      Cc: trivial@kernel.org
      LKML-Reference: <1300389856-1099-2-git-send-email-lucas.demarchi@profusion.mobi>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      a6c3270b
    • Ingo Molnar's avatar
      Merge branch 'linus' into x86/urgent · 8dd8997d
      Ingo Molnar authored
      Merge reason: Merge upstream commits to avoid conflicts in upcoming patches.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      8dd8997d
    • Takashi Iwai's avatar
      Merge branch 'topic/misc' into for-linus · d351cf46
      Takashi Iwai authored
      d351cf46
    • Dan Rosenberg's avatar
      ALSA: sound/pci/asihpi: check adapter index in hpi_ioctl · 4a122c10
      Dan Rosenberg authored
      The user-supplied index into the adapters array needs to be checked, or
      an out-of-bounds kernel pointer could be accessed and used, leading to
      potentially exploitable memory corruption.
      Signed-off-by: default avatarDan Rosenberg <drosenberg@vsecurity.com>
      Cc: <stable@kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      4a122c10