1. 09 1月, 2014 2 次提交
  2. 21 12月, 2013 4 次提交
    • F
      GenWQE: Accidently casting to u32 where u64 is required · a45a0258
      Frank Haverkamp 提交于
      Fix a casting to u32 where u64 would be appropriate.
      The bad casting made the driver unusable.
      Signed-off-by: NFrank Haverkamp <haver@linux.vnet.ibm.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a45a0258
    • A
      uio: fix devm_request_irq usage · 632fefaf
      Aaro Koskinen 提交于
      Commit e6789cd3 (uio: Simplify uio error
      path by using devres functions) converted uio to use devm_request_irq().
      This introduced a change in behaviour since the IRQ is associated with
      the parent device instead of the created UIO device. The IRQ will remain
      active after uio_unregister_device() is called, and some drivers will
      crash because of this. The patch fixes this.
      Signed-off-by: NAaro Koskinen <aaro.koskinen@nsn.com>
      Cc: stable <stable@vger.kernel.org> # 3.13
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      632fefaf
    • F
      GenWQE: Replace dynamic_hex_dump with print_hex_dump_debug · 65861ab4
      Frank Haverkamp 提交于
      As requested by Greg, replacing the hexdump function from dynamic_debug.h
      with one defined in printk.h. I hope I picked the right one.
      Signed-off-by: NFrank Haverkamp <haver@linux.vnet.ibm.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      65861ab4
    • F
      GenWQE: Fix endian issues detected by sparse · 58d66ce7
      Frank Haverkamp 提交于
      Fengguang Wu used CF=-D__CHECK_ENDIAN__ to check the GenWQE driver for
      endian issues. Sparse found a couple of those. Most of them were caused
      by not correctly handling __be64/32 and __u64/32. Those I was able to
      fix with appropriate castings.
      
      One more serious issue was the ATS entry in struct genwqe_ddcb_cmd.
      The kernel expected it in big-endian, but the type was defined __u64.
      I decided that it is better to keep the interface consistent using
      host endian byte-odering instead of having a mixture. With this change
      the kernel likes to see host endian byte order for the ATS entry. That
      would have been an interface change, if someone would have used the
      driver already. Since this is not the case, I hope it is ok to fix it
      now.
      
      For the genqwe_readq/writeq/readl/writel functions I enforced the casts.
      
      It still complains, as far as I can see, about some copy_to/from_user()
      usages:
      
        CHECK   char-misc/drivers/misc/genwqe/card_dev.c
      char-misc/arch/x86/include/asm/uaccess.h:625:18: warning: incorrect type in argument 1 (different modifiers)
      char-misc/arch/x86/include/asm/uaccess.h:625:18:    expected void *<noident>
      char-misc/arch/x86/include/asm/uaccess.h:625:18:    got void const *from
      char-misc/arch/x86/include/asm/uaccess.h:625:18: warning: incorrect type in argument 1 (different modifiers)
      char-misc/arch/x86/include/asm/uaccess.h:625:18:    expected void *<noident>
      char-misc/arch/x86/include/asm/uaccess.h:625:18:    got void const *from
      char-misc/arch/x86/include/asm/uaccess.h:625:18: warning: incorrect type in argument 1 (different modifiers)
      char-misc/arch/x86/include/asm/uaccess.h:625:18:    expected void *<noident>
      char-misc/arch/x86/include/asm/uaccess.h:625:18:    got void const *from
      char-misc/arch/x86/include/asm/uaccess.h:625:18: warning: incorrect type in argument 1 (different modifiers)
      char-misc/arch/x86/include/asm/uaccess.h:625:18:    expected void *<noident>
      char-misc/arch/x86/include/asm/uaccess.h:625:18:    got void const *from
        CC [M]  drivers/misc/genwqe/card_dev.o
        CHECK   char-misc/drivers/misc/genwqe/card_ddcb.c
      char-misc/arch/x86/include/asm/uaccess.h:625:18: warning: incorrect type in argument 1 (different modifiers)
      char-misc/arch/x86/include/asm/uaccess.h:625:18:    expected void *<noident>
      char-misc/arch/x86/include/asm/uaccess.h:625:18:    got void const *from
      char-misc/arch/x86/include/asm/uaccess.h:625:18: warning: incorrect type in argument 1 (different modifiers)
      char-misc/arch/x86/include/asm/uaccess.h:625:18:    expected void *<noident>
      char-misc/arch/x86/include/asm/uaccess.h:625:18:    got void const *from
        CC [M]  drivers/misc/genwqe/card_ddcb.o
        LD [M]  drivers/misc/genwqe/genwqe_card.o
      
      I appreciate some help from you to figure out what is causig those, and
      making a proposal how to fix them.
      
      I included the missing header file to fix the
      implicit-function-declaration warning when using dynamic_hex_dump.
      Signed-off-by: NFrank Haverkamp <haver@linux.vnet.ibm.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      58d66ce7
  3. 19 12月, 2013 28 次提交
  4. 17 12月, 2013 1 次提交
  5. 16 12月, 2013 5 次提交
    • L
      Linux 3.13-rc4 · 319e2e3f
      Linus Torvalds 提交于
      319e2e3f
    • M
      null_blk: mem garbage on NUMA systems during init · 57053d8c
      Matias Bjorling 提交于
      For NUMA systems, initializing the blk-mq layer and using per node hctx.
      We initialize submit queues to 1, while blk-mq nr_hw_queues is
      initialized to the number of NUMA nodes.
      
      This makes the null_init_hctx function overwrite memory outside of what
      it allocated.  In my case it lead to writing garbage into struct
      request_queue's mq_map.
      Signed-off-by: NMatias Bjorling <m@bjorling.me>
      Cc: Jens Axboe <axboe@kernel.dk>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      57053d8c
    • S
      radeon_pm: fix oops in hwmon_attributes_visible() and radeon_hwmon_show_temp_thresh() · e4158f1b
      Sergey Senozhatsky 提交于
      Since commit ec39f64b ("drm/radeon/dpm: Convert to use
      devm_hwmon_register_with_groups") radeon_hwmon_init() is using
      hwmon_device_register_with_groups(), which sets `rdev' as a device
      private driver_data, while hwmon_attributes_visible() and
      radeon_hwmon_show_temp_thresh() are still waiting for `drm_device'.
      
      Fix them by using dev_get_drvdata(), in order to avoid this oops:
      
        BUG: unable to handle kernel paging request at 0000000000001e28
        IP: [<ffffffffa02ae8b4>] hwmon_attributes_visible+0x18/0x3d [radeon]
        PGD 15057e067 PUD 151a8e067 PMD 0
        Oops: 0000 [#1] PREEMPT SMP
        Call Trace:
          internal_create_group+0x114/0x1d9
          sysfs_create_group+0xe/0x10
          sysfs_create_groups+0x22/0x5f
          device_add+0x34f/0x501
          device_register+0x15/0x18
          hwmon_device_register_with_groups+0xb5/0xed
          radeon_hwmon_init+0x56/0x7c [radeon]
          radeon_pm_init+0x134/0x7e5 [radeon]
          radeon_modeset_init+0x75f/0x8ed [radeon]
          radeon_driver_load_kms+0xc6/0x187 [radeon]
          drm_dev_register+0xf9/0x1b4 [drm]
          drm_get_pci_dev+0x98/0x129 [drm]
          radeon_pci_probe+0xa3/0xac [radeon]
          pci_device_probe+0x6e/0xcf
          driver_probe_device+0x98/0x1c4
          __driver_attach+0x5c/0x7e
          bus_for_each_dev+0x7b/0x85
          driver_attach+0x19/0x1b
          bus_add_driver+0x104/0x1ce
          driver_register+0x89/0xc5
          __pci_register_driver+0x58/0x5b
          drm_pci_init+0x86/0xea [drm]
          radeon_init+0x97/0x1000 [radeon]
          do_one_initcall+0x7f/0x117
          load_module+0x1583/0x1bb4
          SyS_init_module+0xa0/0xaf
      Signed-off-by: NSergey Senozhatsky <sergey.senozhatsky@gmail.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Alexander Deucher <Alexander.Deucher@amd.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e4158f1b
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 4a251dd2
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) Revert CHECKSUM_COMPLETE optimization in pskb_trim_rcsum(), I can't
          figure out why it breaks things.
      
       2) Fix comparison in netfilter ipset's hash_netnet4_data_equal(), it
          was basically doing "x == x", from Dave Jones.
      
       3) Freescale FEC driver was DMA mapping the wrong number of bytes, from
          Sebastian Siewior.
      
       4) Blackhole and prohibit routes in ipv6 were not doing the right thing
          because their ->input and ->output methods were not being assigned
          correctly.  Now they behave properly like their ipv4 counterparts.
          From Kamala R.
      
       5) Several drivers advertise the NETIF_F_FRAGLIST capability, but
          really do not support this feature and will send garbage packets if
          fed fraglist SKBs.  From Eric Dumazet.
      
       6) Fix long standing user triggerable BUG_ON over loopback in RDS
          protocol stack, from Venkat Venkatsubra.
      
       7) Several not so common code paths can potentially try to invoke
          packet scheduler actions that might be NULL without checking.  Shore
          things up by either 1) defining a method as mandatory and erroring
          on registration if that method is NULL 2) defininig a method as
          optional and the registration function hooks up a default
          implementation when NULL is seen.  From Jamal Hadi Salim.
      
       8) Fix fragment detection in xen-natback driver, from Paul Durrant.
      
       9) Kill dangling enter_memory_pressure method in cg_proto ops, from
          Eric W Biederman.
      
      10) SKBs that traverse namespaces should have their local_df cleared,
          from Hannes Frederic Sowa.
      
      11) IOCB file position is not being updated by macvtap_aio_read() and
          tun_chr_aio_read().  From Zhi Yong Wu.
      
      12) Don't free virtio_net netdev before releasing all of the NAPI
          instances.  From Andrey Vagin.
      
      13) Procfs entry leak in xt_hashlimit, from Sergey Popovich.
      
      14) IPv6 routes that are no cached routes should not count against the
          garbage collection limits.  We had this almost right, but were
          missing handling addrconf generated routes properly.  From Hannes
          Frederic Sowa.
      
      15) fib{4,6}_rule_suppress() have to consider potentially seeing NULL
          route info when they are called, from Stefan Tomanek.
      
      16) TUN and MACVTAP have had truncated packet signalling for some time,
          fix from Jason Wang.
      
      17) Fix use after frrr in __udp4_lib_rcv(), from Eric Dumazet.
      
      18) xen-netback does not interpret the NAPI budget properly for TX work,
          fix from Paul Durrant.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (132 commits)
        igb: Fix for issue where values could be too high for udelay function.
        i40e: fix null dereference
        xen-netback: fix gso_prefix check
        net: make neigh_priv_len in struct net_device 16bit instead of 8bit
        drivers: net: cpsw: fix for cpsw crash when build as modules
        xen-netback: napi: don't prematurely request a tx event
        xen-netback: napi: fix abuse of budget
        sch_tbf: use do_div() for 64-bit divide
        udp: ipv4: must add synchronization in udp_sk_rx_dst_set()
        net:fec: remove duplicate lines in comment about errata ERR006358
        Revert "8390 : Replace ei_debug with msg_enable/NETIF_MSG_* feature"
        8390 : Replace ei_debug with msg_enable/NETIF_MSG_* feature
        xen-netback: make sure skb linear area covers checksum field
        net: smc91x: Fix device tree based configuration so it's usable
        udp: ipv4: fix potential use after free in udp_v4_early_demux()
        macvtap: signal truncated packets
        tun: unbreak truncated packet signalling
        net: sched: htb: fix the calculation of quantum
        net: sched: tbf: fix the calculation of max_size
        micrel: add support for KSZ8041RNLI
        ...
      4a251dd2
    • L
      Merge branch 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 908bfda7
      Linus Torvalds 提交于
      Pull x86 fixes from Peter Anvin:
       "This is a pretty small batch:
      
        The biggest single change is to stop using EFI time services on 32-bit
        platforms.  This matches our current behavior on 64-bit platforms as
        we already had ruled them out there as being too unreliable.  Turns
        out that affects 32-bit platforms, too.
      
        One NULL pointer fix for SGI UV.
      
        Two minor build fixes, one of which only affects icc and the other
        which affects icc and future versions or nonstandard default settings
        of gcc"
      
      * 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, efi: Don't use (U)EFI time services on 32 bit
        x86, build, icc: Remove uninitialized_var() from compiler-intel.h
        x86/UV: Fix NULL pointer dereference in uv_flush_tlb_others() if the 'nobau' boot option is used
        x86, build: Pass in additional -mno-mmx, -mno-sse options
      908bfda7