Skip to contentSkip to conversation

Linux 3.0.5

DISCUSSION Greg KH 3 participants 4 messages Oct 3, 2011 – Oct 6, 2011

lore
Share & tools
lore

Greg KH

author
#0 lore raw

I'm announcing the release of the 3.0.5 kernel.

All users of the 3.0 kernel series must upgrade.

The updated 3.0.y git tree can be found at (NOTE THE ADDRESS CHANGE):
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
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

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

 Makefile                                             |    2 
 arch/arm/Kconfig                                     |   14 +
 arch/arm/include/asm/futex.h                         |   34 +--
 arch/arm/include/asm/hardware/cache-l2x0.h           |    2 
 arch/arm/kernel/smp_scu.c                            |   10 +
 arch/arm/mach-davinci/board-da850-evm.c              |   28 ++
 arch/arm/mach-davinci/sleep.S                        |    6 
 arch/arm/mach-dove/common.c                          |    2 
 arch/arm/mach-integrator/integrator_ap.c             |    6 
 arch/arm/mm/cache-v7.S                               |   20 ++
 arch/arm/mm/dma-mapping.c                            |    2 
 arch/arm/plat-mxc/include/mach/iomux-v3.h            |    2 
 arch/powerpc/sysdev/fsl_rio.c                        |    5 
 arch/sparc/Kconfig                                   |    1 
 arch/sparc/include/asm/sigcontext.h                  |   14 +
 arch/sparc/include/asm/spinlock_32.h                 |   11 -
 arch/sparc/include/asm/spinlock_64.h                 |    6 
 arch/sparc/kernel/Makefile                           |    1 
 arch/sparc/kernel/irq.h                              |    2 
 arch/sparc/kernel/pcic.c                             |    4 
 arch/sparc/kernel/setup_64.c                         |   10 -
 arch/sparc/kernel/signal32.c                         |  184 ++++++++++---------
 arch/sparc/kernel/signal_32.c                        |  172 ++++++++---------
 arch/sparc/kernel/signal_64.c                        |  108 ++++-------
 arch/sparc/kernel/sigutil.h                          |    9 
 arch/sparc/kernel/sigutil_32.c                       |  120 ++++++++++++
 arch/sparc/kernel/sigutil_64.c                       |   93 +++++++++
 arch/x86/kernel/amd_iommu.c                          |   18 +
 arch/x86/kernel/cpu/perf_event.c                     |    3 
 arch/x86/kernel/cpu/perf_event_intel.c               |    1 
 arch/x86/xen/setup.c                                 |   21 ++
 arch/x86/xen/smp.c                                   |   10 +
 arch/x86/xen/xen-asm_32.S                            |    8 
 block/blk-cgroup.c                                   |   37 +--
 block/blk-core.c                                     |   13 -
 block/blk-sysfs.c                                    |    5 
 drivers/acpi/acpica/acconfig.h                       |    2 
 drivers/acpi/acpica/aclocal.h                        |    1 
 drivers/acpi/acpica/nspredef.c                       |    1 
 drivers/acpi/acpica/nsrepair2.c                      |   15 +
 drivers/ata/ahci.c                                   |    1 
 drivers/ata/pata_via.c                               |   18 +
 drivers/base/firmware_class.c                        |   11 -
 drivers/block/floppy.c                               |    8 
 drivers/char/tpm/tpm.c                               |    9 
 drivers/cpufreq/pcc-cpufreq.c                        |    3 
 drivers/firewire/ohci.c                              |    3 
 drivers/gpu/drm/nouveau/nouveau_sgdma.c              |    5 
 drivers/gpu/drm/radeon/evergreen.c                   |   42 +++-
 drivers/gpu/drm/radeon/ni.c                          |   16 +
 drivers/gpu/drm/radeon/r100.c                        |   18 -
 drivers/gpu/drm/radeon/r200.c                        |    4 
 drivers/gpu/drm/radeon/r600.c                        |   14 -
 drivers/gpu/drm/radeon/radeon.h                      |    7 
 drivers/gpu/drm/radeon/radeon_asic.h                 |    8 
 drivers/gpu/drm/radeon/radeon_clocks.c               |    3 
 drivers/gpu/drm/radeon/radeon_combios.c              |    8 
 drivers/gpu/drm/radeon/radeon_encoders.c             |    9 
 drivers/gpu/drm/radeon/radeon_ttm.c                  |    7 
 drivers/hwmon/ds620.c                                |    2 
 drivers/hwmon/max16065.c                             |    2 
 drivers/infiniband/hw/cxgb3/iwch_cm.c                |   10 -
 drivers/leds/ledtrig-timer.c                         |    2 
 drivers/md/linear.h                                  |    2 
 drivers/md/md.c                                      |   12 +
 drivers/media/dvb/dvb-usb/vp7045.c                   |   26 --
 drivers/media/rc/nuvoton-cir.c                       |   45 ----
 drivers/media/rc/nuvoton-cir.h                       |    1 
 drivers/mfd/omap-usb-host.c                          |    1 
 drivers/mfd/tps65910-irq.c                           |    2 
 drivers/mmc/core/core.c                              |   35 +++
 drivers/mmc/core/host.c                              |   12 -
 drivers/mmc/core/host.h                              |    8 
 drivers/mmc/host/sdhci-s3c.c                         |    2 
 drivers/net/bnx2.c                                   |    7 
 drivers/net/bnx2x/bnx2x_dcb.c                        |    1 
 drivers/net/bnx2x/bnx2x_main.c                       |    6 
 drivers/net/bnx2x/bnx2x_reg.h                        |   12 +
 drivers/net/cnic.c                                   |   57 ++---
 drivers/net/cxgb3/cxgb3_offload.c                    |   23 +-
 drivers/net/cxgb3/l2t.c                              |   15 +
 drivers/net/cxgb3/l2t.h                              |   16 +
 drivers/net/e1000/e1000_hw.c                         |    6 
 drivers/net/ibmveth.c                                |   31 ++-
 drivers/net/igb/igb_main.c                           |    2 
 drivers/net/irda/smsc-ircc2.c                        |    2 
 drivers/net/ixgbe/ixgbe_main.c                       |    4 
 drivers/net/rionet.c                                 |   23 --
 drivers/net/sfc/efx.c                                |   18 -
 drivers/net/sfc/io.h                                 |   15 -
 drivers/net/sfc/mcdi.c                               |   46 +---
 drivers/net/sfc/nic.c                                |    7 
 drivers/net/sfc/nic.h                                |    2 
 drivers/net/sfc/siena.c                              |   25 --
 drivers/net/sfc/workarounds.h                        |    2 
 drivers/net/tg3.c                                    |   30 +--
 drivers/net/usb/asix.c                               |    4 
 drivers/net/usb/cdc_ncm.c                            |  156 +++++-----------
 drivers/net/wireless/ath/ath9k/ar9002_calib.c        |    3 
 drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h |    2 
 drivers/net/wireless/ath/ath9k/ar9003_eeprom.c       |    2 
 drivers/net/wireless/ath/ath9k/main.c                |    4 
 drivers/net/wireless/ath/carl9170/main.c             |    4 
 drivers/net/wireless/b43/main.c                      |    3 
 drivers/net/wireless/iwlegacy/iwl-3945-rs.c          |   13 -
 drivers/net/wireless/iwlegacy/iwl-core.c             |    4 
 drivers/net/wireless/iwlegacy/iwl-hcmd.c             |    2 
 drivers/net/wireless/iwlegacy/iwl-tx.c               |    4 
 drivers/net/wireless/iwlegacy/iwl3945-base.c         |    8 
 drivers/net/wireless/iwlegacy/iwl4965-base.c         |   10 -
 drivers/net/wireless/iwlwifi/iwl-agn.c               |    5 
 drivers/net/wireless/iwlwifi/iwl-scan.c              |   30 +--
 drivers/net/wireless/iwlwifi/iwl-tx.c                |    2 
 drivers/net/wireless/rt2x00/rt2800lib.c              |   64 ++++--
 drivers/net/wireless/rt2x00/rt2800usb.c              |    4 
 drivers/net/wireless/rt2x00/rt2x00usb.c              |   14 -
 drivers/net/wireless/rtlwifi/core.c                  |    8 
 drivers/net/wireless/rtlwifi/rtl8192cu/trx.c         |   11 -
 drivers/net/wireless/rtlwifi/usb.c                   |    1 
 drivers/pci/dmar.c                                   |    2 
 drivers/rapidio/rio-scan.c                           |    3 
 drivers/regulator/tps65910-regulator.c               |    7 
 drivers/rtc/interface.c                              |    2 
 drivers/s390/cio/qdio_thinint.c                      |   15 -
 drivers/scsi/3w-9xxx.c                               |    2 
 drivers/scsi/Makefile                                |    2 
 drivers/scsi/aacraid/commsup.c                       |    2 
 drivers/scsi/bnx2fc/bnx2fc.h                         |    8 
 drivers/scsi/bnx2fc/bnx2fc_fcoe.c                    |   28 ++
 drivers/scsi/bnx2fc/bnx2fc_hwi.c                     |   24 ++
 drivers/scsi/bnx2fc/bnx2fc_io.c                      |    2 
 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c                   |    2 
 drivers/scsi/fcoe/fcoe.c                             |   19 +
 drivers/scsi/hpsa.c                                  |   57 +++--
 drivers/scsi/isci/host.c                             |    3 
 drivers/scsi/isci/phy.c                              |   13 +
 drivers/scsi/isci/registers.h                        |   12 +
 drivers/scsi/isci/request.c                          |   30 +--
 drivers/scsi/isci/unsolicited_frame_control.c        |    2 
 drivers/scsi/isci/unsolicited_frame_control.h        |    2 
 drivers/scsi/iscsi_tcp.c                             |   61 ++++--
 drivers/scsi/libfc/fc_rport.c                        |   14 +
 drivers/scsi/libiscsi_tcp.c                          |   14 -
 drivers/scsi/libsas/sas_expander.c                   |    2 
 drivers/scsi/lpfc/lpfc.h                             |    8 
 drivers/scsi/lpfc/lpfc_attr.c                        |  147 +++++++--------
 drivers/scsi/lpfc/lpfc_bsg.c                         |   52 ++---
 drivers/scsi/lpfc/lpfc_crtn.h                        |    2 
 drivers/scsi/lpfc/lpfc_els.c                         |  103 ++++++----
 drivers/scsi/lpfc/lpfc_hbadisc.c                     |    2 
 drivers/scsi/lpfc/lpfc_hw.h                          |    7 
 drivers/scsi/lpfc/lpfc_hw4.h                         |   30 +--
 drivers/scsi/lpfc/lpfc_init.c                        |   82 ++++++--
 drivers/scsi/lpfc/lpfc_mbox.c                        |    2 
 drivers/scsi/lpfc/lpfc_scsi.c                        |   97 +++-------
 drivers/scsi/lpfc/lpfc_sli.c                         |  106 ++++++----
 drivers/scsi/lpfc/lpfc_sli4.h                        |    2 
 drivers/scsi/mpt2sas/mpt2sas_base.c                  |   19 +
 drivers/scsi/mpt2sas/mpt2sas_base.h                  |    3 
 drivers/scsi/mpt2sas/mpt2sas_scsih.c                 |    3 
 drivers/scsi/qla2xxx/qla_init.c                      |    3 
 drivers/scsi/qla2xxx/qla_isr.c                       |    1 
 drivers/tty/pty.c                                    |   17 +
 drivers/tty/serial/8250.c                            |    8 
 drivers/tty/serial/8250_pci.c                        |    6 
 drivers/tty/serial/8250_pnp.c                        |    3 
 drivers/tty/serial/max3107-aava.c                    |    2 
 drivers/tty/serial/max3107.c                         |    2 
 drivers/tty/serial/mrst_max3110.c                    |    2 
 drivers/tty/serial/omap-serial.c                     |    3 
 drivers/tty/tty_io.c                                 |    3 
 drivers/usb/host/ehci-hub.c                          |    7 
 drivers/usb/host/ehci-s5p.c                          |    1 
 drivers/usb/host/pci-quirks.c                        |   28 ++
 drivers/usb/host/xhci-hub.c                          |   19 +
 drivers/usb/host/xhci-ring.c                         |   90 ++++++---
 drivers/usb/host/xhci.c                              |   28 ++
 drivers/usb/musb/cppi_dma.c                          |   26 +-
 drivers/usb/serial/ftdi_sio.c                        |   20 +-
 drivers/usb/serial/option.c                          |  104 ++++++++++
 drivers/usb/serial/pl2303.c                          |   26 ++
 drivers/video/savage/savagefb.h                      |    2 
 drivers/zorro/zorro.c                                |    7 
 fs/9p/acl.c                                          |   22 +-
 fs/9p/acl.h                                          |    6 
 fs/9p/cache.c                                        |   20 --
 fs/9p/cache.h                                        |    9 
 fs/9p/v9fs.c                                         |   45 +++-
 fs/9p/v9fs.h                                         |   29 ++
 fs/9p/v9fs_vfs.h                                     |    6 
 fs/9p/vfs_file.c                                     |   36 ++-
 fs/9p/vfs_inode.c                                    |  177 ++++++++++++------
 fs/9p/vfs_inode_dotl.c                               |  162 +++++++++++++---
 fs/9p/vfs_super.c                                    |    2 
 fs/block_dev.c                                       |    7 
 fs/btrfs/inode.c                                     |    5 
 fs/cifs/cifssmb.c                                    |    3 
 fs/cifs/connect.c                                    |    4 
 fs/ext4/inode.c                                      |    4 
 fs/fs-writeback.c                                    |   26 +-
 fs/namei.c                                           |    4 
 fs/proc/task_mmu.c                                   |   80 +++++---
 include/linux/mfd/wm8994/pdata.h                     |    2 
 include/linux/rio_regs.h                             |   18 -
 include/linux/rtc.h                                  |    3 
 include/linux/tty.h                                  |    2 
 include/linux/tty_driver.h                           |    3 
 include/linux/writeback.h                            |    1 
 include/net/9p/9p.h                                  |   29 ++
 ipc/mqueue.c                                         |  125 ++++++------
 kernel/irq/chip.c                                    |    2 
 kernel/printk.c                                      |    2 
 kernel/sched.c                                       |   41 ++--
 kernel/time/alarmtimer.c                             |   18 +
 kernel/workqueue.c                                   |    7 
 lib/xz/xz_dec_bcj.c                                  |   27 ++
 mm/page-writeback.c                                  |    4 
 mm/page_alloc.c                                      |   58 ++++-
 mm/vmalloc.c                                         |    8 
 mm/vmscan.c                                          |   18 +
 net/8021q/vlan_core.c                                |    2 
 net/9p/client.c                                      |   13 -
 net/9p/trans_virtio.c                                |   17 +
 net/atm/br2684.c                                     |    7 
 net/bluetooth/hci_event.c                            |   17 -
 net/bridge/br_if.c                                   |    6 
 net/bridge/br_multicast.c                            |   21 +-
 net/core/fib_rules.c                                 |    4 
 net/core/neighbour.c                                 |    8 
 net/core/scm.c                                       |    2 
 net/ipv4/igmp.c                                      |    2 
 net/ipv4/netfilter.c                                 |   18 -
 net/ipv4/route.c                                     |    8 
 net/ipv4/syncookies.c                                |    2 
 net/ipv4/tcp_input.c                                 |    2 
 net/ipv6/ipv6_sockglue.c                             |    9 
 net/ipv6/mcast.c                                     |    2 
 net/ipv6/syncookies.c                                |    2 
 net/mac80211/sta_info.c                              |    2 
 net/sched/sch_prio.c                                 |    2 
 net/socket.c                                         |   10 -
 net/wireless/nl80211.c                               |    5 
 net/wireless/reg.c                                   |    1 
 net/xfrm/xfrm_input.c                                |    5 
 sound/core/pcm_lib.c                                 |   33 ++-
 sound/pci/fm801.c                                    |   15 +
 sound/pci/hda/patch_cirrus.c                         |    2 
 sound/pci/hda/patch_realtek.c                        |   13 -
 sound/pci/hda/patch_sigmatel.c                       |    2 
 sound/soc/blackfin/bf5xx-ad193x.c                    |    4 
 sound/soc/codecs/ad193x.c                            |    3 
 sound/soc/codecs/ad193x.h                            |    5 
 sound/soc/codecs/ssm2602.c                           |    3 
 sound/soc/fsl/mpc5200_dma.c                          |    6 
 sound/soc/omap/omap-mcbsp.c                          |    6 
 sound/soc/soc-jack.c                                 |    4 
 sound/usb/card.c                                     |    7 
 tools/perf/util/symbol.c                             |    2 
 258 files changed, 3091 insertions(+), 1664 deletions(-)

Al Cooper (1):
8250: Fix race condition in serial8250_backup_timeout().

Al Viro (2):
9p: close ACL leaks
restore pinning the victim dentry in vfs_rmdir()/vfs_rename_dir()

Alex Deucher (4):
drm/radeon/kms: add s/r quirk for Compaq Presario V5245EU drm/radeon/kms: make sure pci max read request size is valid on evergreen+ (v2) drm/radeon/kms: Make GPU/CPU page size handling consistent in blit code (v2) drm/radeon/kms: fix DDIA enable on some rs690 systems

Alexandre Bounine (1):
rapidio: fix use of non-compatible registers

Alexey Khoroshilov (1):
carl9170: Fix mismatch in carl9170_op_set_key mutex lock-unlock

Anand Gadiyar (1):
mfd: Make omap-usb-host TLL mode work again

Andiry Xu (2):
xHCI: fix port U3 status check condition
xHCI: report USB2 port in resuming as suspend

