1. 07 Oct, 2012 10 commits
    • Arnd Bergmann's avatar
      ARM: mv78xx0: correct addr_map_cfg __initdata annotation · edc9e333
      Arnd Bergmann authored
      The annotation on the addr_map_cfg variable is in the wrong place.
      
      Without this patch, building mv78xx0_defconfig results in:
      
      /home/arnd/linux-arm/arch/arm/mach-mv78xx0/addr-map.c:59:2: warning: initialization from incompatible pointer type [enabled by default]
      /home/arnd/linux-arm/arch/arm/mach-mv78xx0/addr-map.c:59:2: warning: (near initialization for 'addr_map_cfg.win_cfg_base') [enabled by default]
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Cc: Jason Cooper <jason@lakedaemon.net>
      edc9e333
    • Arnd Bergmann's avatar
      ARM: footbridge: remove RTC_IRQ definition · ec8e8208
      Arnd Bergmann authored
      Since commit bd8abc9a "ARM: mc146818rtc: remove unnecessary include of
      mach/irqs.h", building footbridge_defconfig results in this warning:
      
      In file included from include/linux/mc146818rtc.h:16:0,
                       from arch/arm/mach-footbridge/isa-rtc.c:21:
      arch/arm/include/asm/mc146818rtc.h:10:0: warning: "RTC_IRQ" redefined [enabled by default]
      arch/arm/mach-footbridge/include/mach/irqs.h:93:0: note: this is the location of the previous definition
      
      The above commit was intentionally made to catch errors like this,
      where code relies on the RTC_IRQ definition. The only driver using
      it is the legacy PC-style drivers/char/rtc.c driver.
      However, the ARM architecture has been using the RTC_LIB framework
      since at least 2006, and that doesn't use it.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Rob Herring <rob.herring@calxeda.com>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: rtc-linux@googlegroups.com
      Cc: Russell King <linux@arm.linux.org.uk>
      ec8e8208
    • Arnd Bergmann's avatar
      ARM: soc: dependency warnings for errata · 8f90cce5
      Arnd Bergmann authored
      The PL310_ERRATA_753970 and ARM_ERRATA_764369 symbols only make sense
      when the base features for them are enabled, so select them
      conditionally in Kconfig to avoid warnings like:
      
      warning: (UX500_SOC_COMMON) selects PL310_ERRATA_753970 which has unmet direct dependencies (CACHE_PL310)
      warning: (ARCH_TEGRA_2x_SOC && ARCH_TEGRA_3x_SOC && UX500_SOC_COMMON) selects ARM_ERRATA_764369 which has unmet direct dependencies (CPU_V7 && SMP)
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Acked-by: default avatarStephen Warren <swarren@nvidia.com>
      8f90cce5
    • Arnd Bergmann's avatar
      ARM: ks8695: __arch_virt_to_dma type handling · 113f7ae5
      Arnd Bergmann authored
      __arch_virt_to_dma expects a virtual address pointer, but
      the ks8695 implementation of this macro treats it as an
      integer. Adding a type cast avoids hundreds of identical
      warning messages.
      
      Without this patch, building acs5k_defconfig results in:
      
      arch/arm/include/asm/dma-mapping.h: In function 'virt_to_dma':
      arch/arm/include/asm/dma-mapping.h:60:2: warning: passing argument 1 of '__virt_to_phys' makes integer from pointer without a cast [enabled by default]
      arch/arm/include/asm/memory.h:172:60: note: expected 'long unsigned int' but argument is of type 'void *'
      In file included from include/linux/dma-mapping.h:73:0,
                       from include/linux/skbuff.h:33,
                       from security/commoncap.c:21:
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Krzysztof Halasa <khc@pm.waw.pl>
      Cc: Daniel Silverstone <dsilvers@simtec.co.uk>
      Cc: Ben Dooks <ben-linux@fluff.org>
      113f7ae5
    • Arnd Bergmann's avatar
      ARM: rpc: check device_register return code in ecard_probe · 5f07809e
      Arnd Bergmann authored
      device_register is marked __must_check, so we better propagate the error
      value by returning it from ecard_probe.
      
      Without this patch, building rpc_defconfig results in:
      
      arch/arm/mach-rpc/ecard.c: In function 'ecard_probe':
      arch/arm/mach-rpc/ecard.c:963:17: warning: ignoring return value of 'device_register', declared with attribute warn_unused_result [-Wunused-result]
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      5f07809e
    • Arnd Bergmann's avatar
      ARM: davinci: don't mark da850_register_cpufreq as __init · 5063557a
      Arnd Bergmann authored
      The mityomapl138_cpufreq_init and read_factory_config function in
      board-mityomapl138.c are not __init functions and might be called
      at a later stage, so da850_register_cpufreq must not be __init either.
      
      Without this patch, building da8xx_omapl_defconfig results in:
      
      WARNING: arch/arm/mach-davinci/built-in.o(.text+0x2eb4): Section mismatch in reference from the function read_factory_config() to the function .init.text:da850_register_cpufreq()
      The function read_factory_config() references
      the function __init da850_register_cpufreq().
      This is often because read_factory_config lacks a __init
      annotation or the annotation of da850_register_cpufreq is wrong.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarSekhar Nori <nsekhar@ti.com>
      Cc: Kevin Hilman <khilman@ti.com>
      5063557a
    • Arnd Bergmann's avatar
      ARM: iop13xx: fix iq81340sc_atux_map_irq prototype · 58cbdbe0
      Arnd Bergmann authored
      The pci map_irq callbacks get a 'const' pci_dev argument, so change the
      iop13xx version to use the same prototype as everything else.
      
      Without this patch, building iop13xx_defconfig results in:
      
      arch/arm/mach-iop13xx/iq81340sc.c:63:2: warning: initialization from incompatible pointer type [enabled by default]
      arch/arm/mach-iop13xx/iq81340sc.c:63:2: warning: (near initialization for 'iq81340sc_pci.map_irq') [enabled by default]
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Lennert Buytenhek <kernel@wantstofly.org>
      Cc: Dan Williams <djbw@fb.com>
      58cbdbe0
    • Arnd Bergmann's avatar
      ARM: iop13xx: mark iop13xx_scan_bus as __devinit · b04e246a
      Arnd Bergmann authored
      pci_scan_root_bus is __devinit, so iop13xx_scan_bus has to be the
      same in order to safely call it. This is ok because the function
      itself is only called from the hwpci->scan callback.
      
      WARNING: vmlinux.o(.text+0x10138): Section mismatch in reference from the function iop13xx_scan_bus() to the function .devinit.text:pci_scan_root_bus()
      The function iop13xx_scan_bus() references
      the function __devinit pci_scan_root_bus().
      This is often because iop13xx_scan_bus lacks a __devinit
      annotation or the annotation of pci_scan_root_bus is wrong.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Lennert Buytenhek <kernel@wantstofly.org>
      Cc: Dan Williams <djbw@fb.com>
      b04e246a
    • Arnd Bergmann's avatar
      ARM: mv78xx0: mark mv78xx0_timer_init as __init_refok · e7215fb3
      Arnd Bergmann authored
      The sys_timer init function is only called at __init time,
      so it's safe to mark mv78xx0_timer_init as __init_refok,
      which allows us to call orion_time_init without getting
      a link time warning.
      
      Without this patch, building mv78xx0_defconfig results in:
      
      WARNING: vmlinux.o(.text+0x15470): Section mismatch in reference from the function mv78xx0_timer_init() to the function .init.text:orion_time_init()
      The function mv78xx0_timer_init() references
      the function __init orion_time_init().
      This is often because mv78xx0_timer_init lacks a __init
      annotation or the annotation of orion_time_init is wrong.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Andrew Lunn <andrew@lunn.ch>
      e7215fb3
    • Arnd Bergmann's avatar
      ARM: s3c24xx: fix multiple section mismatch warnings · 673550a1
      Arnd Bergmann authored
      The *_irq_add function should not be marked __init because the driver
      subsystem thinks they might be called at a later stage.
      
      The usb_simtec_init function accesses initdata and should be marked
      init. This is safe because the only caller is also an init function.
      
      Without this patch, building s3c2410_defconfig results in:
      
      WARNING: arch/arm/mach-s3c24xx/built-in.o(.data+0x1030): Section mismatch in reference from the variable s3c2416_irq_interface to the function .init.text:s3c2416_irq_add()
      The variable s3c2416_irq_interface references
      the function __init s3c2416_irq_add()
      If the reference is valid then annotate the
      variable with __init* or __refdata (see linux/init.h) or name the variable:
      *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
      
      WARNING: arch/arm/mach-s3c24xx/built-in.o(.data+0x1b08): Section mismatch in reference from the variable s3c2443_irq_interface to the function .init.text:s3c2443_irq_add()
      The variable s3c2443_irq_interface references
      the function __init s3c2443_irq_add()
      If the reference is valid then annotate the
      variable with __init* or __refdata (see linux/init.h) or name the variable:
      *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
      
      WARNING: arch/arm/mach-s3c24xx/built-in.o(.data+0xf44): Section mismatch in reference from the variable s3c2416_irq_interface to the function .init.text:s3c2416_irq_add()
      The variable s3c2416_irq_interface references
      the function __init s3c2416_irq_add()
      If the reference is valid then annotate the
      variable with __init* or __refdata (see linux/init.h) or name the variable:
      *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
      
      WARNING: arch/arm/mach-s3c24xx/built-in.o(.text+0x3f7c): Section mismatch in reference from the function usb_simtec_init() to the (unknown reference) .init.data:(unknown)
      The function usb_simtec_init() references
      the (unknown reference) __initdata (unknown).
      This is often because usb_simtec_init lacks a __initdata
      annotation or the annotation of (unknown) is wrong.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Ben Dooks <ben-linux@fluff.org>
      Cc: Kukjin Kim <kgene.kim@samsung.com>
      673550a1
  2. 04 Oct, 2012 7 commits
    • Arnd Bergmann's avatar
      ARM: at91: unused variable in at91_pm_verify_clocks · 9e0e4e11
      Arnd Bergmann authored
      The code using the variable 'i' in this function is conditional which
      results in a harmless compiler warning. Using the IS_ENABLED macro
      instead of #ifdef makes the code look nicer and gets rid of the
      warning.
      
      Without this patch, building at91sam9263_defconfig results in:
      
      /home/arnd/linux-arm/arch/arm/mach-at91/pm.c: In function 'at91_pm_verify_clocks':
      /home/arnd/linux-arm/arch/arm/mach-at91/pm.c:137:6: warning: unused variable 'i' [-Wunused-variable]
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
      Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
      9e0e4e11
    • Arnd Bergmann's avatar
      ARM: at91: skip at91_io_desc definition for NOMMU · ac09281a
      Arnd Bergmann authored
      On NOMMU systems, we do cannot remap the MMIO space, so the
      definition of at91_io_desc is unused.
      
      Without this patch, building at91x40_defconfig results in:
      
      arch/arm/mach-at91/setup.c:90:24: warning: 'at91_io_desc' defined but not used [-Wunused-variable]
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
      Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
      ac09281a
    • Arnd Bergmann's avatar
      ARM: pxa: work around duplicate definition of GPIO24_SSP1_SFRM · e0347c52
      Arnd Bergmann authored
      The symbol "GPIO24_SSP1_SFRM" is defined in both mfp-pxa27x.h and
      mfp-pxa25x.h. Since the macro is not actually used in the cm-x2xx.c
      file, but it includes both headers, a safe workaround should be
      to just undefine it from the .c file. This is a bit hacky and
      the headers should be fixed to not both define it, but for now
      it gets us around an annoying warning.
      
      Without this patch, building cm_x2xx_defconfig results in:
      
      In file included from arch/arm/mach-pxa/include/mach-pxa/pxa27x.h:7:0,
                       from arch/arm/mach-pxa/cm-x2xx.c:25:
      arch/arm/mach-pxa/include/mach-pxa/mfp-pxa27x.h:215:0: warning: "GPIO24_SSP1_SFRM" redefined [enabled by default]
      arch/arm/mach-pxa/include/mach-pxa/mfp-pxa25x.h:111:0: note: this is the location of the previous definition
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarIgor Grinberg <grinberg@compulab.co.il>
      Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
      Cc: Mike Rapoport <mike@compulab.co.il>
      e0347c52
    • Arnd Bergmann's avatar
      ARM: pxa: remove sharpsl_fatal_check function · 066258f4
      Arnd Bergmann authored
      The sharpsl_fatal_check has not been used since Pavel Machek removed
      the caller in 99f329a2 "pxa/sharpsl_pm: zaurus c3000 aka spitz: fix
      resume". Nobody has complained since 2009, so it's safe to assume we
      can just remove the function.
      
      Without this patch, building corgi_defconfig results in:
      
      /home/arnd/linux-arm/arch/arm/mach-pxa/sharpsl_pm.c:693:12: warning: 'sharpsl_fatal_check' defined but not used [-Wunused-function]
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: Stanislav Brabec <utx@penguin.cz>
      Cc: Eric Miao <eric.y.miao@gmail.com>
      Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
      066258f4
    • Arnd Bergmann's avatar
      ARM: pxa: define palmte2_pxa_keys conditionally · 30bda0eb
      Arnd Bergmann authored
      Gcc prints a harmless warning about palmte2_pxa_keys not being used
      when the gpio keyboard driver is disabled. The solution is to use
      the same #ifdef that is already present in the place where the
      symbol is used.
      
      Without this patch, building palmz72_defconfig results in:
      
      /home/arnd/linux-arm/arch/arm/mach-pxa/palmte2.c:128:31: warning: 'palmte2_pxa_keys' defined but not used [-Wunused-variable]
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarMarek Vasut <marek.vasut@gmail.com>
      Cc: Carlos Eduardo Medaglia Dyonisio <cadu@nerdfeliz.com>
      Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
      Cc: Eric Miao <eric.y.miao@gmail.com>
      30bda0eb
    • Arnd Bergmann's avatar
      ARM: pxa: Wunused-result warning in viper board file · 5f0cc6d1
      Arnd Bergmann authored
      Calling kstrtoul requires checking the result. In case of
      the viper_tpm_setup function, let's fail the __setup function
      if the number was invalid.
      
      Without this patch, building viper_defconfig results in:
      
      arch/arm/mach-pxa/viper.c: In function 'viper_tpm_setup':
      arch/arm/mach-pxa/viper.c:771:10: warning: ignoring return value of 'kstrtoul', declared with attribute warn_unused_result [-Wunused-result]
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarMarc Zyngier <maz@misterjones.org>
      Cc: Haojian Zhuang <haojian.zhuang@marvell.com>
      Cc: Eric Miao <eric.y.miao@gmail.com>
      5f0cc6d1
    • Arnd Bergmann's avatar
      ARM: shark: fix shark_pci_init return code · 9c7f4f5c
      Arnd Bergmann authored
      When run on the wrong platform, the shark_pci_init function
      returns an undefined value, as reported by a gcc warning,
      so let's just return -ENODEV.
      
      Without this patch, building shark_defconfig results in:
      
      arch/arm/mach-shark/pci.c: In function 'shark_pci_init':
      arch/arm/mach-shark/pci.c:42:3: warning: 'return' with no value, in function returning non-void [-Wreturn-type]
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: "Krzysztof Halasa" <khc@pm.waw.pl>
      9c7f4f5c
  3. 30 Sep, 2012 2 commits
    • Linus Torvalds's avatar
      Linux 3.6 · a0d271cb
      Linus Torvalds authored
      a0d271cb
    • Miklos Szeredi's avatar
      vfs: dcache: fix deadlock in tree traversal · 8110e16d
      Miklos Szeredi authored
      IBM reported a deadlock in select_parent().  This was found to be caused
      by taking rename_lock when already locked when restarting the tree
      traversal.
      
      There are two cases when the traversal needs to be restarted:
      
       1) concurrent d_move(); this can only happen when not already locked,
          since taking rename_lock protects against concurrent d_move().
      
       2) racing with final d_put() on child just at the moment of ascending
          to parent; rename_lock doesn't protect against this rare race, so it
          can happen when already locked.
      
      Because of case 2, we need to be able to handle restarting the traversal
      when rename_lock is already held.  This patch fixes all three callers of
      try_to_ascend().
      
      IBM reported that the deadlock is gone with this patch.
      
      [ I rewrote the patch to be smaller and just do the "goto again" if the
        lock was already held, but credit goes to Miklos for the real work.
         - Linus ]
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      Cc: Al Viro <viro@ZenIV.linux.org.uk>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8110e16d
  4. 29 Sep, 2012 2 commits
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-v3.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 6a3e3dbe
      Linus Torvalds authored
      Pull IOMMU fixes from Joerg Roedel:
       "Two small patches:
      
      	* One patch to fix the function declarations for
      	  !CONFIG_IOMMU_API. This is causing build errors
      	  in linux-next and should be fixed for v3.6.
      
      	* Another patch to fix an IOMMU group related NULL pointer
      	  dereference."
      
      * tag 'iommu-fixes-v3.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/amd: Fix wrong assumption in iommu-group specific code
        iommu: static inline iommu group stub functions
      6a3e3dbe
    • Linus Torvalds's avatar
      Merge git://git.infradead.org/users/willy/linux-nvme · 21e98932
      Linus Torvalds authored
      Pull NVMe driver fixes from Matthew Wilcox:
       "Now that actual hardware has been released (don't have any yet
        myself), people are starting to want some of these fixes merged."
      
      Willy doesn't have hardware? Guys...
      
      * git://git.infradead.org/users/willy/linux-nvme:
        NVMe: Cancel outstanding IOs on queue deletion
        NVMe: Free admin queue memory on initialisation failure
        NVMe: Use ida for nvme device instance
        NVMe: Fix whitespace damage in nvme_init
        NVMe: handle allocation failure in nvme_map_user_pages()
        NVMe: Fix uninitialized iod compiler warning
        NVMe: Do not set IO queue depth beyond device max
        NVMe: Set block queue max sectors
        NVMe: use namespace id for nvme_get_features
        NVMe: replace nvme_ns with nvme_dev for user admin
        NVMe: Fix nvme module init when nvme_major is set
        NVMe: Set request queue logical block size
      21e98932
  5. 28 Sep, 2012 8 commits
  6. 27 Sep, 2012 11 commits
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 63994137
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "The three nouveau fixes quiten unneeded dmesg spam that people are
         seeing and pondering,
      
        The udl fix stops it from trying to driver monitors that are too big,
        where we get a black screen.
      
        And a vmware memory alloc problem."
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/nvc0/fifo: ignore bits in PFIFO_INTR that aren't set in PFIFO_INTR_EN
        drm/udl: limit modes to the sku pixel limits.
        vmwgfx: corruption in vmw_event_fence_action_create()
        drm/nvc0/ltcg: mask off intr 0x10
        drm/nouveau: silence a debug message triggered by newer userspace
      63994137
    • Linus Torvalds's avatar
      Merge tag 'usb-3.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · a31fb698
      Linus Torvalds authored
      Pull USB fixes from Greg Kroah-Hartman:
       "Here are two USB bugfixes for your 3.6-rc7 tree.
      
        The OHCI fix has been reported a number of times and is a regression
        from 3.5, and the patch that causes the regression was on the way to
        the -stable trees before I was reminded (again) that this fix needed
        to get to your tree soon.
      
        The host controller bugfix was reported in older kernels as being
        pretty easy to trigger, and has been tested by Red Hat and their
        customers.
      
        Both have been in the usb-next branch in the -next tree for a while
        now, I just cherry-picked them out to get to you in time for the 3.6
        release.
      
        Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>"
      
      * tag 'usb-3.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        USB: Fix race condition when removing host controllers
        USB: ohci-at91: fix null pointer in ohci_hcd_at91_overcurrent_irq
      a31fb698
    • Daniel Mack's avatar
      ALSA: snd-usb: fix next_packet_size calls for pause case · 8dce30c8
      Daniel Mack authored
      Also fix the calls to next_packet_size() for the pause case. This was
      missed in 245baf98 ("ALSA: snd-usb: fix calls to next_packet_size").
      Signed-off-by: default avatarDaniel Mack <zonque@gmail.com>
      Reviewed-by: default avatarTakashi Iwai <tiwai@suse.de>
      Reported-and-tested-by: default avatarChristian Tefzer <ctrefzer@gmx.de>
      Cc: stable@kernel.org
      [ Taking directly because Takashi is on vacation  - Linus ]
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8dce30c8
    • Linus Torvalds's avatar
      Merge tag 'asoc-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound · 9a7c5909
      Linus Torvalds authored
      Pull ASoC update from Mark Brown:
       "One small and obvious driver-specific fix.
      
        Takashi is on vacation now so he asked me to send directly, it's a
        pretty bad bug with low regression risk."
      
      * tag 'asoc-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound:
        ASoC: wm2000: Correct register size
      9a7c5909
    • Nicolas Dichtel's avatar
      inetpeer: fix token initialization · bc9259a8
      Nicolas Dichtel authored
      When jiffies wraps around (for example, 5 minutes after the boot, see
      INITIAL_JIFFIES) and peer has just been created, now - peer->rate_last can be
      < XRLIM_BURST_FACTOR * timeout, so token is not set to the maximum value, thus
      some icmp packets can be unexpectedly dropped.
      
      Fix this case by initializing last_rate to 60 seconds in the past.
      Signed-off-by: default avatarNicolas Dichtel <nicolas.dichtel@6wind.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bc9259a8
    • Narendra K's avatar
      qlcnic: Fix scheduling while atomic bug · 68b3f28c
      Narendra K authored
      In the device close path, 'qlcnic_fw_destroy_ctx' and
      'qlcnic_poll_rsp' call msleep. But  'qlcnic_fw_destroy_ctx' and
      'qlcnic_poll_rsp' are called with 'adapter->tx_clean_lock' spin lock
      held resulting in scheduling while atomic bug causing the following
      trace.
      
      I observed that the commit 012dc19a
      from John Fastabend addresses a similar issue in ixgbevf driver.
      Adopting the same approach used in the commit, this patch uses mdelay
      to address the issue.
      
      [79884.999115] BUG: scheduling while atomic: ip/30846/0x00000002
      [79885.005562] INFO: lockdep is turned off.
      [79885.009958] Modules linked in: qlcnic fuse nf_conntrack_netbios_ns nf_conntrack_broadcast ipt_MASQUERADE bnep bluetooth rfkill ip6table_mangle ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter ip6_tables iptable_nat nf_nat iptable_mangle ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack iptable_filter ip_tables dcdbas coretemp kvm_intel kvm iTCO_wdt ixgbe iTCO_vendor_support crc32c_intel ghash_clmulni_intel nfsd microcode sb_edac pcspkr edac_core dca bnx2x shpchp auth_rpcgss nfs_acl lpc_ich mfd_core mdio lockd libcrc32c wmi acpi_pad acpi_power_meter sunrpc uinput sd_mod sr_mod cdrom crc_t10dif ahci libahci libata megaraid_sas usb_storage dm_mirror dm_region_hash dm_log dm_mod [last unloaded: qlcnic]
      [79885.083608] Pid: 30846, comm: ip Tainted: G        W  O 3.6.0-rc7+ #1
      [79885.090805] Call Trace:
      [79885.093569]  [<ffffffff816764d8>] __schedule_bug+0x68/0x76
      [79885.099699]  [<ffffffff8168358e>] __schedule+0x99e/0xa00
      [79885.105634]  [<ffffffff81683929>] schedule+0x29/0x70
      [79885.111186]  [<ffffffff81680def>] schedule_timeout+0x16f/0x350
      [79885.117724]  [<ffffffff811afb7a>] ? init_object+0x4a/0x90
      [79885.123770]  [<ffffffff8107c190>] ? __internal_add_timer+0x140/0x140
      [79885.130873]  [<ffffffff81680fee>] schedule_timeout_uninterruptible+0x1e/0x20
      [79885.138773]  [<ffffffff8107e830>] msleep+0x20/0x30
      [79885.144159]  [<ffffffffa04c7fbf>] qlcnic_issue_cmd+0xef/0x290 [qlcnic]
      [79885.151478]  [<ffffffffa04c8265>] qlcnic_fw_cmd_destroy_rx_ctx+0x55/0x90 [qlcnic]
      [79885.159868]  [<ffffffffa04c92fd>] qlcnic_fw_destroy_ctx+0x2d/0xa0 [qlcnic]
      [79885.167576]  [<ffffffffa04bf2ed>] __qlcnic_down+0x11d/0x180 [qlcnic]
      [79885.174708]  [<ffffffffa04bf6f8>] qlcnic_close+0x18/0x20 [qlcnic]
      [79885.181547]  [<ffffffff8153b4c5>] __dev_close_many+0x95/0xe0
      [79885.187899]  [<ffffffff8153b548>] __dev_close+0x38/0x50
      [79885.193761]  [<ffffffff81545101>] __dev_change_flags+0xa1/0x180
      [79885.200419]  [<ffffffff81545298>] dev_change_flags+0x28/0x70
      [79885.206779]  [<ffffffff815531b8>] do_setlink+0x378/0xa00
      [79885.212731]  [<ffffffff81354fe1>] ? nla_parse+0x31/0xe0
      [79885.218612]  [<ffffffff815558ee>] rtnl_newlink+0x37e/0x560
      [79885.224768]  [<ffffffff812cfa19>] ? selinux_capable+0x39/0x50
      [79885.231217]  [<ffffffff812cbf98>] ? security_capable+0x18/0x20
      [79885.237765]  [<ffffffff81555114>] rtnetlink_rcv_msg+0x114/0x2f0
      [79885.244412]  [<ffffffff81551f87>] ? rtnl_lock+0x17/0x20
      [79885.250280]  [<ffffffff81551f87>] ? rtnl_lock+0x17/0x20
      [79885.256148]  [<ffffffff81555000>] ? __rtnl_unlock+0x20/0x20
      [79885.262413]  [<ffffffff81570fc1>] netlink_rcv_skb+0xa1/0xb0
      [79885.268661]  [<ffffffff81551fb5>] rtnetlink_rcv+0x25/0x40
      [79885.274727]  [<ffffffff815708bd>] netlink_unicast+0x19d/0x220
      [79885.281146]  [<ffffffff81570c45>] netlink_sendmsg+0x305/0x3f0
      [79885.287595]  [<ffffffff8152b188>] ? sock_update_classid+0x148/0x2e0
      [79885.294650]  [<ffffffff81525c2c>] sock_sendmsg+0xbc/0xf0
      [79885.300600]  [<ffffffff8152600c>] __sys_sendmsg+0x3ac/0x3c0
      [79885.306853]  [<ffffffff8109be23>] ? up_read+0x23/0x40
      [79885.312510]  [<ffffffff816896cc>] ? do_page_fault+0x2bc/0x570
      [79885.318968]  [<ffffffff81191854>] ? sys_brk+0x44/0x150
      [79885.324715]  [<ffffffff811c458c>] ? fget_light+0x24c/0x520
      [79885.330875]  [<ffffffff815286f9>] sys_sendmsg+0x49/0x90
      [79885.336707]  [<ffffffff8168e429>] system_call_fastpath+0x16/0x1b
      Signed-off-by: default avatarNarendra K <narendra_k@dell.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      68b3f28c
    • Neil Horman's avatar
      bnx2: Clean up remaining iounmap · 64f605c7
      Neil Horman authored
      commit c0357e97 modified bnx2 to switch from
      using ioremap/iounmap to pci_iomap/pci_iounmap.  They missed a spot in the error
      path of bnx2_init_one though.  This patch just cleans that up.
      Signed-off-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      CC: Michael Chan <mcan@broadcom.com>
      CC: "David S. Miller" <davem@davemloft.net>
      Acked-by: default avatarMichael Chan <mchan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      64f605c7
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · e556cb3e
      Linus Torvalds authored
      Pull one more arm-soc bugfix from Olof Johansson:
       "Here's a bugfix for orion5x.  Without this, PCI doesn't initialize
        properly because of too small coherent pool to cover the allocations
        needed.
      
        A similar fix has already been done on kirkwood."
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: Orion5x: Fix too small coherent pool.
      e556cb3e
    • Linus Torvalds's avatar
      Merge branch 'fixes-for-3.6' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping · b56adb54
      Linus Torvalds authored
      Pull ARM dma-mapping fix from Marek Szyprowski:
       "This patch fixes a potential memory leak in the ARM dma-mapping code."
      
      * 'fixes-for-3.6' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping:
        ARM: dma-mapping: Fix potential memory leak in atomic_pool_init()
      b56adb54
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-v3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 39618435
      Linus Torvalds authored
      Pull GPIO fix from Linus Walleij:
       "A late GPIO fix: Roland Stigge found a problem in the LPC32xx driver
        where a callback ignores one of its arguments.  It needs to go into
        stable too so sending this upstream immediately."
      
      * tag 'gpio-fixes-v3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
        gpio-lpc32xx: Fix value handling of gpio_direction_output()
      39618435
    • Linus Torvalds's avatar
      Merge tag 'md-3.6-fixes' of git://neil.brown.name/md · d1d4bb9c
      Linus Torvalds authored
      Pull two md bugfixes from NeilBrown:
       "One (missing spinlock init) was only introduced recently.  The other
        has been present as long as raid10 has been supported, so is tagged
        for -stable."
      
      * tag 'md-3.6-fixes' of git://neil.brown.name/md:
        md/raid10: fix "enough" function for detecting if array is failed.
        md/raid5: add missing spin_lock_init.
      d1d4bb9c