1. 13 7月, 2013 7 次提交
    • N
      via-rhine: fix dma mapping errors · 9b4fe5fb
      Neil Horman 提交于
      this bug:
      https://bugzilla.redhat.com/show_bug.cgi?id=951695
      
      Reported a dma debug backtrace:
      
      WARNING: at lib/dma-debug.c:937 check_unmap+0x47d/0x930()
      Hardware name: To Be Filled By O.E.M.
      via-rhine 0000:00:12.0: DMA-API: device driver failed to check map error[device
      address=0x0000000075a837b2] [size=90 bytes] [mapped as single]
      Modules linked in: ip6_tables gspca_spca561 gspca_main videodev media
      snd_hda_codec_realtek snd_hda_intel i2c_viapro snd_hda_codec snd_hwdep snd_seq
      ppdev mperf via_rhine coretemp snd_pcm mii microcode snd_page_alloc snd_timer
      snd_mpu401 snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore parport_pc
      parport shpchp ata_generic pata_acpi radeon i2c_algo_bit drm_kms_helper ttm drm
      pata_via sata_via i2c_core uinput
      Pid: 295, comm: systemd-journal Not tainted 3.9.0-0.rc6.git2.1.fc20.x86_64 #1
      Call Trace:
       <IRQ>  [<ffffffff81068dd0>] warn_slowpath_common+0x70/0xa0
       [<ffffffff81068e4c>] warn_slowpath_fmt+0x4c/0x50
       [<ffffffff8137ec6d>] check_unmap+0x47d/0x930
       [<ffffffff810ace9f>] ? local_clock+0x5f/0x70
       [<ffffffff8137f17f>] debug_dma_unmap_page+0x5f/0x70
       [<ffffffffa0225edc>] ? rhine_ack_events.isra.14+0x3c/0x50 [via_rhine]
       [<ffffffffa02275f8>] rhine_napipoll+0x1d8/0xd80 [via_rhine]
       [<ffffffff815d3d51>] ? net_rx_action+0xa1/0x380
       [<ffffffff815d3e22>] net_rx_action+0x172/0x380
       [<ffffffff8107345f>] __do_softirq+0xff/0x400
       [<ffffffff81073925>] irq_exit+0xb5/0xc0
       [<ffffffff81724cd6>] do_IRQ+0x56/0xc0
       [<ffffffff81719ff2>] common_interrupt+0x72/0x72
       <EOI>  [<ffffffff8170ff57>] ? __slab_alloc+0x4c2/0x526
       [<ffffffff811992e0>] ? mmap_region+0x2b0/0x5a0
       [<ffffffff810d5807>] ? __lock_is_held+0x57/0x80
       [<ffffffff811992e0>] ? mmap_region+0x2b0/0x5a0
       [<ffffffff811bf1bf>] kmem_cache_alloc+0x2df/0x360
       [<ffffffff811992e0>] mmap_region+0x2b0/0x5a0
       [<ffffffff811998e6>] do_mmap_pgoff+0x316/0x3d0
       [<ffffffff81183ca0>] vm_mmap_pgoff+0x90/0xc0
       [<ffffffff81197d6c>] sys_mmap_pgoff+0x4c/0x190
       [<ffffffff81367d7e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
       [<ffffffff8101eb42>] sys_mmap+0x22/0x30
       [<ffffffff81722fd9>] system_call_fastpath+0x16/0x1b
      
      Usual problem with the usual fix, add the appropriate calls to dma_mapping_error
      where appropriate
      
      Untested, as I don't have hardware, but its pretty straightforward
      Signed-off-by: NNeil Horman <nhorman@tuxdriver.com>
      CC: David S. Miller <davem@davemloft.net>
      CC: Roger Luethi <rl@hellgate.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9b4fe5fb
    • N
      atl1e: fix dma mapping warnings · 352900b5
      Neil Horman 提交于
      Recently had this backtrace reported:
      WARNING: at lib/dma-debug.c:937 check_unmap+0x47d/0x930()
      Hardware name: System Product Name
      ATL1E 0000:02:00.0: DMA-API: device driver failed to check map error[device
      address=0x00000000cbfd1000] [size=90 bytes] [mapped as single]
      Modules linked in: xt_conntrack nf_conntrack ebtable_filter ebtables
      ip6table_filter ip6_tables snd_hda_codec_hdmi snd_hda_codec_realtek iTCO_wdt
      iTCO_vendor_support snd_hda_intel acpi_cpufreq mperf coretemp btrfs zlib_deflate
      snd_hda_codec snd_hwdep microcode raid6_pq libcrc32c snd_seq usblp serio_raw xor
      snd_seq_device joydev snd_pcm snd_page_alloc snd_timer snd lpc_ich i2c_i801
      soundcore mfd_core atl1e asus_atk0110 ata_generic pata_acpi radeon i2c_algo_bit
      drm_kms_helper ttm drm i2c_core pata_marvell uinput
      Pid: 314, comm: systemd-journal Not tainted 3.9.0-0.rc6.git2.3.fc19.x86_64 #1
      Call Trace:
       <IRQ>  [<ffffffff81069106>] warn_slowpath_common+0x66/0x80
       [<ffffffff8106916c>] warn_slowpath_fmt+0x4c/0x50
       [<ffffffff8138151d>] check_unmap+0x47d/0x930
       [<ffffffff810ad048>] ? sched_clock_cpu+0xa8/0x100
       [<ffffffff81381a2f>] debug_dma_unmap_page+0x5f/0x70
       [<ffffffff8137ce30>] ? unmap_single+0x20/0x30
       [<ffffffffa01569a1>] atl1e_intr+0x3a1/0x5b0 [atl1e]
       [<ffffffff810d53fd>] ? trace_hardirqs_off+0xd/0x10
       [<ffffffff81119636>] handle_irq_event_percpu+0x56/0x390
       [<ffffffff811199ad>] handle_irq_event+0x3d/0x60
       [<ffffffff8111cb6a>] handle_fasteoi_irq+0x5a/0x100
       [<ffffffff8101c36f>] handle_irq+0xbf/0x150
       [<ffffffff811dcb2f>] ? file_sb_list_del+0x3f/0x50
       [<ffffffff81073b10>] ? irq_enter+0x50/0xa0
       [<ffffffff8172738d>] do_IRQ+0x4d/0xc0
       [<ffffffff811dcb2f>] ? file_sb_list_del+0x3f/0x50
       [<ffffffff8171c6b2>] common_interrupt+0x72/0x72
       <EOI>  [<ffffffff810db5b2>] ? lock_release+0xc2/0x310
       [<ffffffff8109ea04>] lg_local_unlock_cpu+0x24/0x50
       [<ffffffff811dcb2f>] file_sb_list_del+0x3f/0x50
       [<ffffffff811dcb6d>] fput+0x2d/0xc0
       [<ffffffff811d8ea1>] filp_close+0x61/0x90
       [<ffffffff811fae4d>] __close_fd+0x8d/0x150
       [<ffffffff811d8ef0>] sys_close+0x20/0x50
       [<ffffffff81725699>] system_call_fastpath+0x16/0x1b
      
      The usual straighforward failure to check for dma_mapping_error after a map
      operation is completed.
      
      This patch should fix it, the reporter wandered off after filing this bz:
      https://bugzilla.redhat.com/show_bug.cgi?id=954170
      
      and I don't have hardware to test, but the fix is pretty straightforward, so I
      figured I'd post it for review.
      Signed-off-by: NNeil Horman <nhorman@tuxdriver.com>
      CC: Jay Cliburn <jcliburn@gmail.com>
      CC: Chris Snook <chris.snook@gmail.com>
      CC: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      352900b5
    • Y
      tcp: account all retransmit failures · 24ab6bec
      Yuchung Cheng 提交于
      Change snmp RETRANSFAILS stat to include timeout retransmit failures
      in addition to other loss recoveries.
      Signed-off-by: NYuchung Cheng <ycheng@google.com>
      Acked-by: NNeal Cardwell <ncardwell@google.com>
      Acked-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      24ab6bec
    • H
      usb/net/r815x: fix cast to restricted __le32 · e7638524
      hayeswang 提交于
      >> drivers/net/usb/r815x.c:38:16: sparse: cast to restricted __le32
      >> drivers/net/usb/r815x.c:67:15: sparse: cast to restricted __le32
      >> drivers/net/usb/r815x.c:69:13: sparse: incorrect type in assignment (different base types)
         drivers/net/usb/r815x.c:69:13:    expected unsigned int [unsigned] [addressable] [assigned] [usertype] tmp
         drivers/net/usb/r815x.c:69:13:    got restricted __le32 [usertype] <noident>
      Signed-off-by: NHayes Wang <hayeswang@realtek.com>
      Spotted-by: Nkbuild test robot <fengguang.wu@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e7638524
    • H
      usb/net/r8152: fix integer overflow in expression · 3ff25e3c
      hayeswang 提交于
      config: make ARCH=avr32 allyesconfig
      drivers/net/usb/r8152.c: In function 'rtl8152_start_xmit':
      drivers/net/usb/r8152.c:956: warning: integer overflow in expression
      
         955	memset(tx_desc, 0, sizeof(*tx_desc));
       > 956	tx_desc->opts1 = cpu_to_le32((len & TX_LEN_MASK) | TX_FS | TX_LS);
         957	tp->tx_skb = skb;
      Signed-off-by: NHayes Wang <hayeswang@realtek.com>
      Spotted-by: Nkbuild test robot <fengguang.wu@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3ff25e3c
    • S
      40dadff2
    • net: strict_strtoul is obsolete, use kstrtoul instead · 92338dc2
      “Cosmin 提交于
      patch found using checkpatch.pl
      Signed-off-by: NCosmin Stanescu <cosmin90stanescu@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      92338dc2
  2. 12 7月, 2013 19 次提交
    • W
      drivers/net/ieee802154: don't use devm_pinctrl_get_select_default() in probe · fdb70270
      Wolfram Sang 提交于
      Since commit ab78029e (drivers/pinctrl: grab default handles from device core),
      we can rely on device core for setting the default pins. Compile tested only.
      
      Acked-by: Linus Walleij <linus.walleij@linaro.org> (personally at LCE13)
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fdb70270
    • W
      drivers/net/ethernet/cadence: don't use devm_pinctrl_get_select_default() in probe · 54842ec2
      Wolfram Sang 提交于
      Since commit ab78029e (drivers/pinctrl: grab default handles from device core),
      we can rely on device core for setting the default pins. Compile tested only.
      
      Acked-by: Linus Walleij <linus.walleij@linaro.org> (personally at LCE13)
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      Acked-by: NNicolas Ferre <nicolas.ferre@atmel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      54842ec2
    • W
      drivers/net/can/c_can: don't use devm_pinctrl_get_select_default() in probe · d25903f8
      Wolfram Sang 提交于
      Since commit ab78029e (drivers/pinctrl: grab default handles from device core),
      we can rely on device core for setting the default pins. Compile tested only.
      
      Acked-by: Linus Walleij <linus.walleij@linaro.org> (personally at LCE13)
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      Acked-by: NMarc Kleine-Budde <mkl@pengutronix.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d25903f8
    • H
      net/usb: add relative mii functions for r815x · c073f666
      hayeswang 提交于
      Base on cdc_ether, add the mii functions for RTL8152 and RTL8153.
      The RTL8152 and RTL8153 support ECM mode which use the driver of
      cdc_ether. Add the mii functions. Then, the basic PHY access is
      possible.
      Signed-off-by: NHayes Wang <hayeswang@realtek.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c073f666
    • A
      net/tipc: use %*phC to dump small buffers in hex form · d77e41e1
      Andy Shevchenko 提交于
      Instead of passing each byte by stack let's use nice specifier for that.
      Signed-off-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d77e41e1
    • J
      7ad031ee
    • A
      gre: Fix MTU sizing check for gretap tunnels · 8c91e162
      Alexander Duyck 提交于
      This change fixes an MTU sizing issue seen with gretap tunnels when non-gso
      packets are sent from the interface.
      
      In my case I was able to reproduce the issue by simply sending a ping of
      1421 bytes with the gretap interface created on a device with a standard
      1500 mtu.
      
      This fix is based on the fact that the tunnel mtu is already adjusted by
      dev->hard_header_len so it would make sense that any packets being compared
      against that mtu should also be adjusted by hard_header_len and the tunnel
      header instead of just the tunnel header.
      Signed-off-by: NAlexander Duyck <alexander.h.duyck@intel.com>
      Reported-by: NCong Wang <amwang@redhat.com>
      Acked-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8c91e162
    • P
      pkt_sched: sch_qfq: remove forward declaration of qfq_update_agg_ts · 88d4f419
      Paolo Valente 提交于
      This patch removes the forward declaration of qfq_update_agg_ts, by moving
      the definition of the function above its first call. This patch also
      removes a useless forward declaration of qfq_schedule_agg.
      Reported-by: NDavid S. Miller <davem@davemloft.net>
      Signed-off-by: NPaolo Valente <paolo.valente@unimore.it>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      88d4f419
    • P
      pkt_sched: sch_qfq: improve efficiency of make_eligible · 87f1369d
      Paolo Valente 提交于
      In make_eligible, a mask is used to decide which groups must become eligible:
      the i-th group becomes eligible only if the i-th bit of the mask (from the
      right) is set. The mask is computed by left-shifting a 1 by a given number of
      places, and decrementing the result.  The shift is performed on a ULL to avoid
      problems in case the number of places to shift is higher than 31.  On a 32-bit
      machine, this is more costly than working on an UL. This patch replaces such a
      costly operation with two cheaper branches.
      
      The trick is based on the following fact: in case of a shift of at least 32
      places, the resulting mask has at least the 32 less significant bits set,
      whereas the total number of groups is lower than 32.  As a consequence, in this
      case it is enough to just set the 32 less significant bits of the mask with a
      cheaper ~0UL. In the other case, the shift can be safely performed on a UL.
      Reported-by: NDavid S. Miller <davem@davemloft.net>
      Reported-by: NDavid Laight <David.Laight@ACULAB.COM>
      Signed-off-by: NPaolo Valente <paolo.valente@unimore.it>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      87f1369d
    • A
      gso: Update tunnel segmentation to support Tx checksum offload · cdbaa0bb
      Alexander Duyck 提交于
      This change makes it so that the GRE and VXLAN tunnels can make use of Tx
      checksum offload support provided by some drivers via the hw_enc_features.
      Without this fix enabling GSO means sacrificing Tx checksum offload and
      this actually leads to a performance regression as shown below:
      
                  Utilization
                  Send
      Throughput  local         GSO
      10^6bits/s  % S           state
        6276.51   8.39          enabled
        7123.52   8.42          disabled
      
      To resolve this it was necessary to address two items.  First
      netif_skb_features needed to be updated so that it would correctly handle
      the Trans Ether Bridging protocol without impacting the need to check for
      Q-in-Q tagging.  To do this it was necessary to update harmonize_features
      so that it used skb_network_protocol instead of just using the outer
      protocol.
      
      Second it was necessary to update the GRE and UDP tunnel segmentation
      offloads so that they would reset the encapsulation bit and inner header
      offsets after the offload was complete.
      
      As a result of this change I have seen the following results on a interface
      with Tx checksum enabled for encapsulated frames:
      
                  Utilization
                  Send
      Throughput  local         GSO
      10^6bits/s  % S           state
        7123.52   8.42          disabled
        8321.75   5.43          enabled
      
      v2: Instead of replacing refrence to skb->protocol with
          skb_network_protocol just replace the protocol reference in
          harmonize_features to allow for double VLAN tag checks.
      Signed-off-by: NAlexander Duyck <alexander.h.duyck@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cdbaa0bb
    • C
      inet: fix spacing in assignment · 3b8ccd44
      Camelia Groza 提交于
      Found using checkpatch.pl
      Signed-off-by: NCamelia Groza <camelia.groza@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3b8ccd44
    • D
      ifb: fix oops when loading the ifb failed · f2966cd5
      dingtianhong 提交于
      If __rtnl_link_register() return faild when loading the ifb, it will
      take the wrong path and get oops, so fix it just like dummy.
      Signed-off-by: NDing Tianhong <dingtianhong@huawei.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f2966cd5
    • D
      dummy: fix oops when loading the dummy failed · 2c8a0189
      dingtianhong 提交于
      We rename the dummy in modprobe.conf like this:
      
      install dummy0 /sbin/modprobe -o dummy0 --ignore-install dummy
      install dummy1 /sbin/modprobe -o dummy1 --ignore-install dummy
      
      We got oops when we run the command:
      
      modprobe dummy0
      modprobe dummy1
      
      ------------[ cut here ]------------
      
      [ 3302.187584] BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
      [ 3302.195411] IP: [<ffffffff813fe62a>] __rtnl_link_unregister+0x9a/0xd0
      [ 3302.201844] PGD 85c94a067 PUD 8517bd067 PMD 0
      [ 3302.206305] Oops: 0002 [#1] SMP
      [ 3302.299737] task: ffff88105ccea300 ti: ffff880eba4a0000 task.ti: ffff880eba4a0000
      [ 3302.307186] RIP: 0010:[<ffffffff813fe62a>]  [<ffffffff813fe62a>] __rtnl_link_unregister+0x9a/0xd0
      [ 3302.316044] RSP: 0018:ffff880eba4a1dd8  EFLAGS: 00010246
      [ 3302.321332] RAX: 0000000000000000 RBX: ffffffff81a9d738 RCX: 0000000000000002
      [ 3302.328436] RDX: 0000000000000000 RSI: ffffffffa04d602c RDI: ffff880eba4a1dd8
      [ 3302.335541] RBP: ffff880eba4a1e18 R08: dead000000200200 R09: dead000000100100
      [ 3302.342644] R10: 0000000000000080 R11: 0000000000000003 R12: ffffffff81a9d788
      [ 3302.349748] R13: ffffffffa04d7020 R14: ffffffff81a9d670 R15: ffff880eba4a1dd8
      [ 3302.364910] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [ 3302.370630] CR2: 0000000000000008 CR3: 000000085e15e000 CR4: 00000000000427e0
      [ 3302.377734] DR0: 0000000000000003 DR1: 00000000000000b0 DR2: 0000000000000001
      [ 3302.384838] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      [ 3302.391940] Stack:
      [ 3302.393944]  ffff880eba4a1dd8 ffff880eba4a1dd8 ffff880eba4a1e18 ffffffffa04d70c0
      [ 3302.401350]  00000000ffffffef ffffffffa01a8000 0000000000000000 ffffffff816111c8
      [ 3302.408758]  ffff880eba4a1e48 ffffffffa01a80be ffff880eba4a1e48 ffffffffa04d70c0
      [ 3302.416164] Call Trace:
      [ 3302.418605]  [<ffffffffa01a8000>] ? 0xffffffffa01a7fff
      [ 3302.423727]  [<ffffffffa01a80be>] dummy_init_module+0xbe/0x1000 [dummy0]
      [ 3302.430405]  [<ffffffffa01a8000>] ? 0xffffffffa01a7fff
      [ 3302.435535]  [<ffffffff81000322>] do_one_initcall+0x152/0x1b0
      [ 3302.441263]  [<ffffffff810ab24b>] do_init_module+0x7b/0x200
      [ 3302.446824]  [<ffffffff810ad3d2>] load_module+0x4e2/0x530
      [ 3302.452215]  [<ffffffff8127ae40>] ? ddebug_dyndbg_boot_param_cb+0x60/0x60
      [ 3302.458979]  [<ffffffff810ad5f1>] SyS_init_module+0xd1/0x130
      [ 3302.464627]  [<ffffffff814b9652>] system_call_fastpath+0x16/0x1b
      [ 3302.490090] RIP  [<ffffffff813fe62a>] __rtnl_link_unregister+0x9a/0xd0
      [ 3302.496607]  RSP <ffff880eba4a1dd8>
      [ 3302.500084] CR2: 0000000000000008
      [ 3302.503466] ---[ end trace 8342d49cd49f78ed ]---
      
      The reason is that when loading dummy, if __rtnl_link_register() return failed,
      the init_module should return and avoid take the wrong path.
      Signed-off-by: NTan Xiaojun <tanxiaojun@huawei.com>
      Signed-off-by: NDing Tianhong <dingtianhong@huawei.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2c8a0189
    • H
      drivers: net: phy: at803x: Add missing mdio device id · ce9a1bf8
      Helmut Schaa 提交于
      at803x supports Atheros 8030, 8031 and 8035 PHYs. 8031 was missing from
      the mdio device id table.
      Signed-off-by: NHelmut Schaa <helmut.schaa@googlemail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ce9a1bf8
    • H
      ipv6: fix route selection if kernel is not compiled with CONFIG_IPV6_ROUTER_PREF · afc154e9
      Hannes Frederic Sowa 提交于
      This is a follow-up patch to 3630d400
      ("ipv6: rt6_check_neigh should successfully verify neigh if no NUD
      information are available").
      
      Since the removal of rt->n in rt6_info we can end up with a dst ==
      NULL in rt6_check_neigh. In case the kernel is not compiled with
      CONFIG_IPV6_ROUTER_PREF we should also select a route with unkown
      NUD state but we must not avoid doing round robin selection on routes
      with the same target. So introduce and pass down a boolean ``do_rr'' to
      indicate when we should update rt->rr_ptr. As soon as no route is valid
      we do backtracking and do a lookup on a higher level in the fib trie.
      
      v2:
      a) Improved rt6_check_neigh logic (no need to create neighbour there)
         and documented return values.
      
      v3:
      a) Introduce enum rt6_nud_state to get rid of the magic numbers
         (thanks to David Miller).
      b) Update and shorten commit message a bit to actualy reflect
         the source.
      Reported-by: NPierre Emeriaud <petrus.lt@gmail.com>
      Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
      Signed-off-by: NHannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      afc154e9
    • D
      bnx2x: fix tunneling CSUM calculation · 1b4fc0e2
      Dmitry Kravkov 提交于
      Since commit c957d09f
      "bnx2x: Remove sparse and coccinelle warnings"
      driver provided wrong partial csum for HW in tunneing
      scenarios.
      Reported-by: NEric Dumazet <eric.dumazet@gmail.com>
      CC: Alexander Duyck <alexander.h.duyck@intel.com>
      CC: Pravin Shelar <pshelar@nicira.com>
      CC: Cong Wang <xiyou.wangcong@gmail.com>
      Signed-off-by: NDmitry Kravkov <dmitry@broadcom.com>
      Tested-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1b4fc0e2
    • M
      alx: fix lockdep annotation · a8798a5c
      Maarten Lankhorst 提交于
      Move spin_lock_init to be called before the spinlocks are used, preventing a lockdep splat.
      Signed-off-by: NMaarten Lankhorst <maarten.lankhorst@canonical.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a8798a5c
    • P
      vxlan: Fix kernel crash on rmmod. · f89e57c4
      Pravin B Shelar 提交于
      vxlan exit module unregisters vxlan net and then it unregisters
      rtnl ops which triggers vxlan_dellink() from __rtnl_kill_links().
      vxlan_dellink() deletes vxlan-dev from vxlan_list which has
      list-head in vxlan-net-struct but that is already gone due to
      net-unregister. That is how we are getting following crash.
      
      Following commit fixes the crash by fixing module exit path.
      
      BUG: unable to handle kernel paging request at ffff8804102c8000
      IP: [<ffffffff812cc5e9>] __list_del_entry+0x29/0xd0
      PGD 2972067 PUD 83e019067 PMD 83df97067 PTE 80000004102c8060
      Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
      Modules linked in: ---
      CPU: 19 PID: 6712 Comm: rmmod Tainted: GF            3.10.0+ #95
      Hardware name: Dell Inc. PowerEdge R620/0KCKR5, BIOS 1.4.8 10/25/2012
      task: ffff88080c47c580 ti: ffff88080ac50000 task.ti: ffff88080ac50000
      RIP: 0010:[<ffffffff812cc5e9>]  [<ffffffff812cc5e9>]
      __list_del_entry+0x29/0xd0
      RSP: 0018:ffff88080ac51e08  EFLAGS: 00010206
      RAX: ffff8804102c8000 RBX: ffff88040f0d4b10 RCX: dead000000200200
      RDX: ffff8804102c8000 RSI: ffff88080ac51e58 RDI: ffff88040f0d4b10
      RBP: ffff88080ac51e08 R08: 0000000000000001 R09: 2222222222222222
      R10: 2222222222222222 R11: 2222222222222222 R12: ffff88080ac51e58
      R13: ffffffffa07b8840 R14: ffffffff81ae48c0 R15: ffff88080ac51e58
      FS:  00007f9ef105c700(0000) GS:ffff88082a800000(0000)
      knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: ffff8804102c8000 CR3: 00000008227e5000 CR4: 00000000000407e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Stack:
       ffff88080ac51e28 ffffffff812cc6a1 2222222222222222 ffff88040f0d4000
       ffff88080ac51e48 ffffffffa07b3311 ffff88040f0d4000 ffffffff81ae49c8
       ffff88080ac51e98 ffffffff81492fc2 ffff88080ac51e58 ffff88080ac51e58
      Call Trace:
       [<ffffffff812cc6a1>] list_del+0x11/0x40
       [<ffffffffa07b3311>] vxlan_dellink+0x51/0x70 [vxlan]
       [<ffffffff81492fc2>] __rtnl_link_unregister+0xa2/0xb0
       [<ffffffff8149448e>] rtnl_link_unregister+0x1e/0x30
       [<ffffffffa07b7b7c>] vxlan_cleanup_module+0x1c/0x2f [vxlan]
       [<ffffffff810c9b31>] SyS_delete_module+0x1d1/0x2c0
       [<ffffffff812b8a0e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
       [<ffffffff81582f42>] system_call_fastpath+0x16/0x1b
      Code: eb 9f 55 48 8b 17 48 b9 00 01 10 00 00 00 ad de 48 8b 47 08 48 89
      e5 48 39 ca 74 29 48 b9 00 02 20 00 00 00 ad de 48 39 c8 74 7a <4c> 8b
      00 4c 39 c7 75 53 4c 8b 42 08 4c 39 c7 75 2b 48 89 42 08
      RIP  [<ffffffff812cc5e9>] __list_del_entry+0x29/0xd0
       RSP <ffff88080ac51e08>
      CR2: ffff8804102c8000
      Signed-off-by: NPravin B Shelar <pshelar@nicira.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f89e57c4
    • S
      9p: fix off by one causing access violations and memory corruption · 110ecd69
      Sasha Levin 提交于
      p9_release_pages() would attempt to dereference one value past the end of
      pages[]. This would cause the following crashes:
      
      [ 6293.171817] BUG: unable to handle kernel paging request at ffff8807c96f3000
      [ 6293.174146] IP: [<ffffffff8412793b>] p9_release_pages+0x3b/0x60
      [ 6293.176447] PGD 79c5067 PUD 82c1e3067 PMD 82c197067 PTE 80000007c96f3060
      [ 6293.180060] Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
      [ 6293.180060] Modules linked in:
      [ 6293.180060] CPU: 62 PID: 174043 Comm: modprobe Tainted: G        W    3.10.0-next-20130710-sasha #3954
      [ 6293.180060] task: ffff8807b803b000 ti: ffff880787dde000 task.ti: ffff880787dde000
      [ 6293.180060] RIP: 0010:[<ffffffff8412793b>]  [<ffffffff8412793b>] p9_release_pages+0x3b/0x60
      [ 6293.214316] RSP: 0000:ffff880787ddfc28  EFLAGS: 00010202
      [ 6293.214316] RAX: 0000000000000001 RBX: ffff8807c96f2ff8 RCX: 0000000000000000
      [ 6293.222017] RDX: ffff8807b803b000 RSI: 0000000000000001 RDI: ffffea001c7e3d40
      [ 6293.222017] RBP: ffff880787ddfc48 R08: 0000000000000000 R09: 0000000000000000
      [ 6293.222017] R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000001
      [ 6293.222017] R13: 0000000000000001 R14: ffff8807cc50c070 R15: ffff8807cc50c070
      [ 6293.222017] FS:  00007f572641d700(0000) GS:ffff8807f3600000(0000) knlGS:0000000000000000
      [ 6293.256784] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
      [ 6293.256784] CR2: ffff8807c96f3000 CR3: 00000007c8e81000 CR4: 00000000000006e0
      [ 6293.256784] Stack:
      [ 6293.256784]  ffff880787ddfcc8 ffff880787ddfcc8 0000000000000000 ffff880787ddfcc8
      [ 6293.256784]  ffff880787ddfd48 ffffffff84128be8 ffff880700000002 0000000000000001
      [ 6293.256784]  ffff8807b803b000 ffff880787ddfce0 0000100000000000 0000000000000000
      [ 6293.256784] Call Trace:
      [ 6293.256784]  [<ffffffff84128be8>] p9_virtio_zc_request+0x598/0x630
      [ 6293.256784]  [<ffffffff8115c610>] ? wake_up_bit+0x40/0x40
      [ 6293.256784]  [<ffffffff841209b1>] p9_client_zc_rpc+0x111/0x3a0
      [ 6293.256784]  [<ffffffff81174b78>] ? sched_clock_cpu+0x108/0x120
      [ 6293.256784]  [<ffffffff84122a21>] p9_client_read+0xe1/0x2c0
      [ 6293.256784]  [<ffffffff81708a90>] v9fs_file_read+0x90/0xc0
      [ 6293.256784]  [<ffffffff812bd073>] vfs_read+0xc3/0x130
      [ 6293.256784]  [<ffffffff811a78bd>] ? trace_hardirqs_on+0xd/0x10
      [ 6293.256784]  [<ffffffff812bd5a2>] SyS_read+0x62/0xa0
      [ 6293.256784]  [<ffffffff841a1a00>] tracesys+0xdd/0xe2
      [ 6293.256784] Code: 66 90 48 89 fb 41 89 f5 48 8b 3f 48 85 ff 74 29 85 f6 74 25 45 31 e4 66 0f 1f 84 00 00 00 00 00 e8 eb 14 12 fd 41 ff c4 49 63 c4 <48> 8b 3c c3 48 85 ff 74 05 45 39 e5 75 e7 48 83 c4 08 5b 41 5c
      [ 6293.256784] RIP  [<ffffffff8412793b>] p9_release_pages+0x3b/0x60
      [ 6293.256784]  RSP <ffff880787ddfc28>
      [ 6293.256784] CR2: ffff8807c96f3000
      [ 6293.256784] ---[ end trace 50822ee72cd360fc ]---
      Signed-off-by: NSasha Levin <sasha.levin@oracle.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      110ecd69
  3. 11 7月, 2013 14 次提交
    • G
      sh_eth: SH_ETH should depend on HAS_DMA · b41e6a51
      Geert Uytterhoeven 提交于
      If NO_DMA=y:
      
      drivers/built-in.o: In function `sh_eth_free_dma_buffer':
      drivers/net/ethernet/renesas/sh_eth.c:1103: undefined reference to `dma_free_coherent'
      drivers/net/ethernet/renesas/sh_eth.c:1110: undefined reference to `dma_free_coherent'
      drivers/built-in.o: In function `sh_eth_ring_init':
      drivers/net/ethernet/renesas/sh_eth.c:1065: undefined reference to `dma_alloc_coherent'
      drivers/net/ethernet/renesas/sh_eth.c:1086: undefined reference to `dma_free_coherent'
      drivers/built-in.o: In function `sh_eth_ring_format':
      drivers/net/ethernet/renesas/sh_eth.c:988: undefined reference to `dma_map_single'
      drivers/built-in.o: In function `sh_eth_txfree':
      drivers/net/ethernet/renesas/sh_eth.c:1220: undefined reference to `dma_unmap_single'
      drivers/built-in.o: In function `sh_eth_rx':
      drivers/net/ethernet/renesas/sh_eth.c:1323: undefined reference to `dma_map_single'
      drivers/built-in.o: In function `sh_eth_start_xmit':
      drivers/net/ethernet/renesas/sh_eth.c:1954: undefined reference to `dma_map_single'
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b41e6a51
    • H
      ipv6: in case of link failure remove route directly instead of letting it expire · 1eb4f758
      Hannes Frederic Sowa 提交于
      We could end up expiring a route which is part of an ecmp route set. Doing
      so would invalidate the rt->rt6i_nsiblings calculations and could provoke
      the following panic:
      
      [   80.144667] ------------[ cut here ]------------
      [   80.145172] kernel BUG at net/ipv6/ip6_fib.c:733!
      [   80.145172] invalid opcode: 0000 [#1] SMP
      [   80.145172] Modules linked in: 8021q nf_conntrack_netbios_ns nf_conntrack_broadcast ipt_MASQUERADE ip6table_mangle ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 iptable_nat nf_nat_ipv4 nf_nat iptable_mangle nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack ebtable_filter ebtables ip6table_filter ip6_tables
      +snd_hda_intel snd_hda_codec snd_hwdep snd_seq snd_seq_device snd_pcm snd_page_alloc snd_timer virtio_balloon snd soundcore i2c_piix4 i2c_core virtio_net virtio_blk
      [   80.145172] CPU: 1 PID: 786 Comm: ping6 Not tainted 3.10.0+ #118
      [   80.145172] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
      [   80.145172] task: ffff880117fa0000 ti: ffff880118770000 task.ti: ffff880118770000
      [   80.145172] RIP: 0010:[<ffffffff815f3b5d>]  [<ffffffff815f3b5d>] fib6_add+0x75d/0x830
      [   80.145172] RSP: 0018:ffff880118771798  EFLAGS: 00010202
      [   80.145172] RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffff88011350e480
      [   80.145172] RDX: ffff88011350e238 RSI: 0000000000000004 RDI: ffff88011350f738
      [   80.145172] RBP: ffff880118771848 R08: ffff880117903280 R09: 0000000000000001
      [   80.145172] R10: 0000000000000000 R11: 0000000000000000 R12: ffff88011350f680
      [   80.145172] R13: ffff880117903280 R14: ffff880118771890 R15: ffff88011350ef90
      [   80.145172] FS:  00007f02b5127740(0000) GS:ffff88011fd00000(0000) knlGS:0000000000000000
      [   80.145172] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
      [   80.145172] CR2: 00007f981322a000 CR3: 00000001181b1000 CR4: 00000000000006e0
      [   80.145172] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [   80.145172] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      [   80.145172] Stack:
      [   80.145172]  0000000000000001 ffff880100000000 ffff880100000000 ffff880117903280
      [   80.145172]  0000000000000000 ffff880119a4cf00 0000000000000400 00000000000007fa
      [   80.145172]  0000000000000000 0000000000000000 0000000000000000 ffff88011350f680
      [   80.145172] Call Trace:
      [   80.145172]  [<ffffffff815eeceb>] ? rt6_bind_peer+0x4b/0x90
      [   80.145172]  [<ffffffff815ed985>] __ip6_ins_rt+0x45/0x70
      [   80.145172]  [<ffffffff815eee35>] ip6_ins_rt+0x35/0x40
      [   80.145172]  [<ffffffff815ef1e4>] ip6_pol_route.isra.44+0x3a4/0x4b0
      [   80.145172]  [<ffffffff815ef34a>] ip6_pol_route_output+0x2a/0x30
      [   80.145172]  [<ffffffff81616077>] fib6_rule_action+0xd7/0x210
      [   80.145172]  [<ffffffff815ef320>] ? ip6_pol_route_input+0x30/0x30
      [   80.145172]  [<ffffffff81553026>] fib_rules_lookup+0xc6/0x140
      [   80.145172]  [<ffffffff81616374>] fib6_rule_lookup+0x44/0x80
      [   80.145172]  [<ffffffff815ef320>] ? ip6_pol_route_input+0x30/0x30
      [   80.145172]  [<ffffffff815edea3>] ip6_route_output+0x73/0xb0
      [   80.145172]  [<ffffffff815dfdf3>] ip6_dst_lookup_tail+0x2c3/0x2e0
      [   80.145172]  [<ffffffff813007b1>] ? list_del+0x11/0x40
      [   80.145172]  [<ffffffff81082a4c>] ? remove_wait_queue+0x3c/0x50
      [   80.145172]  [<ffffffff815dfe4d>] ip6_dst_lookup_flow+0x3d/0xa0
      [   80.145172]  [<ffffffff815fda77>] rawv6_sendmsg+0x267/0xc20
      [   80.145172]  [<ffffffff815a8a83>] inet_sendmsg+0x63/0xb0
      [   80.145172]  [<ffffffff8128eb93>] ? selinux_socket_sendmsg+0x23/0x30
      [   80.145172]  [<ffffffff815218d6>] sock_sendmsg+0xa6/0xd0
      [   80.145172]  [<ffffffff81524a68>] SYSC_sendto+0x128/0x180
      [   80.145172]  [<ffffffff8109825c>] ? update_curr+0xec/0x170
      [   80.145172]  [<ffffffff81041d09>] ? kvm_clock_get_cycles+0x9/0x10
      [   80.145172]  [<ffffffff810afd1e>] ? __getnstimeofday+0x3e/0xd0
      [   80.145172]  [<ffffffff8152509e>] SyS_sendto+0xe/0x10
      [   80.145172]  [<ffffffff8164efd9>] system_call_fastpath+0x16/0x1b
      [   80.145172] Code: fe ff ff 41 f6 45 2a 06 0f 85 ca fe ff ff 49 8b 7e 08 4c 89 ee e8 94 ef ff ff e9 b9 fe ff ff 48 8b 82 28 05 00 00 e9 01 ff ff ff <0f> 0b 49 8b 54 24 30 0d 00 00 40 00 89 83 14 01 00 00 48 89 53
      [   80.145172] RIP  [<ffffffff815f3b5d>] fib6_add+0x75d/0x830
      [   80.145172]  RSP <ffff880118771798>
      [   80.387413] ---[ end trace 02f20b7a8b81ed95 ]---
      [   80.390154] Kernel panic - not syncing: Fatal exception in interrupt
      
      Cc: Nicolas Dichtel <nicolas.dichtel@6wind.com>
      Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
      Signed-off-by: NHannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1eb4f758
    • J
      macvtap: correctly linearize skb when zerocopy is used · 61d46bf9
      Jason Wang 提交于
      Userspace may produce vectors greater than MAX_SKB_FRAGS. When we try to
      linearize parts of the skb to let the rest of iov to be fit in
      the frags, we need count copylen into linear when calling macvtap_alloc_skb()
      instead of partly counting it into data_len. Since this breaks
      zerocopy_sg_from_iovec() since its inner counter assumes nr_frags should
      be zero at beginning. This cause nr_frags to be increased wrongly without
      setting the correct frags.
      
      This bug were introduced from b92946e2
      (macvtap: zerocopy: validate vectors before building skb).
      
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NJason Wang <jasowang@redhat.com>
      Acked-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      61d46bf9
    • J
      tuntap: correctly linearize skb when zerocopy is used · 3dd5c330
      Jason Wang 提交于
      Userspace may produce vectors greater than MAX_SKB_FRAGS. When we try to
      linearize parts of the skb to let the rest of iov to be fit in
      the frags, we need count copylen into linear when calling tun_alloc_skb()
      instead of partly counting it into data_len. Since this breaks
      zerocopy_sg_from_iovec() since its inner counter assumes nr_frags should
      be zero at beginning. This cause nr_frags to be increased wrongly without
      setting the correct frags.
      
      This bug were introduced from 0690899b
      (tun: experimental zero copy tx support)
      
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NJason Wang <jasowang@redhat.com>
      Acked-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3dd5c330
    • D
      ifb: fix rcu_sched self-detected stalls · 440d57bc
      dingtianhong 提交于
      According to the commit 16b0dc29
      (dummy: fix rcu_sched self-detected stalls)
      
      Eric Dumazet fix the problem in dummy, but the ifb will occur the
      same problem like the dummy modules.
      
      Trying to "modprobe ifb numifbs=30000" triggers :
      
      INFO: rcu_sched self-detected stall on CPU
      
      After this splat, RTNL is locked and reboot is needed.
      
      We must call cond_resched() to avoid this, even holding RTNL.
      Signed-off-by: NDing Tianhong <dingtianhong@huawei.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      440d57bc
    • H
      r8169: add a new chip for RTL8411 · 45dd95c4
      hayeswang 提交于
      Add a new chip for RTL8411 series.
      Signed-off-by: NHayes Wang <hayeswang@realtek.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      45dd95c4
    • D
      Merge "net: finish renaming lls to busy poll" · 0e00fd47
      David S. Miller 提交于
      Eliezer Tamir says:
      
      ====================
      Here are three patches that complete the rename of lls to busy-poll
      
      1. rename include/net/ll_poll.h to include/net/busy_poll.h
      2. Rename ndo_ll_poll to ndo_busy_poll.
         Rename sk_mark_ll to sk_mark_napi_id.
         Rename skb_mark_ll to skb_mark_napi_id.
         Correct all useres of these functions.
         Update comments and defines  in include/net/busy_poll.h
      3. Rename LL_SO to BUSY_POLL_SO
         Rename sysctl_net_ll_{read,poll} to sysctl_busy_{read,poll}
         Fix up users of these variables.
         Fix documentation for sysctl.
      
      v2 fixed forgetting the ndo changes in v1
      v3 is a resend with -M
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0e00fd47
    • E
      net: rename busy poll socket op and globals · 64b0dc51
      Eliezer Tamir 提交于
      Rename LL_SO to BUSY_POLL_SO
      Rename sysctl_net_ll_{read,poll} to sysctl_busy_{read,poll}
      Fix up users of these variables.
      Fix documentation for sysctl.
      
      a patch for the socket.7  man page will follow separately,
      because of limitations of my mail setup.
      Signed-off-by: NEliezer Tamir <eliezer.tamir@linux.intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      64b0dc51
    • E
      net: rename ll methods to busy-poll · 8b80cda5
      Eliezer Tamir 提交于
      Rename ndo_ll_poll to ndo_busy_poll.
      Rename sk_mark_ll to sk_mark_napi_id.
      Rename skb_mark_ll to skb_mark_napi_id.
      Correct all useres of these functions.
      Update comments and defines  in include/net/busy_poll.h
      Signed-off-by: NEliezer Tamir <eliezer.tamir@linux.intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8b80cda5
    • E
      net: rename include/net/ll_poll.h to include/net/busy_poll.h · 076bb0c8
      Eliezer Tamir 提交于
      Rename the file and correct all the places where it is included.
      Signed-off-by: NEliezer Tamir <eliezer.tamir@linux.intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      076bb0c8
    • L
      Merge tag 'mmc-updates-for-3.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc · bfffbea1
      Linus Torvalds 提交于
      Pull MMC updates from Chris Ball:
       "MMC highlights for 3.11:
      
        Core:
         - Add support for eMMC 5.1 devices
         - Add MMC_CAP_AGGRESSIVE_PM capability for aggressive power
           management of eMMC/SD between requests, using runtime PM
         - Add an ioctl to perform the eMMC 4.5 Sanitize command.  Sample code
           at:
      
             git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git
      
        Drivers:
         - dw_mmc: Add support for Rockchip's Cortex-A9 SoCs
         - dw_mmc: Add support for Altera SoCFPGAs
         - sdhci-esdhc-imx: Add support for 8-bit bus width, non-removable
           cards
         - sdhci-bcm-kona: New driver for Broadcom Kona (281xx) SoCs
         - sdhi/tmio: Add DT DMA support"
      
      * tag 'mmc-updates-for-3.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (87 commits)
        mmc: bcm281xx SDHCI driver
        mmc: sdhci: add card_event callback to sdhci
        mmc: core: Fixup Oops for SDIO shutdown
        mmc: sdhci-pci: add another device id
        mmc: esdhc: Fix bug when writing to SDHCI_HOST_CONTROL register
        mmc: esdhc: Add support for 8-bit bus width and non-removable card
        mmc: core: production year for eMMC 4.41 and later
        mmc: omap: remove unnecessary #if 0's
        mmc: sdhci: fix ctrl_2 on super-speed selection
        mmc: dw_mmc-pltfm: add Rockchip variant
        mmc: dw_mmc-pltfm: move probe and remove below dt match table
        mmc: dw_mmc-pltfm: remove static from dw_mci_pltfm_remove
        mmc: sdhci-acpi: add support for eMMC hardware reset for HID 80860F14
        mmc: sdhci-pci: add support for eMMC hardware reset for BYT eMMC.
        mmc: dw_mmc: Add support DW SD/MMC driver on SOCFPGA
        mmc: sdhci: fix caps2 for HS200
        sdhci-pxav3: Fix runtime PM initialization
        mmc: core: Add DT-bindings for MMC_CAP2_FULL_PWR_CYCLE
        mmc: core: Invent MMC_CAP2_FULL_PWR_CYCLE
        mmc: core: Enable power_off_notify for eMMC shutdown sequence
        ...
      bfffbea1
    • L
      Merge tag 'for-3.11-rc1' of git://gitorious.org/linux-pwm/linux-pwm · 34ae0a6f
      Linus Torvalds 提交于
      Pull pwm changes from Thierry Reding:
       "A new driver supports driving PWM signals using the TPU unit found on
        various Renesas SoCs.  Furthermore support is added for the NXP
        PCA9685 LED controller.  Another big chunk is the sysfs interface
        which has been in the works for quite some time.
      
        The remaining patches are a random assortment of cleanups and fixes"
      
      * tag 'for-3.11-rc1' of git://gitorious.org/linux-pwm/linux-pwm:
        pwm: pwm-tiehrpwm: Use clk_enable/disable instead clk_prepare/unprepare.
        pwm: pca9685: Fix wrong argument to set MODE1_SLEEP bit
        pwm: renesas-tpu: Add MODULE_ALIAS to make module auto loading work
        pwm: renesas-tpu: fix return value check in tpu_probe()
        pwm: Add Renesas TPU PWM driver
        pwm: Add sysfs interface
        pwm: Fill in missing .owner fields
        pwm: add pca9685 driver
        pwm: atmel-tcb: prepare clk before calling enable
        pwm: devm: alloc correct pointer size
        pwm: mxs: Let device core handle pinctrl
        MAINTAINERS: Update PWM subsystem entry
      34ae0a6f
    • L
      Merge tag 'for-v3.11' of git://git.infradead.org/battery-2.6 · 7d3107d2
      Linus Torvalds 提交于
      Pull battery subsystem update from Anton Vorontsov:
       "Nothing exciting this time, just assorted fixes and cleanups"
      
      * tag 'for-v3.11' of git://git.infradead.org/battery-2.6: (25 commits)
        charger-manager: Fix regulator_get() return check
        charger-manager: Fix a bug when it unregisters notifier block of extcon
        tps65090-charger: Add dt node to power_supply
        sbs-battery: Add dt to power_supply struct
        power_supply: Add of_node_put to fix refcount
        power_supply: Move of_node out of the #ifdef CONFIG_OF
        power/reset: Make the vexpress driver optional on arm and arm64
        charger-manager: Add missing newlines, fix a couple of typos, add pr_fmt
        tps65090-charger: Fix AC detect
        MAINTAINERS: Update email address for Anton Vorontsov
        charger-manager: Ensure event is not used as format string
        power_supply: Replace strict_strtoul() with kstrtoul()
        generic-adc-battery: Fix checking if none of the channels are supported
        power: Use platform_{get,set}_drvdata()
        pm2301_charger: Return error if create_singlethread_workqueue fails
        pm2301_charger: Fix NULL pointer dereference
        lp8727_charger: Support the device tree feature
        twl4030_charger: Remove unnecessary platform_set_drvdata()
        rx51_battery: Remove unnecessary platform_set_drvdata()
        jz4740-battery: Remove unnecessary platform_set_drvdata()
        ...
      7d3107d2
    • L
      Merge tag 'mfd-3.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-next · 3aa78e0c
      Linus Torvalds 提交于
      Pull MFD update from Samuel Ortiz:
       "For the 3.11 merge we only have one new MFD driver for the Kontron
        PLD.
      
        But we also have:
         - Support for the TPS659038 PMIC from the palmas driver.
         - Intel's Coleto Creek and Avoton SoCs support from the lpc_ich
           driver.
         - RTL8411B support from the rtsx driver.
         - More DT support for the Arizona, max8998, twl4030-power and the
           ti_am335x_tsadc drivers.
         - The SSBI driver move under MFD.
         - A conversion to the devm_* API for most of the MFD drivers.
         - The twl4030-power got split from twl-core into its own module.
         - A major ti_am335x_adc cleanup, leading to a proper DT support.
         - Our regular arizona and wm* updates and cleanups from the Wolfson
           folks.
         - A better error handling and initialization, and a regulator
           subdevice addition for the 88pm80x driver.
         - A bulk platform_set_drvdata() call removal that's no longer need
           since commit 0998d063 ("device-core: Ensure drvdata = NULL when
           no driver is bound")
      
      * tag 'mfd-3.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-next: (102 commits)
        mfd: sec: Provide max_register to regmap
        mfd: wm8994: Remove duplicate check for active JACKDET
        MAINTAINERS: Add include directory to MFD file patterns
        mfd: sec: Remove fields not used since regmap conversion
        watchdog: Kontron PLD watchdog timer driver
        mfd: max8998: Add support for Device Tree
        regulator: max8998: Use arrays for specifying voltages in platform data
        mfd: max8998: Add irq domain support
        regulator: palmas: Add TPS659038 support
        mfd: Kontron PLD mfd driver
        mfd: palmas: Add TPS659038 PMIC support
        mfd: palmas: Add SMPS10_BOOST feature
        mfd: palmas: Check if irq is valid
        mfd: lpc_ich: iTCO_wdt patch for Intel Coleto Creek DeviceIDs
        mfd: twl-core: Change TWL6025 references to TWL6032
        mfd: davinci_voicecodec: Fix build breakage
        mfd: vexpress: Make the driver optional for arm and arm64
        mfd: htc-egpio: Use devm_ioremap_nocache() instead of ioremap_nocache()
        mfd: davinci_voicecodec: Convert to use devm_* APIs
        mfd: twl4030-power: Fix relocking on error
        ...
      3aa78e0c