07 Feb, 2014
4 commits
-
…nux-stable into ti-linux-3.12.y
This is the 3.12.10 stable release
* tag 'v3.12.10' of http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (133 commits)
Linux 3.12.10
x86, cpu, amd: Add workaround for family 16h, erratum 793
powerpc: Make sure "cache" directory is removed when offlining cpu
powerpc: Fix the setup of CPU-to-Node mappings during CPU online
btrfs: restrict snapshotting to own subvolumes
Btrfs: handle EAGAIN case properly in btrfs_drop_snapshot()
target/iscsi: Fix network portal creation race
iscsi-target: Pre-allocate more tags to avoid ack starvation
virtio-scsi: Fix hotcpu_notifier use-after-free with virtscsi_freeze
SCSI: bfa: Chinook quad port 16G FC HBA claim issue
usb: core: get config and string descriptors for unauthorized devices
hpfs: remember free space
ALSA: hda/hdmi - allow PIN_OUT to be dynamically enabled
ALSA: hda - hdmi: introduce patch_nvhdmi()
ALSA: hda - Don't set indep_hp flag for old AD codecs
KVM: PPC: e500: Fix bad address type in deliver_tlb_misss()
KVM: PPC: Book3S HV: use xics_wake_cpu only when defined
parisc: fix cache-flushing
alpha: fix broken network checksum
inet_diag: fix inet_diag_dump_icsk() timewait socket state logic
...Signed-off-by: Dan Murphy <DMurphy@ti.com>
-
commit ecd75ad514d73efc1bbcc5f10a13566c3ace5f53 upstream.
For some reason, some early WD drives spin up and down drives
erratically when the link is put into slumber mode which can reduce
the life expectancy of the device significantly. Unfortunately, we
don't have full list of devices and given the nature of the issue it'd
be better to err on the side of false positives than the other way
around. Let's disable LPM on all WD devices which match one of the
known problematic model prefixes and are SATA-I.As horkage list doesn't support matching SATA capabilities, this is
implemented as two horkages - WD_BROKEN_LPM and NOLPM. The former is
set for the known prefixes and sets the latter if the matched device
is SATA-I.Note that this isn't optimal as this disables all LPM operations and
partial link power state reportedly works fine on these; however, the
way LPM is implemented in libata makes it difficult to precisely map
libata LPM setting to specific link power state. Well, these devices
are already fairly outdated. Let's just disable whole LPM for now.Signed-off-by: Tejun Heo
Reported-and-tested-by: Nikos Barkas
Reported-and-tested-by: Ioannis Barkas
References: https://bugzilla.kernel.org/show_bug.cgi?id=57211
Signed-off-by: Greg Kroah-Hartman -
commit ed8f8318d2ef3e5f9e4ddf79349508c116b68d7f upstream.
According to Freescale imx28 Errata, "ENGR119653 USB: ARM to USB
register error issue", All USB register write operations must
use the ARM SWP instruction. So, we implement special hw_write
and hw_test_and_clear for imx28.Discussion for it at below:
http://marc.info/?l=linux-usb&m=137996395529294&w=2This patch is needed for stable tree 3.11+.
Cc: robert.hodaszi@digi.com
Signed-off-by: Peter Chen
Signed-off-by: Marc Kleine-Budde
Tested-by: Marc Kleine-Budde
Signed-off-by: Greg Kroah-Hartman -
commit 27c73ae759774e63313c1fbfeb17ba076cea64c5 upstream.
Commit 7cb2ef56e6a8 ("mm: fix aio performance regression for database
caused by THP") can cause dereference of a dangling pointer if
split_huge_page runs during PageHuge() if there are updates to the
tail_page->private field.Also it is repeating compound_head twice for hugetlbfs and it is running
compound_head+compound_trans_head for THP when a single one is needed in
both cases.The new code within the PageSlab() check doesn't need to verify that the
THP page size is never bigger than the smallest hugetlbfs page size, to
avoid memory corruption.A longstanding theoretical race condition was found while fixing the
above (see the change right after the skip_unlock label, that is
relevant for the compound_lock path too).By re-establishing the _mapcount tail refcounting for all compound
pages, this also fixes the below problem:echo 0 >/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
BUG: Bad page state in process bash pfn:59a01
page:ffffea000139b038 count:0 mapcount:10 mapping: (null) index:0x0
page flags: 0x1c00000000008000(tail)
Modules linked in:
CPU: 6 PID: 2018 Comm: bash Not tainted 3.12.0+ #25
Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
Call Trace:
dump_stack+0x55/0x76
bad_page+0xd5/0x130
free_pages_prepare+0x213/0x280
__free_pages+0x36/0x80
update_and_free_page+0xc1/0xd0
free_pool_huge_page+0xc2/0xe0
set_max_huge_pages.part.58+0x14c/0x220
nr_hugepages_store_common.isra.60+0xd0/0xf0
nr_hugepages_store+0x13/0x20
kobj_attr_store+0xf/0x20
sysfs_write_file+0x189/0x1e0
vfs_write+0xc5/0x1f0
SyS_write+0x55/0xb0
system_call_fastpath+0x16/0x1bSigned-off-by: Khalid Aziz
Signed-off-by: Andrea Arcangeli
Tested-by: Khalid Aziz
Cc: Pravin Shelar
Cc: Greg Kroah-Hartman
Cc: Ben Hutchings
Cc: Christoph Lameter
Cc: Johannes Weiner
Cc: Mel Gorman
Cc: Rik van Riel
Cc: Andi Kleen
Cc: Minchan Kim
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
Cc: Guillaume Morin
Signed-off-by: Greg Kroah-Hartman
04 Feb, 2014
4 commits
-
…ux-kernel/audio-display-linux-feature-tree into ti-linux-3.12.y
TI-Feature: audio-display
TI-Tree: git://git.ti.com/~darrene/ti-linux-kernel/audio-display-linux-feature-tree.git
TI-Branch: audio-display-ti-linux-3.12.y* 'audio-display-ti-linux-3.12.y' of git://git.ti.com/~darrene/ti-linux-kernel/audio-display-linux-feature-tree:
ARM: dts: am437x-gp-evm: Add sleep pinctrl states for vpfe
ARM: dts: am43x-epos-evm: Add sleep pinctrl state for vpfe
Media: platform: ti-vpfe: Enhance pinctrl support
Media: platform: ti-vpfe: Add frame size/format config
Media: platform: ti-vpfe: minor code cleanup
Media: sensor ov2659: Minor cleanup and added debug
Media: sensor: ov2659: Add frame size configuration support
Media: sensor: ov2659: Add format configuration supportSigned-off-by: Dan Murphy <DMurphy@ti.com>
-
Modified register dump functions to cover all registers
Remove remaining unsused code leftover from the ov9650 adaptationSigned-off-by: Benoit Parrot
Signed-off-by: Darren Etheridge -
…-linux-feature-tree into ti-linux-3.12.y
TI-Feature: power_management_base
TI-Tree: git://git.ti.com/~kristo/ti-linux-kernel/pm-linux-feature-tree.git
TI-Branch: pm-ti-linux-3.12.y* 'pm-ti-linux-3.12.y' of git://git.ti.com/~kristo/ti-linux-kernel/pm-linux-feature-tree:
ARM: OMAP2+: AM43xx: Enable DeepSleep0 for DDR3 boards
ARM: AM43XX: Bump firmware requirement for DDR3 DS0
ARM: dts: am437x-gp-evm: Enable wkup_m3 control of IO isolation
ARM: dts: am437x-gp-evm: Add state for ddr3 vtt toggle pin
ARM: OMAP2+: AM43xx: Add support for IO Isolation
opp-modifier: Add default failover case and PG1.1 support for am43xx
opp-modifier: Add default failover case for am33xxConflicts:
arch/arm/boot/dts/am437x-gp-evm.dtsSigned-off-by: Dan Murphy <DMurphy@ti.com>
-
Add pinctrl data for ddr_vtt_toggle pin so that it is configured
for proper state during DeepSleep0. The pin should enter DS0 off mode
and hold the line low so VTT regulator is kept off while suspended.
It is also important for the PULLUP to be set on this pin so that
on removal of isolation, the VTT line is pulled high as a requirement
for bringing the DDR3 out of self-refresh.This toggling is dependent on the IO isolation controlled by the
wkup_m3. Without placing the IOs into isolation the DS0 states set for
the pin will not be latched into effect during suspend.Signed-off-by: Dave Gerlach
27 Jan, 2014
3 commits
-
…ux-kernel/audio-display-linux-feature-tree into ti-linux-3.12.y
TI-Feature: audio-display
TI-Tree: git://git.ti.com/~darrene/ti-linux-kernel/audio-display-linux-feature-tree.git
TI-Branch: audio-display-ti-linux-3.12.y* 'audio-display-ti-linux-3.12.y' of git://git.ti.com/~darrene/ti-linux-kernel/audio-display-linux-feature-tree:
OMAPDSS: DISPC: Preload more data in pipeline DMAs for OMAP4+ SoCs
ARM: omap2plus_defconfig: Add VPFE and OV2659
ARM: AM437x: dts: add vpfe and ov2659 to epos and gp evm
Media: platform: Add ti-vpfe driver for AM437x device
Media: sensor: Add Omnivision OV2659 driver
ARM: AM437x: dts: add vpfe[0,1] module DT entriesSigned-off-by: Dan Murphy <DMurphy@ti.com>
-
…-linux-feature-tree into ti-linux-3.12.y
TI-Feature: power_management_base
TI-Tree: git://git.ti.com/~kristo/ti-linux-kernel/pm-linux-feature-tree.git
TI-Branch: pm-ti-linux-3.12.y* 'pm-ti-linux-3.12.y' of git://git.ti.com/~kristo/ti-linux-kernel/pm-linux-feature-tree:
ARM: AM33XX: Add CPU idle support
ARM: AM33XX: Bump firmware version requirement for CPU idle
ARM: AM33XX: Add noirq versions of mailbox commands
ARM: AM33XX: Make sleep/resume actions configurable
ARM: AM33XX: Remove unnecessary delays from suspend/resume path
ARM: AM33XX: Simplify EMIF config restore
ARM: AM33XX: Don't rewrite SDRAM_CONFIG register for DDR2 systems
ARM: AM33XX: Fix compile errors with !CONFIG_SUSPENDSigned-off-by: Dan Murphy <DMurphy@ti.com>
-
The mailbox framework is used to send messages between the A8 and the
M3 PM coprocessor. In order to support CPU idle, the messages need to
be sent when IRQs are disabled, preventing the use of spin_lock_bh.
Make a noirq version of the functions required that do not attempt
to take such a lock.Signed-off-by: Russ Dill
26 Jan, 2014
4 commits
-
…ux-stable into ti-linux-3.12.y
This is the 3.12.9 stable release
* tag 'v3.12.9' of http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (28 commits)
Linux 3.12.9
ARM: 7938/1: OMAP4/highbank: Flush L2 cache before disabling
drm/i915: Don't grab crtc mutexes in intel_modeset_gem_init()
ARM: 7934/1: DT/kernel: fix arch_match_cpu_phys_id to avoid erroneous match
serial: amba-pl011: use port lock to guard control register access
mm: Make {,set}page_address() static inline if WANT_PAGE_VIRTUAL
md/raid5: Fix possible confusion when multiple write errors occur.
md/raid10: fix two bugs in handling of known-bad-blocks.
md/raid10: fix bug when raid10 recovery fails to recover a block.
md: fix problem when adding device to read-only array with bitmap.
drm/i915: fix DDI PLLs HW state readout code
nilfs2: fix segctor bug that causes file system corruption
mm: fix crash when using XFS on loopback
crash_dump: fix compilation error (on MIPS at least)
ftrace/x86: Load ftrace_ops in parameter not the variable holding it
thp: fix copy_page_rep GPF by testing is_huge_zero_pmd once only
SELinux: Fix possible NULL pointer dereference in selinux_inode_permission()
writeback: Fix data corruption on NFS
hwmon: (coretemp) Fix truncated name of alarm attributes
i2c: Re-instate body of i2c_parent_is_i2c_adapter()
...Signed-off-by: Dan Murphy <DMurphy@ti.com>
-
commit f92f455f67fef27929e6043499414605b0c94872 upstream.
{,set}page_address() are macros if WANT_PAGE_VIRTUAL. If
!WANT_PAGE_VIRTUAL, they're plain C functions.If someone calls them with a void *, this pointer is auto-converted to
struct page * if !WANT_PAGE_VIRTUAL, but causes a build failure on
architectures using WANT_PAGE_VIRTUAL (arc, m68k and sparc64):drivers/md/bcache/bset.c: In function `__btree_sort':
drivers/md/bcache/bset.c:1190: warning: dereferencing `void *' pointer
drivers/md/bcache/bset.c:1190: error: request for member `virtual' in something not a structure or unionConvert them to static inline functions to fix this. There are already
plenty of users of struct page members inside , so there's
no reason to keep them as macros.Signed-off-by: Geert Uytterhoeven
Acked-by: Michael S. Tsirkin
Tested-by: Guenter Roeck
Tested-by: David Rientjes
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
Signed-off-by: Greg Kroah-Hartman -
commit 5a610fcc7390ee60308deaf09426ada87a1eeec2 upstream.
In file included from kernel/crash_dump.c:2:0:
include/linux/crash_dump.h:22:27: error: unknown type name `pgprot_t'when CONFIG_CRASH_DUMP=y
The error was traced back to commit 9cb218131de1 ("vmcore: introduce
remap_oldmem_pfn_range()")include to get the missing definition
Signed-off-by: Qais Yousef
Reviewed-by: James Hogan
Cc: Michael Holzheu
Acked-by: Vivek Goyal
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
Signed-off-by: Greg Kroah-Hartman -
commit 2fac2b891f287691c27ee8d2eeecf39571b27fea upstream.
The body of i2c_parent_is_i2c_adapter() is currently guarded by
I2C_MUX. It should be CONFIG_I2C_MUX instead.Among potentially other problems, this resulted in i2c_lock_adapter()
only locking I2C mux child adapters, and not the parent adapter. In
turn, this could allow inter-mingling of mux child selection and I2C
transactions, which could result in I2C transactions being directed to
the wrong I2C bus, and possibly even switching between busses in the
middle of a transaction.One concrete issue caused by this bug was corrupted HDMI EDID reads
during boot on the NVIDIA Tegra Seaboard system, although this only
became apparent in recent linux-next, when the boot timing was changed
just enough to trigger the race condition.Fixes: 3923172b3d70 ("i2c: reduce parent checking to a NOOP in non-I2C_MUX case")
Cc: Phil Carmody
Signed-off-by: Stephen Warren
Signed-off-by: Wolfram Sang
Signed-off-by: Greg Kroah-Hartman
25 Jan, 2014
1 commit
-
Add basic OmniVision ov2659 sensor driver
Currently only support 800x600 YUV422: YUYV ordering
Supports media-controller api and asynchonous registrationSigned-off-by: Benoit Parrot
Signed-off-by: Darren Etheridge
24 Jan, 2014
1 commit
-
When using device tree, driver configuration data need to be read from
device node.
Add support for getting the platform data information from the device
tree information stored in the .dtb file in case it exists.Change-Id: I74f7f869fc257a057edb9f35c5fd8cbafb810164
Signed-off-by: Eyal Reizer
Signed-off-by: bvijay
18 Jan, 2014
4 commits
-
…x-stable into ti-linux-3.12.y
This is the 3.12.8 stable release
* tag 'v3.12.8' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (78 commits)
Linux 3.12.8
sched: Guarantee new group-entities always have weight
sched: Fix hrtimer_cancel()/rq->lock deadlock
sched: Fix cfs_bandwidth misuse of hrtimer_expires_remaining
sched: Fix race on toggling cfs_bandwidth_used
x86, fpu, amd: Clear exceptions in AMD FXSAVE workaround
netfilter: nf_nat: fix access to uninitialized buffer in IRC NAT helper
netfilter: fix wrong byte order in nf_ct_seqadj_set internal information
SCSI: sd: Reduce buffer size for vpd request
intel_pstate: Add X86_FEATURE_APERFMPERF to cpu match parameters.
mac80211: move "bufferable MMPDU" check to fix AP mode scan
ACPI / Battery: Add a _BIX quirk for NEC LZ750/LS
ACPI / TPM: fix memory leak when walking ACPI namespace
mfd: rtsx_pcr: Disable interrupts before cancelling delayed works
leds: lp5521/5523: Remove duplicate mutex
clk: exynos5250: fix sysmmu_mfc{l,r} gate clocks
clk: samsung: exynos5250: Add CLK_IGNORE_UNUSED flag for the sysreg clock
clk: samsung: exynos5250: Add MDMA0 clocks
clk: samsung: exynos5250: Fix ACP gate register offset
clk: samsung: exynos4: Correct SRC_MFC register
...Signed-off-by: Dan Murphy <dmurphy@ti.com>
-
…x-stable into ti-linux-3.12.y
This is the 3.12.7 stable release
* tag 'v3.12.7' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (154 commits)
Linux 3.12.7
sh: add EXPORT_SYMBOL(min_low_pfn) and EXPORT_SYMBOL(max_low_pfn) to sh_ksyms_32.c
ext4: fix bigalloc regression
ACPIPHP / radeon / nouveau: Fix VGA switcheroo problem related to hotplug
nouveau_acpi: convert acpi_get_handle() to acpi_has_method()
aio/migratepages: make aio migrate pages sane
aio: clean up and fix aio_setup_ring page mapping
clocksource: dw_apb_timer_of: Fix support for dts binding "snps,dw-apb-timer"
clocksource: dw_apb_timer_of: Fix read_sched_clock
selinux: process labeled IPsec TCP SYN-ACK packets properly in selinux_ip_postroute()
selinux: look for IPsec labels on both inbound and outbound packets
sh: always link in helper functions extracted from libgcc
gpio: msm: Fix irq mask/unmask by writing bits instead of numbers
gpio: twl4030: Fix regression for twl gpio LED output
sh-pfc: Fix PINMUX_GPIO macro
jbd2: don't BUG but return ENOSPC if a handle runs out of space
s390/3270: fix allocation of tty3270_screen structure
ARM: sun7i: dt: Fix interrupt trigger types
memcg: fix memcg_size() calculation
GFS2: Fix incorrect invalidation for DIO/buffered I/O
...Conflicts:
arch/arm/mach-omap2/omap_hwmod_7xx_data.c
drivers/usb/musb/musb_core.cSigned-off-by: Dan Murphy <dmurphy@ti.com>
-
…x-stable into ti-linux-3.12.y
This is the 3.12.6 stable release
* tag 'v3.12.6' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (120 commits)
Linux 3.12.6
ARM: OMAP2+: hwmod: Fix SOFTRESET logic
drm/i915/vlv: fix up broken precision in vlv_crtc_clock_get
drm/i915/vlv: add VLV specific clock_get function v3
i915/vlv: untangle integrated clock source handling v4
Btrfs: fix lockdep error in async commit
Btrfs: fix a crash when running balance and defrag concurrently
Btrfs: do not run snapshot-aware defragment on error
Btrfs: take ordered root lock when removing ordered operations inode
Btrfs: stop using vfs_read in send
Btrfs: fix incorrect inode acl reset
Btrfs: fix hole check in log_one_extent
Btrfs: fix memory leak of chunks' extent map
Btrfs: reset intwrite on transaction abort
Btrfs: do a full search everytime in btrfs_search_old_slot
Revert "net: update consumers of MSG_MORE to recognize MSG_SENDPAGE_NOTLAST"
Input: elantech - add support for newer (August 2013) devices
NFSv4 wait on recovery for async session errors
sc1200_wdt: Fix oops
staging: comedi: ssv_dnp: use comedi_dio_update_state()
...Conflicts:
arch/arm/mach-omap2/omap_hwmod.c
drivers/usb/musb/musb_cppi41.cSigned-off-by: Dan Murphy <dmurphy@ti.com>
-
…x-stable into ti-linux-3.12.y
This is the 3.12.5 stable release
* tag 'v3.12.5' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (64 commits)
Linux 3.12.5
crypto: scatterwalk - Use sg_chain_ptr on chain entries
drivers/char/i8k.c: add Dell XPLS L421X
USB: cdc-acm: Added support for the Lenovo RD02-D400 USB Modem
USB: spcp8x5: correct handling of CS5 setting
USB: mos7840: correct handling of CS5 setting
USB: ftdi_sio: fixed handling of unsupported CSIZE setting
USB: pl2303: fixed handling of CS5 setting
n_tty: Fix missing newline echo
mei: add 9 series PCH mei device ids
mei: me: add Lynx Point Wellsburg work station device id
Input: mousedev - allow disabling even without CONFIG_EXPERT
Input: allow deselecting serio drivers even without CONFIG_EXPERT
tg3: avoid double-freeing of rx data memory
iwlwifi: dvm: don't override mac80211's queue setting
SCSI: Disable WRITE SAME for RAID and virtual host adapter drivers
x86-64, build: Always pass in -mno-sse
net: update consumers of MSG_MORE to recognize MSG_SENDPAGE_NOTLAST
irq: Enable all irqs unconditionally in irq_resume
Update of blkg_stat and blkg_rwstat may happen in bh context. While u64_stats_fetch_retry is only preempt_disable on 32bit UP system. This is not enough to avoid preemption by bh and may read strange 64 bit value.
...Signed-off-by: Dan Murphy <dmurphy@ti.com>
17 Jan, 2014
2 commits
-
…-linux-feature-tree into ti-linux-3.12.y
TI-Feature: power_management_base
TI-Tree: git://git.ti.com/~kristo/ti-linux-kernel/pm-linux-feature-tree.git
TI-Branch: pm-ti-linux-3.12.y* 'pm-ti-linux-3.12.y' of git://git.ti.com/~kristo/ti-linux-kernel/pm-linux-feature-tree:
ARM: dts: am4372: Add voltage-tolerance to cpu0 node
opp-modifier: Remove unused compat string
ARM: dts: AM4372: Add efuse device entry for OPP and add higher OPPs
ARM: dts: am33xx: Change am33xx compat for opp-modifier
opp-modifier: Add AM4372 support to omap-opp-modifier driver
opp-modifier: Add support for different SoC device ids
arm: omap: wkup_m3: use FW_ACTION_HOTPLUGConflicts:
arch/arm/boot/dts/am4372.dtsiSigned-off-by: Dan Murphy <dmurphy@ti.com>
-
Add compatible string and devrev_to_opp_rev translation function
specific to AM4372 eFuse to add support.Signed-off-by: Dave Gerlach
16 Jan, 2014
4 commits
-
[ Upstream commit 7a7ffbabf99445704be01bff5d7e360da908cf8e ]
VM to VM GSO traffic is broken if it goes through VXLAN or GRE
tunnel and the physical NIC on the host supports hardware VXLAN/GRE
GSO offload (e.g. bnx2x and next-gen mlx4).Two issues -
(VXLAN) VM traffic has SKB_GSO_DODGY and SKB_GSO_UDP_TUNNEL with
SKB_GSO_TCP/UDP set depending on the inner protocol. GSO header
integrity check fails in udp4_ufo_fragment if inner protocol is
TCP. Also gso_segs is calculated incorrectly using skb->len that
includes tunnel header. Fix: robust check should only be applied
to the inner packet.(VXLAN & GRE) Once GSO header integrity check passes, NULL segs
is returned and the original skb is sent to hardware. However the
tunnel header is already pulled. Fix: tunnel header needs to be
restored so that hardware can perform GSO properly on the original
packet.Signed-off-by: Wei-Chun Chao
Signed-off-by: David S. Miller
Signed-off-by: Greg Kroah-Hartman -
[ Upstream commit 2205369a314e12fcec4781cc73ac9c08fc2b47de ]
When the vlan code detects that the real device can do TX VLAN offloads
in hardware, it tries to arrange for the real device's header_ops to
be invoked directly.But it does so illegally, by simply hooking the real device's
header_ops up to the VLAN device.This doesn't work because we will end up invoking a set of header_ops
routines which expect a device type which matches the real device, but
will see a VLAN device instead.Fix this by providing a pass-thru set of header_ops which will arrange
to pass the proper real device instead.To facilitate this add a dev_rebuild_header(). There are
implementations which provide a ->cache and ->create but not a
->rebuild (f.e. PLIP). So we need a helper function just like
dev_hard_header() to avoid crashes.Use this helper in the one existing place where the
header_ops->rebuild was being invoked, the neighbour code.With lots of help from Florian Westphal.
Signed-off-by: David S. Miller
Signed-off-by: Greg Kroah-Hartman -
[ Upstream commit 0e3da5bb8da45890b1dc413404e0f978ab71173e ]
ipgre_header_parse() needs to parse the tunnel's ip header and it
uses mac_header to locate the iphdr. This got broken when gre tunneling
was refactored as mac_header is no longer updated to point to iphdr.
Introduce skb_pop_mac_header() helper to do the mac_header assignment
and use it in ipgre_rcv() to fix msg_name parsing.Bug introduced in commit c54419321455 (GRE: Refactor GRE tunneling code.)
Cc: Pravin B Shelar
Signed-off-by: Timo Teräs
Signed-off-by: David S. Miller
Signed-off-by: Greg Kroah-Hartman -
[ Upstream commit 12663bfc97c8b3fdb292428105dd92d563164050 ]
unix_dgram_recvmsg() will hold the readlock of the socket until recv
is complete.In the same time, we may try to setsockopt(SO_PEEK_OFF) which will hang until
unix_dgram_recvmsg() will complete (which can take a while) without allowing
us to break out of it, triggering a hung task spew.Instead, allow set_peek_off to fail, this way userspace will not hang.
Signed-off-by: Sasha Levin
Acked-by: Pavel Emelyanov
Signed-off-by: David S. Miller
Signed-off-by: Greg Kroah-Hartman
10 Jan, 2014
11 commits
-
commit f244d8b623dae7a7bc695b0336f67729b95a9736 upstream.
The changes in the ACPI-based PCI hotplug (ACPIPHP) subsystem made
during the 3.12 development cycle uncovered a problem with VGA
switcheroo that on some systems, when the device-specific method
(ATPX in the radeon case, _DSM in the nouveau case) is used to turn
off the discrete graphics, the BIOS generates ACPI hotplug events for
that device and those events cause ACPIPHP to attempt to remove the
device from the system (they are events for a device that was present
previously and is not present any more, so that's what should be done
according to the spec). Then, the system stops functioning correctly.Since the hotplug events in question were simply silently ignored
previously, the least intrusive way to address that problem is to
make ACPIPHP ignore them again. For this purpose, introduce a new
ACPI device flag, no_hotplug, and modify ACPIPHP to ignore hotplug
events for PCI devices whose ACPI companions have that flag set.
Next, make the radeon and nouveau switcheroo detection code set the
no_hotplug flag for the discrete graphics' ACPI companion.Fixes: bbd34fcdd1b2 (ACPI / hotplug / PCI: Register all devices under the given bridge)
References: https://bugzilla.kernel.org/show_bug.cgi?id=61891
References: https://bugzilla.kernel.org/show_bug.cgi?id=64891
Reported-and-tested-by: Mike Lothian
Reported-and-tested-by:
Reported-and-tested-by: Joaquín Aramendía
Cc: Alex Deucher
Cc: Dave Airlie
Cc: Takashi Iwai
Signed-off-by: Rafael J. Wysocki
Signed-off-by: Greg Kroah-Hartman -
commit 8e321fefb0e60bae4e2a28d20fc4fa30758d27c6 upstream.
The arbitrary restriction on page counts offered by the core
migrate_page_move_mapping() code results in rather suspicious looking
fiddling with page reference counts in the aio_migratepage() operation.
To fix this, make migrate_page_move_mapping() take an extra_count parameter
that allows aio to tell the code about its own reference count on the page
being migrated.While cleaning up aio_migratepage(), make it validate that the old page
being passed in is actually what aio_migratepage() expects to prevent
misbehaviour in the case of races.Signed-off-by: Benjamin LaHaise
Signed-off-by: Greg Kroah-Hartman -
commit af2c1401e6f9177483be4fad876d0073669df9df upstream.
According to documentation on barriers, stores issued before a LOCK can
complete after the lock implying that it's possible tlb_flush_pending
can be visible after a page table update. As per revised documentation,
this patch adds a smp_mb__before_spinlock to guarantee the correct
ordering.Signed-off-by: Mel Gorman
Acked-by: Paul E. McKenney
Reviewed-by: Rik van Riel
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
Signed-off-by: Greg Kroah-Hartman -
commit 20841405940e7be0617612d521e206e4b6b325db upstream.
There are a few subtle races, between change_protection_range (used by
mprotect and change_prot_numa) on one side, and NUMA page migration and
compaction on the other side.The basic race is that there is a time window between when the PTE gets
made non-present (PROT_NONE or NUMA), and the TLB is flushed.During that time, a CPU may continue writing to the page.
This is fine most of the time, however compaction or the NUMA migration
code may come in, and migrate the page away.When that happens, the CPU may continue writing, through the cached
translation, to what is no longer the current memory location of the
process.This only affects x86, which has a somewhat optimistic pte_accessible.
All other architectures appear to be safe, and will either always flush,
or flush whenever there is a valid mapping, even with no permissions
(SPARC).The basic race looks like this:
CPU A CPU B CPU C
load TLB entry
make entry PTE/PMD_NUMA
fault on entry
read/write old page
start migrating page
change PTE/PMD to new page
read/write old page [*]
flush TLB
reload TLB from new entry
read/write new page
lose data[*] the old page may belong to a new user at this point!
The obvious fix is to flush remote TLB entries, by making sure that
pte_accessible aware of the fact that PROT_NONE and PROT_NUMA memory may
still be accessible if there is a TLB flush pending for the mm.This should fix both NUMA migration and compaction.
[mgorman@suse.de: fix build]
Signed-off-by: Rik van Riel
Signed-off-by: Mel Gorman
Cc: Alex Thorlton
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
Signed-off-by: Greg Kroah-Hartman -
commit de466bd628e8d663fdf3f791bc8db318ee85c714 upstream.
do_huge_pmd_numa_page() handles the case where there is parallel THP
migration. However, by the time it is checked the NUMA hinting
information has already been disrupted. This patch adds an earlier
check with some helpers.Signed-off-by: Mel Gorman
Reviewed-by: Rik van Riel
Cc: Alex Thorlton
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
Signed-off-by: Greg Kroah-Hartman -
commit f78dea064c5f7de07de4912a6e5136dbc443d614 upstream.
Certain drives cannot handle queued TRIM commands properly, even
though support is indicated in the IDENTIFY DEVICE buffer. This patch
allows for disabling the commands for the affected drives and apply it
to the Micron/Crucial M500 SSDs which exhibit incorrect protocol
behavior when issued queued TRIM commands, which could lead to silent
data corruption.tj: Merged two unnecessarily split patches and made minor edits
including shortening horkage name.Signed-off-by: Marc Carino
Signed-off-by: Tejun Heo
Link: http://lkml.kernel.org/g/1387246554-7311-1-git-send-email-marc.ceeeee@gmail.com
Signed-off-by: Greg Kroah-Hartman -
commit f60900f2609e893c7f8d0bccc7ada4947dac4cd5 upstream.
Commit 2171364d1a92 ("powerpc: Add HWCAP2 aux entry") introduced a new
AT_ auxv entry type AT_HWCAP2 but failed to update AT_VECTOR_SIZE_BASE
accordingly.Signed-off-by: Ard Biesheuvel
Fixes: 2171364d1a92 (powerpc: Add HWCAP2 aux entry)
Acked-by: Michael Neuling
Cc: Nishanth Aravamudan
Cc: Benjamin Herrenschmidt
Signed-off-by: Linus Torvalds
Signed-off-by: Greg Kroah-Hartman -
commit d00adcc8ae9e22eca9d8af5f66c59ad9a74c90ec upstream.
Fixes rendering corruption due to incorrect
gfx configuration.bug:
https://bugs.freedesktop.org/show_bug.cgi?id=63599Signed-off-by: Alex Deucher
Signed-off-by: Greg Kroah-Hartman -
commit 439a1cfffe2c1a06e5a6394ccd5d18a8e89b15d3 upstream.
This will allow userspace to correctly program the PA_SC_RASTER_CONFIG
register, so it can be considered a fix.Signed-off-by: Marek Olšák
Signed-off-by: Alex Deucher
Signed-off-by: Greg Kroah-Hartman -
commit 95cadace8f3959282e76ebf8b382bd0930807d2c upstream.
This patch allows FILEIO to update hw_max_sectors based on the current
max_bytes_per_io. This is required because vfs_[writev,readv]() can accept
a maximum of 2048 iovecs per call, so the enforced hw_max_sectors really
needs to be calculated based on block_size.This addresses a >= v3.5 bug where block_size=512 was rejecting > 1M
sized I/O requests, because FD_MAX_SECTORS was hardcoded to 2048 for
the block_size=4096 case.(v2: Use max_bytes_per_io instead of ->update_hw_max_sectors)
Reported-by: Henrik Goldman
Signed-off-by: Nicholas Bellinger
Signed-off-by: Greg Kroah-Hartman -
commit c97102ba96324da330078ad8619ba4dfe840dbe3 upstream.
Commit 1b3a5d02ee07 ("reboot: move arch/x86 reboot= handling to generic
kernel") moved reboot= handling to generic code. In the process it also
removed the code in native_machine_shutdown() which are moving reboot
process to reboot_cpu/cpu0.I guess that thought must have been that all reboot paths are calling
migrate_to_reboot_cpu(), so we don't need this special handling. But
kexec reboot path (kernel_kexec()) is not calling
migrate_to_reboot_cpu() so above change broke kexec. Now reboot can
happen on non-boot cpu and when INIT is sent in second kerneo to bring
up BP, it brings down the machine.So start calling migrate_to_reboot_cpu() in kexec reboot path to avoid
this problem.Bisected by WANG Chao.
Reported-by: Matthew Whitehead
Reported-by: Dave Young
Signed-off-by: Vivek Goyal
Tested-by: Baoquan He
Tested-by: WANG Chao
Acked-by: H. Peter Anvin
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
Signed-off-by: Greg Kroah-Hartman
08 Jan, 2014
2 commits
-
Add support to enable/disable PHY wakeup feature in AM43x Soc during
system suspend/resume. Also add a driver flag to make sure PHY wakeup
is enabled only for AM43x SoC.Also add SYSTEM_SLEEP_PM_OPS to enable AM43x to successfully enter
deep sleep state.Signed-off-by: George Cherian
-
Add support to enable and disable the PHY wakeup feature
on AM43x. This is used to support the USB remote wakeup
feature in AM43x SoC.Signed-off-by: George Cherian