Skip to contentSkip to conversation

Linux 3.4.12

DISCUSSION Greg KH 1 participant 2 messages Oct 2, 2012

lore
Share & tools
lore

Greg KH

author
#0 lore raw

I'm announcing the release of the 3.4.12 kernel.

All users of the 3.4 kernel series must upgrade.

The updated 3.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-3.4.y
and can be browsed at the normal kernel.org git web browser:
http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Documentation/sound/alsa/HD-Audio-Models.txt          |    1 
 Makefile                                              |    2 
 arch/alpha/include/asm/atomic.h                       |    4 
 arch/arm/Makefile                                     |    4 
 arch/arm/boot/compressed/head.S                       |    1 
 arch/arm/include/asm/assembler.h                      |    8 +
 arch/arm/include/asm/mutex.h                          |  119 ---------------
 arch/arm/include/asm/uaccess.h                        |   40 +++--
 arch/arm/kernel/hw_breakpoint.c                       |   55 +++++--
 arch/arm/kernel/traps.c                               |   11 -
 arch/arm/lib/getuser.S                                |   23 +-
 arch/arm/lib/putuser.S                                |    6 
 arch/arm/mm/mm.h                                      |    3 
 arch/arm/mm/mmu.c                                     |    4 
 arch/mips/mm/gup.c                                    |    2 
 arch/powerpc/platforms/85xx/p1022_ds.c                |  102 +++++++++++--
 arch/s390/oprofile/init.c                             |   10 -
 arch/x86/include/asm/xen/page.h                       |    3 
 arch/x86/pci/fixup.c                                  |   17 ++
 arch/x86/xen/p2m.c                                    |   27 +--
 arch/x86/xen/setup.c                                  |    4 
 drivers/acpi/power.c                                  |   36 +++-
 drivers/ata/ahci.c                                    |    2 
 drivers/ata/libata-core.c                             |    1 
 drivers/base/power/runtime.c                          |    5 
 drivers/block/cciss_scsi.c                            |    1 
 drivers/block/nbd.c                                   |    9 +
 drivers/block/xen-blkback/blkback.c                   |    2 
 drivers/bluetooth/btusb.c                             |   10 -
 drivers/cpufreq/powernow-k8.c                         |   63 ++++----
 drivers/dma/at_hdmac.c                                |   13 +
 drivers/dma/pl330.c                                   |   21 +-
 drivers/gpio/gpio-lpc32xx.c                           |    5 
 drivers/gpu/drm/drm_crtc.c                            |    2 
 drivers/gpu/drm/i915/intel_crt.c                      |   36 ++++
 drivers/gpu/drm/i915/intel_display.c                  |   12 -
 drivers/gpu/drm/i915/intel_drv.h                      |    2 
 drivers/gpu/drm/i915/intel_hdmi.c                     |    2 
 drivers/gpu/drm/i915/intel_modes.c                    |   31 ++-
 drivers/gpu/drm/i915/intel_ringbuffer.c               |    7 
 drivers/gpu/drm/nouveau/nouveau_display.c             |    2 
 drivers/gpu/drm/radeon/atombios_crtc.c                |   61 ++++---
 drivers/gpu/drm/radeon/atombios_encoders.c            |  140 +++++++++---------
 drivers/gpu/drm/radeon/radeon.h                       |   15 -
 drivers/gpu/drm/radeon/radeon_atombios.c              |    2 
 drivers/gpu/drm/radeon/radeon_atpx_handler.c          |   56 -------
 drivers/gpu/drm/radeon/radeon_bios.c                  |  138 +++++++++++++++++
 drivers/gpu/drm/radeon/radeon_device.c                |    2 
 drivers/gpu/drm/udl/udl_connector.c                   |    7 
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c                   |    5 
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.h                   |   10 +
 drivers/gpu/drm/vmwgfx/vmwgfx_fence.c                 |    2 
 drivers/gpu/drm/vmwgfx/vmwgfx_resource.c              |   73 +++++++++
 drivers/hid/hid-logitech-dj.c                         |   41 +++++
 drivers/hid/hid-logitech-dj.h                         |    1 
 drivers/hwmon/ad7314.c                                |    8 +
 drivers/hwmon/ads7871.c                               |    9 +
 drivers/hwmon/fam15h_power.c                          |   15 +
 drivers/hwmon/twl4030-madc-hwmon.c                    |    9 -
 drivers/input/serio/i8042-x86ia64io.h                 |    6 
 drivers/iommu/intr_remapping.c                        |   18 +-
 drivers/isdn/isdnloop/isdnloop.c                      |   12 -
 drivers/md/md.c                                       |   15 +
 drivers/md/raid10.c                                   |   16 +-
 drivers/md/raid10.h                                   |    2 
 drivers/md/raid5.c                                    |    4 
 drivers/media/rc/rc-main.c                            |    5 
 drivers/media/video/cx25821/cx25821-core.c            |    3 
 drivers/media/video/cx25821/cx25821.h                 |    2 
 drivers/misc/sgi-xp/xpc_uv.c                          |   84 ++++++++--
 drivers/mmc/card/block.c                              |   26 +++
 drivers/mmc/host/mxs-mmc.c                            |    4 
 drivers/mmc/host/sdhci-esdhc.h                        |    6 
 drivers/mtd/ubi/vtbl.c                                |    4 
 drivers/net/can/janz-ican3.c                          |    4 
 drivers/net/can/mcp251x.c                             |   11 +
 drivers/net/can/ti_hecc.c                             |    2 
 drivers/net/ethernet/freescale/gianfar.c              |    2 
 drivers/net/ethernet/ibm/ibmveth.c                    |   26 +--
 drivers/net/ethernet/realtek/r8169.c                  |    1 
 drivers/net/ethernet/sfc/efx.c                        |    6 
 drivers/net/ethernet/sfc/efx.h                        |   14 +
 drivers/net/ethernet/sfc/ethtool.c                    |   20 +-
 drivers/net/ethernet/sfc/tx.c                         |   19 ++
 drivers/net/macvtap.c                                 |   35 ++--
 drivers/net/netconsole.c                              |    1 
 drivers/net/ppp/pptp.c                                |    4 
 drivers/net/usb/asix.c                                |    4 
 drivers/net/usb/qmi_wwan.c                            |   95 ++++++++++++
 drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c  |   26 ++-
 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c |    6 
 drivers/net/wireless/rt2x00/rt2400pci.c               |    9 +
 drivers/net/wireless/rt2x00/rt2400pci.h               |    1 
 drivers/net/wireless/rt2x00/rt2500pci.c               |    9 +
 drivers/net/wireless/rt2x00/rt2500usb.c               |   11 +
 drivers/net/wireless/rt2x00/rt2500usb.h               |   17 +-
 drivers/net/wireless/rt2x00/rt2800pci.c               |    9 +
 drivers/net/wireless/rt2x00/rt2800usb.c               |   22 ++
 drivers/net/wireless/rt2x00/rt2x00dev.c               |    2 
 drivers/net/wireless/rt2x00/rt61pci.c                 |    9 +
 drivers/net/wireless/rt2x00/rt61pci.h                 |    1 
 drivers/net/wireless/rt2x00/rt73usb.c                 |    9 +
 drivers/net/wireless/rt2x00/rt73usb.h                 |    3 
 drivers/net/wireless/rtlwifi/rtl8192ce/def.h          |    1 
 drivers/net/wireless/rtlwifi/rtl8192ce/hw.c           |   12 +
 drivers/net/wireless/rtlwifi/rtl8192ce/sw.c           |    6 
 drivers/platform/x86/asus-laptop.c                    |    8 -
 drivers/platform/x86/asus-nb-wmi.c                    |    4 
 drivers/rtc/rtc-rs5c348.c                             |    7 
 drivers/rtc/rtc-twl.c                                 |    5 
 drivers/scsi/bnx2i/bnx2i_hwi.c                        |    3 
 drivers/scsi/hpsa.c                                   |    3 
 drivers/scsi/lpfc/Makefile                            |    2 
 drivers/scsi/mpt2sas/mpt2sas_base.c                   |    7 
 drivers/scsi/virtio_scsi.c                            |    2 
 drivers/staging/android/android_alarm.h               |    4 
 drivers/staging/comedi/drivers/das08.c                |    2 
 drivers/staging/media/lirc/lirc_sir.c                 |   60 +++++++
 drivers/staging/rtl8712/recv_linux.c                  |    7 
 drivers/staging/speakup/main.c                        |    2 
 drivers/staging/vt6656/dpc.c                          |    2 
 drivers/staging/vt6656/rxtx.c                         |   38 ++--
 drivers/staging/zcache/zcache-main.c                  |    7 
 drivers/target/target_core_transport.c                |    9 -
 drivers/tty/serial/imx.c                              |   12 +
 drivers/tty/serial/pch_uart.c                         |   59 +++++--
 drivers/usb/class/cdc-wdm.c                           |   12 +
 drivers/usb/core/devices.c                            |    2 
 drivers/usb/core/hcd.c                                |    6 
 drivers/usb/core/quirks.c                             |    4 
 drivers/usb/dwc3/ep0.c                                |    1 
 drivers/usb/dwc3/gadget.c                             |    7 
 drivers/usb/host/ehci-q.c                             |   12 +
 drivers/usb/host/ohci-at91.c                          |   13 +
 drivers/usb/host/pci-quirks.c                         |   42 ++++-
 drivers/usb/host/pci-quirks.h                         |    1 
 drivers/usb/host/xhci-hub.c                           |   42 +++++
 drivers/usb/host/xhci-plat.c                          |    2 
 drivers/usb/host/xhci.c                               |  123 +++++++++++++++
 drivers/usb/host/xhci.h                               |    6 
 drivers/usb/serial/ftdi_sio.c                         |   22 ++
 drivers/usb/serial/ftdi_sio_ids.h                     |   29 +++
 drivers/usb/serial/option.c                           |    6 
 drivers/video/console/fbcon.c                         |    9 +
 drivers/watchdog/hpwdt.c                              |    3 
 drivers/xen/gntdev.c                                  |    5 
 drivers/xen/grant-table.c                             |    6 
 fs/cifs/cifs_unicode.c                                |    2 
 fs/dcache.c                                           |    4 
 fs/ecryptfs/inode.c                                   |    5 
 fs/lockd/svc.c                                        |   12 -
 fs/nfs/inode.c                                        |    2 
 fs/nfs/nfs3proc.c                                     |    2 
 fs/nfs/nfs4proc.c                                     |    4 
 fs/nfs/nfs4xdr.c                                      |    3 
 fs/nfs/super.c                                        |    2 
 fs/nfsd/nfsctl.c                                      |    8 -
 fs/nfsd/nfsd.h                                        |   11 +
 fs/nfsd/nfssvc.c                                      |   24 +--
 fs/proc/proc_sysctl.c                                 |    5 
 fs/stat.c                                             |    2 
 include/asm-generic/mutex-xchg.h                      |   11 +
 include/drm/drm_mode.h                                |    5 
 include/linux/dcache.h                                |    2 
 include/linux/init_task.h                             |   12 +
 include/linux/kobject.h                               |    2 
 include/linux/kthread.h                               |    8 -
 include/linux/ktime.h                                 |    7 
 include/linux/memory.h                                |    2 
 include/linux/mmc/card.h                              |    1 
 include/linux/netdevice.h                             |    4 
 include/linux/nfs_fs.h                                |    5 
 include/linux/pci_ids.h                               |    2 
 include/linux/perf_event.h                            |    2 
 include/linux/sched.h                                 |    5 
 include/linux/time.h                                  |   29 +++
 include/net/bluetooth/smp.h                           |    2 
 include/net/scm.h                                     |    4 
 include/net/sock.h                                    |    2 
 include/trace/events/kmem.h                           |    4 
 include/xen/grant_table.h                             |    3 
 kernel/async.c                                        |   13 +
 kernel/events/core.c                                  |   62 ++++---
 kernel/kthread.c                                      |   88 ++++++-----
 kernel/sched/core.c                                   |    9 +
 kernel/sched/sched.h                                  |   23 +-
 kernel/time/tick-sched.c                              |    1 
 kernel/time/timekeeping.c                             |   33 +++-
 kernel/workqueue.c                                    |   34 +---
 lib/digsig.c                                          |    6 
 mm/bootmem.c                                          |    8 -
 mm/memory_hotplug.c                                   |   16 +-
 mm/page_alloc.c                                       |    2 
 mm/vmscan.c                                           |    6 
 net/atm/common.c                                      |    1 
 net/atm/pvc.c                                         |    1 
 net/bluetooth/hci_conn.c                              |    4 
 net/bluetooth/hci_core.c                              |    2 
 net/bluetooth/hci_sock.c                              |    2 
 net/bluetooth/l2cap_core.c                            |   11 -
 net/bluetooth/l2cap_sock.c                            |    3 
 net/bluetooth/mgmt.c                                  |   16 ++
 net/bluetooth/rfcomm/sock.c                           |    2 
 net/bluetooth/rfcomm/tty.c                            |    2 
 net/bluetooth/smp.c                                   |   10 -
 net/core/dev.c                                        |   30 +++
 net/core/net_namespace.c                              |    4 
 net/core/sock.c                                       |    1 
 net/dccp/ccids/ccid3.c                                |    1 
 net/ipv4/ipmr.c                                       |   14 +
 net/ipv4/tcp.c                                        |    4 
 net/ipv4/tcp_cong.c                                   |    3 
 net/ipv4/tcp_input.c                                  |   15 -
 net/ipv4/tcp_output.c                                 |   21 +-
 net/ipv6/addrconf.c                                   |    4 
 net/l2tp/l2tp_core.c                                  |    3 
 net/l2tp/l2tp_core.h                                  |    1 
 net/llc/af_llc.c                                      |    3 
 net/mac80211/mlme.c                                   |    4 
 net/netfilter/ipvs/ip_vs_ctl.c                        |    1 
 net/netlink/af_netlink.c                              |    6 
 net/openvswitch/vport-internal_dev.c                  |    8 +
 net/packet/af_packet.c                                |   10 +
 net/rds/recv.c                                        |    3 
 net/sched/act_gact.c                                  |   14 +
 net/socket.c                                          |    1 
 net/unix/af_unix.c                                    |    4 
 net/wireless/reg.c                                    |   12 +
 sound/pci/hda/hda_codec.c                             |    2 
 sound/pci/hda/patch_realtek.c                         |   22 ++
 sound/pci/hda/patch_sigmatel.c                        |    2 
 sound/pci/ice1712/prodigy_hifi.c                      |    3 
 sound/soc/codecs/wm2000.c                             |    2 
 sound/soc/samsung/dma.c                               |    8 -
 sound/soc/tegra/tegra_alc5632.c                       |    1 
 235 files changed, 2304 insertions(+), 958 deletions(-)

Aaron Lu (1):
ACPI / PM: Use KERN_DEBUG when no power resources are found

AceLan Kao (1):
asus-nb-wmi: add some video toggle keys

Al Viro (1):
perf_event: Switch to internal refcount, fix race with close()

Alan Cox (3):
ahci: Add alternate identifier for the 88SE9172
x86: Fix boot on Twinhead H12Y
pch_uart: Fix missing break for 16 byte fifo

Alan Stern (2):
USB: add device quirk for Joss Optical touchboard
USB: Fix race condition when removing host controllers

Alex Deucher (7):
drm/radeon/ss: use num_crtc rather than hardcoded 6 drm/radeon: split ATRM support out from the ATPX handler (v3) drm/radeon/atom: rework DIG modesetting on DCE3+ drm/radeon/atom: powergating fixes for DCE6
drm/radeon: convert radeon vfct code to use acpi_get_table_with_size drm/radeon: don't disable plls that are in use by other crtcs drm/radeon: fix dig encoder selection on DCE61

Alexey Khoroshilov (1):
net/core: Fix potential memory leak in dev_set_alias()

Alexis R. Cortes (1):
usb: host: xhci: Fix Compliance Mode on SN65LVPE502CP Hardware

Amerigo Wang (1):
netconsole: remove a redundant netconsole_target_put()

Andre Guedes (1):
Bluetooth: Fix use-after-free bug in SMP

Andreas Herrmann (1):
hwmon: (fam15h_power) Tweak runavg_range on resume

Andrew Bird (Sphere Systems) (1):
USB: qmi_wwan: Add ZTE (Vodafone) K3765-Z

Andrzej Kaczmarek (2):
Bluetooth: mgmt: Fix enabling SSP while powered off
Bluetooth: mgmt: Fix enabling LE while powered off

Anisse Astier (1):
Input: i8042 - disable mux on Toshiba C850D

Artem Bityutskiy (1):
UBI: fix a horrible memory deallocation bug

Atsushi Nemoto (1):
drivers/rtc/rtc-rs5c348.c: fix hour decoding in 12-hour mode