Andrew Bird (3):
USB option driver add PID of Huawei Vodafone K3806 USB option driver add PID of Huawei Vodafone K4605 USB option driver K3765/K4505 avoid CDC_DATA interface

Andrew Vasquez (1):
qla2xxx: Correct inadvertent loop state transitions during port-update handling.

Andrey Vagin (1):

      x86, perf: Check that current->mm is alive before getting user callchain

Aneesh Kumar K.V (8):
fs/9p: Fid is not valid after a failed clunk.
fs/9p: When doing inode lookup compare qid details and inode mode bits. fs/9p: Always ask new inode in create
fs/9p: Add fid before dentry instantiation
fs/9p: Don't update file type when updating file attributes fs/9p: Add OS dependent open flags in 9p protocol
net/9p: Fix kernel crash with msize 512K
fs/9p: Always ask new inode in lookup for cache mode disabled

Anisse Astier (2):
ehci: refactor pci quirk to use standard dmi_check_system method
ehci: add pci quirk for Ordissimo and RM Slate 100 too

Anton Blanchard (4):
ibmveth: Fix leak when recycling skb and hypervisor returns error
ibmveth: Fix issue with DMA mapping failure
ibmveth: Checksum offload is always disabled
perf symbols: Fix ppc64 SEGV in dso__load_sym with debuginfo files

Arjan van de Ven (1):
ALSA: pcm - fix race condition in wait_for_avail()

