OSDN Git Service

Merge tag 'v4.4.214' into 10
author0ranko0P <ranko0p@outlook.com>
Tue, 18 Feb 2020 05:24:55 +0000 (13:24 +0800)
committer0ranko0P <ranko0p@outlook.com>
Tue, 18 Feb 2020 05:24:55 +0000 (13:24 +0800)
This is the 4.4.214 stable release

30 files changed:
1  2 
Makefile
arch/arm64/boot/Makefile
arch/powerpc/Kconfig
crypto/algapi.c
crypto/api.c
crypto/internal.h
drivers/md/dm.c
drivers/net/wireless/airo.c
drivers/net/wireless/libertas/cfg.c
drivers/net/wireless/mwifiex/scan.c
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c
drivers/of/Kconfig
drivers/of/address.c
drivers/scsi/ufs/ufshcd.c
drivers/staging/vt6656/int.c
drivers/staging/vt6656/main_usb.c
drivers/staging/vt6656/rxtx.c
drivers/usb/dwc3/core.c
drivers/usb/gadget/function/f_ncm.c
fs/btrfs/extent_io.c
fs/ext2/super.c
fs/namei.c
kernel/events/core.c
kernel/time/clocksource.c
lib/test_kasan.c
mm/mempolicy.c
net/ipv4/tcp.c
net/ipv6/ip6_vti.c
sound/core/pcm_native.c
sound/soc/soc-pcm.c

diff --cc Makefile
Simple merge
  # Based on the ia64 boot/Makefile.
  #
  