Ben Hutchings (5):
net: Allow driver to limit number of GSO segments per skb
sfc: Fix maximum number of TSO segments and minimum TX queue size
tcp: Apply device TSO segment limit earlier
ipv6: addrconf: Avoid calling netdevice notifiers with RCU read-side lock
sfc: Fix reporting of IPv4 full filters through ethtool

Benoît Locher (1):
can: mcp251x: avoid repeated frame bug

Bjørn Mork (10):
USB: option: replace ZTE K5006-Z entry with vendor class rule
kobject: fix oops with "input0: bad kobj_uevent_env content in show_uevent()"
USB: ftdi_sio: do not claim CDC ACM function
USB: cdc-wdm: fix wdm_find_device* return value
net: qmi_wwan: Add Vodafone/Huawei K5005 support
net: qmi_wwan: Add Sierra Wireless device IDs
net: qmi_wwan: add ZTE MF60
net: qmi_wwan: add ZTE MF821D
net: qmi_wwan: add Sierra Wireless devices
net: qmi_wwan: new devices: UML290 and K5006-Z

Charles Wang (1):
sched: Add missing call to calc_load_exit_idle()

Christopher Brannon (1):
Staging: speakup: fix an improperly-declared variable.

Claudiu Manoil (1):
gianfar: fix default tx vlan offload feature flag

Corentin Chary (1):
asus-laptop: HRWS/HWRS typo

Dae S. Kim (1):
Staging: Android alarm: IOCTL command encoding fix

Dan Carpenter (2):
xhci: Fix a logical vs bitwise AND bug
vmwgfx: corruption in vmw_event_fence_action_create()

Daniel J Blueman (1):
libata: Prevent interface errors with Seagate FreeAgent GoFlex

Darren Hart (1):
pch_uart: Add eg20t_port lock field, avoid recursive spinlocks

Dave Airlie (4):
vmwgfx: add dumb ioctl support
fbcon: fix race condition between console lock and cursor timer (v1.1) drm/nouveau: fix booting with plymouth + dumb support drm/udl: limit modes to the sku pixel limits.

David Brown (1):
ARM: 7513/1: Make sure dtc is built before running it

David Lamparter (1):
drm/radeon: implement ACPI VFCT vbios fetch (v3)

Dmitry Kasatkin (1):
digsig: add hash size comparision on signature verification

Douglas Bagnall (1):
media: Avoid sysfs oops when an rc_dev's raw device is absent

Dylan Reid (1):
ASoC: samsung dma - Don't indicate support for pause/resume.

Eddie Wai (1):
SCSI: bnx2i: Fixed NULL ptr deference for 1G bnx2 Linux iSCSI offload

Eliad Peller (1):
mac80211: clear bssid on auth/assoc failure

Eric Dumazet (2):

      af_netlink: force credentials passing [CVE-2012-3520]
      staging: r8712u: fix bug in r8712_recv_indicatepkt()

Eric Leblond (1):
af_packet: don't emit packet on orig fanout group

Ezequiel Garcia (1):
media: cx25821: Remove bad strcpy to read-only char*

Francesco Ruggeri (2):
net: ipv4: ipmr_expire_timer causes crash when removing net namespace fs/proc: fix potential unregister_sysctl_table hang

Francois Romieu (1):

      r8169: RxConfig hack for the 8168evl.

Gao feng (1):
pptp: lookup route with the proper net namespace

Gertjan van Wingerde (3):
rt2x00: Identify ASUS USB-N53 device.
rt2x00: Fix word size of rt2500usb MAC_CSR19 register.
rt2x00: Fix rfkill polling prior to interface start.

Greg Kroah-Hartman (2):
Revert: drm/i915: correctly order the ring init sequence Linux 3.4.12

Guenter Roeck (3):
hwmon: (twl4030-madc-hwmon) Initialize uninitialized structure elements
hwmon: (ads7871) Add 'name' sysfs attribute
hwmon: (ad7314) Add 'name' sysfs attribute

Gustavo Padovan (1):
Bluetooth: Use USB_VENDOR_AND_INTERFACE() for Broadcom devices

Hante Meuleman (2):
brcmfmac: fix big endian bug in i-scan.
brcmfmac: Fix big endian host configuration data.

Henrik Rydberg (1):
Bluetooth: Add support for Apple vendor-specific devices

Hiroaki SHIMODA (1):
net_sched: gact: Fix potential panic in tcf_gact().

Horst Schirmeier (1):
USB: ftdi_sio: PID for NZR SEM 16+ USB

Ian Abbott (1):
staging: comedi: das08: Correct AO output for das08jr-16-ao

Ian Chen (1):
mmc: card: Skip secure erase on MoviNAND; causes unrecoverable corruption.

Ira W. Snyder (1):
can: janz-ican3: fix support for older hardware revisions

Jakob Bornecrantz (1):
drm: Check for invalid cursor flags

James Bottomley (1):
SCSI: lpfc: fix problems with -Werror

Jani Nikula (2):
drm/i915: extract connector update from intel_ddc_get_modes() for reuse drm/i915: fall back to bit-banging if GMBUS fails in CRT EDID reads

Jarod Wilson (1):
media: lirc_sir: make device registration work

Jason Wang (4):
macvtap: zerocopy: fix offset calculation when building skb
macvtap: zerocopy: fix truesize underestimation
macvtap: zerocopy: put page when fail to get all requested user pages
macvtap: zerocopy: set SKBTX_DEV_ZEROCOPY only when skb is built successfully

Jeff Layton (1):
cifs: fix return value in cifsConvertToUTF16

Jerome Glisse (2):
drm/radeon: avoid turning off spread spectrum for used pll drm/radeon: force dma32 to fix regression rs4xx,rs6xx,rs740

Jesse Gross (1):
openvswitch: Reset upper layer protocol info on internal devices.

Jianguo Wu (1):
mm/ia64: fix a memory block size bug

Joachim Eastwood (1):
USB: ohci-at91: fix null pointer in ohci_hcd_at91_overcurrent_irq

John Stultz (3):
time: Improve sanity checking of timekeeping inputs
time: Avoid making adjustments if we haven't accumulated anything
time: Move ktime_t overflow checking into timespec_valid_strict

Jovi Zhang (1):
MIPS: mm: Add compound tail page _mapcount when mapped

Keng-Yu Lin (1):
Intel xhci: Only switch the switchable ports

Kevin Hilman (1):
drivers/rtc/rtc-twl.c: ensure all interrupts are disabled during probe

Konrad Rzeszutek Wilk (1):
xen/boot: Disable NUMA for PV guests.

Lai Jiangshan (1):

      workqueue: UNBOUND -> REBIND morphing in rebind_workers() should be atomic

Larry Finger (1):
rtlwifi: rtl8192ce: Log message that B_CUT device may not work

Lauri Hintsala (1):
mmc: mxs-mmc: fix deadlock in SDIO IRQ case

Li Haifeng (1):
mm/page_alloc: fix the page address of higher page's buddy calculation

Li Zhong (1):
Fix a dead loop in async_synchronize_full()

Lin Ming (1):
ACPI / PM: Fix resource_lock dead lock in acpi_power_on_device

Linus Torvalds (1):
vfs: make O_PATH file descriptors usable for 'fstat()'

Luis R. Rodriguez (1):
cfg80211: fix possible circular lock on reg_regdb_search()

Malcolm Priestley (1):
staging: vt6656: [BUG] - Failed connection, incorrect endian.

Manoj Iyer (2):
xhci: Recognize USB 3.0 devices as superspeed at powerup
Bluetooth: btusb: Add vendor specific ID (0a5c:21f4) BCM20702A0

Marc Kleine-Budde (1):
can: ti_hecc: fix oops during rmmod

Mark Brown (1):
ASoC: wm2000: Correct register size

Mathias Krause (12):
atm: fix info leak in getsockopt(SO_ATMPVC)
atm: fix info leak via getsockname()
Bluetooth: HCI - Fix info leak in getsockopt(HCI_FILTER)
Bluetooth: HCI - Fix info leak via getsockname()
Bluetooth: RFCOMM - Fix info leak in getsockopt(BT_SECURITY)
Bluetooth: RFCOMM - Fix info leak in ioctl(RFCOMMGETDEVLIST)
Bluetooth: RFCOMM - Fix info leak via getsockname()
Bluetooth: L2CAP - Fix info leak via getsockname()
llc: fix info leak via getsockname()
dccp: fix info leak via getsockopt(DCCP_SOCKOPT_CCID_TX_INFO)
ipvs: fix info leak in getsockopt(IP_VS_SO_GET_TIMEOUT)
net: fix info leak in compat dev_ifconf()

Matteo Frigo (1):
ALSA: ice1724: Use linear scale for AK4396 volume control.

Matthew Garrett (1):
xhci: Make handover code more robust

Matthew Leach (1):
ARM: 7532/1: decompressor: reset SCTLR.TRE for VMSA ARMv7 cores

Mel Gorman (1):
Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts

Miklos Szeredi (1):
vfs: dcache: use DCACHE_DENTRY_KILLED instead of DCACHE_DISCONNECTED in d_kill()

Moiz Sonasath (1):
usb: host: xhci: fix compilation error for non-PCI based stacks

NeilBrown (4):
md: Don't truncate size at 4TB for RAID0 and Linear
md: make sure metadata is updated when spares are activated or removed. md/raid5: fix calculate of 'degraded' when a replacement becomes active. md/raid10: fix problem with on-stack allocation of r10bio structure.

Nestor Lopez Casado (1):
HID: Fix logitech-dj: missing Unifying device issue

Nicholas Bellinger (1):

      target: Fix ->data_length re-assignment bug with SCSI overflow

Nicolas Ferre (3):
dmaengine: at_hdmac: fix comment in atc_prep_slave_sg()
dmaengine: at_hdmac: check that each sg data length is non-null
USB: ohci-at91: fix PIO handling in relation with number of ports

Pablo Neira Ayuso (1):
netlink: fix possible spoofing from non-root processes

Paul Clements (1):
nbd: clear waiting_queue on shutdown

Pavankumar Kondeti (1):
EHCI: Update qTD next pointer in QH overlay region during unlink

Peter Zijlstra (1):
sched: Fix race in task_group()

Pratyush Anand (1):
usb: dwc3: ep0: correct cache sync issue in case of ep0_bounced

Rafael J. Wysocki (2):
PM / Runtime: Fix rpm_resume() return value for power.no_callbacks set PM / Runtime: Clear power.deferred_resume on success in rpm_suspend()

Robert Richter (1):
oprofile, s390: Fix uninitialized memory access when writing to oprofilefs

Robin Holt (1):
drivers/misc/sgi-xp/xpc_uv.c: SGI XPC fails to load when cpu 0 is out of IRQ resources

Roland Stigge (1):
gpio-lpc32xx: Fix value handling of gpio_direction_output()

Ruchika Kharwar (1):
usb: host: xhci-plat: use ioremap_nocache

Russell King (2):
ARM: 7527/1: uaccess: explicitly check __user pointer when !CPU_USE_DOMAINS
ARM: Fix ioremap() of address zero

Rustad, Mark D (1):
net: Statically initialize init_net.dev_base_head

Sachin Kamat (2):
DMA: PL330: Fix potential NULL pointer dereference in pl330_submit_req()
DMA: PL330: Check the pointer returned by kzalloc

Santiago Leon (1):
ibmveth: Fix alignment of rx queue bug

Satoru Moriya (1):

      mm: avoid swapping out with swappiness==0

Sergei Poselenov (1):
rt2800usb: Added rx packet length validity check

Seth Forshee (1):
irq_remap: disable IRQ remapping if any IOAPIC lacks an IOMMU

Seth Jennings (1):
staging: zcache: fix cleancache race condition with shrinker

Shawn Guo (1):
mmc: sdhci-esdhc: break out early if clock is 0

Stanislav Kinsbursky (3):
NFSd: introduce nfsd_destroy() helper
NFSd: set nfsd_serv to NULL after service destruction
LockD: pass service to per-net up and down functions

Stefano Stabellini (1):

      xen/m2p: do not reuse kmap_op->dev_bus_addr

Stephen M. Cameron (2):
cciss: fix handling of protocol error
SCSI: hpsa: fix handling of protocol error

Stephen Warren (1):
sound: tegra_alc5632: remove HP detect GPIO inversion

Søren Holm (1):
asix: Support DLink DUB-E100 H/W Ver C1

Takashi Iwai (3):
ALSA: hda - Fix missing Master volume for STAC9200/925x
ALSA: hda - Fix Oops at codec reset/reconfig
ALSA: hda - Workaround for silent output on VAIO Z with ALC889

Tejun Heo (4):
workqueue: reimplement work_on_cpu() using system_wq
cpufreq/powernow-k8: workqueue user shouldn't migrate the kworker to another CPU
kthread_worker: reorganize to prepare for flush_kthread_work() reimplementation
kthread_worker: reimplement flush_kthread_work() to allow freeing the work item being executed

Timur Tabi (2):
powerpc/85xx: p1022ds: disable the NAND flash node if video is enabled powerpc/85xx: p1022ds: fix DIU/LBC switching with NAND enabled

Tomoya MORINAGA (2):
pch_uart: Fix rx error interrupt setting issue
pch_uart: Fix parity setting issue

Toshi Kani (1):
hpwdt: Fix kdump issue in hpwdt

Trond Myklebust (2):
NFS: Fix the initialisation of the readdir 'cookieverf' array
NFS: Fix a problem with the legacy binary mount code

Tvrtko Ursulin (1):
drm/radeon/kms: extend the Fujitsu D3003-S2 board connector quirk to cover later silicon stepping

Tyler Hicks (1):
eCryptfs: Copy up attributes of the lower target inode after rename

Vinicius Costa Gomes (3):
Bluetooth: Fix not removing power_off delayed work
Bluetooth: Change signature of smp_conn_security()
Bluetooth: Fix sending a HCI Authorization Request over LE links

Wang Sen (1):
SCSI: scsi: virtio-scsi: Fix address translation failure of HighMem pages used by sg list

Wang Xingchao (1):
drm/i915: HDMI - Clear Audio Enable bit for Hot Plug

Weiping Pan (1):
rds: set correct msg_namelen

Wen Congyang (1):
tracing: Don't call page_to_pfn() if page is NULL

Weston Andros Adamson (1):
NFS: return error from decode_getfh in decode open

Will Deacon (4):
ARM: 7496/1: hw_breakpoint: don't rely on dfsr to show watchpoint access type
ARM: 7526/1: traps: send SIGILL if get_user fails on undef handling path
mutex: Place lock in contended state after fastpath_lock failure
ARM: 7467/1: mutex: use generic xchg-based implementation for ARMv6+

Wu Fengguang (1):
isdnloop: fix and simplify isdnloop_init()

Xinyu Chen (1):
tty: serial: imx: console write routing is unsafe on SMP

Xu, Anhua (1):
drm/i915: fix wrong order of parameters in port checking functions

Yinghai Lu (1):
mm: sparse: fix usemap allocation above node descriptor section

Yuchung Cheng (1):
tcp: fix cwnd reduction for non-sack recovery

Yuval Mintz (1):

      bnx2x: fix 57840_MF pci id

[email protected] (1):
af_packet: remove BUG statement in tpacket_destruct_skb

qiuxishi (1):
memory hotplug: fix section info double registration bug

[email protected] (1):
SCSI: mpt2sas: Fix for issue - Unable to boot from the drive connected to HBA

[email protected] (1):
l2tp: avoid to use synchronize_rcu in tunnel free function

Éric Piel (1):
USB: ftdi-sio: add support for more Physik Instrumente devices

author
#1 lore raw
Documentation/sound/alsa/HD-Audio-Models.txt +1 -0
index 286ec04..82dd174 100644
@@ -47,6 +47,7 @@ ALC882/883/885/888/889
   acer-aspire-4930g	Acer Aspire 4930G/5930G/6530G/6930G/7730G
   acer-aspire-8930g	Acer Aspire 8330G/6935G
   acer-aspire		Acer Aspire others
+  no-primary-hp		VAIO Z workaround (for fixed speaker DAC)
 
 ALC861/660
 ==========
Makefile +1 -1
index 22345c0..bcf5bc4 100644
@@ -1,6 +1,6 @@
 VERSION = 3
 PATCHLEVEL = 4
-SUBLEVEL = 11
+SUBLEVEL = 12
 EXTRAVERSION =
 NAME = Saber-toothed Squirrel
 
arch/alpha/include/asm/atomic.h +2 -2
index 3bb7ffe..c2cbe4f 100644
@@ -14,8 +14,8 @@
  */
 
 
-#define ATOMIC_INIT(i)		( (atomic_t) { (i) } )
-#define ATOMIC64_INIT(i)	( (atomic64_t) { (i) } )
+#define ATOMIC_INIT(i)		{ (i) }
+#define ATOMIC64_INIT(i)	{ (i) }
 
 #define atomic_read(v)		(*(volatile int *)&(v)->counter)
 #define atomic64_read(v)	(*(volatile long *)&(v)->counter)