Arnaud Lacombe (1):
usb/host/pci-quirks.c: correct annotation of `ehci_dmi_nohandoff_table'

Axel Lin (3):
ASoC: soc-jack: Fix checking return value of request_any_context_irq
tty: Add "spi:" prefix for spi modalias
regulator: tps65910: Add missing breaks in switch/case

Ben Hutchings (3):
Revert "sfc: Use write-combining to reduce TX latency" and follow-ups
ALSA: fm801: Fix double free in case of error in tuner detection
ALSA: fm801: Gracefully handle failure of tuner auto-detect

Bhanu Prakash Gollapudi (2):
bnx2fc: Fix kernel panic when deleting NPIV ports
bnx2fc: scsi_dma_unmap() not invoked on IO completions

Bjorn Helgaas (1):
serial: 8250_pnp: add Intermec CV60 touchscreen device

Brian King (1):
ibmveth: Fix DMA unmap error

Carolyn Wyborny (1):
igb: fix WOL on second port of i350 device

Carsten Emde (1):
floppy: use del_timer_sync() in init cleanup

Dan Williams (3):
isci: fix sata response handling
isci: fix 32-bit operation when CONFIG_HIGHMEM64G=n
isci: fix event-get pointer increment

Daniel Baluta (1):
ipv6: Fix ipv6_getsockopt for IPV6_2292PKTOPTIONS

Daniel Schwierzeck (1):

      atm: br2684: Fix oops due to skb->dev being NULL

Dave Airlie (1):
drm/radeon/kms: set a default max_pixel_clock

Dave Hansen (3):
make /proc/$pid/numa_maps gather_stats() take variable page size break out numa_maps gather_pte_stats() checks
teach /proc/$pid/numa_maps about transparent hugepages

David Henningsson (3):
ALSA: HDA: Cirrus - fix "Surround Speaker" volume control name
ALSA: HDA: No power nids on 92HD93
ALSA: HDA: Add support for IDT 92HD93

David S. Miller (3):
sparc: Allow handling signals when stack is corrupted.
sparc64: Set HAVE_C_RECORDMCOUNT
sparc64: Only Panther cheetah+ chips have POPC.

David Vrabel (3):
mm: sync vmalloc address space page tables in alloc_vm_area()
xen: use maximum reservation to limit amount of usable RAM xen/e820: if there is no dom0_mem=, don't tweak extra_pages.

Dmitry Kravkov (1):
bnx2x: fix hw attention handling

Don Fry (1):
iwlagn: workaround bug crashing some APs

Eddie Wai (1):
cnic: Randomize initial TCP port for iSCSI connections

Eric Dumazet (3):
arp: fix rcu lockdep splat in arp_process()
bridge: fix a possible net_device leak
bridge: fix a possible use after free

Eric Smith (1):
8250_pci: add support for Rosewill RC-305 4x serial port card

Eric Van Hensbergen (1):
net/9p: fix client code to fail more gracefully on protocol error

Felix Fietkau (1):
ath9k_hw: fix calibration on 5 ghz

Fenghua Yu (1):
ACPICA: Do not repair _TSS return package if _PSS is present

Florian Mickler (1):
vp7045: fix buffer setup

Florian Westphal (1):
net_sched: prio: use qdisc_dequeue_peeked

Gao feng (1):
fib:fix BUG_ON in fib_nl_newrule when add new fib rule

Gavin.zhu (1):
USB: option: add YUGA device id to driver

Geert Uytterhoeven (2):
genirq: Make irq_shutdown() symmetric vs. irq_startup again
zorro: Defer device_register() until all devices have been identified

George (2):
rtlwifi: rtl8192su: Fix problem connecting to HT-enabled AP
rtlwifi: Fix problem when switching connections

Girish K S (1):
mmc: sdhci-s3c: Fix mmc card I/O problem

Giuseppe Scrivano (1):
cdc_ncm: fix endianness problem.

Greg Kroah-Hartman (1):

      Linux 3.0.5

Guenter Roeck (1):
hwmon: (max16065) Fix current calculation

Hannes Reinecke (1):
block: Free queue resources at blk_release_queue()

Hidetoshi Seto (1):
btrfs: fix d_off in the first dirent

Ian Campbell (1):
sparc: fix array bounds error setting up PCIC NMI trap

Igor Mammedov (1):
xen: x86_32: do not enable iterrupts when returning from exception in interrupt context

James Bottomley (1):
3w-9xxx: fix iommu_iova leak

James Smart (5):
lpfc 8.3.25: T10 DIF Fixes
lpfc 8.3.25: Miscellaneous Bug fixes and code cleanup lpfc 8.3.25: Adapter Interface fixes and changes lpfc 8.3.25: Fabric and Target Discovery Fixes lpfc 8.3.25: PCI and SR-IOV Fixes

Jan Glauber (1):
qdio: clear shared DSCI before scheduling the queue handler

Jarkko Nikula (1):
ASoC: omap-mcbsp: Do not attempt to change DAI sysclk if stream is active

Jarod Wilson (1):
nuvoton-cir: simplify raw IR sample handling

Jean-Christophe PLAGNIOL-VILLARD (1):
USB: ftdi_sio: add Calao reference board support

Jeff Kirsher (1):
e1000: Fix driver to be used on PA RISC C8000 workstations

Jeff Layton (1):
cifs: fix possible memory corruption in CIFSFindNext

Jeff Skirvin (1):
isci: Leave requests alone if already terminating.

Jerome Glisse (1):
drm/radeon/kms: evergreen & ni reset SPI block on CP resume

Jesse Brandeburg (1):
ixgbe: fix possible null buffer error

Jim Garlick (1):
fs/9p: Use protocol-defined value for lock/getlock 'type' field.

Jiri Pirko (1):
vlan: reset headers on accel emulation path

Jiri Slaby (3):
TTY: pty, fix pty counting
ipc/mqueue.c: refactor failure handling
ipc/mqueue.c: fix mq_open() return value

Joerg Roedel (2):

      iommu/amd: Don't take domain->lock recursivly
      iommu/amd: Make sure iommu->need_sync contains correct value

Johan Hovold (2):
mfd: Fix initialisation of tps65910 interrupts drivers/leds/ledtrig-timer.c: fix broken sysfs delay handling

Johannes Berg (3):
mac80211: fix missing sta_lock in __sta_info_destroy
iwlagn: fix command queue timeout
iwlagn: fix dangling scan request

John Stanley (1):
savagedb: Fix typo causing regression in savage4 series video chip detection

John Stultz (4):
alarmtimers: Avoid possible null pointer traversal
alarmtimers: Memset itimerspec passed into alarm_timer_get
alarmtimers: Avoid possible denial of service with high freq periodic timers
rtc: Fix RTC PIE frequency limit

Jouni Malinen (1):
cfg80211: Fix validation of AKM suites

Julian Anastasov (2):
ipv4: some rt_iif -> rt_route_iif conversions
netfilter: TCP and raw fix for ip_route_me_harder

KAMEZAWA Hiroyuki (1):
memcg: fix vmscan count in small memcgs

Kashyap, Desai (2):
mpt2sas: Added DID_NO_CONNECT return when driver remove and avoid shutdown call
mpt2sas: Adding support for customer specific branding

Kiran Patil (2):
libfc: Enhancement to RPORT state machine applicable only for VN2VN mode
fcoe: Unable to select the exchangeID from offload pool for storage targets

Kjetil Oftedal (1):
sparc32,sun4d: Change IPI IRQ level to prevent collision between IPI and timer interrupt

Konrad Rzeszutek Wilk (1):
xen/smp: Warn user why they keel over - nosmp or noapic and what to use instead.

Larry Finger (3):
rt2800pci: Fix compiler error on PowerPC
rtl2800usb: Fix incorrect storage of MAC address on big-endian platforms
rtlwifi: rtl8192cu: Fix unitialized struct

Lars-Peter Clausen (2):
ASoC: Blackfin: bf5xx-ad193x: Fix codec device name
ASoC: ssm2602: Re-enable oscillator after suspend

Lasse Collin (1):
XZ: Fix incorrect XZ_BUF_ERROR

Len Brown (1):
acpica: ACPI_MAX_SLEEP should be 2 sec, not 20

Linus Torvalds (1):
firmware loader: allow builtin firmware load even if usermodehelper is disabled

Linus Walleij (2):
ARM: 7081/1: mach-integrator: fix the clocksource
ARM: davinci: fix cache flush build error

Liu Gang-B34182 (1):
arch/powerpc/sysdev/fsl_rio.c: correct IECSR register clear value

Manual Munz (1):
b43: Fix beacon problem in ad-hoc mode

Marcin Slusarz (1):
drm/nouveau: properly handle allocation failure in nouveau_sgdma_populate

Marcin Tomczak (1):
isci: change sas phy timeouts from 54us to 59us

Marek Vasut (1):
ASIX: Add AX88772B USB ID

Mark Brown (2):
ASoC: Fix reporting of partial jack updates
mfd: Fix value of WM8994_CONFIGURE_GPIO

Mark Salyzyn (1):
libsas: fix failure to revalidate domain for anything but the first expander child.

Mathieu Desnoyers (1):
sendmmsg/sendmsg: fix unsafe user pointer access

Matt Carlson (3):
tg3: Fix io failures after chip reset
tg3: Add 5719 and 5720 to EEE_CAP list
tg3: Fix int selftest for recent devices.

Mel Gorman (2):
mm: page allocator: initialise ZLC for first zone eligible for zone_reclaim
mm: page allocator: reconsider zones for allocation after direct reclaim

Michael Chan (4):
cnic: Fix interrupt logic
cnic: Fix race conditions with firmware
cnic: Improve NETDEV_UP event handling
cnic, bnx2: Check iSCSI support early in bnx2_init_one()

Michal Sroczynski (1):
USB: PL2303: correctly handle baudrates above 115200

Michel Dänzer (1):
drm/radeon: Don't read from CP ring write pointer registers.

Mika Westerberg (3):
mmc: rename mmc_host_clk_{ungate|gate} to mmc_host_clk_{hold|release}
mmc: core: prevent aggressive clock gating racing with ios updates
mmc: core: use non-reentrant workqueue for clock gating

Mikael Pettersson (2):
sparc64: remove unnecessary macros from spinlock_64.h
sparc32: unbreak arch_write_unlock()

Mike Christie (2):
iscsi_tcp: fix locking around iscsi sk user data
libiscsi_tcp: fix LLD data allocation

Mike Waychison (1):
tcp: initialize variable ecn_ok in syncookies path

Ming Lei (1):
firewire: ohci: add no MSI quirk for O2Micro controller

Mohammed Shafi Shajakhan (1):
ath9k: Fix PS wrappers in ath9k_set_coverage_class

Naga Chumbalkar (1):
drivers/cpufreq/pcc-cpufreq.c: avoid NULL pointer dereference

Neil Horman (1):

      cxgb3i: convert cdev->l2opt to use rcu to prevent NULL dereference

NeilBrown (3):
md/linear: avoid corrupting structure while waiting for rcu_free to complete. Avoid dereferencing a 'request_queue' after last close.
md: Fix handling for devices from 2TB to 4TB in 0.90 metadata.

Nick Pelly (1):
omap-serial: Allow IXON and IXOFF to be disabled.

Nicolas Pitre (1):
ARM: Dove: fix second SPI initialization call

Nishanth Aravamudan (1):
kernel/printk: do not turn off bootconsole in printk_late_init() if keep_bootcon

Oliver Neukum (1):
Bluetooth: Fix timeout on scanning for the second time

Per Forlin (1):
usb: musb: cppi: fix build errors due to DBG and missing musb variable

Peter Huewe (2):
TPM: Call tpm_transmit with correct size
TPM: Zero buffer after copying to userspace

Prem Karat (1):
fs/9p: Fix invalid mount options/args

Rajkumar Manoharan (2):
wireless: Reset beacon_found while updating regulatory
ath9k_hw: Fix Rx DMA stuck for AR9003 chips

Randy Dunlap (2):
irda: fix smsc-ircc2 section mismatch warning
scsi: qla4xxx needs libiscsi.o

Roland Stigge (1):
hwmon: (ds620) Fix handling of negative temperatures

Russell King (1):
ARM: dma-mapping: free allocated page if unable to map

Sarah Sharp (5):
xhci: Fix memory leak during failed enqueue.
xhci: Fix failed enqueue in the middle of isoch TD.
xhci: Remove TDs from TD lists when URBs are canceled.
xhci: Handle zero-length isochronous packets.
USB: xhci: Set change bit when warm reset change is set.

Scott Jiang (2):
ASoC: ad193x: fix registers definition
ASoC: ad193x: fix dac word len setting

Senthil Balasubramanian (1):
ath9k_hw: Fix STA (AR9485) bringup issue due to incorrect MAC address

Seth Heasley (1):
ahci: RAID-mode SATA patch for Intel Panther Point DeviceIDs

Shmulik Ravid (1):
bnx2x: add missing break in bnx2x_dcbnl_get_cap

Srinivas Kandagatla (1):

      ARM: 7014/1: cache-l2x0: Fix L2 Cache size calculation.

Stanislaw Gruszka (6):
rt2x00: do not drop usb dev reference counter on suspend
rt2x00: fix crash in rt2800usb_write_tx_desc
rt2x00: fix crash in rt2800usb_get_txwi
iwlegacy: fix BUG_ON(info->control.rates[0].idx < 0)
iwlegacy: fix command queue timeout
iwlegacy: do not use interruptible waits

Steffen Klassert (1):
xfrm: Perform a replay check after return from async codepaths

Stephen M. Cameron (2):
hpsa: fix problem that OBDR devices are not detected
hpsa: fix physical device lun and target numbering problem

Steve French (1):
Fix the conflict between rwpidforward and rw mount options

Sudhakar Rajashekhara (1):
ARM: davinci: da850 EVM: read mac address from SPI flash

Takashi Iwai (2):
ALSA: hda/realtek - Fix auto-mute with HP+LO configuration
ALSA: hda/realtek - Avoid bogus HP-pin assignment

Tejun Heo (1):
pata_via: disable ATAPI DMA on AVERATEC 3200

Thomas Gleixner (3):
sched: Separate the scheduler entry for preemption
sched: Move blk_schedule_flush_plug() out of __schedule() x86, iommu: Mark DMAR IRQ as non-threaded

Thomas Pfaff (2):
ALSA: usb-audio - clear chip->probing on error exit
ALSA: usb-audio: Check for possible chip NULL pointer before clearing probing flag

Thomas Tuttle (1):
workqueue: lock cwq access in drain_workqueue

Tim Chen (1):
scm: Capture the full credentials of the scm sender

Timur Tabi (1):
ASoC: MPC5200: replace of_device with platform_device

Troy Kisky (1):
MXC: iomux-v3: correct NO_PAD_CTRL definition

Vasily Averin (1):
aacraid: reset should disable MSI interrupt

Venkateswararao Jujjuri (JV) (1):
net/9p: Fix the msize calculation.

WANG Cong (1):
sched: Fix a memory leak in __sdt_free()

Wang Zhi (1):
USB: EHCI: Do not rely on PORT_SUSPEND to stop USB resuming in ehci_bus_resume().

Wanlong Gao (1):
blk-cgroup: be able to remove the record of unplugged device

Will Deacon (2):
ARM: 7091/1: errata: D-cache line maintenance operation by MVA may not succeed
ARM: 7099/1: futex: preserve oldval in SMP __futex_atomic_op

Wu Fengguang (2):
writeback: introduce .tagged_writepages for the WB_SYNC_NONE sync stage
writeback: update dirtied_when for synced inode to prevent livelock

Yan, Zheng (2):
mcast: Fix source address selection for multicast listener report
bridge: Pseudo-header required for the checksum of ICMPv6

Youquan Song (1):
perf, x86: Add model 45 SandyBridge support

Yulgon Kim (1):
usb: s5p-ehci: fix a NULL pointer deference

Zheng Yan (1):
tcp: fix validation of D-SACK

jvrao (2):
Fix the size of receive buffer packing onto VirtIO ring. VirtIO can transfer VIRTQUEUE_NUM of pages.

author
#1 lore raw

Here is the 3.0.5 incremental patch, to be applied on top of 3.0.4, signed with my stable kernel signing key.

thanks,

greg k-h

Makefile +1 -1
index 7d2192c..eeff5df 100644
@@ -1,6 +1,6 @@
 VERSION = 3
 PATCHLEVEL = 0
-SUBLEVEL = 4
+SUBLEVEL = 5
 EXTRAVERSION =
 NAME = Sneaky Weasel
 
arch/arm/Kconfig +14 -0
index 9adc278..91c84cb 100644
@@ -1298,6 +1298,20 @@ source "drivers/pci/Kconfig"
 
 source "drivers/pcmcia/Kconfig"
 
+config ARM_ERRATA_764369
+	bool "ARM errata: Data cache line maintenance operation by MVA may not succeed"
+	depends on CPU_V7 && SMP
+	help
+	  This option enables the workaround for erratum 764369
+	  affecting Cortex-A9 MPCore with two or more processors (all
+	  current revisions). Under certain timing circumstances, a data
+	  cache line maintenance operation by MVA targeting an Inner
+	  Shareable memory region may fail to proceed up to either the
+	  Point of Coherency or to the Point of Unification of the
+	  system. This workaround adds a DSB instruction before the
+	  relevant cache maintenance functions and sets a specific bit
+	  in the diagnostic control register of the SCU.
+
 endmenu
 
 menu "Kernel Features"
arch/arm/include/asm/futex.h +17 -17
index 8c73900..253cc86 100644
@@ -25,17 +25,17 @@
 
 #ifdef CONFIG_SMP
 
-#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg)	\
+#define __futex_atomic_op(insn, ret, oldval, tmp, uaddr, oparg)	\
 	smp_mb();						\
 	__asm__ __volatile__(					\
-	"1:	ldrex	%1, [%2]\n"				\
+	"1:	ldrex	%1, [%3]\n"				\
 	"	" insn "\n"					\
-	"2:	strex	%1, %0, [%2]\n"				\
-	"	teq	%1, #0\n"				\
+	"2:	strex	%2, %0, [%3]\n"				\
+	"	teq	%2, #0\n"				\
 	"	bne	1b\n"					\
 	"	mov	%0, #0\n"				\
-	__futex_atomic_ex_table("%4")				\
-	: "=&r" (ret), "=&r" (oldval)				\
+	__futex_atomic_ex_table("%5")				\
+	: "=&r" (ret), "=&r" (oldval), "=&r" (tmp)		\
 	: "r" (uaddr), "r" (oparg), "Ir" (-EFAULT)		\
 	: "cc", "memory")
 
@@ -73,14 +73,14 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
 #include <linux/preempt.h>
 #include <asm/domain.h>
 
-#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg)	\
+#define __futex_atomic_op(insn, ret, oldval, tmp, uaddr, oparg)	\
 	__asm__ __volatile__(					\
-	"1:	" T(ldr) "	%1, [%2]\n"			\
+	"1:	" T(ldr) "	%1, [%3]\n"			\
 	"	" insn "\n"					\
-	"2:	" T(str) "	%0, [%2]\n"			\
+	"2:	" T(str) "	%0, [%3]\n"			\
 	"	mov	%0, #0\n"				\
-	__futex_atomic_ex_table("%4")				\
-	: "=&r" (ret), "=&r" (oldval)				\
+	__futex_atomic_ex_table("%5")				\
+	: "=&r" (ret), "=&r" (oldval), "=&r" (tmp)		\
 	: "r" (uaddr), "r" (oparg), "Ir" (-EFAULT)		\
 	: "cc", "memory")
 
@@ -117,7 +117,7 @@ futex_atomic_op_inuser (int encoded_op, u32 __user *uaddr)
 	int cmp = (encoded_op >> 24) & 15;
 	int oparg = (encoded_op << 8) >> 20;
 	int cmparg = (encoded_op << 20) >> 20;
-	int oldval = 0, ret;
+	int oldval = 0, ret, tmp;
 
 	if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
 		oparg = 1 << oparg;
@@ -129,19 +129,19 @@ futex_atomic_op_inuser (int encoded_op, u32 __user *uaddr)
 
 	switch (op) {
 	case FUTEX_OP_SET:
-		__futex_atomic_op("mov	%0, %3", ret, oldval, uaddr, oparg);
+		__futex_atomic_op("mov	%0, %4", ret, oldval, tmp, uaddr, oparg);
 		break;
 	case FUTEX_OP_ADD:
-		__futex_atomic_op("add	%0, %1, %3", ret, oldval, uaddr, oparg);
+		__futex_atomic_op("add	%0, %1, %4", ret, oldval, tmp, uaddr, oparg);
 		break;
 	case FUTEX_OP_OR:
-		__futex_atomic_op("orr	%0, %1, %3", ret, oldval, uaddr, oparg);
+		__futex_atomic_op("orr	%0, %1, %4", ret, oldval, tmp, uaddr, oparg);
 		break;
 	case FUTEX_OP_ANDN:
-		__futex_atomic_op("and	%0, %1, %3", ret, oldval, uaddr, ~oparg);
+		__futex_atomic_op("and	%0, %1, %4", ret, oldval, tmp, uaddr, ~oparg);
 		break;
 	case FUTEX_OP_XOR:
-		__futex_atomic_op("eor	%0, %1, %3", ret, oldval, uaddr, oparg);
+		__futex_atomic_op("eor	%0, %1, %4", ret, oldval, tmp, uaddr, oparg);
 		break;
 	default:
 		ret = -ENOSYS;
arch/arm/include/asm/hardware/cache-l2x0.h +1 -1
index 16bd480..bfa706f 100644
@@ -64,7 +64,7 @@
 #define L2X0_AUX_CTRL_MASK			0xc0000fff
 #define L2X0_AUX_CTRL_ASSOCIATIVITY_SHIFT	16
 #define L2X0_AUX_CTRL_WAY_SIZE_SHIFT		17
-#define L2X0_AUX_CTRL_WAY_SIZE_MASK		(0x3 << 17)
+#define L2X0_AUX_CTRL_WAY_SIZE_MASK		(0x7 << 17)
 #define L2X0_AUX_CTRL_SHARE_OVERRIDE_SHIFT	22
 #define L2X0_AUX_CTRL_NS_LOCKDOWN_SHIFT		26
 #define L2X0_AUX_CTRL_NS_INT_CTRL_SHIFT		27
arch/arm/kernel/smp_scu.c +10 -0
index a1e757c..cb7dd40 100644
@@ -13,6 +13,7 @@
 
 #include <asm/smp_scu.h>
 #include <asm/cacheflush.h>
+#include <asm/cputype.h>
 
 #define SCU_CTRL		0x00
 #define SCU_CONFIG		0x04
@@ -36,6 +37,15 @@ void __init scu_enable(void __iomem *scu_base)
 {
 	u32 scu_ctrl;
 
+#ifdef CONFIG_ARM_ERRATA_764369
+	/* Cortex-A9 only */
+	if ((read_cpuid(CPUID_ID) & 0xff0ffff0) == 0x410fc090) {
+		scu_ctrl = __raw_readl(scu_base + 0x30);
+		if (!(scu_ctrl & 1))
+			__raw_writel(scu_ctrl | 0x1, scu_base + 0x30);
+	}
+#endif
+
 	scu_ctrl = __raw_readl(scu_base + SCU_CTRL);
 	/* already enabled? */
 	if (scu_ctrl & 1)
arch/arm/mach-davinci/board-da850-evm.c +28 -0
index a7b41bf..e83cc86 100644
@@ -115,6 +115,32 @@ static struct spi_board_info da850evm_spi_info[] = {
 	},
 };
 
+#ifdef CONFIG_MTD
+static void da850_evm_m25p80_notify_add(struct mtd_info *mtd)
+{
+	char *mac_addr = davinci_soc_info.emac_pdata->mac_addr;
+	size_t retlen;
+
+	if (!strcmp(mtd->name, "MAC-Address")) {
+		mtd->read(mtd, 0, ETH_ALEN, &retlen, mac_addr);
+		if (retlen == ETH_ALEN)
+			pr_info("Read MAC addr from SPI Flash: %pM\n",
+				mac_addr);
+	}
+}
+
+static struct mtd_notifier da850evm_spi_notifier = {
+	.add	= da850_evm_m25p80_notify_add,
+};
+
+static void da850_evm_setup_mac_addr(void)
+{
+	register_mtd_user(&da850evm_spi_notifier);
+}
+#else
+static void da850_evm_setup_mac_addr(void) { }
+#endif
+
 static struct mtd_partition da850_evm_norflash_partition[] = {
 	{
 		.name           = "bootloaders + env",
@@ -1237,6 +1263,8 @@ static __init void da850_evm_init(void)
 	if (ret)
 		pr_warning("da850_evm_init: spi 1 registration failed: %d\n",
 				ret);
+
+	da850_evm_setup_mac_addr();
 }
 
 #ifdef CONFIG_SERIAL_8250_CONSOLE
arch/arm/mach-davinci/sleep.S +5 -1
index fb5e72b..5f1e045 100644
@@ -217,7 +217,11 @@ ddr2clk_stop_done:
 ENDPROC(davinci_ddr_psc_config)
 
 CACHE_FLUSH:
-	.word	arm926_flush_kern_cache_all
+#ifdef CONFIG_CPU_V6
+	.word	v6_flush_kern_cache_all
+#else
+	.word   arm926_flush_kern_cache_all
+#endif
 
 ENTRY(davinci_cpu_suspend_sz)
 	.word	. - davinci_cpu_suspend
arch/arm/mach-dove/common.c +1 -1
index 5ed51b8..cf7e598 100644
@@ -160,7 +160,7 @@ void __init dove_spi0_init(void)
 
 void __init dove_spi1_init(void)
 {
-	orion_spi_init(DOVE_SPI1_PHYS_BASE, get_tclk());
+	orion_spi_1_init(DOVE_SPI1_PHYS_BASE, get_tclk());
 }
 
 /*****************************************************************************
arch/arm/mach-integrator/integrator_ap.c +3 -3
index 2fbbdd5..fcf0ae9 100644
@@ -337,15 +337,15 @@ static unsigned long timer_reload;
 static void integrator_clocksource_init(u32 khz)
 {
 	void __iomem *base = (void __iomem *)TIMER2_VA_BASE;
-	u32 ctrl = TIMER_CTRL_ENABLE;
+	u32 ctrl = TIMER_CTRL_ENABLE | TIMER_CTRL_PERIODIC;
 
 	if (khz >= 1500) {
 		khz /= 16;
-		ctrl = TIMER_CTRL_DIV16;
+		ctrl |= TIMER_CTRL_DIV16;
 	}
 
-	writel(ctrl, base + TIMER_CTRL);
 	writel(0xffff, base + TIMER_LOAD);
+	writel(ctrl, base + TIMER_CTRL);
 
 	clocksource_mmio_init(base + TIMER_VALUE, "timer2",
 		khz * 1000, 200, 16, clocksource_mmio_readl_down);
arch/arm/mm/cache-v7.S +20 -0
index d32f02b..3593119 100644
@@ -174,6 +174,10 @@ ENTRY(v7_coherent_user_range)
 	dcache_line_size r2, r3
 	sub	r3, r2, #1
 	bic	r12, r0, r3
+#ifdef CONFIG_ARM_ERRATA_764369
+	ALT_SMP(W(dsb))
+	ALT_UP(W(nop))
+#endif
 1:
  USER(	mcr	p15, 0, r12, c7, c11, 1	)	@ clean D line to the point of unification
 	add	r12, r12, r2
@@ -223,6 +227,10 @@ ENTRY(v7_flush_kern_dcache_area)
 	add	r1, r0, r1
 	sub	r3, r2, #1
 	bic	r0, r0, r3
+#ifdef CONFIG_ARM_ERRATA_764369
+	ALT_SMP(W(dsb))
+	ALT_UP(W(nop))
+#endif
 1:
 	mcr	p15, 0, r0, c7, c14, 1		@ clean & invalidate D line / unified line
 	add	r0, r0, r2
@@ -247,6 +255,10 @@ v7_dma_inv_range:
 	sub	r3, r2, #1
 	tst	r0, r3
 	bic	r0, r0, r3
+#ifdef CONFIG_ARM_ERRATA_764369
+	ALT_SMP(W(dsb))
+	ALT_UP(W(nop))
+#endif
 	mcrne	p15, 0, r0, c7, c14, 1		@ clean & invalidate D / U line
 
 	tst	r1, r3
@@ -270,6 +282,10 @@ v7_dma_clean_range:
 	dcache_line_size r2, r3
 	sub	r3, r2, #1
 	bic	r0, r0, r3
+#ifdef CONFIG_ARM_ERRATA_764369
+	ALT_SMP(W(dsb))
+	ALT_UP(W(nop))
+#endif
 1:
 	mcr	p15, 0, r0, c7, c10, 1		@ clean D / U line
 	add	r0, r0, r2
@@ -288,6 +304,10 @@ ENTRY(v7_dma_flush_range)
 	dcache_line_size r2, r3
 	sub	r3, r2, #1
 	bic	r0, r0, r3
+#ifdef CONFIG_ARM_ERRATA_764369
+	ALT_SMP(W(dsb))
+	ALT_UP(W(nop))
+#endif
 1:
 	mcr	p15, 0, r0, c7, c14, 1		@ clean & invalidate D / U line
 	add	r0, r0, r2
arch/arm/mm/dma-mapping.c +2 -0
index 82a093c..f96d2c7 100644
@@ -322,6 +322,8 @@ __dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp,
 
 	if (addr)
 		*handle = pfn_to_dma(dev, page_to_pfn(page));
+	else
+		__dma_free_buffer(page, size);
 
 	return addr;
 }
arch/arm/plat-mxc/include/mach/iomux-v3.h +1 -1
index 82620af..ebbce33 100644
@@ -66,7 +66,6 @@ typedef u64 iomux_v3_cfg_t;
 #define MUX_MODE_MASK		((iomux_v3_cfg_t)0x1f << MUX_MODE_SHIFT)
 #define MUX_PAD_CTRL_SHIFT	41
 #define MUX_PAD_CTRL_MASK	((iomux_v3_cfg_t)0x1ffff << MUX_PAD_CTRL_SHIFT)
-#define NO_PAD_CTRL		((iomux_v3_cfg_t)1 << (MUX_PAD_CTRL_SHIFT + 16))
 #define MUX_SEL_INPUT_SHIFT	58
 #define MUX_SEL_INPUT_MASK	((iomux_v3_cfg_t)0xf << MUX_SEL_INPUT_SHIFT)
 
@@ -85,6 +84,7 @@ typedef u64 iomux_v3_cfg_t;
  * Use to set PAD control
  */
 
+#define NO_PAD_CTRL			(1 << 16)
 #define PAD_CTL_DVS			(1 << 13)
 #define PAD_CTL_HYS			(1 << 8)
 
arch/powerpc/sysdev/fsl_rio.c +3 -2
index b3fd081..cdd765b 100644
@@ -54,6 +54,7 @@
 #define ODSR_CLEAR		0x1c00
 #define LTLEECSR_ENABLE_ALL	0xFFC000FC
 #define ESCSR_CLEAR		0x07120204
+#define IECSR_CLEAR		0x80000000
 
 #define RIO_PORT1_EDCSR		0x0640
 #define RIO_PORT2_EDCSR		0x0680
@@ -1089,11 +1090,11 @@ static void port_error_handler(struct rio_mport *port, int offset)
 
 	if (offset == 0) {
 		out_be32((u32 *)(rio_regs_win + RIO_PORT1_EDCSR), 0);
-		out_be32((u32 *)(rio_regs_win + RIO_PORT1_IECSR), 0);
+		out_be32((u32 *)(rio_regs_win + RIO_PORT1_IECSR), IECSR_CLEAR);
 		out_be32((u32 *)(rio_regs_win + RIO_ESCSR), ESCSR_CLEAR);
 	} else {
 		out_be32((u32 *)(rio_regs_win + RIO_PORT2_EDCSR), 0);
-		out_be32((u32 *)(rio_regs_win + RIO_PORT2_IECSR), 0);
+		out_be32((u32 *)(rio_regs_win + RIO_PORT2_IECSR), IECSR_CLEAR);
 		out_be32((u32 *)(rio_regs_win + RIO_PORT2_ESCSR), ESCSR_CLEAR);
 	}
 }
arch/sparc/Kconfig +1 -0
index 253986b..2e79419 100644
@@ -53,6 +53,7 @@ config SPARC64
 	select HAVE_PERF_EVENTS
 	select PERF_USE_VMALLOC
 	select IRQ_PREFLOW_FASTEOI
+	select HAVE_C_RECORDMCOUNT
 
 config ARCH_DEFCONFIG
 	string
arch/sparc/include/asm/sigcontext.h +14 -0
index a1607d1..69914d7 100644
@@ -45,6 +45,19 @@ typedef struct {
 	int			si_mask;
 } __siginfo32_t;
 
+#define __SIGC_MAXWIN	7
+
+typedef struct {
+	unsigned long locals[8];
+	unsigned long ins[8];
+} __siginfo_reg_window;
+
+typedef struct {
+	int			wsaved;
+	__siginfo_reg_window	reg_window[__SIGC_MAXWIN];
+	unsigned long		rwbuf_stkptrs[__SIGC_MAXWIN];
+} __siginfo_rwin_t;
+
 #ifdef CONFIG_SPARC64
 typedef struct {
 	unsigned   int si_float_regs [64];
@@ -73,6 +86,7 @@ struct sigcontext {
 		unsigned long	ss_size;
 	}			sigc_stack;
 	unsigned long		sigc_mask;
+	__siginfo_rwin_t *	sigc_rwin_save;
 };
 
 #else
arch/sparc/include/asm/spinlock_32.h +9 -2
index 5f5b8bf..bcc98fc 100644
@@ -131,6 +131,15 @@ static inline void arch_write_lock(arch_rwlock_t *rw)
 	*(volatile __u32 *)&lp->lock = ~0U;
 }
 
+static void inline arch_write_unlock(arch_rwlock_t *lock)
+{
+	__asm__ __volatile__(
+"	st		%%g0, [%0]"
+	: /* no outputs */
+	: "r" (lock)
+	: "memory");
+}
+
 static inline int arch_write_trylock(arch_rwlock_t *rw)
 {
 	unsigned int val;
@@ -175,8 +184,6 @@ static inline int __arch_read_trylock(arch_rwlock_t *rw)
 	res; \
 })
 
-#define arch_write_unlock(rw)	do { (rw)->lock = 0; } while(0)
-
 #define arch_spin_lock_flags(lock, flags) arch_spin_lock(lock)
 #define arch_read_lock_flags(rw, flags)   arch_read_lock(rw)
 #define arch_write_lock_flags(rw, flags)  arch_write_lock(rw)
arch/sparc/include/asm/spinlock_64.h +0 -6
index 073936a..9689176 100644
@@ -210,14 +210,8 @@ static int inline arch_write_trylock(arch_rwlock_t *lock)
 	return result;
 }
 
-#define arch_read_lock(p)	arch_read_lock(p)
 #define arch_read_lock_flags(p, f) arch_read_lock(p)
-#define arch_read_trylock(p)	arch_read_trylock(p)
-#define arch_read_unlock(p)	arch_read_unlock(p)
-#define arch_write_lock(p)	arch_write_lock(p)
 #define arch_write_lock_flags(p, f) arch_write_lock(p)
-#define arch_write_unlock(p)	arch_write_unlock(p)
-#define arch_write_trylock(p)	arch_write_trylock(p)
 
 #define arch_read_can_lock(rw)		(!((rw)->lock & 0x80000000UL))
 #define arch_write_can_lock(rw)	(!(rw)->lock)
arch/sparc/kernel/Makefile +1 -0
index b90b4a1..cb85458 100644
@@ -32,6 +32,7 @@ obj-$(CONFIG_SPARC32)   += sun4m_irq.o sun4c_irq.o sun4d_irq.o
 
 obj-y                   += process_$(BITS).o
 obj-y                   += signal_$(BITS).o
+obj-y                   += sigutil_$(BITS).o
 obj-$(CONFIG_SPARC32)   += ioport.o
 obj-y                   += setup_$(BITS).o
 obj-y                   += idprom.o
arch/sparc/kernel/irq.h +1 -1
index 100b9c2..4285112 100644
@@ -88,7 +88,7 @@ BTFIXUPDEF_CALL(void, set_irq_udt, int)
 #define set_irq_udt(cpu) BTFIXUP_CALL(set_irq_udt)(cpu)
 
 /* All SUN4D IPIs are sent on this IRQ, may be shared with hard IRQs */
-#define SUN4D_IPI_IRQ 14
+#define SUN4D_IPI_IRQ 13
 
 extern void sun4d_ipi_interrupt(void);
 
arch/sparc/kernel/pcic.c +2 -2
index 948601a..6418ba6 100644
@@ -352,8 +352,8 @@ int __init pcic_probe(void)
 	strcpy(pbm->prom_name, namebuf);
 
 	{
-		extern volatile int t_nmi[1];
-		extern int pcic_nmi_trap_patch[1];
+		extern volatile int t_nmi[4];
+		extern int pcic_nmi_trap_patch[4];
 
 		t_nmi[0] = pcic_nmi_trap_patch[0];
 		t_nmi[1] = pcic_nmi_trap_patch[1];
arch/sparc/kernel/setup_64.c +8 -2
index 3e9daea..3c5bb78 100644
@@ -440,8 +440,14 @@ static void __init init_sparc64_elf_hwcap(void)
 			cap |= AV_SPARC_VIS;
 		if (tlb_type == cheetah || tlb_type == cheetah_plus)
 			cap |= AV_SPARC_VIS | AV_SPARC_VIS2;
-		if (tlb_type == cheetah_plus)
-			cap |= AV_SPARC_POPC;
+		if (tlb_type == cheetah_plus) {
+			unsigned long impl, ver;
+
+			__asm__ __volatile__("rdpr %%ver, %0" : "=r" (ver));
+			impl = ((ver >> 32) & 0xffff);
+			if (impl == PANTHER_IMPL)
+				cap |= AV_SPARC_POPC;
+		}
 		if (tlb_type == hypervisor) {
 			if (sun4v_chip_type == SUN4V_CHIP_NIAGARA1)
 				cap |= AV_SPARC_ASI_BLK_INIT;
arch/sparc/kernel/signal32.c +105 -79

328 lines not on this page · raw message

arch/sparc/kernel/signal_32.c +79 -93

291 lines not on this page · raw message

arch/sparc/kernel/signal_64.c +47 -61

185 lines not on this page · raw message

arch/sparc/kernel/sigutil.h new file +9 -0
new file mode 100644
index 0000000..d223aa4
@@ -0,0 +1,9 @@
+#ifndef _SIGUTIL_H
+#define _SIGUTIL_H
+
+int save_fpu_state(struct pt_regs *regs, __siginfo_fpu_t __user *fpu);
+int restore_fpu_state(struct pt_regs *regs, __siginfo_fpu_t __user *fpu);
+int save_rwin_state(int wsaved, __siginfo_rwin_t __user *rwin);
+int restore_rwin_state(__siginfo_rwin_t __user *rp);
+
+#endif /* _SIGUTIL_H */
arch/sparc/kernel/sigutil_32.c new file +120 -0

120 lines not on this page · raw message

arch/sparc/kernel/sigutil_64.c new file +93 -0

93 lines not on this page · raw message

arch/x86/kernel/amd_iommu.c +10 -8
index 7c3a95e..d3d9d50 100644
@@ -531,7 +531,9 @@ static void build_inv_all(struct iommu_cmd *cmd)
  * Writes the command to the IOMMUs command buffer and informs the
  * hardware about the new command.
  */
-static int iommu_queue_command(struct amd_iommu *iommu, struct iommu_cmd *cmd)
+static int iommu_queue_command_sync(struct amd_iommu *iommu,
+				    struct iommu_cmd *cmd,
+				    bool sync)
 {
 	u32 left, tail, head, next_tail;
 	unsigned long flags;
@@ -565,13 +567,18 @@ again:
 	copy_cmd_to_buffer(iommu, cmd, tail);
 
 	/* We need to sync now to make sure all commands are processed */
-	iommu->need_sync = true;
+	iommu->need_sync = sync;
 
 	spin_unlock_irqrestore(&iommu->lock, flags);
 
 	return 0;
 }
 
+static int iommu_queue_command(struct amd_iommu *iommu, struct iommu_cmd *cmd)
+{
+	return iommu_queue_command_sync(iommu, cmd, true);
+}
+
 /*
  * This function queues a completion wait command into the command
  * buffer of an IOMMU
@@ -587,7 +594,7 @@ static int iommu_completion_wait(struct amd_iommu *iommu)
 
 	build_completion_wait(&cmd, (u64)&sem);
 
-	ret = iommu_queue_command(iommu, &cmd);
+	ret = iommu_queue_command_sync(iommu, &cmd, false);
 	if (ret)
 		return ret;
 
@@ -773,14 +780,9 @@ static void domain_flush_complete(struct protection_domain *domain)
 static void domain_flush_devices(struct protection_domain *domain)
 {
 	struct iommu_dev_data *dev_data;
-	unsigned long flags;
-
-	spin_lock_irqsave(&domain->lock, flags);
 
 	list_for_each_entry(dev_data, &domain->dev_list, list)
 		device_flush_dte(dev_data->dev);
-
-	spin_unlock_irqrestore(&domain->lock, flags);
 }
 
 /****************************************************************************
arch/x86/kernel/cpu/perf_event.c +3 -0
index 3a0338b..bf6d692 100644
@@ -1856,6 +1856,9 @@ perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs)
 
 	perf_callchain_store(entry, regs->ip);
 
+	if (!current->mm)
+		return;
+
 	if (perf_callchain_user32(regs, entry))
 		return;
 
arch/x86/kernel/cpu/perf_event_intel.c +1 -0
index 41178c8..dd208a8 100644
@@ -1495,6 +1495,7 @@ static __init int intel_pmu_init(void)
 		break;
 
 	case 42: /* SandyBridge */
+	case 45: /* SandyBridge, "Romely-EP" */
 		memcpy(hw_cache_event_ids, snb_hw_cache_event_ids,
 		       sizeof(hw_cache_event_ids));
 
arch/x86/xen/setup.c +21 -0
index 60aeeb5..acea42e 100644
@@ -185,6 +185,19 @@ static unsigned long __init xen_set_identity(const struct e820entry *list,
 					PFN_UP(start_pci), PFN_DOWN(last));
 	return identity;
 }
+
+static unsigned long __init xen_get_max_pages(void)
+{
+	unsigned long max_pages = MAX_DOMAIN_PAGES;
+	domid_t domid = DOMID_SELF;
+	int ret;
+
+	ret = HYPERVISOR_memory_op(XENMEM_maximum_reservation, &domid);
+	if (ret > 0)
+		max_pages = ret;
+	return min(max_pages, MAX_DOMAIN_PAGES);
+}
+
 /**
  * machine_specific_memory_setup - Hook for machine specific memory setup.
  **/
@@ -293,6 +306,14 @@ char * __init xen_memory_setup(void)
 
 	sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
 
+	extra_limit = xen_get_max_pages();
+	if (max_pfn + extra_pages > extra_limit) {
+		if (extra_limit > max_pfn)
+			extra_pages = extra_limit - max_pfn;
+		else
+			extra_pages = 0;
+	}
+
 	extra_pages += xen_return_unused_memory(xen_start_info->nr_pages, &e820);
 
 	/*
arch/x86/xen/smp.c +10 -0
index e79dbb9..d4fc6d4 100644
@@ -32,6 +32,7 @@
 #include <xen/page.h>
 #include <xen/events.h>
 
+#include <xen/hvc-console.h>
 #include "xen-ops.h"
 #include "mmu.h"
 
@@ -207,6 +208,15 @@ static void __init xen_smp_prepare_cpus(unsigned int max_cpus)
 	unsigned cpu;
 	unsigned int i;
 
+	if (skip_ioapic_setup) {
+		char *m = (max_cpus == 0) ?
+			"The nosmp parameter is incompatible with Xen; " \
+			"use Xen dom0_max_vcpus=1 parameter" :
+			"The noapic parameter is incompatible with Xen";
+
+		xen_raw_printk(m);
+		panic(m);
+	}
 	xen_init_lock_cpu(0);
 
 	smp_store_cpu_info(0);
arch/x86/xen/xen-asm_32.S +5 -3
index 22a2093..b040b0e 100644
@@ -113,11 +113,13 @@ xen_iret_start_crit:
 
 	/*
 	 * If there's something pending, mask events again so we can
-	 * jump back into xen_hypervisor_callback
+	 * jump back into xen_hypervisor_callback. Otherwise do not
+	 * touch XEN_vcpu_info_mask.
 	 */
-	sete XEN_vcpu_info_mask(%eax)
+	jne 1f
+	movb $1, XEN_vcpu_info_mask(%eax)
 
-	popl %eax
+1:	popl %eax
 
 	/*
 	 * From this point on the registers are restored and the stack
block/blk-cgroup.c +16 -21
index bcaf16e..b596e54 100644
@@ -785,10 +785,10 @@ static int blkio_policy_parse_and_set(char *buf,
 {
 	char *s[4], *p, *major_s = NULL, *minor_s = NULL;
 	int ret;
-	unsigned long major, minor, temp;
+	unsigned long major, minor;
 	int i = 0;
 	dev_t dev;
-	u64 bps, iops;
+	u64 temp;
 
 	memset(s, 0, sizeof(s));
 
@@ -826,20 +826,23 @@ static int blkio_policy_parse_and_set(char *buf,
 
 	dev = MKDEV(major, minor);
 
-	ret = blkio_check_dev_num(dev);
+	ret = strict_strtoull(s[1], 10, &temp);
 	if (ret)
-		return ret;
+		return -EINVAL;
 
-	newpn->dev = dev;
+	/* For rule removal, do not check for device presence. */
+	if (temp) {
+		ret = blkio_check_dev_num(dev);
+		if (ret)
+			return ret;
+	}
 
-	if (s[1] == NULL)
-		return -EINVAL;
+	newpn->dev = dev;
 
 	switch (plid) {
 	case BLKIO_POLICY_PROP:
-		ret = strict_strtoul(s[1], 10, &temp);
-		if (ret || (temp < BLKIO_WEIGHT_MIN && temp > 0) ||
-			temp > BLKIO_WEIGHT_MAX)
+		if ((temp < BLKIO_WEIGHT_MIN && temp > 0) ||
+		     temp > BLKIO_WEIGHT_MAX)
 			return -EINVAL;
 
 		newpn->plid = plid;
@@ -850,26 +853,18 @@ static int blkio_policy_parse_and_set(char *buf,
 		switch(fileid) {
 		case BLKIO_THROTL_read_bps_device:
 		case BLKIO_THROTL_write_bps_device:
-			ret = strict_strtoull(s[1], 10, &bps);
-			if (ret)
-				return -EINVAL;
-
 			newpn->plid = plid;
 			newpn->fileid = fileid;
-			newpn->val.bps = bps;
+			newpn->val.bps = temp;
 			break;
 		case BLKIO_THROTL_read_iops_device:
 		case BLKIO_THROTL_write_iops_device:
-			ret = strict_strtoull(s[1], 10, &iops);
-			if (ret)
-				return -EINVAL;
-
-			if (iops > THROTL_IOPS_MAX)
+			if (temp > THROTL_IOPS_MAX)
 				return -EINVAL;
 
 			newpn->plid = plid;
 			newpn->fileid = fileid;
-			newpn->val.iops = (unsigned int)iops;
+			newpn->val.iops = (unsigned int)temp;
 			break;
 		}
 		break;
block/blk-core.c +6 -7
index 1d49e1c..847d04e 100644
@@ -348,9 +348,10 @@ void blk_put_queue(struct request_queue *q)
 EXPORT_SYMBOL(blk_put_queue);
 
 /*
- * Note: If a driver supplied the queue lock, it should not zap that lock
- * unexpectedly as some queue cleanup components like elevator_exit() and
- * blk_throtl_exit() need queue lock.
+ * Note: If a driver supplied the queue lock, it is disconnected
+ * by this function. The actual state of the lock doesn't matter
+ * here as the request_queue isn't accessible after this point
+ * (QUEUE_FLAG_DEAD is set) and no other requests will be queued.
  */
 void blk_cleanup_queue(struct request_queue *q)
 {
@@ -367,10 +368,8 @@ void blk_cleanup_queue(struct request_queue *q)
 	queue_flag_set_unlocked(QUEUE_FLAG_DEAD, q);
 	mutex_unlock(&q->sysfs_lock);
 
-	if (q->elevator)
-		elevator_exit(q->elevator);
-
-	blk_throtl_exit(q);
+	if (q->queue_lock != &q->__queue_lock)
+		q->queue_lock = &q->__queue_lock;
 
 	blk_put_queue(q);
 }
block/blk-sysfs.c +5 -0
index d935bd8..45c56d8 100644
@@ -472,6 +472,11 @@ static void blk_release_queue(struct kobject *kobj)
 
 	blk_sync_queue(q);
 
+	if (q->elevator)
+		elevator_exit(q->elevator);
+
+	blk_throtl_exit(q);
+
 	if (rl->rq_pool)
 		mempool_destroy(rl->rq_pool);
 
drivers/acpi/acpica/acconfig.h +1 -1
index bc533dd..f895a24 100644
@@ -121,7 +121,7 @@
 
 /* Maximum sleep allowed via Sleep() operator */
 
-#define ACPI_MAX_SLEEP                  20000	/* Two seconds */
+#define ACPI_MAX_SLEEP                  2000	/* Two seconds */
 
 /******************************************************************************
  *
drivers/acpi/acpica/aclocal.h +1 -0
index c7f743c..5552125 100644
@@ -357,6 +357,7 @@ struct acpi_predefined_data {
 	char *pathname;
 	const union acpi_predefined_info *predefined;
 	union acpi_operand_object *parent_package;
+	struct acpi_namespace_node *node;
 	u32 flags;
 	u8 node_flags;
 };
drivers/acpi/acpica/nspredef.c +1 -0
index 9fb03fa..dc00582 100644
@@ -212,6 +212,7 @@ acpi_ns_check_predefined_names(struct acpi_namespace_node *node,
 		goto cleanup;
 	}
 	data->predefined = predefined;
+	data->node = node;
 	data->node_flags = node->flags;
 	data->pathname = pathname;
 
drivers/acpi/acpica/nsrepair2.c +15 -0
index 973883b..024c4f2 100644
@@ -503,6 +503,21 @@ acpi_ns_repair_TSS(struct acpi_predefined_data *data,
 {
 	union acpi_operand_object *return_object = *return_object_ptr;
 	acpi_status status;
+	struct acpi_namespace_node *node;
+
+	/*
+	 * We can only sort the _TSS return package if there is no _PSS in the
+	 * same scope. This is because if _PSS is present, the ACPI specification
+	 * dictates that the _TSS Power Dissipation field is to be ignored, and
+	 * therefore some BIOSs leave garbage values in the _TSS Power field(s).
+	 * In this case, it is best to just return the _TSS package as-is.
+	 * (May, 2011)
+	 */
+	status =
+	    acpi_ns_get_node(data->node, "^_PSS", ACPI_NS_NO_UPSEARCH, &node);
+	if (ACPI_SUCCESS(status)) {
+		return (AE_OK);
+	}
 
 	status = acpi_ns_check_sorted_list(data, return_object, 5, 1,
 					   ACPI_SORT_DESCENDING,
drivers/ata/ahci.c +1 -0
index 71afe03..cab6960 100644
@@ -267,6 +267,7 @@ static const struct pci_device_id ahci_pci_tbl[] = {
 	{ PCI_VDEVICE(INTEL, 0x1e05), board_ahci }, /* Panther Point RAID */
 	{ PCI_VDEVICE(INTEL, 0x1e06), board_ahci }, /* Panther Point RAID */
 	{ PCI_VDEVICE(INTEL, 0x1e07), board_ahci }, /* Panther Point RAID */
+	{ PCI_VDEVICE(INTEL, 0x1e0e), board_ahci }, /* Panther Point RAID */
 
 	/* JMicron 360/1/3/5/6, match class to avoid IDE function */
 	{ PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
drivers/ata/pata_via.c +18 -0
index ac8d7d9..d6d4f57 100644
@@ -124,6 +124,17 @@ static const struct via_isa_bridge {
 	{ NULL }
 };
 
+static const struct dmi_system_id no_atapi_dma_dmi_table[] = {
+	{
+		.ident = "AVERATEC 3200",
+		.matches = {
+			DMI_MATCH(DMI_BOARD_VENDOR, "AVERATEC"),
+			DMI_MATCH(DMI_BOARD_NAME, "3200"),
+		},
+	},
+	{ }
+};
+
 struct via_port {
 	u8 cached_device;
 };
@@ -355,6 +366,13 @@ static unsigned long via_mode_filter(struct ata_device *dev, unsigned long mask)
 			mask &= ~ ATA_MASK_UDMA;
 		}
 	}
+
+	if (dev->class == ATA_DEV_ATAPI &&
+	    dmi_check_system(no_atapi_dma_dmi_table)) {
+		ata_dev_printk(dev, KERN_WARNING, "controller locks up on ATAPI DMA, forcing PIO\n");
+		mask &= ATA_MASK_PIO;
+	}
+
 	return mask;
 }
 
drivers/base/firmware_class.c +6 -5
index bbb03e6..06ed6b4 100644
@@ -521,11 +521,6 @@ static int _request_firmware(const struct firmware **firmware_p,
 	if (!firmware_p)
 		return -EINVAL;
 
-	if (WARN_ON(usermodehelper_is_disabled())) {
-		dev_err(device, "firmware: %s will not be loaded\n", name);
-		return -EBUSY;
-	}
-
 	*firmware_p = firmware = kzalloc(sizeof(*firmware), GFP_KERNEL);
 	if (!firmware) {
 		dev_err(device, "%s: kmalloc(struct firmware) failed\n",
@@ -539,6 +534,12 @@ static int _request_firmware(const struct firmware **firmware_p,
 		return 0;
 	}
 
+	if (WARN_ON(usermodehelper_is_disabled())) {
+		dev_err(device, "firmware: %s will not be loaded\n", name);
+		retval = -EBUSY;
+		goto out;
+	}
+
 	if (uevent)
 		dev_dbg(device, "firmware: requesting %s\n", name);
 
drivers/block/floppy.c +4 -4
index 98de8f4..9955a53 100644
@@ -4250,7 +4250,7 @@ static int __init floppy_init(void)
 	use_virtual_dma = can_use_virtual_dma & 1;
 	fdc_state[0].address = FDC1;
 	if (fdc_state[0].address == -1) {
-		del_timer(&fd_timeout);
+		del_timer_sync(&fd_timeout);
 		err = -ENODEV;
 		goto out_unreg_region;
 	}
@@ -4261,7 +4261,7 @@ static int __init floppy_init(void)
 	fdc = 0;		/* reset fdc in case of unexpected interrupt */
 	err = floppy_grab_irq_and_dma();
 	if (err) {
-		del_timer(&fd_timeout);
+		del_timer_sync(&fd_timeout);
 		err = -EBUSY;
 		goto out_unreg_region;
 	}
@@ -4318,7 +4318,7 @@ static int __init floppy_init(void)
 		user_reset_fdc(-1, FD_RESET_ALWAYS, false);
 	}
 	fdc = 0;
-	del_timer(&fd_timeout);
+	del_timer_sync(&fd_timeout);
 	current_drive = 0;
 	initialized = true;
 	if (have_no_fdc) {
@@ -4368,7 +4368,7 @@ out_unreg_blkdev:
 	unregister_blkdev(FLOPPY_MAJOR, "fd");
 out_put_disk:
 	while (dr--) {
-		del_timer(&motor_off_timer[dr]);
+		del_timer_sync(&motor_off_timer[dr]);
 		if (disks[dr]->queue)
 			blk_cleanup_queue(disks[dr]->queue);
 		put_disk(disks[dr]);
drivers/char/tpm/tpm.c +8 -1
index 7beb0e2..b85ee76 100644
@@ -383,6 +383,9 @@ static ssize_t tpm_transmit(struct tpm_chip *chip, const char *buf,
 	u32 count, ordinal;
 	unsigned long stop;
 
+	if (bufsiz > TPM_BUFSIZE)
+		bufsiz = TPM_BUFSIZE;
+
 	count = be32_to_cpu(*((__be32 *) (buf + 2)));
 	ordinal = be32_to_cpu(*((__be32 *) (buf + 6)));
 	if (count == 0)
@@ -1052,6 +1055,7 @@ ssize_t tpm_read(struct file *file, char __user *buf,
 {
 	struct tpm_chip *chip = file->private_data;
 	ssize_t ret_size;
+	int rc;
 
 	del_singleshot_timer_sync(&chip->user_read_timer);
 	flush_work_sync(&chip->work);
@@ -1062,8 +1066,11 @@ ssize_t tpm_read(struct file *file, char __user *buf,
 			ret_size = size;
 
 		mutex_lock(&chip->buffer_mutex);
-		if (copy_to_user(buf, chip->data_buffer, ret_size))
+		rc = copy_to_user(buf, chip->data_buffer, ret_size);
+		memset(chip->data_buffer, 0, ret_size);
+		if (rc)
 			ret_size = -EFAULT;
+
 		mutex_unlock(&chip->buffer_mutex);
 	}
 
drivers/cpufreq/pcc-cpufreq.c +3 -0
index 7b0603e..cdc02ac 100644
@@ -261,6 +261,9 @@ static int pcc_get_offset(int cpu)
 	pr = per_cpu(processors, cpu);
 	pcc_cpu_data = per_cpu_ptr(pcc_cpu_info, cpu);
 
+	if (!pr)
+		return -ENODEV;
+
 	status = acpi_evaluate_object(pr->handle, "PCCP", NULL, &buffer);
 	if (ACPI_FAILURE(status))
 		return -ENODEV;
drivers/firewire/ohci.c +3 -0
index ebb8973..ee76c8e 100644
@@ -291,6 +291,9 @@ static const struct {
 	{PCI_VENDOR_ID_NEC, PCI_ANY_ID, PCI_ANY_ID,
 		QUIRK_CYCLE_TIMER},
 
+	{PCI_VENDOR_ID_O2, PCI_ANY_ID, PCI_ANY_ID,
+		QUIRK_NO_MSI},
+
 	{PCI_VENDOR_ID_RICOH, PCI_ANY_ID, PCI_ANY_ID,
 		QUIRK_CYCLE_TIMER},
 
drivers/gpu/drm/nouveau/nouveau_sgdma.c +4 -1
index 82fad91..ca6028f 100644
@@ -37,8 +37,11 @@ nouveau_sgdma_populate(struct ttm_backend *be, unsigned long num_pages,
 		return -ENOMEM;
 
 	nvbe->ttm_alloced = kmalloc(sizeof(bool) * num_pages, GFP_KERNEL);
-	if (!nvbe->ttm_alloced)
+	if (!nvbe->ttm_alloced) {
+		kfree(nvbe->pages);
+		nvbe->pages = NULL;
 		return -ENOMEM;
+	}
 
 	nvbe->nr_pages = 0;
 	while (num_pages--) {
drivers/gpu/drm/radeon/evergreen.c +36 -6

89 lines not on this page · raw message

drivers/gpu/drm/radeon/ni.c +10 -6
index 559dbd4..0b132a3 100644
@@ -39,6 +39,7 @@ extern int evergreen_mc_wait_for_idle(struct radeon_device *rdev);
 extern void evergreen_mc_program(struct radeon_device *rdev);
 extern void evergreen_irq_suspend(struct radeon_device *rdev);
 extern int evergreen_mc_init(struct radeon_device *rdev);
+extern void evergreen_fix_pci_max_read_req_size(struct radeon_device *rdev);
 
 #define EVERGREEN_PFP_UCODE_SIZE 1120
 #define EVERGREEN_PM4_UCODE_SIZE 1376
@@ -669,6 +670,8 @@ static void cayman_gpu_init(struct radeon_device *rdev)
 
 	WREG32(GRBM_CNTL, GRBM_READ_TIMEOUT(0xff));
 
+	evergreen_fix_pci_max_read_req_size(rdev);
+
 	mc_shared_chmap = RREG32(MC_SHARED_CHMAP);
 	mc_arb_ramcfg = RREG32(MC_ARB_RAMCFG);
 
@@ -1158,6 +1161,7 @@ int cayman_cp_resume(struct radeon_device *rdev)
 				 SOFT_RESET_PA |
 				 SOFT_RESET_SH |
 				 SOFT_RESET_VGT |
+				 SOFT_RESET_SPI |
 				 SOFT_RESET_SX));
 	RREG32(GRBM_SOFT_RESET);
 	mdelay(15);
@@ -1182,7 +1186,8 @@ int cayman_cp_resume(struct radeon_device *rdev)
 
 	/* Initialize the ring buffer's read and write pointers */
 	WREG32(CP_RB0_CNTL, tmp | RB_RPTR_WR_ENA);
-	WREG32(CP_RB0_WPTR, 0);
+	rdev->cp.wptr = 0;
+	WREG32(CP_RB0_WPTR, rdev->cp.wptr);
 
 	/* set the wb address wether it's enabled or not */
 	WREG32(CP_RB0_RPTR_ADDR, (rdev->wb.gpu_addr + RADEON_WB_CP_RPTR_OFFSET) & 0xFFFFFFFC);
@@ -1202,7 +1207,6 @@ int cayman_cp_resume(struct radeon_device *rdev)
 	WREG32(CP_RB0_BASE, rdev->cp.gpu_addr >> 8);
 
 	rdev->cp.rptr = RREG32(CP_RB0_RPTR);
-	rdev->cp.wptr = RREG32(CP_RB0_WPTR);
 
 	/* ring1  - compute only */
 	/* Set ring buffer size */
@@ -1215,7 +1219,8 @@ int cayman_cp_resume(struct radeon_device *rdev)
 
 	/* Initialize the ring buffer's read and write pointers */
 	WREG32(CP_RB1_CNTL, tmp | RB_RPTR_WR_ENA);
-	WREG32(CP_RB1_WPTR, 0);
+	rdev->cp1.wptr = 0;
+	WREG32(CP_RB1_WPTR, rdev->cp1.wptr);
 
 	/* set the wb address wether it's enabled or not */
 	WREG32(CP_RB1_RPTR_ADDR, (rdev->wb.gpu_addr + RADEON_WB_CP1_RPTR_OFFSET) & 0xFFFFFFFC);
@@ -1227,7 +1232,6 @@ int cayman_cp_resume(struct radeon_device *rdev)
 	WREG32(CP_RB1_BASE, rdev->cp1.gpu_addr >> 8);
 
 	rdev->cp1.rptr = RREG32(CP_RB1_RPTR);
-	rdev->cp1.wptr = RREG32(CP_RB1_WPTR);
 
 	/* ring2 - compute only */
 	/* Set ring buffer size */
@@ -1240,7 +1244,8 @@ int cayman_cp_resume(struct radeon_device *rdev)
 
 	/* Initialize the ring buffer's read and write pointers */
 	WREG32(CP_RB2_CNTL, tmp | RB_RPTR_WR_ENA);
-	WREG32(CP_RB2_WPTR, 0);
+	rdev->cp2.wptr = 0;
+	WREG32(CP_RB2_WPTR, rdev->cp2.wptr);
 
 	/* set the wb address wether it's enabled or not */
 	WREG32(CP_RB2_RPTR_ADDR, (rdev->wb.gpu_addr + RADEON_WB_CP2_RPTR_OFFSET) & 0xFFFFFFFC);
@@ -1252,7 +1257,6 @@ int cayman_cp_resume(struct radeon_device *rdev)
 	WREG32(CP_RB2_BASE, rdev->cp2.gpu_addr >> 8);
 
 	rdev->cp2.rptr = RREG32(CP_RB2_RPTR);
-	rdev->cp2.wptr = RREG32(CP_RB2_WPTR);
 
 	/* start the rings */
 	cayman_cp_start(rdev);
drivers/gpu/drm/radeon/r100.c +8 -10
index f2204cb..830e1f1 100644
@@ -721,11 +721,11 @@ void r100_fence_ring_emit(struct radeon_device *rdev,
 int r100_copy_blit(struct radeon_device *rdev,
 		   uint64_t src_offset,
 		   uint64_t dst_offset,
-		   unsigned num_pages,
+		   unsigned num_gpu_pages,
 		   struct radeon_fence *fence)
 {
 	uint32_t cur_pages;
-	uint32_t stride_bytes = PAGE_SIZE;
+	uint32_t stride_bytes = RADEON_GPU_PAGE_SIZE;
 	uint32_t pitch;
 	uint32_t stride_pixels;
 	unsigned ndw;
@@ -737,7 +737,7 @@ int r100_copy_blit(struct radeon_device *rdev,
 	/* radeon pitch is /64 */
 	pitch = stride_bytes / 64;
 	stride_pixels = stride_bytes / 4;
-	num_loops = DIV_ROUND_UP(num_pages, 8191);
+	num_loops = DIV_ROUND_UP(num_gpu_pages, 8191);
 
 	/* Ask for enough room for blit + flush + fence */
 	ndw = 64 + (10 * num_loops);
@@ -746,12 +746,12 @@ int r100_copy_blit(struct radeon_device *rdev,
 		DRM_ERROR("radeon: moving bo (%d) asking for %u dw.\n", r, ndw);
 		return -EINVAL;
 	}
-	while (num_pages > 0) {
-		cur_pages = num_pages;
+	while (num_gpu_pages > 0) {
+		cur_pages = num_gpu_pages;
 		if (cur_pages > 8191) {
 			cur_pages = 8191;
 		}
-		num_pages -= cur_pages;
+		num_gpu_pages -= cur_pages;
 
 		/* pages are in Y direction - height
 		   page width in X direction - width */
@@ -990,7 +990,8 @@ int r100_cp_init(struct radeon_device *rdev, unsigned ring_size)
 	/* Force read & write ptr to 0 */
 	WREG32(RADEON_CP_RB_CNTL, tmp | RADEON_RB_RPTR_WR_ENA | RADEON_RB_NO_UPDATE);
 	WREG32(RADEON_CP_RB_RPTR_WR, 0);
-	WREG32(RADEON_CP_RB_WPTR, 0);
+	rdev->cp.wptr = 0;
+	WREG32(RADEON_CP_RB_WPTR, rdev->cp.wptr);
 
 	/* set the wb address whether it's enabled or not */
 	WREG32(R_00070C_CP_RB_RPTR_ADDR,
@@ -1007,9 +1008,6 @@ int r100_cp_init(struct radeon_device *rdev, unsigned ring_size)
 	WREG32(RADEON_CP_RB_CNTL, tmp);
 	udelay(10);
 	rdev->cp.rptr = RREG32(RADEON_CP_RB_RPTR);
-	rdev->cp.wptr = RREG32(RADEON_CP_RB_WPTR);
-	/* protect against crazy HW on resume */
-	rdev->cp.wptr &= rdev->cp.ptr_mask;
 	/* Set cp mode to bus mastering & enable cp*/
 	WREG32(RADEON_CP_CSQ_MODE,
 	       REG_SET(RADEON_INDIRECT2_START, indirect2_start) |
drivers/gpu/drm/radeon/r200.c +2 -2
index f240583..a1f3ba0 100644
@@ -84,7 +84,7 @@ static int r200_get_vtx_size_0(uint32_t vtx_fmt_0)
 int r200_copy_dma(struct radeon_device *rdev,
 		  uint64_t src_offset,
 		  uint64_t dst_offset,
-		  unsigned num_pages,
+		  unsigned num_gpu_pages,
 		  struct radeon_fence *fence)
 {
 	uint32_t size;
@@ -93,7 +93,7 @@ int r200_copy_dma(struct radeon_device *rdev,
 	int r = 0;
 
 	/* radeon pitch is /64 */
-	size = num_pages << PAGE_SHIFT;
+	size = num_gpu_pages << RADEON_GPU_PAGE_SHIFT;
 	num_loops = DIV_ROUND_UP(size, 0x1FFFFF);
 	r = radeon_ring_lock(rdev, num_loops * 4 + 64);
 	if (r) {
drivers/gpu/drm/radeon/r600.c +8 -6
index bc54b26..1dea9d6 100644
@@ -2208,7 +2208,8 @@ int r600_cp_resume(struct radeon_device *rdev)
 	/* Initialize the ring buffer's read and write pointers */
 	WREG32(CP_RB_CNTL, tmp | RB_RPTR_WR_ENA);
 	WREG32(CP_RB_RPTR_WR, 0);
-	WREG32(CP_RB_WPTR, 0);
+	rdev->cp.wptr = 0;
+	WREG32(CP_RB_WPTR, rdev->cp.wptr);
 
 	/* set the wb address whether it's enabled or not */
 	WREG32(CP_RB_RPTR_ADDR,
@@ -2233,7 +2234,6 @@ int r600_cp_resume(struct radeon_device *rdev)
 	WREG32(CP_DEBUG, (1 << 27) | (1 << 28));
 
 	rdev->cp.rptr = RREG32(CP_RB_RPTR);
-	rdev->cp.wptr = RREG32(CP_RB_WPTR);
 
 	r600_cp_start(rdev);
 	rdev->cp.ready = true;
@@ -2355,21 +2355,23 @@ void r600_fence_ring_emit(struct radeon_device *rdev,
 }
 
 int r600_copy_blit(struct radeon_device *rdev,
-		   uint64_t src_offset, uint64_t dst_offset,
-		   unsigned num_pages, struct radeon_fence *fence)
+		   uint64_t src_offset,
+		   uint64_t dst_offset,
+		   unsigned num_gpu_pages,
+		   struct radeon_fence *fence)
 {
 	int r;
 
 	mutex_lock(&rdev->r600_blit.mutex);
 	rdev->r600_blit.vb_ib = NULL;
-	r = r600_blit_prepare_copy(rdev, num_pages * RADEON_GPU_PAGE_SIZE);
+	r = r600_blit_prepare_copy(rdev, num_gpu_pages * RADEON_GPU_PAGE_SIZE);
 	if (r) {
 		if (rdev->r600_blit.vb_ib)
 			radeon_ib_free(rdev, &rdev->r600_blit.vb_ib);
 		mutex_unlock(&rdev->r600_blit.mutex);
 		return r;
 	}
-	r600_kms_blit_copy(rdev, src_offset, dst_offset, num_pages * RADEON_GPU_PAGE_SIZE);
+	r600_kms_blit_copy(rdev, src_offset, dst_offset, num_gpu_pages * RADEON_GPU_PAGE_SIZE);
 	r600_blit_done_copy(rdev, fence);
 	mutex_unlock(&rdev->r600_blit.mutex);
 	return 0;
drivers/gpu/drm/radeon/radeon.h +4 -3
index ef0e0e0..0bb4ddf 100644
@@ -322,6 +322,7 @@ union radeon_gart_table {
 
 #define RADEON_GPU_PAGE_SIZE 4096
 #define RADEON_GPU_PAGE_MASK (RADEON_GPU_PAGE_SIZE - 1)
+#define RADEON_GPU_PAGE_SHIFT 12
 
 struct radeon_gart {
 	dma_addr_t			table_addr;
@@ -914,17 +915,17 @@ struct radeon_asic {
 	int (*copy_blit)(struct radeon_device *rdev,
 			 uint64_t src_offset,
 			 uint64_t dst_offset,
-			 unsigned num_pages,
+			 unsigned num_gpu_pages,
 			 struct radeon_fence *fence);
 	int (*copy_dma)(struct radeon_device *rdev,
 			uint64_t src_offset,
 			uint64_t dst_offset,
-			unsigned num_pages,
+			unsigned num_gpu_pages,
 			struct radeon_fence *fence);
 	int (*copy)(struct radeon_device *rdev,
 		    uint64_t src_offset,
 		    uint64_t dst_offset,
-		    unsigned num_pages,
+		    unsigned num_gpu_pages,
 		    struct radeon_fence *fence);
 	uint32_t (*get_engine_clock)(struct radeon_device *rdev);
 	void (*set_engine_clock)(struct radeon_device *rdev, uint32_t eng_clock);
drivers/gpu/drm/radeon/radeon_asic.h +4 -4
index 3d7a0d7..3dedaa0 100644
@@ -75,7 +75,7 @@ uint32_t r100_pll_rreg(struct radeon_device *rdev, uint32_t reg);
 int r100_copy_blit(struct radeon_device *rdev,
 		   uint64_t src_offset,
 		   uint64_t dst_offset,
-		   unsigned num_pages,
+		   unsigned num_gpu_pages,
 		   struct radeon_fence *fence);
 int r100_set_surface_reg(struct radeon_device *rdev, int reg,
 			 uint32_t tiling_flags, uint32_t pitch,
@@ -143,7 +143,7 @@ extern void r100_post_page_flip(struct radeon_device *rdev, int crtc);
 extern int r200_copy_dma(struct radeon_device *rdev,
 			 uint64_t src_offset,
 			 uint64_t dst_offset,
-			 unsigned num_pages,
+			 unsigned num_gpu_pages,
 			 struct radeon_fence *fence);
 void r200_set_safe_registers(struct radeon_device *rdev);
 
@@ -311,7 +311,7 @@ void r600_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib);
 int r600_ring_test(struct radeon_device *rdev);
 int r600_copy_blit(struct radeon_device *rdev,
 		   uint64_t src_offset, uint64_t dst_offset,
-		   unsigned num_pages, struct radeon_fence *fence);
+		   unsigned num_gpu_pages, struct radeon_fence *fence);
 void r600_hpd_init(struct radeon_device *rdev);
 void r600_hpd_fini(struct radeon_device *rdev);
 bool r600_hpd_sense(struct radeon_device *rdev, enum radeon_hpd_id hpd);
@@ -403,7 +403,7 @@ void evergreen_bandwidth_update(struct radeon_device *rdev);
 void evergreen_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib);
 int evergreen_copy_blit(struct radeon_device *rdev,
 			uint64_t src_offset, uint64_t dst_offset,
-			unsigned num_pages, struct radeon_fence *fence);
+			unsigned num_gpu_pages, struct radeon_fence *fence);
 void evergreen_hpd_init(struct radeon_device *rdev);
 void evergreen_hpd_fini(struct radeon_device *rdev);
 bool evergreen_hpd_sense(struct radeon_device *rdev, enum radeon_hpd_id hpd);
drivers/gpu/drm/radeon/radeon_clocks.c +3 -0
index 2d48e7a..b956cf1 100644
@@ -219,6 +219,9 @@ void radeon_get_clock_info(struct drm_device *dev)
 		} else {
 			DRM_INFO("Using generic clock info\n");
 
+			/* may need to be per card */
+			rdev->clock.max_pixel_clock = 35000;
+
 			if (rdev->flags & RADEON_IS_IGP) {
 				p1pll->reference_freq = 1432;
 				p2pll->reference_freq = 1432;
drivers/gpu/drm/radeon/radeon_combios.c +8 -0
index a74217c..cd3c86c 100644
@@ -3279,6 +3279,14 @@ void radeon_combios_asic_init(struct drm_device *dev)
 	    rdev->pdev->subsystem_device == 0x30a4)
 		return;
 
+	/* quirk for rs4xx Compaq Presario V5245EU laptop to make it resume
+	 * - it hangs on resume inside the dynclk 1 table.
+	 */
+	if (rdev->family == CHIP_RS480 &&
+	    rdev->pdev->subsystem_vendor == 0x103c &&
+	    rdev->pdev->subsystem_device == 0x30ae)
+		return;
+
 	/* DYN CLK 1 */
 	table = combios_get_table_offset(dev, COMBIOS_DYN_CLK_1_TABLE);
 	if (table)
drivers/gpu/drm/radeon/radeon_encoders.c +8 -1
index 319d85d..13690f3 100644
@@ -1507,7 +1507,14 @@ radeon_atom_encoder_dpms(struct drm_encoder *encoder, int mode)
 		switch (mode) {
 		case DRM_MODE_DPMS_ON:
 			args.ucAction = ATOM_ENABLE;
-			atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args);
+			/* workaround for DVOOutputControl on some RS690 systems */
+			if (radeon_encoder->encoder_id == ENCODER_OBJECT_ID_INTERNAL_DDI) {
+				u32 reg = RREG32(RADEON_BIOS_3_SCRATCH);
+				WREG32(RADEON_BIOS_3_SCRATCH, reg & ~ATOM_S3_DFP2I_ACTIVE);
+				atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args);
+				WREG32(RADEON_BIOS_3_SCRATCH, reg);
+			} else
+				atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args);
 			if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) {
 				args.ucAction = ATOM_LCD_BLON;
 				atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args);
drivers/gpu/drm/radeon/radeon_ttm.c +6 -1
index 60125dd..3e9b41b 100644
@@ -277,7 +277,12 @@ static int radeon_move_blit(struct ttm_buffer_object *bo,
 		DRM_ERROR("Trying to move memory with CP turned off.\n");
 		return -EINVAL;
 	}
-	r = radeon_copy(rdev, old_start, new_start, new_mem->num_pages, fence);
+
+	BUILD_BUG_ON((PAGE_SIZE % RADEON_GPU_PAGE_SIZE) != 0);
+
+	r = radeon_copy(rdev, old_start, new_start,
+			new_mem->num_pages * (PAGE_SIZE / RADEON_GPU_PAGE_SIZE), /* GPU pages */
+			fence);
 	/* FIXME: handle copy error */
 	r = ttm_bo_move_accel_cleanup(bo, (void *)fence, NULL,
 				      evict, no_wait_reserve, no_wait_gpu, new_mem);
drivers/hwmon/ds620.c +1 -1
index 257957c..4f7c3fc 100644
@@ -72,7 +72,7 @@ struct ds620_data {
 	char valid;		/* !=0 if following fields are valid */
 	unsigned long last_updated;	/* In jiffies */
 
-	u16 temp[3];		/* Register values, word */
+	s16 temp[3];		/* Register values, word */
 };
 
 /*
drivers/hwmon/max16065.c +1 -1
index d94a24f..dd2d7b9 100644
@@ -124,7 +124,7 @@ static inline int MV_TO_LIMIT(int mv, int range)
 
 static inline int ADC_TO_CURR(int adc, int gain)
 {
-	return adc * 1400000 / gain * 255;
+	return adc * 1400000 / (gain * 255);
 }
 
 /*
drivers/infiniband/hw/cxgb3/iwch_cm.c +5 -5
index 0a5008f..2332dc2 100644
@@ -287,7 +287,7 @@ void __free_ep(struct kref *kref)
 	if (test_bit(RELEASE_RESOURCES, &ep->com.flags)) {
 		cxgb3_remove_tid(ep->com.tdev, (void *)ep, ep->hwtid);
 		dst_release(ep->dst);
-		l2t_release(L2DATA(ep->com.tdev), ep->l2t);
+		l2t_release(ep->com.tdev, ep->l2t);
 	}
 	kfree(ep);
 }
@@ -1178,7 +1178,7 @@ static int act_open_rpl(struct t3cdev *tdev, struct sk_buff *skb, void *ctx)
 		release_tid(ep->com.tdev, GET_TID(rpl), NULL);
 	cxgb3_free_atid(ep->com.tdev, ep->atid);
 	dst_release(ep->dst);
-	l2t_release(L2DATA(ep->com.tdev), ep->l2t);
+	l2t_release(ep->com.tdev, ep->l2t);
 	put_ep(&ep->com);
 	return CPL_RET_BUF_DONE;
 }
@@ -1375,7 +1375,7 @@ static int pass_accept_req(struct t3cdev *tdev, struct sk_buff *skb, void *ctx)
 	if (!child_ep) {
 		printk(KERN_ERR MOD "%s - failed to allocate ep entry!\n",
 		       __func__);
-		l2t_release(L2DATA(tdev), l2t);
+		l2t_release(tdev, l2t);
 		dst_release(dst);
 		goto reject;
 	}
@@ -1952,7 +1952,7 @@ int iwch_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
 	if (!err)
 		goto out;
 
-	l2t_release(L2DATA(h->rdev.t3cdev_p), ep->l2t);
+	l2t_release(h->rdev.t3cdev_p, ep->l2t);
 fail4:
 	dst_release(ep->dst);
 fail3:
@@ -2123,7 +2123,7 @@ int iwch_ep_redirect(void *ctx, struct dst_entry *old, struct dst_entry *new,
 	PDBG("%s ep %p redirect to dst %p l2t %p\n", __func__, ep, new,
 	     l2t);
 	dst_hold(new);
-	l2t_release(L2DATA(ep->com.tdev), ep->l2t);
+	l2t_release(ep->com.tdev, ep->l2t);
 	ep->l2t = l2t;
 	dst_release(old);
 	ep->dst = new;
drivers/leds/ledtrig-timer.c +2 -0
index d87c9d0..328c64c 100644
@@ -41,6 +41,7 @@ static ssize_t led_delay_on_store(struct device *dev,
 
 	if (count == size) {
 		led_blink_set(led_cdev, &state, &led_cdev->blink_delay_off);
+		led_cdev->blink_delay_on = state;
 		ret = count;
 	}
 
@@ -69,6 +70,7 @@ static ssize_t led_delay_off_store(struct device *dev,
 
 	if (count == size) {
 		led_blink_set(led_cdev, &led_cdev->blink_delay_on, &state);
+		led_cdev->blink_delay_off = state;
 		ret = count;
 	}
 
drivers/md/linear.h +1 -1
index 0ce29b6..2f2da05 100644
@@ -10,9 +10,9 @@ typedef struct dev_info dev_info_t;
 
 struct linear_private_data
 {
+	struct rcu_head		rcu;
 	sector_t		array_sectors;
 	dev_info_t		disks[0];
-	struct rcu_head		rcu;
 };
 
 
drivers/md/md.c +10 -2
index 91e31e2..8554082 100644
@@ -1084,8 +1084,11 @@ static int super_90_load(mdk_rdev_t *rdev, mdk_rdev_t *refdev, int minor_version
 			ret = 0;
 	}
 	rdev->sectors = rdev->sb_start;
+	/* Limit to 4TB as metadata cannot record more than that */
+	if (rdev->sectors >= (2ULL << 32))
+		rdev->sectors = (2ULL << 32) - 2;
 
-	if (rdev->sectors < sb->size * 2 && sb->level > 1)
+	if (rdev->sectors < ((sector_t)sb->size) * 2 && sb->level >= 1)
 		/* "this cannot possibly happen" ... */
 		ret = -EINVAL;
 
@@ -1119,7 +1122,7 @@ static int super_90_validate(mddev_t *mddev, mdk_rdev_t *rdev)
 		mddev->clevel[0] = 0;
 		mddev->layout = sb->layout;
 		mddev->raid_disks = sb->raid_disks;
-		mddev->dev_sectors = sb->size * 2;
+		mddev->dev_sectors = ((sector_t)sb->size) * 2;
 		mddev->events = ev1;
 		mddev->bitmap_info.offset = 0;
 		mddev->bitmap_info.default_offset = MD_SB_BYTES >> 9;
@@ -1361,6 +1364,11 @@ super_90_rdev_size_change(mdk_rdev_t *rdev, sector_t num_sectors)
 	rdev->sb_start = calc_dev_sboffset(rdev);
 	if (!num_sectors || num_sectors > rdev->sb_start)
 		num_sectors = rdev->sb_start;
+	/* Limit to 4TB as metadata cannot record more than that.
+	 * 4TB == 2^32 KB, or 2*2^32 sectors.
+	 */
+	if (num_sectors >= (2ULL << 32))
+		num_sectors = (2ULL << 32) - 2;
 	md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size,
 		       rdev->sb_page);
 	md_super_wait(rdev->mddev);
drivers/media/dvb/dvb-usb/vp7045.c +4 -22
index 3db89e3..536c16c 100644
@@ -224,26 +224,8 @@ static struct dvb_usb_device_properties vp7045_properties;
 static int vp7045_usb_probe(struct usb_interface *intf,
 		const struct usb_device_id *id)
 {
-	struct dvb_usb_device *d;
-	int ret = dvb_usb_device_init(intf, &vp7045_properties,
-				   THIS_MODULE, &d, adapter_nr);
-	if (ret)
-		return ret;
-
-	d->priv = kmalloc(20, GFP_KERNEL);
-	if (!d->priv) {
-		dvb_usb_device_exit(intf);
-		return -ENOMEM;
-	}
-
-	return ret;
-}
-
-static void vp7045_usb_disconnect(struct usb_interface *intf)
-{
-	struct dvb_usb_device *d = usb_get_intfdata(intf);
-	kfree(d->priv);
-	dvb_usb_device_exit(intf);
+	return dvb_usb_device_init(intf, &vp7045_properties,
+				   THIS_MODULE, NULL, adapter_nr);
 }
 
 static struct usb_device_id vp7045_usb_table [] = {
@@ -258,7 +240,7 @@ MODULE_DEVICE_TABLE(usb, vp7045_usb_table);
 static struct dvb_usb_device_properties vp7045_properties = {
 	.usb_ctrl = CYPRESS_FX2,
 	.firmware = "dvb-usb-vp7045-01.fw",
-	.size_of_priv = sizeof(u8 *),
+	.size_of_priv = 20,
 
 	.num_adapters = 1,
 	.adapter = {
@@ -305,7 +287,7 @@ static struct dvb_usb_device_properties vp7045_properties = {
 static struct usb_driver vp7045_usb_driver = {
 	.name		= "dvb_usb_vp7045",
 	.probe		= vp7045_usb_probe,
-	.disconnect	= vp7045_usb_disconnect,
+	.disconnect	= dvb_usb_device_exit,
 	.id_table	= vp7045_usb_table,
 };
 
drivers/media/rc/nuvoton-cir.c +8 -37

87 lines not on this page · raw message

drivers/media/rc/nuvoton-cir.h +0 -1
index 1241fc8..0d5e087 100644
@@ -67,7 +67,6 @@ static int debug;
 struct nvt_dev {
 	struct pnp_dev *pdev;
 	struct rc_dev *rdev;
-	struct ir_raw_event rawir;
 
 	spinlock_t nvt_lock;
 
drivers/mfd/omap-usb-host.c +0 -1
index 1717144..e67c3d3 100644
@@ -676,7 +676,6 @@ static void usbhs_omap_tll_init(struct device *dev, u8 tll_channel_count)
 				| OMAP_TLL_CHANNEL_CONF_ULPINOBITSTUFF
 				| OMAP_TLL_CHANNEL_CONF_ULPIDDRMODE);
 
-			reg |= (1 << (i + 1));
 		} else
 			continue;
 
drivers/mfd/tps65910-irq.c +2 -0
index 2bfad5c..a56be93 100644
@@ -178,8 +178,10 @@ int tps65910_irq_init(struct tps65910 *tps65910, int irq,
 	switch (tps65910_chip_id(tps65910)) {
 	case TPS65910:
 		tps65910->irq_num = TPS65910_NUM_IRQ;
+		break;
 	case TPS65911:
 		tps65910->irq_num = TPS65911_NUM_IRQ;
+		break;
 	}
 
 	/* Register with genirq */
drivers/mmc/core/core.c +31 -4
index 7843efe..38089b2 100644
@@ -132,7 +132,7 @@ void mmc_request_done(struct mmc_host *host, struct mmc_request *mrq)
 		if (mrq->done)
 			mrq->done(mrq);
 
-		mmc_host_clk_gate(host);
+		mmc_host_clk_release(host);
 	}
 }
 
@@ -191,7 +191,7 @@ mmc_start_request(struct mmc_host *host, struct mmc_request *mrq)
 			mrq->stop->mrq = mrq;
 		}
 	}
-	mmc_host_clk_ungate(host);
+	mmc_host_clk_hold(host);
 	led_trigger_event(host->led, LED_FULL);
 	host->ops->request(host, mrq);
 }
@@ -634,15 +634,17 @@ static inline void mmc_set_ios(struct mmc_host *host)
  */
 void mmc_set_chip_select(struct mmc_host *host, int mode)
 {
+	mmc_host_clk_hold(host);
 	host->ios.chip_select = mode;
 	mmc_set_ios(host);
+	mmc_host_clk_release(host);
 }
 
 /*
  * Sets the host clock to the highest possible frequency that
  * is below "hz".
  */
-void mmc_set_clock(struct mmc_host *host, unsigned int hz)
+static void __mmc_set_clock(struct mmc_host *host, unsigned int hz)
 {
 	WARN_ON(hz < host->f_min);
 
@@ -653,6 +655,13 @@ void mmc_set_clock(struct mmc_host *host, unsigned int hz)
 	mmc_set_ios(host);
 }
 
+void mmc_set_clock(struct mmc_host *host, unsigned int hz)
+{
+	mmc_host_clk_hold(host);
+	__mmc_set_clock(host, hz);
+	mmc_host_clk_release(host);
+}
+
 #ifdef CONFIG_MMC_CLKGATE
 /*
  * This gates the clock by setting it to 0 Hz.
@@ -685,7 +694,7 @@ void mmc_ungate_clock(struct mmc_host *host)
 	if (host->clk_old) {
 		BUG_ON(host->ios.clock);
 		/* This call will also set host->clk_gated to false */
-		mmc_set_clock(host, host->clk_old);
+		__mmc_set_clock(host, host->clk_old);
 	}
 }
 
@@ -713,8 +722,10 @@ void mmc_set_ungated(struct mmc_host *host)
  */
 void mmc_set_bus_mode(struct mmc_host *host, unsigned int mode)
 {
+	mmc_host_clk_hold(host);
 	host->ios.bus_mode = mode;
 	mmc_set_ios(host);
+	mmc_host_clk_release(host);
 }
 
 /*
@@ -722,8 +733,10 @@ void mmc_set_bus_mode(struct mmc_host *host, unsigned int mode)
  */
 void mmc_set_bus_width(struct mmc_host *host, unsigned int width)
 {
+	mmc_host_clk_hold(host);
 	host->ios.bus_width = width;
 	mmc_set_ios(host);
+	mmc_host_clk_release(host);
 }
 
 /**
@@ -921,8 +934,10 @@ u32 mmc_select_voltage(struct mmc_host *host, u32 ocr)
 
 		ocr &= 3 << bit;
 
+		mmc_host_clk_hold(host);
 		host->ios.vdd = bit;
 		mmc_set_ios(host);
+		mmc_host_clk_release(host);
 	} else {
 		pr_warning("%s: host doesn't support card's voltages\n",
 				mmc_hostname(host));
@@ -969,8 +984,10 @@ int mmc_set_signal_voltage(struct mmc_host *host, int signal_voltage, bool cmd11
  */
 void mmc_set_timing(struct mmc_host *host, unsigned int timing)
 {
+	mmc_host_clk_hold(host);
 	host->ios.timing = timing;
 	mmc_set_ios(host);
+	mmc_host_clk_release(host);
 }
 
 /*
@@ -978,8 +995,10 @@ void mmc_set_timing(struct mmc_host *host, unsigned int timing)
  */
 void mmc_set_driver_type(struct mmc_host *host, unsigned int drv_type)
 {
+	mmc_host_clk_hold(host);
 	host->ios.drv_type = drv_type;
 	mmc_set_ios(host);
+	mmc_host_clk_release(host);
 }
 
 /*
@@ -997,6 +1016,8 @@ static void mmc_power_up(struct mmc_host *host)
 {
 	int bit;
 
+	mmc_host_clk_hold(host);
+
 	/* If ocr is set, we use it */
 	if (host->ocr)
 		bit = ffs(host->ocr) - 1;
@@ -1032,10 +1053,14 @@ static void mmc_power_up(struct mmc_host *host)
 	 * time required to reach a stable voltage.
 	 */
 	mmc_delay(10);
+
+	mmc_host_clk_release(host);
 }
 
 static void mmc_power_off(struct mmc_host *host)
 {
+	mmc_host_clk_hold(host);
+
 	host->ios.clock = 0;
 	host->ios.vdd = 0;
 
@@ -1053,6 +1078,8 @@ static void mmc_power_off(struct mmc_host *host)
 	host->ios.bus_width = MMC_BUS_WIDTH_1;
 	host->ios.timing = MMC_TIMING_LEGACY;
 	mmc_set_ios(host);
+
+	mmc_host_clk_release(host);
 }
 
 /*
drivers/mmc/core/host.c +6 -6
index b29d3e8..793d0a0 100644
@@ -119,14 +119,14 @@ static void mmc_host_clk_gate_work(struct work_struct *work)
 }
 
 /**
- *	mmc_host_clk_ungate - ungate hardware MCI clocks
+ *	mmc_host_clk_hold - ungate hardware MCI clocks
  *	@host: host to ungate.
  *
  *	Makes sure the host ios.clock is restored to a non-zero value
  *	past this call.	Increase clock reference count and ungate clock
  *	if we're the first user.
  */
-void mmc_host_clk_ungate(struct mmc_host *host)
+void mmc_host_clk_hold(struct mmc_host *host)
 {
 	unsigned long flags;
 
@@ -164,14 +164,14 @@ static bool mmc_host_may_gate_card(struct mmc_card *card)
 }
 
 /**
- *	mmc_host_clk_gate - gate off hardware MCI clocks
+ *	mmc_host_clk_release - gate off hardware MCI clocks
  *	@host: host to gate.
  *
  *	Calls the host driver with ios.clock set to zero as often as possible
  *	in order to gate off hardware MCI clocks. Decrease clock reference
  *	count and schedule disabling of clock.
  */
-void mmc_host_clk_gate(struct mmc_host *host)
+void mmc_host_clk_release(struct mmc_host *host)
 {
 	unsigned long flags;
 
@@ -179,7 +179,7 @@ void mmc_host_clk_gate(struct mmc_host *host)
 	host->clk_requests--;
 	if (mmc_host_may_gate_card(host->card) &&
 	    !host->clk_requests)
-		schedule_work(&host->clk_gate_work);
+		queue_work(system_nrt_wq, &host->clk_gate_work);
 	spin_unlock_irqrestore(&host->clk_lock, flags);
 }
 
@@ -231,7 +231,7 @@ static inline void mmc_host_clk_exit(struct mmc_host *host)
 	if (cancel_work_sync(&host->clk_gate_work))
 		mmc_host_clk_gate_delayed(host);
 	if (host->clk_gated)
-		mmc_host_clk_ungate(host);
+		mmc_host_clk_hold(host);
 	/* There should be only one user now */
 	WARN_ON(host->clk_requests > 1);
 }
drivers/mmc/core/host.h +4 -4
index de199f9..fb8a5cd 100644
@@ -16,16 +16,16 @@ int mmc_register_host_class(void);
 void mmc_unregister_host_class(void);
 
 #ifdef CONFIG_MMC_CLKGATE
-void mmc_host_clk_ungate(struct mmc_host *host);
-void mmc_host_clk_gate(struct mmc_host *host);
+void mmc_host_clk_hold(struct mmc_host *host);
+void mmc_host_clk_release(struct mmc_host *host);
 unsigned int mmc_host_clk_rate(struct mmc_host *host);
 
 #else
-static inline void mmc_host_clk_ungate(struct mmc_host *host)
+static inline void mmc_host_clk_hold(struct mmc_host *host)
 {
 }
 
-static inline void mmc_host_clk_gate(struct mmc_host *host)
+static inline void mmc_host_clk_release(struct mmc_host *host)
 {
 }
 
drivers/mmc/host/sdhci-s3c.c +2 -0
index 69e3ee3..8cd999f 100644
@@ -301,6 +301,8 @@ static int sdhci_s3c_platform_8bit_width(struct sdhci_host *host, int width)
 		ctrl &= ~SDHCI_CTRL_8BITBUS;
 		break;
 	default:
+		ctrl &= ~SDHCI_CTRL_4BITBUS;
+		ctrl &= ~SDHCI_CTRL_8BITBUS;
 		break;
 	}
 
drivers/net/bnx2.c +7 -0
index 57d3293..74580bb 100644
@@ -416,6 +416,9 @@ struct cnic_eth_dev *bnx2_cnic_probe(struct net_device *dev)
 	struct bnx2 *bp = netdev_priv(dev);
 	struct cnic_eth_dev *cp = &bp->cnic_eth_dev;
 
+	if (!cp->max_iscsi_conn)
+		return NULL;
+
 	cp->drv_owner = THIS_MODULE;
 	cp->chip_id = bp->chip_id;
 	cp->pdev = bp->pdev;
@@ -8177,6 +8180,10 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev)
 	bp->timer.data = (unsigned long) bp;
 	bp->timer.function = bnx2_timer;
 
+#ifdef BCM_CNIC
+	bp->cnic_eth_dev.max_iscsi_conn =
+		bnx2_reg_rd_ind(bp, BNX2_FW_MAX_ISCSI_CONN);
+#endif
 	pci_save_state(pdev);
 
 	return 0;
drivers/net/bnx2x/bnx2x_dcb.c +1 -0
index 410a49e..d11af7c 100644
@@ -1858,6 +1858,7 @@ static u8 bnx2x_dcbnl_get_cap(struct net_device *netdev, int capid, u8 *cap)
 			break;
 		case DCB_CAP_ATTR_DCBX:
 			*cap = BNX2X_DCBX_CAPS;
+			break;
 		default:
 			rval = -EINVAL;
 			break;
drivers/net/bnx2x/bnx2x_main.c +4 -2
index 74be989..04976db 100644
@@ -4138,7 +4138,7 @@ static void bnx2x_init_def_sb(struct bnx2x *bp)
 	int igu_seg_id;
 	int port = BP_PORT(bp);
 	int func = BP_FUNC(bp);
-	int reg_offset;
+	int reg_offset, reg_offset_en5;
 	u64 section;
 	int index;
 	struct hc_sp_status_block_data sp_sb_data;
@@ -4161,6 +4161,8 @@ static void bnx2x_init_def_sb(struct bnx2x *bp)
 
 	reg_offset = (port ? MISC_REG_AEU_ENABLE1_FUNC_1_OUT_0 :
 			     MISC_REG_AEU_ENABLE1_FUNC_0_OUT_0);
+	reg_offset_en5 = (port ? MISC_REG_AEU_ENABLE5_FUNC_1_OUT_0 :
+				 MISC_REG_AEU_ENABLE5_FUNC_0_OUT_0);
 	for (index = 0; index < MAX_DYNAMIC_ATTN_GRPS; index++) {
 		int sindex;
 		/* take care of sig[0]..sig[4] */
@@ -4175,7 +4177,7 @@ static void bnx2x_init_def_sb(struct bnx2x *bp)
 			 * and not 16 between the different groups
 			 */
 			bp->attn_group[index].sig[4] = REG_RD(bp,
-					reg_offset + 0x10 + 0x4*index);
+					reg_offset_en5 + 0x4*index);
 		else
 			bp->attn_group[index].sig[4] = 0;
 	}
drivers/net/bnx2x/bnx2x_reg.h +12 -0
index 86bba25..0380b3a 100644
@@ -1325,6 +1325,18 @@
    Latched ump_tx_parity; [31] MCP Latched scpad_parity; */
 #define MISC_REG_AEU_ENABLE4_PXP_0				 0xa108
 #define MISC_REG_AEU_ENABLE4_PXP_1				 0xa1a8
+/* [RW 32] fifth 32b for enabling the output for function 0 output0. Mapped
+ * as follows: [0] PGLUE config_space; [1] PGLUE misc_flr; [2] PGLUE B RBC
+ * attention [3] PGLUE B RBC parity; [4] ATC attention; [5] ATC parity; [6]
+ * mstat0 attention; [7] mstat0 parity; [8] mstat1 attention; [9] mstat1
+ * parity; [31-10] Reserved; */
+#define MISC_REG_AEU_ENABLE5_FUNC_0_OUT_0			 0xa688
+/* [RW 32] Fifth 32b for enabling the output for function 1 output0. Mapped
+ * as follows: [0] PGLUE config_space; [1] PGLUE misc_flr; [2] PGLUE B RBC
+ * attention [3] PGLUE B RBC parity; [4] ATC attention; [5] ATC parity; [6]
+ * mstat0 attention; [7] mstat0 parity; [8] mstat1 attention; [9] mstat1
+ * parity; [31-10] Reserved; */
+#define MISC_REG_AEU_ENABLE5_FUNC_1_OUT_0			 0xa6b0
 /* [RW 1] set/clr general attention 0; this will set/clr bit 94 in the aeu
    128 bit vector */
 #define MISC_REG_AEU_GENERAL_ATTN_0				 0xa000
drivers/net/cnic.c +28 -29

149 lines not on this page · raw message

drivers/net/cxgb3/cxgb3_offload.c +18 -5
index 862804f..3f2e12c 100644
@@ -1149,12 +1149,14 @@ static void cxgb_redirect(struct dst_entry *old, struct dst_entry *new)
 		if (te && te->ctx && te->client && te->client->redirect) {
 			update_tcb = te->client->redirect(te->ctx, old, new, e);
 			if (update_tcb) {
+				rcu_read_lock();
 				l2t_hold(L2DATA(tdev), e);
+				rcu_read_unlock();
 				set_l2t_ix(tdev, tid, e);
 			}
 		}
 	}
-	l2t_release(L2DATA(tdev), e);
+	l2t_release(tdev, e);
 }
 
 /*
@@ -1267,7 +1269,7 @@ int cxgb3_offload_activate(struct adapter *adapter)
 		goto out_free;
 
 	err = -ENOMEM;
-	L2DATA(dev) = t3_init_l2t(l2t_capacity);
+	RCU_INIT_POINTER(dev->l2opt, t3_init_l2t(l2t_capacity));
 	if (!L2DATA(dev))
 		goto out_free;
 
@@ -1301,16 +1303,24 @@ int cxgb3_offload_activate(struct adapter *adapter)
 
 out_free_l2t:
 	t3_free_l2t(L2DATA(dev));
-	L2DATA(dev) = NULL;
+	rcu_assign_pointer(dev->l2opt, NULL);
 out_free:
 	kfree(t);
 	return err;
 }
 
+static void clean_l2_data(struct rcu_head *head)
+{
+	struct l2t_data *d = container_of(head, struct l2t_data, rcu_head);
+	t3_free_l2t(d);
+}
+
+
 void cxgb3_offload_deactivate(struct adapter *adapter)
 {
 	struct t3cdev *tdev = &adapter->tdev;
 	struct t3c_data *t = T3C_DATA(tdev);
+	struct l2t_data *d;
 
 	remove_adapter(adapter);
[… more lines in the raw message]

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

drivers/net/cxgb3/l2t.c +12 -3
index f452c40..4154097 100644

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

drivers/net/cxgb3/l2t.h +12 -4
index fd3eb07..c4dd066 100644

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

drivers/net/e1000/e1000_hw.c +6 -0
index 7501d97..f17aaa1 100644

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

drivers/net/ibmveth.c +21 -10
index b388d78..145c924 100644

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

drivers/net/igb/igb_main.c +1 -1
index 2c28621..97f46ac 100644

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

drivers/net/irda/smsc-ircc2.c +1 -1
index 8800e1f..6a4826a 100644

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

drivers/net/ixgbe/ixgbe_main.c +2 -2
index 08e8e25..83f197d 100644

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

drivers/net/rionet.c +8 -15
index 5d3436d..ca4694e 100644

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

drivers/net/sfc/efx.c +2 -16
index c914729..7d1651b 100644

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

drivers/net/sfc/io.h +4 -11
index cc97880..dc45110 100644

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

drivers/net/sfc/mcdi.c +17 -29

46 lines not on this page · raw message

drivers/net/sfc/nic.c +0 -7
index f2a2b94..5ac9fa2 100644

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

drivers/net/sfc/nic.h +0 -2
index 4bd1f28..7443f99 100644

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

drivers/net/sfc/siena.c +4 -21
index fb4721f..ceac1c9 100644

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

drivers/net/sfc/workarounds.h +0 -2
index 99ff114..e4dd3a7 100644

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

drivers/net/tg3.c +15 -15
index a1f9f9e..38f6859 100644

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

drivers/net/usb/asix.c +4 -0
index 6998aa6..5250288 100644

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

drivers/net/usb/cdc_ncm.c +56 -100

156 lines not on this page · raw message

drivers/net/wireless/ath/ath9k/ar9002_calib.c +2 -1
index 2d4c091..2d394af 100644

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

drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h +1 -1
index e8ac70d..029773c 100644

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

drivers/net/wireless/ath/ath9k/ar9003_eeprom.c +1 -1
index 7e07f0f..417106b 100644

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

drivers/net/wireless/ath/ath9k/main.c +4 -0
index 2ca351f..5362306 100644

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

drivers/net/wireless/ath/carl9170/main.c +3 -1
index 54d093c..b54966c 100644

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

drivers/net/wireless/b43/main.c +2 -1
index eb41596..b1fe4fe 100644

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

drivers/net/wireless/iwlegacy/iwl-3945-rs.c +8 -5
index 977bd24..164bcae 100644

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

drivers/net/wireless/iwlegacy/iwl-core.c +2 -2
index 3be76bd..d273d50 100644

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

drivers/net/wireless/iwlegacy/iwl-hcmd.c +1 -1
index 62b4b09..ce1fc9f 100644

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

drivers/net/wireless/iwlegacy/iwl-tx.c +3 -1
index 4fff995..ef9e268 100644

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

drivers/net/wireless/iwlegacy/iwl3945-base.c +4 -4
index 0ee6be6..421d5c8 100644

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

drivers/net/wireless/iwlegacy/iwl4965-base.c +5 -5
index 7157ba5..0c37c02 100644

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

drivers/net/wireless/iwlwifi/iwl-agn.c +5 -0
index 8e1942e..f24165d 100644

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

drivers/net/wireless/iwlwifi/iwl-scan.c +16 -14
index d60d630..f524016 100644

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

drivers/net/wireless/iwlwifi/iwl-tx.c +2 -0
index 137dba9..c368c50 100644

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

drivers/net/wireless/rt2x00/rt2800lib.c +39 -25

64 lines not on this page · raw message

drivers/net/wireless/rt2x00/rt2800usb.c +3 -1
index ba82c97..6e7fe94 100644

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

drivers/net/wireless/rt2x00/rt2x00usb.c +1 -13
index 241a099..54f0b13 100644

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

drivers/net/wireless/rtlwifi/core.c +8 -0
index d2ec253..ce0444c 100644

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

drivers/net/wireless/rtlwifi/rtl8192cu/trx.c +6 -5
index 3a92ba3..10b2ef0 100644

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

drivers/net/wireless/rtlwifi/usb.c +1 -0
index a9367eb..e4272b9 100644

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

drivers/pci/dmar.c +1 -1
index 3dc9bef..6dcc7e2 100644

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

drivers/rapidio/rio-scan.c +1 -2
index ee89358..ebe77dd 100644

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

drivers/regulator/tps65910-regulator.c +7 -0
index 55dd4e6..425aab3 100644

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

drivers/rtc/interface.c +1 -1
index 3195dbd..eb4c883 100644

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

drivers/s390/cio/qdio_thinint.c +5 -10
index 5c4e741..68be6e1 100644

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

drivers/scsi/3w-9xxx.c +2 -0
index b7bd5b0..3868ab2 100644

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

drivers/scsi/Makefile +1 -1
index 3c08f53..6153a66 100644

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

drivers/scsi/aacraid/commsup.c +2 -0
index e7d0d47..e5f2d7d 100644

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

drivers/scsi/bnx2fc/bnx2fc.h +7 -1
index 0a404bf..856fcbf 100644

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

drivers/scsi/bnx2fc/bnx2fc_fcoe.c +27 -1
index ab255fb..bdf62a5 100644

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

drivers/scsi/bnx2fc/bnx2fc_hwi.c +23 -1
index f756d5f..78baa46 100644

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

drivers/scsi/bnx2fc/bnx2fc_io.c +1 -1
index b5b5c34..454c72c 100644

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

drivers/scsi/cxgbi/cxgb3i/cxgb3i.c +1 -1
index fc2cdb6..b2d6611 100644

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

drivers/scsi/fcoe/fcoe.c +17 -2
index 155d7b9..8885b3e 100644

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

drivers/scsi/hpsa.c +37 -20

57 lines not on this page · raw message

drivers/scsi/isci/host.c +3 -0
index 26072f1..ef46d83 100644

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

drivers/scsi/isci/phy.c +13 -0
index 79313a7..430fc8f 100644

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

drivers/scsi/isci/registers.h +12 -0
index 9b266c7..00afc73 100644

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

drivers/scsi/isci/request.c +16 -14
index a46e07a..b5d3a8c 100644

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

drivers/scsi/isci/unsolicited_frame_control.c +1 -1
index e9e1e2a..16f88ab 100644

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

drivers/scsi/isci/unsolicited_frame_control.h +1 -1
index 31cb950..75d8966 100644

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

drivers/scsi/iscsi_tcp.c +41 -20

61 lines not on this page · raw message

drivers/scsi/libfc/fc_rport.c +14 -0
index 49e1ccc..3b66937 100644

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

drivers/scsi/libiscsi_tcp.c +3 -11
index e98ae33..09b232f 100644

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

drivers/scsi/libsas/sas_expander.c +1 -1
index f84084b..c9e3dc0 100644

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

drivers/scsi/lpfc/lpfc.h +7 -1
index 8ec2c86..0441361 100644

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

drivers/scsi/lpfc/lpfc_attr.c +72 -75

147 lines not on this page · raw message

drivers/scsi/lpfc/lpfc_bsg.c +29 -23

52 lines not on this page · raw message

drivers/scsi/lpfc/lpfc_crtn.h +2 -0
index fc20c24..1e41af8 100644

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

drivers/scsi/lpfc/lpfc_els.c +64 -39

103 lines not on this page · raw message

drivers/scsi/lpfc/lpfc_hbadisc.c +1 -1
index 18d0dbf..bef17e3 100644

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

drivers/scsi/lpfc/lpfc_hw.h +6 -1
index 9059524..df53d10 100644

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

drivers/scsi/lpfc/lpfc_hw4.h +16 -14
index 11e26a2..7f8003b 100644

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

drivers/scsi/lpfc/lpfc_init.c +65 -17

82 lines not on this page · raw message

drivers/scsi/lpfc/lpfc_mbox.c +1 -1
index 5567670..83450cc 100644

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

drivers/scsi/lpfc/lpfc_scsi.c +30 -67

97 lines not on this page · raw message

drivers/scsi/lpfc/lpfc_sli.c +67 -39

106 lines not on this page · raw message

drivers/scsi/lpfc/lpfc_sli4.h +2 -0
index 4b17035..88387c1 100644

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

drivers/scsi/mpt2sas/mpt2sas_base.c +17 -2
index 1da606c..83035bd 100644

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

drivers/scsi/mpt2sas/mpt2sas_base.h +3 -0
index 451dc1c..41a57a7 100644

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

drivers/scsi/mpt2sas/mpt2sas_scsih.c +1 -2
index e327a3c..8dc2ad4 100644

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

drivers/scsi/qla2xxx/qla_init.c +0 -3
index 920b76b..b2df2f9 100644

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

drivers/scsi/qla2xxx/qla_isr.c +0 -1
index 1b60a95..e0fa877 100644

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

drivers/tty/pty.c +15 -2
index 98b6e3b..e809e9d 100644

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

drivers/tty/serial/8250.c +5 -3
index d32b5bb..762ce72 100644

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

drivers/tty/serial/8250_pci.c +5 -1
index f41b425..ff48fdb 100644

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

drivers/tty/serial/8250_pnp.c +3 -0
index fc301f6..a2f2365 100644

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

drivers/tty/serial/max3107-aava.c +1 -1
index a1fe304..d73aadd 100644

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

drivers/tty/serial/max3107.c +1 -1
index 750b4f6..a816460 100644

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

drivers/tty/serial/mrst_max3110.c +1 -1
index a764bf9..23bc743 100644

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

drivers/tty/serial/omap-serial.c +1 -2
index 47cadf4..6d3ec14 100644

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

drivers/tty/tty_io.c +1 -2
index 6556f74..b6f92d3 100644

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

drivers/usb/host/ehci-hub.c +3 -4
index 88cfb8f..0f3a724 100644

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

drivers/usb/host/ehci-s5p.c +1 -0
index e3374c8..491a209 100644

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

drivers/usb/host/pci-quirks.c +21 -7
index e9f004e..629a968 100644

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

drivers/usb/host/xhci-hub.c +14 -5
index 0be788c..723f823 100644

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

drivers/usb/host/xhci-ring.c +63 -27

90 lines not on this page · raw message

drivers/usb/host/xhci.c +24 -4
index 9824761..7ea48b3 100644

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

drivers/usb/musb/cppi_dma.c +17 -9
index 149f3f3..318fb4e 100644

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

drivers/usb/serial/ftdi_sio.c +19 -1
index 9afb361..f968a3d 100644

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

drivers/usb/serial/option.c +101 -3

104 lines not on this page · raw message

drivers/usb/serial/pl2303.c +22 -4
index 0c20831..1d33260 100644

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

drivers/video/savage/savagefb.h +1 -1
index 32549d1..dcaab90 100644

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

drivers/zorro/zorro.c +6 -1
index e0c2807..181fa81 100644

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

fs/9p/acl.c +13 -9
index 535ab6e..4a866cd 100644

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

fs/9p/acl.h +3 -3
index 7ef3ac9..c47ea9c 100644

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

fs/9p/cache.c +9 -11
index 5b335c5..945aa5f 100644

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

fs/9p/cache.h +0 -9
index 049507a..40cc54c 100644

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

fs/9p/v9fs.c +35 -10

45 lines not on this page · raw message

fs/9p/v9fs.h +24 -5
index e5ebedf..e78956c 100644

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

fs/9p/v9fs_vfs.h +4 -2
index 4014160..f9a28ea 100644

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

fs/9p/vfs_file.c +28 -8
index ffed558..9d6e168 100644

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

fs/9p/vfs_inode.c +120 -57

177 lines not on this page · raw message

fs/9p/vfs_inode_dotl.c +135 -27

162 lines not on this page · raw message

fs/9p/vfs_super.c +1 -1
index feef6cd..c70251d 100644

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

fs/block_dev.c +5 -2
index 610e8e0..194cf66 100644

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

fs/btrfs/inode.c +3 -2
index 3601f0a..d42e6bf 100644

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

fs/cifs/cifssmb.c +2 -1
index 1a9fe7f..07132c4 100644

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

fs/cifs/connect.c +2 -2
index e0ea721..2451627 100644

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

fs/ext4/inode.c +2 -2
index b864839..c94774c 100644

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

fs/fs-writeback.c +18 -8
index 0f015a0..fe190a8 100644

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

fs/namei.c +4 -0
index 14ab8d3..b456c7a 100644

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

fs/proc/task_mmu.c +55 -25

80 lines not on this page · raw message

include/linux/mfd/wm8994/pdata.h +1 -1
index d12f8d6..97cf4f2 100644

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

include/linux/rio_regs.h +9 -9
index 9026b30..218168a 100644

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

include/linux/rtc.h +3 -0
index b27ebea..93f4d03 100644

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

include/linux/tty.h +2 -0
index d6f0529..6660c41 100644

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

include/linux/tty_driver.h +3 -0
index 9deeac8..ecdaeb9 100644

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

include/linux/writeback.h +1 -0
index 17e7ccc..3f6542c 100644

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

include/net/9p/9p.h +29 -0
index 008711e..32f67c3 100644

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

ipc/mqueue.c +64 -61

125 lines not on this page · raw message

kernel/irq/chip.c +1 -1
index d5a3009..dc5114b 100644

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

kernel/printk.c +1 -1
index 3518539..084982f 100644

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

kernel/sched.c +26 -15

41 lines not on this page · raw message

kernel/time/alarmtimer.c +13 -5
index 59f369f..ea5e1a9 100644

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

kernel/workqueue.c +6 -1
index 0400553..aec02b6 100644

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

lib/xz/xz_dec_bcj.c +20 -7
index e51e255..a768e6d 100644

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

mm/page-writeback.c +2 -2
index 31f6988..955fe35 100644

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

mm/page_alloc.c +45 -13

58 lines not on this page · raw message

mm/vmalloc.c +8 -0
index d3d451b..45ece89 100644

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

mm/vmscan.c +12 -6
index d036e59..6072d74 100644

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

net/8021q/vlan_core.c +2 -0
index fcc6846..27263fb 100644

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

net/9p/client.c +8 -5
index 9e3b0e6..5532710 100644

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

net/9p/trans_virtio.c +12 -5
index 244e707..e317583 100644

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

net/atm/br2684.c +4 -3
index 52cfd0c..d07223c 100644

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

net/bluetooth/hci_event.c +8 -9
index 77930aa..01aa7e7 100644

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

net/bridge/br_if.c +5 -1
index 1bacca4..6f156c1 100644

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

net/bridge/br_multicast.c +14 -7
index 2d85ca7..995cbe0 100644

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

net/core/fib_rules.c +2 -2
index 008dc70..f39ef5c 100644

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

net/core/neighbour.c +6 -2
index 799f06e..16db887 100644

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

net/core/scm.c +1 -1
index 4c1ef02..811b53f 100644

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

net/ipv4/igmp.c +1 -1
index 283c0a2..d577199 100644

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

net/ipv4/netfilter.c +8 -10
index 2e97e3e..929b27b 100644

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

net/ipv4/route.c +3 -5
index cdabdbf..75ef66f 100644

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

net/ipv4/syncookies.c +1 -1
index 2646149..4382629 100644

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

net/ipv4/tcp_input.c +1 -1
index bef9f04..b6771f9 100644

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

net/ipv6/ipv6_sockglue.c +5 -4
index 9cb191e..147ede38 100644

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

net/ipv6/mcast.c +1 -1
index 3e6ebcd..ee7839f 100644

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

net/ipv6/syncookies.c +1 -1
index 8b9644a..14b8339 100644

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

net/mac80211/sta_info.c +1 -1
index b83870b..ca7bf10 100644

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

net/sched/sch_prio.c +1 -1
index 2a318f2..b5d56a2 100644

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

net/socket.c +6 -4
index ed46dbb..1ad42d3 100644

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

net/wireless/nl80211.c +4 -1
index cea3381..1ac9443 100644

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

net/wireless/reg.c +1 -0
index 4453eb7..379574c 100644

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

net/xfrm/xfrm_input.c +5 -0
index a026b0e..54a0dc2 100644

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

sound/core/pcm_lib.c +24 -9
index f134130..3388442 100644

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

sound/pci/fm801.c +10 -5
index a7ec703..ecce948 100644

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

sound/pci/hda/patch_cirrus.c +1 -1
index 26a1521..fb6fbe4 100644

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

sound/pci/hda/patch_realtek.c +8 -5
index 524ff26..4c7cd6b 100644

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

sound/pci/hda/patch_sigmatel.c +2 -0
index 7f81cc2..5c42f3e 100644

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

sound/soc/blackfin/bf5xx-ad193x.c +2 -2
index d6651c0..2f0f836 100644

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

sound/soc/codecs/ad193x.c +2 -1
index 2374ca5..f1a8be5 100644

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

sound/soc/codecs/ad193x.h +3 -2
index 9747b54..cccc2e8 100644

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

sound/soc/codecs/ssm2602.c +2 -1
index 84f4ad5..9801cd7 100644

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

sound/soc/fsl/mpc5200_dma.c +3 -3
index fff695c..cbaf8b7 100644

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

sound/soc/omap/omap-mcbsp.c +6 -0
index 07b7723..4b82290 100644

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

sound/soc/soc-jack.c +2 -2
index 7c17b98..fa31d9c 100644

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

sound/usb/card.c +5 -2
index 220c616..57a8e2d 100644

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

tools/perf/util/symbol.c +2 -0
index eec1963..40fd1c7 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.

#2 lore raw
In reply to Greg KH

There's an error in 3.0.5:

# LANG=C make all

  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  CC      drivers/gpu/drm/radeon/r100.o

drivers/gpu/drm/radeon/r100.c: In function 'r100_copy_blit':
drivers/gpu/drm/radeon/r100.c:776:27: error: 'num_pages' undeclared (first use in this function) drivers/gpu/drm/radeon/r100.c:776:27: note: each undeclared identifier is reported only once for each function it appears in make[4]: *** [drivers/gpu/drm/radeon/r100.o] Error 1 make[3]: *** [drivers/gpu/drm/radeon] Error 2
make[2]: *** [drivers/gpu/drm] Error 2
make[1]: *** [drivers/gpu] Error 2
make: *** [drivers] Error 2

3.0.4 compiles just fine with the same config file.

Regards,
Sven Köhler

#3 lore raw
Quoted 18 lines · Sven Köhler

There's an error in 3.0.5:

# LANG=C make all
 CHK     include/linux/version.h
 CHK     include/generated/utsrelease.h
 CALL    scripts/checksyscalls.sh
 CHK     include/generated/compile.h
 CC      drivers/gpu/drm/radeon/r100.o drivers/gpu/drm/radeon/r100.c: In function 'r100_copy_blit':
drivers/gpu/drm/radeon/r100.c:776:27: error: 'num_pages' undeclared (first use in this function) drivers/gpu/drm/radeon/r100.c:776:27: note: each undeclared identifier is reported only once for each function it appears in make[4]: *** [drivers/gpu/drm/radeon/r100.o] Error 1 make[3]: *** [drivers/gpu/drm/radeon] Error 2
make[2]: *** [drivers/gpu/drm] Error 2
make[1]: *** [drivers/gpu] Error 2
make: *** [drivers] Error 2

Greg released 3.0.6 almost immediately after 3.0.5 to fix this issue.

josh