- targets := Image Image.gz
+ targets := Image Image.bz2 Image.gz Image.lz4 Image.lzma Image.lzo
  
 +DTB_NAMES := $(subst $\",,$(CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE_NAMES))
 +ifneq ($(DTB_NAMES),)
 +DTB_LIST := $(addsuffix .dtb,$(DTB_NAMES))
 +DTB_OBJS := $(addprefix $(obj)/dts/,$(DTB_LIST))
 +else
 +DTB_OBJS := $(shell find -L $(obj)/dts/ -name \*.dtb)
 +endif
 +
  $(obj)/Image: vmlinux FORCE
        $(call if_changed,objcopy)
  
Simple merge
diff --cc crypto/algapi.c
Simple merge
diff --cc crypto/api.c
Simple merge
Simple merge
diff --cc drivers/md/dm.c
@@@ -2314,7 -2303,8 +2313,8 @@@ static void dm_init_old_md_queue(struc
        /*
         * Initialize aspects of queue that aren't relevant for blk-mq
         */
 -      md->queue->backing_dev_info.congested_data = md;
 -      md->queue->backing_dev_info.congested_fn = dm_any_congested;
++      md->queue->backing_dev_info->congested_data = md;
 +      md->queue->backing_dev_info->congested_fn = dm_any_congested;
        blk_queue_bounce_limit(md->queue, BLK_BOUNCE_ANY);
  }
  
Simple merge
Simple merge
Simple merge
@@@ -118,9 -112,8 +118,13 @@@ config OF_OVERLA
          While this option is selected automatically when needed, you can
          enable it manually to improve device tree unit test coverage.
  
 +config OF_BATTERYDATA
 +      def_bool y
 +      help
 +        OpenFirmware BatteryData accessors
 +
+ config OF_DMA_DEFAULT_COHERENT
+       # arches should select this if DMA is coherent by default for OF devices
+       bool
  endif # OF
Simple merge
@@@ -7588,30 -4324,10 +7588,31 @@@ static int ufshcd_probe_hba(struct ufs_
                        ufshcd_init_icc_levels(hba);
  
                /* Add required well known logical units to scsi mid layer */
-               if (ufshcd_scsi_add_wlus(hba))
+               ret = ufshcd_scsi_add_wlus(hba);
+               if (ret)
                        goto out;
  
 +              /* Initialize devfreq after UFS device is detected */
 +              if (ufshcd_is_clkscaling_supported(hba)) {
 +                      memcpy(&hba->clk_scaling.saved_pwr_info.info,
 +                          &hba->pwr_info, sizeof(struct ufs_pa_layer_attr));
 +                      hba->clk_scaling.saved_pwr_info.is_valid = true;
 +                      hba->clk_scaling.is_scaled_up = true;
 +                      if (!hba->devfreq) {
 +                              hba->devfreq = devfreq_add_device(hba->dev,
 +                                                      &ufs_devfreq_profile,
 +                                                      "simple_ondemand",
 +                                                      gov_data);
 +                              if (IS_ERR(hba->devfreq)) {
 +                                      ret = PTR_ERR(hba->devfreq);
 +                                      dev_err(hba->dev, "Unable to register with devfreq %d\n",
 +                                              ret);
 +                                      goto out;
 +                              }
 +                      }
 +                      hba->clk_scaling.is_allowed = true;
 +              }
 +
                scsi_scan_host(hba->host);
                pm_runtime_put_sync(hba->dev);
        }
Simple merge
Simple merge
@@@ -812,13 -808,17 +808,17 @@@ int vnt_tx_packet(struct vnt_private *p
        }
  
        if (current_rate > RATE_11M) {
 -              if (info->band == IEEE80211_BAND_5GHZ) {
 +              if (info->band == NL80211_BAND_5GHZ) {
                        pkt_type = PK_TYPE_11A;
                } else {
-                       if (tx_rate->flags & IEEE80211_TX_RC_USE_CTS_PROTECT)
-                               pkt_type = PK_TYPE_11GB;
-                       else
-                               pkt_type = PK_TYPE_11GA;
+                       if (tx_rate->flags & IEEE80211_TX_RC_USE_CTS_PROTECT) {
+                               if (priv->basic_rates & VNT_B_RATES)
+                                       pkt_type = PK_TYPE_11GB;
+                               else
+                                       pkt_type = PK_TYPE_11GA;
+                       } else {
+                               pkt_type = PK_TYPE_11A;
+                       }
                }
        } else {
                pkt_type = PK_TYPE_11B;
@@@ -916,109 -801,13 +916,112 @@@ static void dwc3_core_exit_mode(struct 
                /* do nothing */
                break;
        }
+       /* de-assert DRVVBUS for HOST and OTG mode */
+       dwc3_set_mode(dwc, DWC3_GCTL_PRTCAP_DEVICE);
  }
  
 +/* XHCI reset, resets other CORE registers as well, re-init those */
 +void dwc3_post_host_reset_core_init(struct dwc3 *dwc)
 +{
 +      dwc3_core_init(dwc);
 +      dwc3_gadget_restart(dwc);
 +}
 +
 +static void (*notify_event)(struct dwc3 *, unsigned, unsigned);
 +void dwc3_set_notifier(void (*notify)(struct dwc3 *, unsigned, unsigned))
 +{
 +      notify_event = notify;
 +}
 +EXPORT_SYMBOL(dwc3_set_notifier);
 +
 +int dwc3_notify_event(struct dwc3 *dwc, unsigned event, unsigned value)
 +{
 +      int ret = 0;
 +
 +      if (dwc->notify_event)
 +              dwc->notify_event(dwc, event, value);
 +      else
 +              ret = -ENODEV;
 +
 +      return ret;
 +}
 +EXPORT_SYMBOL(dwc3_notify_event);
 +
 +int dwc3_core_pre_init(struct dwc3 *dwc)
 +{
 +      int ret;
 +
 +      dwc3_cache_hwparams(dwc);
 +
 +      ret = dwc3_phy_setup(dwc);
 +      if (ret)
 +              goto err0;
 +
 +      if (!dwc->ev_buffs) {
 +              ret = dwc3_alloc_event_buffers(dwc, DWC3_EVENT_BUFFERS_SIZE);
 +              if (ret) {
 +                      dev_err(dwc->dev, "failed to allocate event buffers\n");
 +                      ret = -ENOMEM;
 +                      goto err1;
 +              }
 +      }
 +
 +      ret = dwc3_core_init(dwc);
 +      if (ret) {
 +              dev_err(dwc->dev, "failed to initialize core\n");
 +              goto err2;
 +      }
 +
 +      ret = phy_power_on(dwc->usb2_generic_phy);
 +      if (ret < 0)
 +              goto err3;
 +
 +      ret = phy_power_on(dwc->usb3_generic_phy);
 +      if (ret < 0)
 +              goto err4;
 +
 +      ret = dwc3_event_buffers_setup(dwc);
 +      if (ret) {
 +              dev_err(dwc->dev, "failed to setup event buffers\n");
 +              goto err5;
 +      }
 +
 +      ret = dwc3_core_init_mode(dwc);
 +      if (ret) {
 +              dev_err(dwc->dev, "failed to set mode with dwc3 core\n");
 +              goto err6;
 +      }
 +
 +      return ret;
 +
 +err6:
 +      dwc3_event_buffers_cleanup(dwc);
 +err5:
 +      phy_power_off(dwc->usb3_generic_phy);
 +err4:
 +      phy_power_off(dwc->usb2_generic_phy);
 +err3:
 +      dwc3_core_exit(dwc);
 +err2:
 +      dwc3_free_event_buffers(dwc);
 +err1:
 +      dwc3_ulpi_exit(dwc);
 +err0:
 +      return ret;
 +}
 +
  #define DWC3_ALIGN_MASK               (16 - 1)
  
 +/* check whether the core supports IMOD */
 +bool dwc3_has_imod(struct dwc3 *dwc)
 +{
 +      return ((dwc3_is_usb3(dwc) &&
 +              dwc->revision >= DWC3_REVISION_300A) ||
 +              (dwc3_is_usb31(dwc) &&
 +              dwc->revision >= DWC3_USB31_REVISION_120A));
 +}
 +
  static int dwc3_probe(struct platform_device *pdev)
  {
        struct device           *dev = &pdev->dev;
@@@ -1660,10 -1563,13 +1664,15 @@@ static void ncm_unbind(struct usb_confi
        ncm_string_defs[0].id = 0;
        usb_free_all_descriptors(f);
  
+       if (atomic_read(&ncm->notify_count)) {
+               usb_ep_dequeue(ncm->notify, ncm->notify_req);
+               atomic_set(&ncm->notify_count, 0);
+       }
        kfree(ncm->notify_req->buf);
        usb_ep_free_request(ncm->notify, ncm->notify_req);
 +
 +      gether_cleanup(netdev_priv(opts->net));
  }
  
  static struct usb_function *ncm_alloc(struct usb_function_instance *fi)
Simple merge
diff --cc fs/ext2/super.c
Simple merge
diff --cc fs/namei.c
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc mm/mempolicy.c
Simple merge
diff --cc net/ipv4/tcp.c
Simple merge
Simple merge
Simple merge
Simple merge