arch/arm/Makefile +2 -2
index 047a207..1d6402c 100644
@@ -283,10 +283,10 @@ zImage Image xipImage bootpImage uImage: vmlinux
 zinstall uinstall install: vmlinux
 	$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $@
 
-%.dtb:
+%.dtb: scripts
 	$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@
 
-dtbs:
+dtbs: scripts
 	$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@
 
 # We use MRPROPER_FILES and CLEAN_FILES now
arch/arm/boot/compressed/head.S +1 -0
index dc7e8ce..87278fc 100644
@@ -648,6 +648,7 @@ __armv7_mmu_cache_on:
 		mcrne	p15, 0, r0, c8, c7, 0	@ flush I,D TLBs
 #endif
 		mrc	p15, 0, r0, c1, c0, 0	@ read control reg
+		bic	r0, r0, #1 << 28	@ clear SCTLR.TRE
 		orr	r0, r0, #0x5000		@ I-cache enable, RR cache replacement
 		orr	r0, r0, #0x003c		@ write buffer
 #ifdef CONFIG_MMU
arch/arm/include/asm/assembler.h +8 -0
index 03fb936..5c8b3bf4 100644
@@ -320,4 +320,12 @@
 	.size \name , . - \name
 	.endm
 
+	.macro check_uaccess, addr:req, size:req, limit:req, tmp:req, bad:req
+#ifndef CONFIG_CPU_USE_DOMAINS
+	adds	\tmp, \addr, #\size - 1
+	sbcccs	\tmp, \tmp, \limit
+	bcs	\bad
+#endif
+	.endm
+
 #endif /* __ASM_ASSEMBLER_H__ */
arch/arm/include/asm/mutex.h +4 -115

125 lines not on this page · raw message

arch/arm/include/asm/uaccess.h +27 -13
index 71f6536..0a070e9 100644
@@ -101,28 +101,39 @@ extern int __get_user_1(void *);
 extern int __get_user_2(void *);
 extern int __get_user_4(void *);
 
-#define __get_user_x(__r2,__p,__e,__s,__i...)				\
+#define __GUP_CLOBBER_1	"lr", "cc"
+#ifdef CONFIG_CPU_USE_DOMAINS
+#define __GUP_CLOBBER_2	"ip", "lr", "cc"
+#else
+#define __GUP_CLOBBER_2 "lr", "cc"
+#endif
+#define __GUP_CLOBBER_4	"lr", "cc"
+
+#define __get_user_x(__r2,__p,__e,__l,__s)				\
 	   __asm__ __volatile__ (					\
 		__asmeq("%0", "r0") __asmeq("%1", "r2")			\
+		__asmeq("%3", "r1")					\
 		"bl	__get_user_" #__s				\
 		: "=&r" (__e), "=r" (__r2)				\
-		: "0" (__p)						\
-		: __i, "cc")
+		: "0" (__p), "r" (__l)					\
+		: __GUP_CLOBBER_##__s)
 
 #define get_user(x,p)							\
 	({								\
+		unsigned long __limit = current_thread_info()->addr_limit - 1; \
 		register const typeof(*(p)) __user *__p asm("r0") = (p);\
 		register unsigned long __r2 asm("r2");			\
+		register unsigned long __l asm("r1") = __limit;		\
 		register int __e asm("r0");				\
 		switch (sizeof(*(__p))) {				\
 		case 1:							\
-			__get_user_x(__r2, __p, __e, 1, "lr");		\
-	       		break;						\
+			__get_user_x(__r2, __p, __e, __l, 1);		\
+			break;						\
 		case 2:							\
-			__get_user_x(__r2, __p, __e, 2, "r3", "lr");	\
+			__get_user_x(__r2, __p, __e, __l, 2);		\
 			break;						\
 		case 4:							\
-	       		__get_user_x(__r2, __p, __e, 4, "lr");		\
+			__get_user_x(__r2, __p, __e, __l, 4);		\
 			break;						\
 		default: __e = __get_user_bad(); break;			\
 		}							\
@@ -135,31 +146,34 @@ extern int __put_user_2(void *, unsigned int);
 extern int __put_user_4(void *, unsigned int);
 extern int __put_user_8(void *, unsigned long long);
 
-#define __put_user_x(__r2,__p,__e,__s)					\
+#define __put_user_x(__r2,__p,__e,__l,__s)				\
 	   __asm__ __volatile__ (					\
 		__asmeq("%0", "r0") __asmeq("%2", "r2")			\
+		__asmeq("%3", "r1")					\
 		"bl	__put_user_" #__s				\
 		: "=&r" (__e)						\
-		: "0" (__p), "r" (__r2)					\
+		: "0" (__p), "r" (__r2), "r" (__l)			\
 		: "ip", "lr", "cc")
 
 #define put_user(x,p)							\
 	({								\
+		unsigned long __limit = current_thread_info()->addr_limit - 1; \
 		register const typeof(*(p)) __r2 asm("r2") = (x);	\
 		register const typeof(*(p)) __user *__p asm("r0") = (p);\
+		register unsigned long __l asm("r1") = __limit;		\
 		register int __e asm("r0");				\
 		switch (sizeof(*(__p))) {				\
 		case 1:							\
-			__put_user_x(__r2, __p, __e, 1);		\
+			__put_user_x(__r2, __p, __e, __l, 1);		\
 			break;						\
 		case 2:							\
-			__put_user_x(__r2, __p, __e, 2);		\
+			__put_user_x(__r2, __p, __e, __l, 2);		\
 			break;						\
 		case 4:							\
-			__put_user_x(__r2, __p, __e, 4);		\
+			__put_user_x(__r2, __p, __e, __l, 4);		\
 			break;						\
 		case 8:							\
-			__put_user_x(__r2, __p, __e, 8);		\
+			__put_user_x(__r2, __p, __e, __l, 8);		\
 			break;						\
 		default: __e = __put_user_bad(); break;			\
 		}							\
arch/arm/kernel/hw_breakpoint.c +40 -15

74 lines not on this page · raw message

arch/arm/kernel/traps.c +7 -4
index a8ad1e3..a53a5a3 100644
@@ -388,20 +388,23 @@ asmlinkage void __exception do_undefinstr(struct pt_regs *regs)
 #endif
 			instr = *(u32 *) pc;
 	} else if (thumb_mode(regs)) {
-		get_user(instr, (u16 __user *)pc);
+		if (get_user(instr, (u16 __user *)pc))
+			goto die_sig;
 		if (is_wide_instruction(instr)) {
 			unsigned int instr2;
-			get_user(instr2, (u16 __user *)pc+1);
+			if (get_user(instr2, (u16 __user *)pc+1))
+				goto die_sig;
 			instr <<= 16;
 			instr |= instr2;
 		}
-	} else {
-		get_user(instr, (u32 __user *)pc);
+	} else if (get_user(instr, (u32 __user *)pc)) {
+		goto die_sig;
 	}
 
 	if (call_undef_hook(regs, instr) == 0)
 		return;
 
+die_sig:
 #ifdef CONFIG_DEBUG_USER
 	if (user_debug & UDBG_UNDEFINED) {
 		printk(KERN_INFO "%s (%d): undefined instruction: pc=%p\n",
arch/arm/lib/getuser.S +15 -8
index 11093a7..9b06bb4 100644
@@ -16,8 +16,9 @@
  * __get_user_X
  *
  * Inputs:	r0 contains the address
+ *		r1 contains the address limit, which must be preserved
  * Outputs:	r0 is the error code
- *		r2, r3 contains the zero-extended value
+ *		r2 contains the zero-extended value
  *		lr corrupted
  *
  * No other registers must be altered.  (see <asm/uaccess.h>
@@ -27,33 +28,39 @@
  * Note also that it is intended that __get_user_bad is not global.
  */
 #include <linux/linkage.h>
+#include <asm/assembler.h>
 #include <asm/errno.h>
 #include <asm/domain.h>
 
 ENTRY(__get_user_1)
+	check_uaccess r0, 1, r1, r2, __get_user_bad
 1: TUSER(ldrb)	r2, [r0]
 	mov	r0, #0
 	mov	pc, lr
 ENDPROC(__get_user_1)
 
 ENTRY(__get_user_2)
-#ifdef CONFIG_THUMB2_KERNEL
-2: TUSER(ldrb)	r2, [r0]
-3: TUSER(ldrb)	r3, [r0, #1]
+	check_uaccess r0, 2, r1, r2, __get_user_bad
+#ifdef CONFIG_CPU_USE_DOMAINS
+rb	.req	ip
+2:	ldrbt	r2, [r0], #1
+3:	ldrbt	rb, [r0], #0
 #else
-2: TUSER(ldrb)	r2, [r0], #1
-3: TUSER(ldrb)	r3, [r0]
+rb	.req	r0
+2:	ldrb	r2, [r0]
+3:	ldrb	rb, [r0, #1]
 #endif
 #ifndef __ARMEB__
-	orr	r2, r2, r3, lsl #8
+	orr	r2, r2, rb, lsl #8
 #else
-	orr	r2, r3, r2, lsl #8
+	orr	r2, rb, r2, lsl #8
 #endif
 	mov	r0, #0
 	mov	pc, lr
 ENDPROC(__get_user_2)
 
 ENTRY(__get_user_4)
+	check_uaccess r0, 4, r1, r2, __get_user_bad
 4: TUSER(ldr)	r2, [r0]
 	mov	r0, #0
 	mov	pc, lr
arch/arm/lib/putuser.S +6 -0
index 7db2599..3d73dcb 100644
@@ -16,6 +16,7 @@
  * __put_user_X
  *
  * Inputs:	r0 contains the address
+ *		r1 contains the address limit, which must be preserved
  *		r2, r3 contains the value
  * Outputs:	r0 is the error code
  *		lr corrupted
@@ -27,16 +28,19 @@
  * Note also that it is intended that __put_user_bad is not global.
  */
 #include <linux/linkage.h>
+#include <asm/assembler.h>
 #include <asm/errno.h>
 #include <asm/domain.h>
 
 ENTRY(__put_user_1)
+	check_uaccess r0, 1, r1, ip, __put_user_bad
 1: TUSER(strb)	r2, [r0]
 	mov	r0, #0
 	mov	pc, lr
 ENDPROC(__put_user_1)
 
 ENTRY(__put_user_2)
+	check_uaccess r0, 2, r1, ip, __put_user_bad
 	mov	ip, r2, lsr #8
 #ifdef CONFIG_THUMB2_KERNEL
 #ifndef __ARMEB__
@@ -60,12 +64,14 @@ ENTRY(__put_user_2)
 ENDPROC(__put_user_2)
 
 ENTRY(__put_user_4)
+	check_uaccess r0, 4, r1, ip, __put_user_bad
 4: TUSER(str)	r2, [r0]
 	mov	r0, #0
 	mov	pc, lr
 ENDPROC(__put_user_4)
 
 ENTRY(__put_user_8)
+	check_uaccess r0, 8, r1, ip, __put_user_bad
 #ifdef CONFIG_THUMB2_KERNEL
 5: TUSER(str)	r2, [r0]
 6: TUSER(str)	r3, [r0, #4]
arch/arm/mm/mm.h +3 -0
index 27f4a61..d3f25c9 100644
@@ -55,6 +55,9 @@ extern void __flush_dcache_page(struct address_space *mapping, struct page *page
 /* permanent static mappings from iotable_init() */
 #define VM_ARM_STATIC_MAPPING	0x40000000
 
+/* empty mapping */
+#define VM_ARM_EMPTY_MAPPING	0x20000000
+
 /* mapping type (attributes) for permanent static mappings */
 #define VM_ARM_MTYPE(mt)		((mt) << 20)
 #define VM_ARM_MTYPE_MASK	(0x1f << 20)
arch/arm/mm/mmu.c +2 -2
index 75f9f9d..7d41919 100644
@@ -805,7 +805,7 @@ static void __init pmd_empty_section_gap(unsigned long addr)
 	vm = early_alloc_aligned(sizeof(*vm), __alignof__(*vm));
 	vm->addr = (void *)addr;
 	vm->size = SECTION_SIZE;
-	vm->flags = VM_IOREMAP | VM_ARM_STATIC_MAPPING;
+	vm->flags = VM_IOREMAP | VM_ARM_EMPTY_MAPPING;
 	vm->caller = pmd_empty_section_gap;
 	vm_area_add_early(vm);
 }
@@ -818,7 +818,7 @@ static void __init fill_pmd_gaps(void)
 
 	/* we're still single threaded hence no lock needed here */
 	for (vm = vmlist; vm; vm = vm->next) {
-		if (!(vm->flags & VM_ARM_STATIC_MAPPING))
+		if (!(vm->flags & (VM_ARM_STATIC_MAPPING | VM_ARM_EMPTY_MAPPING)))
 			continue;
 		addr = (unsigned long)vm->addr;
 		if (addr < next)
arch/mips/mm/gup.c +2 -0
index 33aadbc..dcfd573 100644
@@ -152,6 +152,8 @@ static int gup_huge_pud(pud_t pud, unsigned long addr, unsigned long end,
 	do {
 		VM_BUG_ON(compound_head(page) != head);
 		pages[*nr] = page;
+		if (PageTail(page))
+			get_huge_page_tail(page);
 		(*nr)++;
 		page++;
 		refs++;
arch/powerpc/platforms/85xx/p1022_ds.c +91 -11

142 lines not on this page · raw message

arch/s390/oprofile/init.c +5 -5
index 2297be4..abe8722 100644
@@ -171,7 +171,7 @@ static ssize_t hw_interval_write(struct file *file, char const __user *buf,
 	if (*offset)
 		return -EINVAL;
 	retval = oprofilefs_ulong_from_user(&val, buf, count);
-	if (retval)
+	if (retval <= 0)
 		return retval;
 	if (val < oprofile_min_interval)
 		oprofile_hw_interval = oprofile_min_interval;
@@ -214,7 +214,7 @@ static ssize_t hwsampler_zero_write(struct file *file, char const __user *buf,
 		return -EINVAL;
 
 	retval = oprofilefs_ulong_from_user(&val, buf, count);
-	if (retval)
+	if (retval <= 0)
 		return retval;
 	if (val != 0)
 		return -EINVAL;
@@ -245,7 +245,7 @@ static ssize_t hwsampler_kernel_write(struct file *file, char const __user *buf,
 		return -EINVAL;
 
 	retval = oprofilefs_ulong_from_user(&val, buf, count);
-	if (retval)
+	if (retval <= 0)
 		return retval;
 
 	if (val != 0 && val != 1)
@@ -280,7 +280,7 @@ static ssize_t hwsampler_user_write(struct file *file, char const __user *buf,
 		return -EINVAL;
 
 	retval = oprofilefs_ulong_from_user(&val, buf, count);
-	if (retval)
+	if (retval <= 0)
 		return retval;
 
 	if (val != 0 && val != 1)
@@ -319,7 +319,7 @@ static ssize_t timer_enabled_write(struct file *file, char const __user *buf,
 		return -EINVAL;
 
 	retval = oprofilefs_ulong_from_user(&val, buf, count);
-	if (retval)
+	if (retval <= 0)
 		return retval;
 
 	if (val != 0 && val != 1)
arch/x86/include/asm/xen/page.h +2 -1
index c34f96c..1bd321d 100644
@@ -50,7 +50,8 @@ extern unsigned long set_phys_range_identity(unsigned long pfn_s,
 
 extern int m2p_add_override(unsigned long mfn, struct page *page,
 			    struct gnttab_map_grant_ref *kmap_op);
-extern int m2p_remove_override(struct page *page, bool clear_pte);
+extern int m2p_remove_override(struct page *page,
+				struct gnttab_map_grant_ref *kmap_op);
 extern struct page *m2p_find_override(unsigned long mfn);
 extern unsigned long m2p_find_override_pfn(unsigned long mfn, unsigned long pfn);
 
arch/x86/pci/fixup.c +17 -0
index d0e6e40..5dd467b 100644
@@ -519,3 +519,20 @@ static void sb600_disable_hpet_bar(struct pci_dev *dev)
 	}
 }
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATI, 0x4385, sb600_disable_hpet_bar);
+
+/*
+ * Twinhead H12Y needs us to block out a region otherwise we map devices
+ * there and any access kills the box.
+ *
+ *   See: https://bugzilla.kernel.org/show_bug.cgi?id=10231
+ *
+ * Match off the LPC and svid/sdid (older kernels lose the bridge subvendor)
+ */
+static void __devinit twinhead_reserve_killing_zone(struct pci_dev *dev)
+{
+        if (dev->subsystem_vendor == 0x14FF && dev->subsystem_device == 0xA003) {
+                pr_info("Reserving memory on Twinhead H12Y\n");
+                request_mem_region(0xFFB00000, 0x100000, "twinhead");
+        }
+}
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x27B9, twinhead_reserve_killing_zone);
arch/x86/xen/p2m.c +11 -16
index 00a0385..3ace817 100644
@@ -714,9 +714,6 @@ int m2p_add_override(unsigned long mfn, struct page *page,
 
 			xen_mc_issue(PARAVIRT_LAZY_MMU);
 		}
-		/* let's use dev_bus_addr to record the old mfn instead */
-		kmap_op->dev_bus_addr = page->index;
-		page->index = (unsigned long) kmap_op;
 	}
 	spin_lock_irqsave(&m2p_override_lock, flags);
 	list_add(&page->lru,  &m2p_overrides[mfn_hash(mfn)]);
@@ -743,7 +740,8 @@ int m2p_add_override(unsigned long mfn, struct page *page,
 	return 0;
 }
 EXPORT_SYMBOL_GPL(m2p_add_override);
-int m2p_remove_override(struct page *page, bool clear_pte)
+int m2p_remove_override(struct page *page,
+		struct gnttab_map_grant_ref *kmap_op)
 {
 	unsigned long flags;
 	unsigned long mfn;
@@ -773,10 +771,8 @@ int m2p_remove_override(struct page *page, bool clear_pte)
 	WARN_ON(!PagePrivate(page));
 	ClearPagePrivate(page);
 
-	if (clear_pte) {
-		struct gnttab_map_grant_ref *map_op =
-			(struct gnttab_map_grant_ref *) page->index;
-		set_phys_to_machine(pfn, map_op->dev_bus_addr);
+	set_phys_to_machine(pfn, page->index);
+	if (kmap_op != NULL) {
 		if (!PageHighMem(page)) {
 			struct multicall_space mcs;
 			struct gnttab_unmap_grant_ref *unmap_op;
@@ -788,13 +784,13 @@ int m2p_remove_override(struct page *page, bool clear_pte)
 			 * issued. In this case handle is going to -1 because
 			 * it hasn't been modified yet.
 			 */
-			if (map_op->handle == -1)
+			if (kmap_op->handle == -1)
 				xen_mc_flush();
 			/*
-			 * Now if map_op->handle is negative it means that the
+			 * Now if kmap_op->handle is negative it means that the
 			 * hypercall actually returned an error.
 			 */
-			if (map_op->handle == GNTST_general_error) {
+			if (kmap_op->handle == GNTST_general_error) {
 				printk(KERN_WARNING "m2p_remove_override: "
 						"pfn %lx mfn %lx, failed to modify kernel mappings",
 						pfn, mfn);
@@ -804,8 +800,8 @@ int m2p_remove_override(struct page *page, bool clear_pte)
 			mcs = xen_mc_entry(
 					sizeof(struct gnttab_unmap_grant_ref));
 			unmap_op = mcs.args;
-			unmap_op->host_addr = map_op->host_addr;
-			unmap_op->handle = map_op->handle;
+			unmap_op->host_addr = kmap_op->host_addr;
+			unmap_op->handle = kmap_op->handle;
 			unmap_op->dev_bus_addr = 0;
 
 			MULTI_grant_table_op(mcs.mc,
@@ -816,10 +812,9 @@ int m2p_remove_override(struct page *page, bool clear_pte)
 			set_pte_at(&init_mm, address, ptep,
 					pfn_pte(pfn, PAGE_KERNEL));
 			__flush_tlb_single(address);
-			map_op->host_addr = 0;
+			kmap_op->host_addr = 0;
 		}
-	} else
-		set_phys_to_machine(pfn, page->index);
+	}
 
 	/* p2m(m2p(mfn)) == FOREIGN_FRAME(mfn): the mfn is already present
 	 * somewhere in this domain, even before being added to the
arch/x86/xen/setup.c +4 -0
index 99de967..017d48a 100644
@@ -17,6 +17,7 @@
 #include <asm/e820.h>
 #include <asm/setup.h>
 #include <asm/acpi.h>
+#include <asm/numa.h>
 #include <asm/xen/hypervisor.h>
 #include <asm/xen/hypercall.h>
 
@@ -431,4 +432,7 @@ void __init xen_arch_setup(void)
 	disable_cpufreq();
 	WARN_ON(set_pm_idle_to_default());
 	fiddle_vdso();
+#ifdef CONFIG_NUMA
+	numa_off = 1;
+#endif
 }
drivers/acpi/power.c +24 -12
index 0500f71..2adef53 100644
@@ -103,6 +103,7 @@ struct acpi_power_resource {
 
 	/* List of devices relying on this power resource */
 	struct acpi_power_resource_device *devices;
+	struct mutex devices_lock;
 };
 
 static struct list_head acpi_power_resource_list;
@@ -221,7 +222,6 @@ static void acpi_power_on_device(struct acpi_power_managed_device *device)
 
 static int __acpi_power_on(struct acpi_power_resource *resource)
 {
-	struct acpi_power_resource_device *device_list = resource->devices;
 	acpi_status status = AE_OK;
 
 	status = acpi_evaluate_object(resource->device->handle, "_ON", NULL, NULL);
@@ -234,19 +234,15 @@ static int __acpi_power_on(struct acpi_power_resource *resource)
 	ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Power resource [%s] turned on\n",
 			  resource->name));
 
-	while (device_list) {
-		acpi_power_on_device(device_list->device);
-
-		device_list = device_list->next;
-	}
-
 	return 0;
 }
 
 static int acpi_power_on(acpi_handle handle)
 {
 	int result = 0;
+	bool resume_device = false;
 	struct acpi_power_resource *resource = NULL;
+	struct acpi_power_resource_device *device_list;
 
 	result = acpi_power_get_context(handle, &resource);
 	if (result)
@@ -262,10 +258,25 @@ static int acpi_power_on(acpi_handle handle)
 		result = __acpi_power_on(resource);
 		if (result)
 			resource->ref_count--;
+		else
+			resume_device = true;
 	}
 
 	mutex_unlock(&resource->resource_lock);
 
+	if (!resume_device)
+		return result;
+
+	mutex_lock(&resource->devices_lock);
+
+	device_list = resource->devices;
+	while (device_list) {
+		acpi_power_on_device(device_list->device);
+		device_list = device_list->next;
+	}
+
+	mutex_unlock(&resource->devices_lock);
+
 	return result;
 }
 
@@ -351,7 +362,7 @@ static void __acpi_power_resource_unregister_device(struct device *dev,
 	if (acpi_power_get_context(res_handle, &resource))
 		return;
 
-	mutex_lock(&resource->resource_lock);
+	mutex_lock(&resource->devices_lock);
 	prev = NULL;
 	curr = resource->devices;
 	while (curr) {
@@ -368,7 +379,7 @@ static void __acpi_power_resource_unregister_device(struct device *dev,
 		prev = curr;
 		curr = curr->next;
 	}
-	mutex_unlock(&resource->resource_lock);
+	mutex_unlock(&resource->devices_lock);
 }
 
 /* Unlink dev from all power resources in _PR0 */
@@ -409,10 +420,10 @@ static int __acpi_power_resource_register_device(
 
 	power_resource_device->device = powered_device;
 
-	mutex_lock(&resource->resource_lock);
+	mutex_lock(&resource->devices_lock);
 	power_resource_device->next = resource->devices;
 	resource->devices = power_resource_device;
-	mutex_unlock(&resource->resource_lock);
+	mutex_unlock(&resource->devices_lock);
 
 	return 0;
 }
@@ -457,7 +468,7 @@ int acpi_power_resource_register_device(struct device *dev, acpi_handle handle)
 	return ret;
 
 no_power_resource:
-	printk(KERN_WARNING PREFIX "Invalid Power Resource to register!");
+	printk(KERN_DEBUG PREFIX "Invalid Power Resource to register!");
 	return -ENODEV;
 }
 
@@ -715,6 +726,7 @@ static int acpi_power_add(struct acpi_device *device)
 
 	resource->device = device;
 	mutex_init(&resource->resource_lock);
+	mutex_init(&resource->devices_lock);
 	strcpy(resource->name, device->pnp.bus_id);
 	strcpy(acpi_device_name(device), ACPI_POWER_DEVICE_NAME);
 	strcpy(acpi_device_class(device), ACPI_POWER_CLASS);
drivers/ata/ahci.c +2 -0
index ebaf67e..93cbc44 100644
@@ -396,6 +396,8 @@ static const struct pci_device_id ahci_pci_tbl[] = {
 	  .driver_data = board_ahci_yes_fbs },			/* 88se9125 */
 	{ PCI_DEVICE(0x1b4b, 0x917a),
 	  .driver_data = board_ahci_yes_fbs },			/* 88se9172 */
+	{ PCI_DEVICE(0x1b4b, 0x9192),
+	  .driver_data = board_ahci_yes_fbs },			/* 88se9172 on some Gigabyte */
 	{ PCI_DEVICE(0x1b4b, 0x91a3),
 	  .driver_data = board_ahci_yes_fbs },
 
drivers/ata/libata-core.c +1 -0
index d31ee55..cf4837f 100644
@@ -4125,6 +4125,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
 
 	/* Devices which aren't very happy with higher link speeds */
 	{ "WD My Book",			NULL,	ATA_HORKAGE_1_5_GBPS, },
+	{ "Seagate FreeAgent GoFlex",	NULL,	ATA_HORKAGE_1_5_GBPS, },
 
 	/*
 	 * Devices which choke on SETXFER.  Applies only if both the
drivers/base/power/runtime.c +3 -2
index bd0f394..bb82b18 100644
@@ -430,7 +430,6 @@ static int rpm_suspend(struct device *dev, int rpmflags)
 		goto repeat;
 	}
 
-	dev->power.deferred_resume = false;
 	if (dev->power.no_callbacks)
 		goto no_callback;	/* Assume success. */
 
@@ -506,6 +505,7 @@ static int rpm_suspend(struct device *dev, int rpmflags)
 	wake_up_all(&dev->power.wait_queue);
 
 	if (dev->power.deferred_resume) {
+		dev->power.deferred_resume = false;
 		rpm_resume(dev, 0);
 		retval = -EAGAIN;
 		goto out;
@@ -652,6 +652,7 @@ static int rpm_resume(struct device *dev, int rpmflags)
 		    || dev->parent->power.runtime_status == RPM_ACTIVE) {
 			atomic_inc(&dev->parent->power.child_count);
 			spin_unlock(&dev->parent->power.lock);
+			retval = 1;
 			goto no_callback;	/* Assume success. */
 		}
 		spin_unlock(&dev->parent->power.lock);
@@ -735,7 +736,7 @@ static int rpm_resume(struct device *dev, int rpmflags)
 	}
 	wake_up_all(&dev->power.wait_queue);
 
-	if (!retval)
+	if (retval >= 0)
 		rpm_idle(dev, RPM_ASYNC);
 
  out:
drivers/block/cciss_scsi.c +1 -0
index 38aa6dd..da33111 100644
@@ -795,6 +795,7 @@ static void complete_scsi_command(CommandList_struct *c, int timeout,
 				}
 			break;
 			case CMD_PROTOCOL_ERR:
+				cmd->result = DID_ERROR << 16;
 				dev_warn(&h->pdev->dev,
 					"%p has protocol error\n", c);
                         break;
drivers/block/nbd.c +9 -0
index 061427a..3c4c225 100644
@@ -445,6 +445,14 @@ static void nbd_clear_que(struct nbd_device *nbd)
 		req->errors++;
 		nbd_end_request(req);
 	}
+
+	while (!list_empty(&nbd->waiting_queue)) {
+		req = list_entry(nbd->waiting_queue.next, struct request,
+				 queuelist);
+		list_del_init(&req->queuelist);
+		req->errors++;
+		nbd_end_request(req);
+	}
 }
 
 
@@ -594,6 +602,7 @@ static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *nbd,
 		nbd->file = NULL;
 		nbd_clear_que(nbd);
 		BUG_ON(!list_empty(&nbd->queue_head));
+		BUG_ON(!list_empty(&nbd->waiting_queue));
 		if (file)
 			fput(file);
 		return 0;
drivers/block/xen-blkback/blkback.c +1 -1
index 73f196c..c6decb9 100644
@@ -337,7 +337,7 @@ static void xen_blkbk_unmap(struct pending_req *req)
 		invcount++;
 	}
 
-	ret = gnttab_unmap_refs(unmap, pages, invcount, false);
+	ret = gnttab_unmap_refs(unmap, NULL, pages, invcount);
 	BUG_ON(ret);
 }
 
drivers/bluetooth/btusb.c +6 -4
index 9217121..29d31ff 100644
@@ -60,6 +60,9 @@ static struct usb_device_id btusb_table[] = {
 	/* Generic Bluetooth USB device */
 	{ USB_DEVICE_INFO(0xe0, 0x01, 0x01) },
 
+	/* Apple-specific (Broadcom) devices */
+	{ USB_VENDOR_AND_INTERFACE_INFO(0x05ac, 0xff, 0x01, 0x01) },
+
 	/* Broadcom SoftSailing reporting vendor specific */
 	{ USB_DEVICE(0x0a5c, 0x21e1) },
 
@@ -102,15 +105,14 @@ static struct usb_device_id btusb_table[] = {
 
 	/* Broadcom BCM20702A0 */
 	{ USB_DEVICE(0x0489, 0xe042) },
-	{ USB_DEVICE(0x0a5c, 0x21e3) },
-	{ USB_DEVICE(0x0a5c, 0x21e6) },
-	{ USB_DEVICE(0x0a5c, 0x21e8) },
-	{ USB_DEVICE(0x0a5c, 0x21f3) },
 	{ USB_DEVICE(0x413c, 0x8197) },
 
 	/* Foxconn - Hon Hai */
 	{ USB_DEVICE(0x0489, 0xe033) },
 
+	/*Broadcom devices with vendor specific id */
+	{ USB_VENDOR_AND_INTERFACE_INFO(0x0a5c, 0xff, 0x01, 0x01) },
+
 	{ }	/* Terminating entry */
 };
 
drivers/cpufreq/powernow-k8.c +34 -29

114 lines not on this page · raw message

drivers/dma/at_hdmac.c +12 -1
index bf0d7e4..9ec3943 100644
@@ -664,7 +664,7 @@ atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
 			flags);
 
 	if (unlikely(!atslave || !sg_len)) {
-		dev_dbg(chan2dev(chan), "prep_dma_memcpy: length is zero!\n");
+		dev_dbg(chan2dev(chan), "prep_slave_sg: sg length is zero!\n");
 		return NULL;
 	}
 
@@ -691,6 +691,11 @@ atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
 
 			mem = sg_dma_address(sg);
 			len = sg_dma_len(sg);
+			if (unlikely(!len)) {
+				dev_dbg(chan2dev(chan),
+					"prep_slave_sg: sg(%d) data length is zero\n", i);
+				goto err;
+			}
 			mem_width = 2;
 			if (unlikely(mem & 3 || len & 3))
 				mem_width = 0;
@@ -726,6 +731,11 @@ atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
 
 			mem = sg_dma_address(sg);
 			len = sg_dma_len(sg);
+			if (unlikely(!len)) {
+				dev_dbg(chan2dev(chan),
+					"prep_slave_sg: sg(%d) data length is zero\n", i);
+				goto err;
+			}
 			mem_width = 2;
 			if (unlikely(mem & 3 || len & 3))
 				mem_width = 0;
@@ -759,6 +769,7 @@ atc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
 
 err_desc_get:
 	dev_err(chan2dev(chan), "not enough descriptors available\n");
+err:
 	atc_desc_put(atchan, first);
 	return NULL;
 }
drivers/dma/pl330.c +14 -7
index 8c44f17..758122f 100644
@@ -1568,17 +1568,19 @@ static int pl330_submit_req(void *ch_id, struct pl330_req *r)
 		goto xfer_exit;
 	}
 
-	/* Prefer Secure Channel */
-	if (!_manager_ns(thrd))
-		r->cfg->nonsecure = 0;
-	else
-		r->cfg->nonsecure = 1;
 
 	/* Use last settings, if not provided */
-	if (r->cfg)
+	if (r->cfg) {
+		/* Prefer Secure Channel */
+		if (!_manager_ns(thrd))
+			r->cfg->nonsecure = 0;
+		else
+			r->cfg->nonsecure = 1;
+
 		ccr = _prepare_ccr(r->cfg);
-	else
+	} else {
 		ccr = readl(regs + CC(thrd->id));
+	}
 
 	/* If this req doesn't have valid xfer settings */
 	if (!_is_valid(ccr)) {
@@ -2935,6 +2937,11 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
 		num_chan = max_t(int, pi->pcfg.num_peri, pi->pcfg.num_chan);
 
 	pdmac->peripherals = kzalloc(num_chan * sizeof(*pch), GFP_KERNEL);
+	if (!pdmac->peripherals) {
+		ret = -ENOMEM;
+		dev_err(&adev->dev, "unable to allocate pdmac->peripherals\n");
+		goto probe_err5;
+	}
 
 	for (i = 0; i < num_chan; i++) {
 		pch = &pdmac->peripherals[i];
drivers/gpio/gpio-lpc32xx.c +5 -0
index 61c2d08..e42e4b8 100644
@@ -304,6 +304,7 @@ static int lpc32xx_gpio_dir_output_p012(struct gpio_chip *chip, unsigned pin,
 {
 	struct lpc32xx_gpio_chip *group = to_lpc32xx_gpio(chip);
 
+	__set_gpio_level_p012(group, pin, value);
 	__set_gpio_dir_p012(group, pin, 0);
 
 	return 0;
@@ -314,6 +315,7 @@ static int lpc32xx_gpio_dir_output_p3(struct gpio_chip *chip, unsigned pin,
 {
 	struct lpc32xx_gpio_chip *group = to_lpc32xx_gpio(chip);
 
+	__set_gpio_level_p3(group, pin, value);
 	__set_gpio_dir_p3(group, pin, 0);
 
 	return 0;
@@ -322,6 +324,9 @@ static int lpc32xx_gpio_dir_output_p3(struct gpio_chip *chip, unsigned pin,
 static int lpc32xx_gpio_dir_out_always(struct gpio_chip *chip, unsigned pin,
 	int value)
 {
+	struct lpc32xx_gpio_chip *group = to_lpc32xx_gpio(chip);
+
+	__set_gpo_level_p3(group, pin, value);
 	return 0;
 }
 
drivers/gpu/drm/drm_crtc.c +1 -1
index c79870a..7e479a4 100644
@@ -1981,7 +1981,7 @@ int drm_mode_cursor_ioctl(struct drm_device *dev,
 	if (!drm_core_check_feature(dev, DRIVER_MODESET))
 		return -EINVAL;
 
-	if (!req->flags)
+	if (!req->flags || (~DRM_MODE_CURSOR_FLAGS & req->flags))
 		return -EINVAL;
 
 	mutex_lock(&dev->mode_config.mutex);
drivers/gpu/drm/i915/intel_crt.c +33 -3
index 90b9793..342ffb7 100644
@@ -266,6 +266,36 @@ static bool intel_crt_detect_hotplug(struct drm_connector *connector)
 	return ret;
 }
 
+static struct edid *intel_crt_get_edid(struct drm_connector *connector,
+				struct i2c_adapter *i2c)
+{
+	struct edid *edid;
+
+	edid = drm_get_edid(connector, i2c);
+
+	if (!edid && !intel_gmbus_is_forced_bit(i2c)) {
+		DRM_DEBUG_KMS("CRT GMBUS EDID read failed, retry using GPIO bit-banging\n");
+		intel_gmbus_force_bit(i2c, true);
+		edid = drm_get_edid(connector, i2c);
+		intel_gmbus_force_bit(i2c, false);
+	}
+
+	return edid;
+}
+
+/* local version of intel_ddc_get_modes() to use intel_crt_get_edid() */
+static int intel_crt_ddc_get_modes(struct drm_connector *connector,
+				struct i2c_adapter *adapter)
+{
+	struct edid *edid;
+
+	edid = intel_crt_get_edid(connector, adapter);
+	if (!edid)
+		return 0;
+
+	return intel_connector_update_modes(connector, edid);
+}
+
 static bool intel_crt_detect_ddc(struct drm_connector *connector)
 {
 	struct intel_crt *crt = intel_attached_crt(connector);
@@ -279,7 +309,7 @@ static bool intel_crt_detect_ddc(struct drm_connector *connector)
 		struct edid *edid;
 		bool is_digital = false;
 
-		edid = drm_get_edid(connector,
+		edid = intel_crt_get_edid(connector,
 			&dev_priv->gmbus[dev_priv->crt_ddc_pin].adapter);
 		/*
 		 * This may be a DVI-I connector with a shared DDC
@@ -477,13 +507,13 @@ static int intel_crt_get_modes(struct drm_connector *connector)
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	int ret;
 
-	ret = intel_ddc_get_modes(connector,
+	ret = intel_crt_ddc_get_modes(connector,
 				 &dev_priv->gmbus[dev_priv->crt_ddc_pin].adapter);
 	if (ret || !IS_G4X(dev))
 		return ret;
 
 	/* Try to probe digital port for output in DVI-I -> VGA mode. */
-	return intel_ddc_get_modes(connector,
+	return intel_crt_ddc_get_modes(connector,
 				   &dev_priv->gmbus[GMBUS_PORT_DPB].adapter);
 }
 
drivers/gpu/drm/i915/intel_display.c +6 -6
index 3de3d9b..498bcbe 100644
@@ -1099,7 +1099,7 @@ static void assert_pch_hdmi_disabled(struct drm_i915_private *dev_priv,
 				     enum pipe pipe, int reg)
 {
 	u32 val = I915_READ(reg);
-	WARN(hdmi_pipe_enabled(dev_priv, val, pipe),
+	WARN(hdmi_pipe_enabled(dev_priv, pipe, val),
 	     "PCH HDMI (0x%08x) enabled on transcoder %c, should be disabled\n",
 	     reg, pipe_name(pipe));
 }
@@ -1116,13 +1116,13 @@ static void assert_pch_ports_disabled(struct drm_i915_private *dev_priv,
 
 	reg = PCH_ADPA;
 	val = I915_READ(reg);
-	WARN(adpa_pipe_enabled(dev_priv, val, pipe),
+	WARN(adpa_pipe_enabled(dev_priv, pipe, val),
 	     "PCH VGA enabled on transcoder %c, should be disabled\n",
 	     pipe_name(pipe));
 
 	reg = PCH_LVDS;
 	val = I915_READ(reg);
-	WARN(lvds_pipe_enabled(dev_priv, val, pipe),
+	WARN(lvds_pipe_enabled(dev_priv, pipe, val),
 	     "PCH LVDS enabled on transcoder %c, should be disabled\n",
 	     pipe_name(pipe));
 
@@ -1487,7 +1487,7 @@ static void disable_pch_hdmi(struct drm_i915_private *dev_priv,
 			     enum pipe pipe, int reg)
 {
 	u32 val = I915_READ(reg);
-	if (hdmi_pipe_enabled(dev_priv, val, pipe)) {
+	if (hdmi_pipe_enabled(dev_priv, pipe, val)) {
 		DRM_DEBUG_KMS("Disabling pch HDMI %x on pipe %d\n",
 			      reg, pipe);
 		I915_WRITE(reg, val & ~PORT_ENABLE);
@@ -1509,12 +1509,12 @@ static void intel_disable_pch_ports(struct drm_i915_private *dev_priv,
 
 	reg = PCH_ADPA;
 	val = I915_READ(reg);
-	if (adpa_pipe_enabled(dev_priv, val, pipe))
+	if (adpa_pipe_enabled(dev_priv, pipe, val))
 		I915_WRITE(reg, val & ~ADPA_DAC_ENABLE);
 
 	reg = PCH_LVDS;
 	val = I915_READ(reg);
-	if (lvds_pipe_enabled(dev_priv, val, pipe)) {
+	if (lvds_pipe_enabled(dev_priv, pipe, val)) {
 		DRM_DEBUG_KMS("disable lvds on pipe %d val 0x%08x\n", pipe, val);
 		I915_WRITE(reg, val & ~LVDS_PORT_EN);
 		POSTING_READ(reg);
drivers/gpu/drm/i915/intel_drv.h +2 -0
index 715afa1..2cae72d 100644
@@ -288,6 +288,8 @@ struct intel_fbc_work {
 	int interval;
 };
 
+int intel_connector_update_modes(struct drm_connector *connector,
+				struct edid *edid);
 int intel_ddc_get_modes(struct drm_connector *c, struct i2c_adapter *adapter);
 extern bool intel_ddc_probe(struct intel_encoder *intel_encoder, int ddc_bus);
 
drivers/gpu/drm/i915/intel_hdmi.c +1 -1
index 2d7f47b..fb44e9d 100644
@@ -271,7 +271,7 @@ static void intel_hdmi_dpms(struct drm_encoder *encoder, int mode)
 	u32 temp;
 	u32 enable_bits = SDVO_ENABLE;
 
-	if (intel_hdmi->has_audio)
+	if (intel_hdmi->has_audio || mode != DRM_MODE_DPMS_ON)
 		enable_bits |= SDVO_AUDIO_ENABLE;
 
 	temp = I915_READ(intel_hdmi->sdvox_reg);
drivers/gpu/drm/i915/intel_modes.c +22 -9
index d1928e7..9a2b270 100644
@@ -60,6 +60,25 @@ bool intel_ddc_probe(struct intel_encoder *intel_encoder, int ddc_bus)
 }
 
 /**
+ * intel_connector_update_modes - update connector from edid
+ * @connector: DRM connector device to use
+ * @edid: previously read EDID information
+ */
+int intel_connector_update_modes(struct drm_connector *connector,
+				struct edid *edid)
+{
+	int ret;
+
+	drm_mode_connector_update_edid_property(connector, edid);
+	ret = drm_add_edid_modes(connector, edid);
+	drm_edid_to_eld(connector, edid);
+	connector->display_info.raw_edid = NULL;
+	kfree(edid);
+
+	return ret;
+}
+
+/**
  * intel_ddc_get_modes - get modelist from monitor
  * @connector: DRM connector device to use
  * @adapter: i2c adapter
@@ -70,18 +89,12 @@ int intel_ddc_get_modes(struct drm_connector *connector,
 			struct i2c_adapter *adapter)
 {
 	struct edid *edid;
-	int ret = 0;
 
 	edid = drm_get_edid(connector, adapter);
-	if (edid) {
-		drm_mode_connector_update_edid_property(connector, edid);
-		ret = drm_add_edid_modes(connector, edid);
-		drm_edid_to_eld(connector, edid);
-		connector->display_info.raw_edid = NULL;
-		kfree(edid);
-	}
+	if (!edid)
+		return 0;
 
-	return ret;
+	return intel_connector_update_modes(connector, edid);
 }
 
 static const struct drm_prop_enum_list force_audio_names[] = {
drivers/gpu/drm/i915/intel_ringbuffer.c +2 -5
index 12a9e5f..302d3d5 100644
@@ -258,6 +258,8 @@ static int init_ring_common(struct intel_ring_buffer *ring)
 	I915_WRITE_HEAD(ring, 0);
 	ring->write_tail(ring, 0);
 
+	/* Initialize the ring. */
+	I915_WRITE_START(ring, obj->gtt_offset);
 	head = I915_READ_HEAD(ring) & HEAD_ADDR;
 
 	/* G45 ring initialization fails to reset head to zero */
@@ -283,11 +285,6 @@ static int init_ring_common(struct intel_ring_buffer *ring)
 		}
 	}
 
-	/* Initialize the ring. This must happen _after_ we've cleared the ring
-	 * registers with the above sequence (the readback of the HEAD registers
-	 * also enforces ordering), otherwise the hw might lose the new ring
-	 * register values. */
-	I915_WRITE_START(ring, obj->gtt_offset);
 	I915_WRITE_CTL(ring,
 			((ring->size - PAGE_SIZE) & RING_NR_PAGES)
 			| RING_VALID);
drivers/gpu/drm/nouveau/nouveau_display.c +1 -1
index a85e112..f233b8f 100644
@@ -586,7 +586,7 @@ nouveau_display_dumb_create(struct drm_file *file_priv, struct drm_device *dev,
 	args->size = args->pitch * args->height;
 	args->size = roundup(args->size, PAGE_SIZE);
 
-	ret = nouveau_gem_new(dev, args->size, 0, TTM_PL_FLAG_VRAM, 0, 0, &bo);
+	ret = nouveau_gem_new(dev, args->size, 0, NOUVEAU_GEM_DOMAIN_VRAM, 0, 0, &bo);
 	if (ret)
 		return ret;
 
drivers/gpu/drm/radeon/atombios_crtc.c +37 -24

120 lines not on this page · raw message

drivers/gpu/drm/radeon/atombios_encoders.c +73 -67

210 lines not on this page · raw message

drivers/gpu/drm/radeon/radeon.h +0 -15
index 138b952..66150f0 100644
@@ -138,21 +138,6 @@ struct radeon_device;
 /*
  * BIOS.
  */
-#define ATRM_BIOS_PAGE 4096
-
-#if defined(CONFIG_VGA_SWITCHEROO)
-bool radeon_atrm_supported(struct pci_dev *pdev);
-int radeon_atrm_get_bios_chunk(uint8_t *bios, int offset, int len);
-#else
-static inline bool radeon_atrm_supported(struct pci_dev *pdev)
-{
-	return false;
-}
-
-static inline int radeon_atrm_get_bios_chunk(uint8_t *bios, int offset, int len){
-	return -EINVAL;
-}
-#endif
 bool radeon_get_bios(struct radeon_device *rdev);
 
 
drivers/gpu/drm/radeon/radeon_atombios.c +1 -1
index b1e3820..5e30e12 100644
@@ -452,7 +452,7 @@ static bool radeon_atom_apply_quirks(struct drm_device *dev,
 	}
 
 	/* Fujitsu D3003-S2 board lists DVI-I as DVI-D and VGA */
-	if ((dev->pdev->device == 0x9802) &&
+	if (((dev->pdev->device == 0x9802) || (dev->pdev->device == 0x9806)) &&
 	    (dev->pdev->subsystem_vendor == 0x1734) &&
 	    (dev->pdev->subsystem_device == 0x11bd)) {
 		if (*connector_type == DRM_MODE_CONNECTOR_VGA) {
drivers/gpu/drm/radeon/radeon_atpx_handler.c +1 -55

78 lines not on this page · raw message

drivers/gpu/drm/radeon/radeon_bios.c +134 -4

183 lines not on this page · raw message

drivers/gpu/drm/radeon/radeon_device.c +1 -1
index 5992502..de5e0b5 100644
@@ -772,7 +772,7 @@ int radeon_device_init(struct radeon_device *rdev,
 	if (rdev->flags & RADEON_IS_AGP)
 		rdev->need_dma32 = true;
 	if ((rdev->flags & RADEON_IS_PCI) &&
-	    (rdev->family < CHIP_RS400))
+	    (rdev->family <= CHIP_RS740))
 		rdev->need_dma32 = true;
 
 	dma_bits = rdev->need_dma32 ? 32 : 40;
drivers/gpu/drm/udl/udl_connector.c +7 -0
index ba055e9..8d9dc44 100644
@@ -69,6 +69,13 @@ static int udl_get_modes(struct drm_connector *connector)
 static int udl_mode_valid(struct drm_connector *connector,
 			  struct drm_display_mode *mode)
 {
+	struct udl_device *udl = connector->dev->dev_private;
+	if (!udl->sku_pixel_limit)
+		return 0;
+
+	if (mode->vdisplay * mode->hdisplay > udl->sku_pixel_limit)
+		return MODE_VIRTUAL_Y;
+
 	return 0;
 }
 
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +5 -0
index 7279b3e..3a4b15a 100644
@@ -1159,6 +1159,11 @@ static struct drm_driver driver = {
 	.open = vmw_driver_open,
 	.preclose = vmw_preclose,
 	.postclose = vmw_postclose,
+
+	.dumb_create = vmw_dumb_create,
+	.dumb_map_offset = vmw_dumb_map_offset,
+	.dumb_destroy = vmw_dumb_destroy,
+
 	.fops = &vmwgfx_driver_fops,
 	.name = VMWGFX_DRIVER_NAME,
 	.desc = VMWGFX_DRIVER_DESC,
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h +10 -0
index d0f2c07..29c984f 100644
@@ -645,6 +645,16 @@ int vmw_kms_readback(struct vmw_private *dev_priv,
 int vmw_kms_update_layout_ioctl(struct drm_device *dev, void *data,
 				struct drm_file *file_priv);
 
+int vmw_dumb_create(struct drm_file *file_priv,
+		    struct drm_device *dev,
+		    struct drm_mode_create_dumb *args);
+
+int vmw_dumb_map_offset(struct drm_file *file_priv,
+			struct drm_device *dev, uint32_t handle,
+			uint64_t *offset);
+int vmw_dumb_destroy(struct drm_file *file_priv,
+		     struct drm_device *dev,
+		     uint32_t handle);
 /**
  * Overlay control - vmwgfx_overlay.c
  */
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c +1 -1
index f2fb8f1..7e07433 100644
@@ -1018,7 +1018,7 @@ int vmw_event_fence_action_create(struct drm_file *file_priv,
 	}
 
 
-	event = kzalloc(sizeof(event->event), GFP_KERNEL);
+	event = kzalloc(sizeof(*event), GFP_KERNEL);
 	if (unlikely(event == NULL)) {
 		DRM_ERROR("Failed to allocate an event.\n");
 		ret = -ENOMEM;
drivers/gpu/drm/vmwgfx/vmwgfx_resource.c +73 -0

76 lines not on this page · raw message

drivers/hid/hid-logitech-dj.c +41 -0

89 lines not on this page · raw message

drivers/hid/hid-logitech-dj.h +1 -0
index fd28a5e..4a40003 100644
@@ -101,6 +101,7 @@ struct dj_receiver_dev {
 	struct work_struct work;
 	struct kfifo notif_fifo;
 	spinlock_t lock;
+	bool querying_devices;
 };
 
 struct dj_device {
drivers/hwmon/ad7314.c +8 -0
index f85ce70..9815f9c 100644
@@ -94,10 +94,18 @@ static ssize_t ad7314_show_temperature(struct device *dev,
 	}
 }
 
+static ssize_t ad7314_show_name(struct device *dev,
+				struct device_attribute *devattr, char *buf)
+{
+	return sprintf(buf, "%s\n", to_spi_device(dev)->modalias);
+}
+
+static DEVICE_ATTR(name, S_IRUGO, ad7314_show_name, NULL);
 static SENSOR_DEVICE_ATTR(temp1_input, S_IRUGO,
 			  ad7314_show_temperature, NULL, 0);
 
 static struct attribute *ad7314_attributes[] = {
+	&dev_attr_name.attr,
 	&sensor_dev_attr_temp1_input.dev_attr.attr,
 	NULL,
 };
drivers/hwmon/ads7871.c +9 -0
index e65c6e4..7bf4ce3 100644
@@ -139,6 +139,12 @@ static ssize_t show_voltage(struct device *dev,
 	}
 }
 
+static ssize_t ads7871_show_name(struct device *dev,
+				 struct device_attribute *devattr, char *buf)
+{
+	return sprintf(buf, "%s\n", to_spi_device(dev)->modalias);
+}
+
 static SENSOR_DEVICE_ATTR(in0_input, S_IRUGO, show_voltage, NULL, 0);
 static SENSOR_DEVICE_ATTR(in1_input, S_IRUGO, show_voltage, NULL, 1);
 static SENSOR_DEVICE_ATTR(in2_input, S_IRUGO, show_voltage, NULL, 2);
@@ -148,6 +154,8 @@ static SENSOR_DEVICE_ATTR(in5_input, S_IRUGO, show_voltage, NULL, 5);
 static SENSOR_DEVICE_ATTR(in6_input, S_IRUGO, show_voltage, NULL, 6);
 static SENSOR_DEVICE_ATTR(in7_input, S_IRUGO, show_voltage, NULL, 7);
 
+static DEVICE_ATTR(name, S_IRUGO, ads7871_show_name, NULL);
+
 static struct attribute *ads7871_attributes[] = {
 	&sensor_dev_attr_in0_input.dev_attr.attr,
 	&sensor_dev_attr_in1_input.dev_attr.attr,
@@ -157,6 +165,7 @@ static struct attribute *ads7871_attributes[] = {
 	&sensor_dev_attr_in5_input.dev_attr.attr,
 	&sensor_dev_attr_in6_input.dev_attr.attr,
 	&sensor_dev_attr_in7_input.dev_attr.attr,
+	&dev_attr_name.attr,
 	NULL
 };
 
drivers/hwmon/fam15h_power.c +13 -2
index e8e18ca..ac2d6cb 100644
@@ -128,12 +128,12 @@ static bool __devinit fam15h_power_is_internal_node0(struct pci_dev *f4)
  * counter saturations resulting in bogus power readings.
  * We correct this value ourselves to cope with older BIOSes.
  */
-static DEFINE_PCI_DEVICE_TABLE(affected_device) = {
+static const struct pci_device_id affected_device[] = {
 	{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_NB_F4) },
 	{ 0 }
 };
 
-static void __devinit tweak_runavg_range(struct pci_dev *pdev)
+static void tweak_runavg_range(struct pci_dev *pdev)
 {
 	u32 val;
 
@@ -157,6 +157,16 @@ static void __devinit tweak_runavg_range(struct pci_dev *pdev)
 		REG_TDP_RUNNING_AVERAGE, val);
 }
 
+#ifdef CONFIG_PM
+static int fam15h_power_resume(struct pci_dev *pdev)
+{
+	tweak_runavg_range(pdev);
+	return 0;
+}
+#else
+#define fam15h_power_resume NULL
+#endif
+
 static void __devinit fam15h_power_init_data(struct pci_dev *f4,
 					     struct fam15h_power_data *data)
 {
@@ -255,6 +265,7 @@ static struct pci_driver fam15h_power_driver = {
 	.id_table = fam15h_power_id_table,
 	.probe = fam15h_power_probe,
 	.remove = __devexit_p(fam15h_power_remove),
+	.resume = fam15h_power_resume,
 };
 
 static int __init fam15h_power_init(void)
drivers/hwmon/twl4030-madc-hwmon.c +5 -4
index 0018c7d..1a174f0 100644
@@ -44,12 +44,13 @@ static ssize_t madc_read(struct device *dev,
 			 struct device_attribute *devattr, char *buf)
 {
 	struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
-	struct twl4030_madc_request req;
+	struct twl4030_madc_request req = {
+		.channels = 1 << attr->index,
+		.method = TWL4030_MADC_SW2,
+		.type = TWL4030_MADC_WAIT,
+	};
 	long val;
 
-	req.channels = (1 << attr->index);
-	req.method = TWL4030_MADC_SW2;
-	req.func_cb = NULL;
 	val = twl4030_madc_conversion(&req);
 	if (val < 0)
 		return val;
drivers/input/serio/i8042-x86ia64io.h +6 -0
index 6918773..d6cc77a 100644
@@ -335,6 +335,12 @@ static const struct dmi_system_id __initconst i8042_dmi_nomux_table[] = {
 	},
 	{
 		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE C850D"),
+		},
+	},
+	{
+		.matches = {
 			DMI_MATCH(DMI_SYS_VENDOR, "ALIENWARE"),
 			DMI_MATCH(DMI_PRODUCT_NAME, "Sentia"),
 		},
drivers/iommu/intr_remapping.c +13 -5
index 6777ca0..73ca321 100644
@@ -752,6 +752,7 @@ int __init parse_ioapics_under_ir(void)
 {
 	struct dmar_drhd_unit *drhd;
 	int ir_supported = 0;
+	int ioapic_idx;
 
 	for_each_drhd_unit(drhd) {
 		struct intel_iommu *iommu = drhd->iommu;
@@ -764,13 +765,20 @@ int __init parse_ioapics_under_ir(void)
 		}
 	}
 
-	if (ir_supported && ir_ioapic_num != nr_ioapics) {
-		printk(KERN_WARNING
-		       "Not all IO-APIC's listed under remapping hardware\n");
-		return -1;
+	if (!ir_supported)
+		return 0;
+
+	for (ioapic_idx = 0; ioapic_idx < nr_ioapics; ioapic_idx++) {
+		int ioapic_id = mpc_ioapic_id(ioapic_idx);
+		if (!map_ioapic_to_ir(ioapic_id)) {
+			pr_err(FW_BUG "ioapic %d has no mapping iommu, "
+			       "interrupt remapping will be disabled\n",
+			       ioapic_id);
+			return -1;
+		}
 	}
 
-	return ir_supported;
+	return 1;
 }
 
 int __init ir_dev_scope_init(void)
drivers/isdn/isdnloop/isdnloop.c +0 -12
index 5405ec6..baf2686 100644
@@ -16,7 +16,6 @@
 #include <linux/sched.h>
 #include "isdnloop.h"
 
-static char *revision = "$Revision: 1.11.6.7 $";
 static char *isdnloop_id = "loop0";
 
 MODULE_DESCRIPTION("ISDN4Linux: Pseudo Driver that simulates an ISDN card");
@@ -1494,17 +1493,6 @@ isdnloop_addcard(char *id1)
 static int __init
 isdnloop_init(void)
 {
-	char *p;
-	char rev[10];
-
-	if ((p = strchr(revision, ':'))) {
-		strcpy(rev, p + 1);
-		p = strchr(rev, '$');
-		*p = 0;
-	} else
-		strcpy(rev, " ??? ");
-	printk(KERN_NOTICE "isdnloop-ISDN-driver Rev%s\n", rev);
-
 	if (isdnloop_id)
 		return (isdnloop_addcard(isdnloop_id));
 
drivers/md/md.c +11 -4
index 9ee8ce3..529ce89 100644
@@ -1143,8 +1143,11 @@ static int super_90_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor
 			ret = 0;
 	}
 	rdev->sectors = rdev->sb_start;
-	/* Limit to 4TB as metadata cannot record more than that */
-	if (rdev->sectors >= (2ULL << 32))
+	/* Limit to 4TB as metadata cannot record more than that.
+	 * (not needed for Linear and RAID0 as metadata doesn't
+	 * record this size)
+	 */
+	if (rdev->sectors >= (2ULL << 32) && sb->level >= 1)
 		rdev->sectors = (2ULL << 32) - 2;
 
 	if (rdev->sectors < ((sector_t)sb->size) * 2 && sb->level >= 1)
@@ -1426,7 +1429,7 @@ super_90_rdev_size_change(struct md_rdev *rdev, sector_t num_sectors)
 	/* Limit to 4TB as metadata cannot record more than that.
 	 * 4TB == 2^32 KB, or 2*2^32 sectors.
 	 */
-	if (num_sectors >= (2ULL << 32))
+	if (num_sectors >= (2ULL << 32) && rdev->mddev->level >= 1)
 		num_sectors = (2ULL << 32) - 2;
 	md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size,
 		       rdev->sb_page);
@@ -7417,6 +7420,8 @@ static int remove_and_add_spares(struct mddev *mddev)
 			}
 		}
 	}
+	if (removed)
+		set_bit(MD_CHANGE_DEVS, &mddev->flags);
 	return spares;
 }
 
@@ -7430,9 +7435,11 @@ static void reap_sync_thread(struct mddev *mddev)
 	    !test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) {
 		/* success...*/
 		/* activate any spares */
-		if (mddev->pers->spare_active(mddev))
+		if (mddev->pers->spare_active(mddev)) {
 			sysfs_notify(&mddev->kobj, NULL,
 				     "degraded");
+			set_bit(MD_CHANGE_DEVS, &mddev->flags);
+		}
 	}
 	if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) &&
 	    mddev->pers->finish_reshape)
drivers/md/raid10.c +10 -6
index a954c95..1f7e8cd 100644
@@ -612,20 +612,24 @@ static int raid10_mergeable_bvec(struct request_queue *q,
 		max = biovec->bv_len;
 
 	if (mddev->merge_check_needed) {
-		struct r10bio r10_bio;
+		struct {
+			struct r10bio r10_bio;
+			struct r10dev devs[conf->copies];
+		} on_stack;
+		struct r10bio *r10_bio = &on_stack.r10_bio;
 		int s;
-		r10_bio.sector = sector;
-		raid10_find_phys(conf, &r10_bio);
+		r10_bio->sector = sector;
+		raid10_find_phys(conf, r10_bio);
 		rcu_read_lock();
 		for (s = 0; s < conf->copies; s++) {
-			int disk = r10_bio.devs[s].devnum;
+			int disk = r10_bio->devs[s].devnum;
 			struct md_rdev *rdev = rcu_dereference(
 				conf->mirrors[disk].rdev);
 			if (rdev && !test_bit(Faulty, &rdev->flags)) {
 				struct request_queue *q =
 					bdev_get_queue(rdev->bdev);
 				if (q->merge_bvec_fn) {
-					bvm->bi_sector = r10_bio.devs[s].addr
+					bvm->bi_sector = r10_bio->devs[s].addr
 						+ rdev->data_offset;
 					bvm->bi_bdev = rdev->bdev;
 					max = min(max, q->merge_bvec_fn(
@@ -637,7 +641,7 @@ static int raid10_mergeable_bvec(struct request_queue *q,
 				struct request_queue *q =
 					bdev_get_queue(rdev->bdev);
 				if (q->merge_bvec_fn) {
-					bvm->bi_sector = r10_bio.devs[s].addr
+					bvm->bi_sector = r10_bio->devs[s].addr
 						+ rdev->data_offset;
 					bvm->bi_bdev = rdev->bdev;
 					max = min(max, q->merge_bvec_fn(
drivers/md/raid10.h +1 -1
index 7c615613..24d45b8 100644
@@ -104,7 +104,7 @@ struct r10bio {
 	 * We choose the number when they are allocated.
 	 * We sometimes need an extra bio to write to the replacement.
 	 */
-	struct {
+	struct r10dev {
 		struct bio	*bio;
 		union {
 			struct bio	*repl_bio; /* used for resync and
drivers/md/raid5.c +4 -0
index 73a5800..0240576 100644
@@ -380,6 +380,8 @@ static int calc_degraded(struct r5conf *conf)
 	degraded = 0;
 	for (i = 0; i < conf->previous_raid_disks; i++) {
 		struct md_rdev *rdev = rcu_dereference(conf->disks[i].rdev);
+		if (rdev && test_bit(Faulty, &rdev->flags))
+			rdev = rcu_dereference(conf->disks[i].replacement);
 		if (!rdev || test_bit(Faulty, &rdev->flags))
 			degraded++;
 		else if (test_bit(In_sync, &rdev->flags))
@@ -404,6 +406,8 @@ static int calc_degraded(struct r5conf *conf)
 	degraded2 = 0;
 	for (i = 0; i < conf->raid_disks; i++) {
 		struct md_rdev *rdev = rcu_dereference(conf->disks[i].rdev);
+		if (rdev && test_bit(Faulty, &rdev->flags))
+			rdev = rcu_dereference(conf->disks[i].replacement);
 		if (!rdev || test_bit(Faulty, &rdev->flags))
 			degraded2++;
 		else if (test_bit(In_sync, &rdev->flags))
drivers/media/rc/rc-main.c +3 -2
index 6e16b09..cabc19c 100644
@@ -775,10 +775,11 @@ static ssize_t show_protocols(struct device *device,
 	if (dev->driver_type == RC_DRIVER_SCANCODE) {
 		enabled = dev->rc_map.rc_type;
 		allowed = dev->allowed_protos;
-	} else {
+	} else if (dev->raw) {
 		enabled = dev->raw->enabled_protocols;
 		allowed = ir_raw_get_allowed_protocols();
-	}
+	} else
+		return -ENODEV;
 
 	IR_dprintk(1, "allowed - 0x%llx, enabled - 0x%llx\n",
 		   (long long)allowed,
drivers/media/video/cx25821/cx25821-core.c +0 -3
index 7930ca5..235bf7d 100644
@@ -912,9 +912,6 @@ static int cx25821_dev_setup(struct cx25821_dev *dev)
 	list_add_tail(&dev->devlist, &cx25821_devlist);
 	mutex_unlock(&cx25821_devlist_mutex);
 
-	strcpy(cx25821_boards[UNKNOWN_BOARD].name, "unknown");
-	strcpy(cx25821_boards[CX25821_BOARD].name, "cx25821");
-
 	if (dev->pci->device != 0x8210) {
 		pr_info("%s(): Exiting. Incorrect Hardware device = 0x%02x\n",
 			__func__, dev->pci->device);
drivers/media/video/cx25821/cx25821.h +1 -1
index b9aa801..029f293 100644
@@ -187,7 +187,7 @@ enum port {
 };
 
 struct cx25821_board {
-	char *name;
+	const char *name;
 	enum port porta;
 	enum port portb;
 	enum port portc;
drivers/misc/sgi-xp/xpc_uv.c +65 -19

129 lines not on this page · raw message

drivers/mmc/card/block.c +25 -1
index dabec55..833ff16 100644
@@ -1430,7 +1430,8 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
 		/* complete ongoing async transfer before issuing discard */
 		if (card->host->areq)
 			mmc_blk_issue_rw_rq(mq, NULL);
-		if (req->cmd_flags & REQ_SECURE)
+		if (req->cmd_flags & REQ_SECURE &&
+			!(card->quirks & MMC_QUIRK_SEC_ERASE_TRIM_BROKEN))
 			ret = mmc_blk_issue_secdiscard_rq(mq, req);
 		else
 			ret = mmc_blk_issue_discard_rq(mq, req);
@@ -1730,6 +1731,7 @@ force_ro_fail:
 #define CID_MANFID_SANDISK	0x2
 #define CID_MANFID_TOSHIBA	0x11
 #define CID_MANFID_MICRON	0x13
+#define CID_MANFID_SAMSUNG	0x15
 
 static const struct mmc_fixup blk_fixups[] =
 {
@@ -1766,6 +1768,28 @@ static const struct mmc_fixup blk_fixups[] =
 	MMC_FIXUP(CID_NAME_ANY, CID_MANFID_MICRON, 0x200, add_quirk_mmc,
 		  MMC_QUIRK_LONG_READ_TIME),
 
+	/*
+	 * On these Samsung MoviNAND parts, performing secure erase or
+	 * secure trim can result in unrecoverable corruption due to a
+	 * firmware bug.
+	 */
+	MMC_FIXUP("M8G2FA", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc,
+		  MMC_QUIRK_SEC_ERASE_TRIM_BROKEN),
+	MMC_FIXUP("MAG4FA", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc,
+		  MMC_QUIRK_SEC_ERASE_TRIM_BROKEN),
+	MMC_FIXUP("MBG8FA", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc,
+		  MMC_QUIRK_SEC_ERASE_TRIM_BROKEN),
+	MMC_FIXUP("MCGAFA", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc,
+		  MMC_QUIRK_SEC_ERASE_TRIM_BROKEN),
+	MMC_FIXUP("VAL00M", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc,
+		  MMC_QUIRK_SEC_ERASE_TRIM_BROKEN),
+	MMC_FIXUP("VYL00M", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc,
+		  MMC_QUIRK_SEC_ERASE_TRIM_BROKEN),
+	MMC_FIXUP("KYL00M", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc,
+		  MMC_QUIRK_SEC_ERASE_TRIM_BROKEN),
+	MMC_FIXUP("VZL00M", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc,
+		  MMC_QUIRK_SEC_ERASE_TRIM_BROKEN),
+
 	END_FIXUP
 };
 
drivers/mmc/host/mxs-mmc.c +2 -2
index e3f5af9..b6def20 100644
@@ -280,11 +280,11 @@ static irqreturn_t mxs_mmc_irq_handler(int irq, void *dev_id)
 	writel(stat & MXS_MMC_IRQ_BITS,
 	       host->base + HW_SSP_CTRL1 + MXS_CLR_ADDR);
 
+	spin_unlock(&host->lock);
+
 	if ((stat & BM_SSP_CTRL1_SDIO_IRQ) && (stat & BM_SSP_CTRL1_SDIO_IRQ_EN))
 		mmc_signal_sdio_irq(host->mmc);
 
-	spin_unlock(&host->lock);
-
 	if (stat & BM_SSP_CTRL1_RESP_TIMEOUT_IRQ)
 		cmd->error = -ETIMEDOUT;
 	else if (stat & BM_SSP_CTRL1_RESP_ERR_IRQ)
drivers/mmc/host/sdhci-esdhc.h +3 -3
index b97b2f5..d25f9ab 100644
@@ -48,14 +48,14 @@ static inline void esdhc_set_clock(struct sdhci_host *host, unsigned int clock)
 	int div = 1;
 	u32 temp;
 
+	if (clock == 0)
+		goto out;
+
 	temp = sdhci_readl(host, ESDHC_SYSTEM_CONTROL);
 	temp &= ~(ESDHC_CLOCK_IPGEN | ESDHC_CLOCK_HCKEN | ESDHC_CLOCK_PEREN
 		| ESDHC_CLOCK_MASK);
 	sdhci_writel(host, temp, ESDHC_SYSTEM_CONTROL);
 
-	if (clock == 0)
-		goto out;
-
 	while (host->max_clk / pre_div / 16 > clock && pre_div < 256)
 		pre_div *= 2;
 
drivers/mtd/ubi/vtbl.c +2 -2
index 17cec0c..c015fc0 100644
@@ -346,7 +346,7 @@ retry:
 	 */
 	err = ubi_scan_add_used(ubi, si, new_seb->pnum, new_seb->ec,
 				vid_hdr, 0);
-	kfree(new_seb);
+	kmem_cache_free(si->scan_leb_slab, new_seb);
 	ubi_free_vid_hdr(ubi, vid_hdr);
 	return err;
 
@@ -359,7 +359,7 @@ write_error:
 		list_add(&new_seb->u.list, &si->erase);
 		goto retry;
 	}
-	kfree(new_seb);
+	kmem_cache_free(si->scan_leb_slab, new_seb);
 out_free:
 	ubi_free_vid_hdr(ubi, vid_hdr);
 	return err;
drivers/net/can/janz-ican3.c +1 -3
index 08c893c..e7823dd 100644
@@ -1250,7 +1250,6 @@ static irqreturn_t ican3_irq(int irq, void *dev_id)
  */
 static int ican3_reset_module(struct ican3_dev *mod)
 {
-	u8 val = 1 << mod->num;
 	unsigned long start;
 	u8 runold, runnew;
 
@@ -1264,8 +1263,7 @@ static int ican3_reset_module(struct ican3_dev *mod)
 	runold = ioread8(mod->dpm + TARGET_RUNNING);
 
 	/* reset the module */
-	iowrite8(val, &mod->ctrl->reset_assert);
-	iowrite8(val, &mod->ctrl->reset_deassert);
+	iowrite8(0x00, &mod->dpmctrl->hwreset);
 
 	/* wait until the module has finished resetting and is running */
 	start = jiffies;
drivers/net/can/mcp251x.c +10 -1
index 346785c..9d60742 100644
@@ -83,6 +83,11 @@
 #define INSTRUCTION_LOAD_TXB(n)	(0x40 + 2 * (n))
 #define INSTRUCTION_READ_RXB(n)	(((n) == 0) ? 0x90 : 0x94)
 #define INSTRUCTION_RESET	0xC0
+#define RTS_TXB0		0x01
+#define RTS_TXB1		0x02
+#define RTS_TXB2		0x04
+#define INSTRUCTION_RTS(n)	(0x80 | ((n) & 0x07))
+
 
 /* MPC251x registers */
 #define CANSTAT	      0x0e
@@ -397,6 +402,7 @@ static void mcp251x_hw_tx_frame(struct spi_device *spi, u8 *buf,
 static void mcp251x_hw_tx(struct spi_device *spi, struct can_frame *frame,
 			  int tx_buf_idx)
 {
+	struct mcp251x_priv *priv = dev_get_drvdata(&spi->dev);
 	u32 sid, eid, exide, rtr;
 	u8 buf[SPI_TRANSFER_BUF_LEN];
 
@@ -418,7 +424,10 @@ static void mcp251x_hw_tx(struct spi_device *spi, struct can_frame *frame,
 	buf[TXBDLC_OFF] = (rtr << DLC_RTR_SHIFT) | frame->can_dlc;
 	memcpy(buf + TXBDAT_OFF, frame->data, frame->can_dlc);
 	mcp251x_hw_tx_frame(spi, buf, frame->can_dlc, tx_buf_idx);
-	mcp251x_write_reg(spi, TXBCTRL(tx_buf_idx), TXBCTRL_TXREQ);
+
+	/* use INSTRUCTION_RTS, to avoid "repeated frame problem" */
+	priv->spi_tx_buf[0] = INSTRUCTION_RTS(1 << tx_buf_idx);
+	mcp251x_spi_trans(priv->spi, 1);
 }
 
 static void mcp251x_hw_rx_frame(struct spi_device *spi, u8 *buf,
drivers/net/can/ti_hecc.c +1 -1
index 4accd7e..5ec2700 100644
@@ -984,12 +984,12 @@ static int __devexit ti_hecc_remove(struct platform_device *pdev)
 	struct net_device *ndev = platform_get_drvdata(pdev);
 	struct ti_hecc_priv *priv = netdev_priv(ndev);
 
+	unregister_candev(ndev);
 	clk_disable(priv->clk);
 	clk_put(priv->clk);
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	iounmap(priv->base);
 	release_mem_region(res->start, resource_size(res));
-	unregister_candev(ndev);
 	free_candev(ndev);
 	platform_set_drvdata(pdev, NULL);
 
drivers/net/ethernet/freescale/gianfar.c +1 -1
index 24381e1..0819a74 100644
@@ -1037,7 +1037,7 @@ static int gfar_probe(struct platform_device *ofdev)
 
 	if (priv->device_flags & FSL_GIANFAR_DEV_HAS_VLAN) {
 		dev->hw_features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
-		dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
+		dev->features |= NETIF_F_HW_VLAN_RX;
 	}
 
 	if (priv->device_flags & FSL_GIANFAR_DEV_HAS_EXTENDED_HASH) {
drivers/net/ethernet/ibm/ibmveth.c +9 -17
index 9010cea..b68d28a 100644
@@ -472,14 +472,9 @@ static void ibmveth_cleanup(struct ibmveth_adapter *adapter)
 	}
 
 	if (adapter->rx_queue.queue_addr != NULL) {
-		if (!dma_mapping_error(dev, adapter->rx_queue.queue_dma)) {
-			dma_unmap_single(dev,
-					adapter->rx_queue.queue_dma,
-					adapter->rx_queue.queue_len,
-					DMA_BIDIRECTIONAL);
-			adapter->rx_queue.queue_dma = DMA_ERROR_CODE;
-		}
-		kfree(adapter->rx_queue.queue_addr);
+		dma_free_coherent(dev, adapter->rx_queue.queue_len,
+				  adapter->rx_queue.queue_addr,
+				  adapter->rx_queue.queue_dma);
 		adapter->rx_queue.queue_addr = NULL;
 	}
 
@@ -556,10 +551,13 @@ static int ibmveth_open(struct net_device *netdev)
 		goto err_out;
 	}
 
+	dev = &adapter->vdev->dev;
+
 	adapter->rx_queue.queue_len = sizeof(struct ibmveth_rx_q_entry) *
 						rxq_entries;
-	adapter->rx_queue.queue_addr = kmalloc(adapter->rx_queue.queue_len,
-						GFP_KERNEL);
+	adapter->rx_queue.queue_addr =
+	    dma_alloc_coherent(dev, adapter->rx_queue.queue_len,
+			       &adapter->rx_queue.queue_dma, GFP_KERNEL);
 
 	if (!adapter->rx_queue.queue_addr) {
 		netdev_err(netdev, "unable to allocate rx queue pages\n");
@@ -567,19 +565,13 @@ static int ibmveth_open(struct net_device *netdev)
 		goto err_out;
 	}
 
-	dev = &adapter->vdev->dev;
-
 	adapter->buffer_list_dma = dma_map_single(dev,
 			adapter->buffer_list_addr, 4096, DMA_BIDIRECTIONAL);
 	adapter->filter_list_dma = dma_map_single(dev,
 			adapter->filter_list_addr, 4096, DMA_BIDIRECTIONAL);
-	adapter->rx_queue.queue_dma = dma_map_single(dev,
-			adapter->rx_queue.queue_addr,
-			adapter->rx_queue.queue_len, DMA_BIDIRECTIONAL);
 
 	if ((dma_mapping_error(dev, adapter->buffer_list_dma)) ||
-	    (dma_mapping_error(dev, adapter->filter_list_dma)) ||
-	    (dma_mapping_error(dev, adapter->rx_queue.queue_dma))) {
+	    (dma_mapping_error(dev, adapter->filter_list_dma))) {
 		netdev_err(netdev, "unable to map filter or buffer list "
 			   "pages\n");
 		rc = -ENOMEM;
drivers/net/ethernet/realtek/r8169.c +1 -0
index a73bbe7..5fb74c4 100644
@@ -3737,6 +3737,7 @@ static void rtl_init_rxcfg(struct rtl8169_private *tp)
 	case RTL_GIGA_MAC_VER_22:
 	case RTL_GIGA_MAC_VER_23:
 	case RTL_GIGA_MAC_VER_24:
+	case RTL_GIGA_MAC_VER_34:
 		RTL_W32(RxConfig, RX128_INT_EN | RX_MULTI_EN | RX_DMA_BURST);
 		break;
 	default:
drivers/net/ethernet/sfc/efx.c +6 -0
index 4a00053..954b885 100644
@@ -1498,6 +1498,11 @@ static int efx_probe_all(struct efx_nic *efx)
 		goto fail2;
 	}
 
+	BUILD_BUG_ON(EFX_DEFAULT_DMAQ_SIZE < EFX_RXQ_MIN_ENT);
+	if (WARN_ON(EFX_DEFAULT_DMAQ_SIZE < EFX_TXQ_MIN_ENT(efx))) {
+		rc = -EINVAL;
+		goto fail3;
+	}
 	efx->rxq_entries = efx->txq_entries = EFX_DEFAULT_DMAQ_SIZE;
 
 	rc = efx_probe_filters(efx);
@@ -2065,6 +2070,7 @@ static int efx_register_netdev(struct efx_nic *efx)
 	net_dev->irq = efx->pci_dev->irq;
 	net_dev->netdev_ops = &efx_netdev_ops;
 	SET_ETHTOOL_OPS(net_dev, &efx_ethtool_ops);
+	net_dev->gso_max_segs = EFX_TSO_MAX_SEGS;
 
 	rtnl_lock();
 
drivers/net/ethernet/sfc/efx.h +10 -4
index be8f915..70755c9 100644
@@ -30,6 +30,7 @@ extern netdev_tx_t
 efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb);
 extern void efx_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index);
 extern int efx_setup_tc(struct net_device *net_dev, u8 num_tc);
+extern unsigned int efx_tx_max_skb_descs(struct efx_nic *efx);
 
 /* RX */
 extern int efx_probe_rx_queue(struct efx_rx_queue *rx_queue);
@@ -52,10 +53,15 @@ extern void efx_schedule_slow_fill(struct efx_rx_queue *rx_queue);
 #define EFX_MAX_EVQ_SIZE 16384UL
 #define EFX_MIN_EVQ_SIZE 512UL
 
-/* The smallest [rt]xq_entries that the driver supports. Callers of
- * efx_wake_queue() assume that they can subsequently send at least one
- * skb. Falcon/A1 may require up to three descriptors per skb_frag. */
-#define EFX_MIN_RING_SIZE (roundup_pow_of_two(2 * 3 * MAX_SKB_FRAGS))
+/* Maximum number of TCP segments we support for soft-TSO */
+#define EFX_TSO_MAX_SEGS	100
+
+/* The smallest [rt]xq_entries that the driver supports.  RX minimum
+ * is a bit arbitrary.  For TX, we must have space for at least 2
+ * TSO skbs.
+ */
+#define EFX_RXQ_MIN_ENT		128U
+#define EFX_TXQ_MIN_ENT(efx)	(2 * efx_tx_max_skb_descs(efx))
 
 /* Filters */
 extern int efx_probe_filters(struct efx_nic *efx);
drivers/net/ethernet/sfc/ethtool.c +13 -7
index f22f45f..ff64def 100644
@@ -680,21 +680,27 @@ static int efx_ethtool_set_ringparam(struct net_device *net_dev,
 				     struct ethtool_ringparam *ring)
 {
 	struct efx_nic *efx = netdev_priv(net_dev);
+	u32 txq_entries;
 
 	if (ring->rx_mini_pending || ring->rx_jumbo_pending ||
 	    ring->rx_pending > EFX_MAX_DMAQ_SIZE ||
 	    ring->tx_pending > EFX_MAX_DMAQ_SIZE)
 		return -EINVAL;
 
-	if (ring->rx_pending < EFX_MIN_RING_SIZE ||
-	    ring->tx_pending < EFX_MIN_RING_SIZE) {
+	if (ring->rx_pending < EFX_RXQ_MIN_ENT) {
 		netif_err(efx, drv, efx->net_dev,
-			  "TX and RX queues cannot be smaller than %ld\n",
-			  EFX_MIN_RING_SIZE);
+			  "RX queues cannot be smaller than %u\n",
+			  EFX_RXQ_MIN_ENT);
 		return -EINVAL;
 	}
 
-	return efx_realloc_channels(efx, ring->rx_pending, ring->tx_pending);
+	txq_entries = max(ring->tx_pending, EFX_TXQ_MIN_ENT(efx));
+	if (txq_entries != ring->tx_pending)
+		netif_warn(efx, drv, efx->net_dev,
+			   "increasing TX queue size to minimum of %u\n",
+			   txq_entries);
+
+	return efx_realloc_channels(efx, ring->rx_pending, txq_entries);
 }
 
 static int efx_ethtool_set_pauseparam(struct net_device *net_dev,
@@ -857,8 +863,8 @@ static int efx_ethtool_get_class_rule(struct efx_nic *efx,
 				       &ip_entry->ip4dst, &ip_entry->pdst);
 	if (rc != 0) {
 		rc = efx_filter_get_ipv4_full(
-			&spec, &proto, &ip_entry->ip4src, &ip_entry->psrc,
-			&ip_entry->ip4dst, &ip_entry->pdst);
+			&spec, &proto, &ip_entry->ip4dst, &ip_entry->pdst,
+			&ip_entry->ip4src, &ip_entry->psrc);
 		EFX_WARN_ON_PARANOID(rc);
 		ip_mask->ip4src = ~0;
 		ip_mask->psrc = ~0;
drivers/net/ethernet/sfc/tx.c +19 -0
index 94d0365..305430d 100644
@@ -119,6 +119,25 @@ efx_max_tx_len(struct efx_nic *efx, dma_addr_t dma_addr)
 	return len;
 }
 
+unsigned int efx_tx_max_skb_descs(struct efx_nic *efx)
+{
+	/* Header and payload descriptor for each output segment, plus
+	 * one for every input fragment boundary within a segment
+	 */
+	unsigned int max_descs = EFX_TSO_MAX_SEGS * 2 + MAX_SKB_FRAGS;
+
+	/* Possibly one more per segment for the alignment workaround */
+	if (EFX_WORKAROUND_5391(efx))
[… more lines in the raw message]

Lines of this file are not shown. View the raw message.

drivers/net/macvtap.c +20 -15
index c1d602d..b99c418 100644

Lines of this file are not shown. View the raw message.

drivers/net/netconsole.c +0 -1
index f9347ea..63ffbdf 100644

Lines of this file are not shown. View the raw message.

drivers/net/ppp/pptp.c +2 -2
index 885dbdd..f617566 100644

Lines of this file are not shown. View the raw message.

drivers/net/usb/asix.c +4 -0
index 609fcc3..ef84a58 100644

Lines of this file are not shown. View the raw message.

drivers/net/usb/qmi_wwan.c +95 -0

95 lines not on this page · raw message

drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c +16 -10
index 4187435..4db878d 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c +4 -2
index d13ae9c..e360939 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/rt2x00/rt2400pci.c +9 -0
index 3a6b402..0ea85f4 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/rt2x00/rt2400pci.h +1 -0
index d3a4a68..7564ae9 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/rt2x00/rt2500pci.c +9 -0
index dcc0e1f..aa10c48 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/rt2x00/rt2500usb.c +10 -1
index 1de9c75..e0a7efc 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/rt2x00/rt2500usb.h +9 -8
index b493306..196bd51 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/rt2x00/rt2800pci.c +9 -0
index 0397bbf..ff81e76 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/rt2x00/rt2800usb.c +20 -2
index 7e1a492..65cb425 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/rt2x00/rt2x00dev.c +1 -1
index 90cc5e7..12b1ff5 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/rt2x00/rt61pci.c +9 -0
index 0f4bf8c..bdaba3f 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/rt2x00/rt61pci.h +1 -0
index e3cd6db..8f3da5a 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/rt2x00/rt73usb.c +9 -0
index e477a96..fda8671 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/rt2x00/rt73usb.h +3 -0
index 9f6b470..df1cc11 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/rtlwifi/rtl8192ce/def.h +1 -0
index 04c3aef..2925094 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/rtlwifi/rtl8192ce/hw.c +10 -2
index 5c4d9bc..509f661 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/rtlwifi/rtl8192ce/sw.c +4 -2
index 2c3b733..4e2a458 100644

Lines of this file are not shown. View the raw message.

drivers/platform/x86/asus-laptop.c +4 -4
index e38f91b..110c777 100644

Lines of this file are not shown. View the raw message.

drivers/platform/x86/asus-nb-wmi.c +4 -0
index 99a30b5..6de14fd 100644

Lines of this file are not shown. View the raw message.

drivers/rtc/rtc-rs5c348.c +5 -2
index 77074cc..fd5c7af 100644

Lines of this file are not shown. View the raw message.

drivers/rtc/rtc-twl.c +5 -0
index 258abea..63ccc0f 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/bnx2i/bnx2i_hwi.c +3 -0
index f9d6f41..72de3ba 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/hpsa.c +2 -1
index 500e20d..7c49e0a 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/lpfc/Makefile +2 -0
index fe5d396..e2516ba 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/mpt2sas/mpt2sas_base.c +7 -0
index c4cef56..db79362 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/virtio_scsi.c +1 -1
index 1b38431..6661610 100644

Lines of this file are not shown. View the raw message.

drivers/staging/android/android_alarm.h +3 -1
index 6eecbde..66b6e3d 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/das08.c +1 -1
index c2dd0ed..d2dd75e 100644

Lines of this file are not shown. View the raw message.

drivers/staging/media/lirc/lirc_sir.c +58 -2

60 lines not on this page · raw message

drivers/staging/rtl8712/recv_linux.c +1 -6
index 0e26d5f..495ee12 100644

Lines of this file are not shown. View the raw message.

drivers/staging/speakup/main.c +1 -1
index 92b34e2..40e2488 100644

Lines of this file are not shown. View the raw message.

drivers/staging/vt6656/dpc.c +1 -1
index c0edf97..08021f4 100644

Lines of this file are not shown. View the raw message.

drivers/staging/vt6656/rxtx.c +19 -19
index 9b64b10..fe21868 100644

Lines of this file are not shown. View the raw message.

drivers/staging/zcache/zcache-main.c +3 -4
index 2734dac..1812bed 100644

Lines of this file are not shown. View the raw message.

drivers/target/target_core_transport.c +7 -2
index 222f1c5..d594460 100644

Lines of this file are not shown. View the raw message.

drivers/tty/serial/imx.c +11 -1
index e7fecee..0de7ed7 100644

Lines of this file are not shown. View the raw message.

drivers/tty/serial/pch_uart.c +40 -19

59 lines not on this page · raw message

drivers/usb/class/cdc-wdm.c +8 -4
index 01d247e..524fe24 100644

Lines of this file are not shown. View the raw message.

drivers/usb/core/devices.c +1 -1
index d956965..3440812 100644

Lines of this file are not shown. View the raw message.

drivers/usb/core/hcd.c +2 -4
index 140d3e1..e2cc8df 100644

Lines of this file are not shown. View the raw message.

drivers/usb/core/quirks.c +4 -0
index 32d3adc..8b2a9d8 100644

Lines of this file are not shown. View the raw message.

drivers/usb/dwc3/ep0.c +0 -1
index 3584a16..e4d87d7 100644

Lines of this file are not shown. View the raw message.

drivers/usb/dwc3/gadget.c +5 -2
index 5255fe9..b8d4697 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/ehci-q.c +10 -2
index 36ca507..7261e8f 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/ohci-at91.c +12 -1
index 55d3d64..7841b0a 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/pci-quirks.c +35 -7

42 lines not on this page · raw message

drivers/usb/host/pci-quirks.h +1 -0
index ef004a5..7f69a39 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/xhci-hub.c +42 -0

42 lines not on this page · raw message

drivers/usb/host/xhci-plat.c +1 -1
index 689bc18..df90fe5 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/xhci.c +122 -1

123 lines not on this page · raw message

drivers/usb/host/xhci.h +6 -0
index 19ae30f..6e77f3b 100644

Lines of this file are not shown. View the raw message.

drivers/usb/serial/ftdi_sio.c +21 -1
index f5819cb..4d2b7d3 100644

Lines of this file are not shown. View the raw message.

drivers/usb/serial/ftdi_sio_ids.h +27 -2
index 5dd96ca..41fe582 100644

Lines of this file are not shown. View the raw message.

drivers/usb/serial/option.c +4 -2
index ee693cc..a49099d 100644

Lines of this file are not shown. View the raw message.

drivers/video/console/fbcon.c +8 -1
index 2e471c2..88e9204 100644

Lines of this file are not shown. View the raw message.

drivers/watchdog/hpwdt.c +3 -0
index 9f13b89..6019929 100644

Lines of this file are not shown. View the raw message.

drivers/xen/gntdev.c +3 -2
index 1ffd03b..7f12416 100644

Lines of this file are not shown. View the raw message.

drivers/xen/grant-table.c +4 -2
index f100ce2..fda491c 100644

Lines of this file are not shown. View the raw message.

fs/cifs/cifs_unicode.c +1 -1
index fbb9da9..33ef60d 100644

Lines of this file are not shown. View the raw message.

fs/dcache.c +2 -2
index b80531c..10fab26 100644

Lines of this file are not shown. View the raw message.

fs/ecryptfs/inode.c +5 -0
index ab35b11..6f5fb1a 100644

Lines of this file are not shown. View the raw message.

fs/lockd/svc.c +5 -7
index 3250f28..58ddc38 100644

Lines of this file are not shown. View the raw message.

fs/nfs/inode.c +1 -1
index e8bbfa5..edf4119 100644

Lines of this file are not shown. View the raw message.

fs/nfs/nfs3proc.c +1 -1
index a1e416b..a7a043d 100644

Lines of this file are not shown. View the raw message.

fs/nfs/nfs4proc.c +2 -2
index dc57324..b106b97 100644

Lines of this file are not shown. View the raw message.

fs/nfs/nfs4xdr.c +2 -1
index c54aae3..c8ac9a1 100644

Lines of this file are not shown. View the raw message.

fs/nfs/super.c +2 -0
index 7b55f51..5976e24 100644

Lines of this file are not shown. View the raw message.

fs/nfsd/nfsctl.c +2 -6
index 3ab12eb..d014727 100644

Lines of this file are not shown. View the raw message.

fs/nfsd/nfsd.h +11 -0
index 1671429..1336a65 100644

Lines of this file are not shown. View the raw message.

fs/nfsd/nfssvc.c +8 -16
index bcda12a..b6f8e65 100644

Lines of this file are not shown. View the raw message.

fs/proc/proc_sysctl.c +2 -3
index 21d836f..ab53521 100644

Lines of this file are not shown. View the raw message.

fs/stat.c +1 -1
index c733dc5..dc6d0be 100644

Lines of this file are not shown. View the raw message.

include/asm-generic/mutex-xchg.h +9 -2
index 580a6d3..c04e0db 100644

Lines of this file are not shown. View the raw message.

include/drm/drm_mode.h +3 -2
index 4a0aae3..9242310 100644

Lines of this file are not shown. View the raw message.

include/linux/dcache.h +2 -0
index 7e11f14..1332df0 100644

Lines of this file are not shown. View the raw message.

include/linux/init_task.h +11 -1
index e4baff5..e7bafa4 100644

Lines of this file are not shown. View the raw message.

include/linux/kobject.h +1 -1
index fc615a9..1e57449 100644

Lines of this file are not shown. View the raw message.

include/linux/kthread.h +2 -6
index 0714b24..22ccf9d 100644

Lines of this file are not shown. View the raw message.

include/linux/ktime.h +0 -7
index 603bec2..06177ba10 100644

Lines of this file are not shown. View the raw message.

include/linux/memory.h +1 -1
index 1ac7f6e..ff9a9f8 100644

Lines of this file are not shown. View the raw message.

include/linux/mmc/card.h +1 -0
index 629b823..b5292f3 100644

Lines of this file are not shown. View the raw message.

include/linux/netdevice.h +4 -0
index 33900a5..e517695 100644

Lines of this file are not shown. View the raw message.

include/linux/nfs_fs.h +0 -5
index 52a1bdb..941d688 100644

Lines of this file are not shown. View the raw message.

include/linux/pci_ids.h +1 -1
index 3329965..19ca550 100644

Lines of this file are not shown. View the raw message.

include/linux/perf_event.h +1 -1
index ddbb6a9..f18d537 100644

Lines of this file are not shown. View the raw message.

include/linux/sched.h +4 -1
index 7b06169..48241aa 100644

Lines of this file are not shown. View the raw message.

include/linux/time.h +27 -2
index 8da5129..03dce74 100644

Lines of this file are not shown. View the raw message.

include/net/bluetooth/smp.h +1 -1
index 7b3acdd..1bf9bec 100644

Lines of this file are not shown. View the raw message.

include/net/scm.h +3 -1
index d456f4c..0c0017c 100644

Lines of this file are not shown. View the raw message.

include/net/sock.h +2 -0
index 5a0a58a..5878118 100644

Lines of this file are not shown. View the raw message.

include/trace/events/kmem.h +2 -2
index 5f889f1..08fa272 100644

Lines of this file are not shown. View the raw message.

include/xen/grant_table.h +2 -1
index 15f8a00..f0037a8 100644

Lines of this file are not shown. View the raw message.

kernel/async.c +9 -4
index bd0c168..32d8dc9 100644

Lines of this file are not shown. View the raw message.

kernel/events/core.c +33 -29

62 lines not on this page · raw message

kernel/kthread.c +52 -36

88 lines not on this page · raw message

kernel/sched/core.c +8 -1
index ef6a8f2..593087b 100644

Lines of this file are not shown. View the raw message.

kernel/sched/sched.h +10 -13
index d9637f4..acfa701 100644

Lines of this file are not shown. View the raw message.

kernel/time/tick-sched.c +1 -0
index fd4e160..e603477 100644

Lines of this file are not shown. View the raw message.

kernel/time/timekeeping.c +29 -4
index 7c50de8..12843e9 100644

Lines of this file are not shown. View the raw message.

kernel/workqueue.c +14 -20
index bfe3f8a..7584322 100644

Lines of this file are not shown. View the raw message.

lib/digsig.c +4 -2
index 286d558..8c0e629 100644

Lines of this file are not shown. View the raw message.

mm/bootmem.c +6 -2
index 0131170..53cf62b 100644

Lines of this file are not shown. View the raw message.

mm/memory_hotplug.c +10 -6
index 6629faf..9ad7d1e 100644

Lines of this file are not shown. View the raw message.

mm/page_alloc.c +1 -1
index 918330f..88a6d87 100644

Lines of this file are not shown. View the raw message.

mm/vmscan.c +3 -3
index be5bc0a..e989ee2 100644

Lines of this file are not shown. View the raw message.

net/atm/common.c +1 -0
index b4b44db..0c0ad93 100644

Lines of this file are not shown. View the raw message.

net/atm/pvc.c +1 -0
index 3a73491..ae03240 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/hci_conn.c +4 -0
index 5238b6b..39b2baf 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/hci_core.c +2 -0
index d6dc44c..0a30ec1 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/hci_sock.c +2 -0
index 5914623..bedc768 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/l2cap_core.c +6 -5
index 9a86759..627c354 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/l2cap_sock.c +2 -1
index 04e7c17..4a26348 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/mgmt.c +16 -0
index 4bb03b1..8f3d9dc 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/rfcomm/sock.c +2 -0
index a55a43e..717c43a 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/rfcomm/tty.c +1 -1
index 4bf54b3..95a0f60 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/smp.c +5 -5
index deb1198..1f6cb1f 100644

Lines of this file are not shown. View the raw message.

net/core/dev.c +25 -5
index c299416..3fd9cae 100644

Lines of this file are not shown. View the raw message.

net/core/net_namespace.c +3 -1
index 31a5ae5..dd00b71 100644

Lines of this file are not shown. View the raw message.

net/core/sock.c +1 -0
index 0f8402e..d3e0a52 100644

Lines of this file are not shown. View the raw message.

net/dccp/ccids/ccid3.c +1 -0
index 70bfaf2..b658f3b 100644

Lines of this file are not shown. View the raw message.

net/ipv4/ipmr.c +12 -2
index 960fbfc..8626b64 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp.c +3 -1
index d6feb1e..367bdaf 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp_cong.c +2 -1
index 272a845..69251dd 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp_input.c +7 -8
index 56a9c8d..3acebbd 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp_output.c +12 -9
index 7ac6423..2d27e1a 100644

Lines of this file are not shown. View the raw message.

net/ipv6/addrconf.c +1 -3
index 7d5cb97..2c69eca 100644

Lines of this file are not shown. View the raw message.

net/l2tp/l2tp_core.c +1 -2
index 89ff8c6..7501b22 100644

Lines of this file are not shown. View the raw message.

net/l2tp/l2tp_core.h +1 -0
index a16a48e..4393794 100644

Lines of this file are not shown. View the raw message.

net/llc/af_llc.c +1 -2
index b9bef2c..df08d77 100644

Lines of this file are not shown. View the raw message.

net/mac80211/mlme.c +4 -0
index 25be683..abc31d7 100644

Lines of this file are not shown. View the raw message.

net/netfilter/ipvs/ip_vs_ctl.c +1 -0
index f558998..97e7380 100644

Lines of this file are not shown. View the raw message.

net/netlink/af_netlink.c +4 -2
index faa48f7..bba6ba1 100644

Lines of this file are not shown. View the raw message.

net/openvswitch/vport-internal_dev.c +8 -0
index b6b1d7d..ce5348f 100644

Lines of this file are not shown. View the raw message.

net/packet/af_packet.c +9 -1
index 4f2c0df..078fdff 100644

Lines of this file are not shown. View the raw message.

net/rds/recv.c +3 -0
index 5c6e9f1..9f0f17c 100644

Lines of this file are not shown. View the raw message.

net/sched/act_gact.c +11 -3
index b77f5a0..bdacd8d 100644

Lines of this file are not shown. View the raw message.

net/socket.c +1 -0
index 06ffa0f..dab3176 100644

Lines of this file are not shown. View the raw message.

net/unix/af_unix.c +2 -2
index d510353..109e30b 100644

Lines of this file are not shown. View the raw message.

net/wireless/reg.c +9 -3
index 460af03..b01449f 100644

Lines of this file are not shown. View the raw message.

sound/pci/hda/hda_codec.c +1 -1
index 926b455..cec7479 100644

Lines of this file are not shown. View the raw message.

sound/pci/hda/patch_realtek.c +21 -1
index 152d91b..52e7a45 100644

Lines of this file are not shown. View the raw message.

sound/pci/hda/patch_sigmatel.c +1 -1
index fd53312..04cd44f 100644

Lines of this file are not shown. View the raw message.

sound/pci/ice1712/prodigy_hifi.c +2 -1
index 764cc93..075d5aa 100644

Lines of this file are not shown. View the raw message.

sound/soc/codecs/wm2000.c +1 -1
index a75c376..ae6f26f 100644

Lines of this file are not shown. View the raw message.

sound/soc/samsung/dma.c +1 -7
index ddc6cde..2526eca 100644

Lines of this file are not shown. View the raw message.

sound/soc/tegra/tegra_alc5632.c +0 -1
index e45ccd8..76d759e 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.