Linux 5.15.1
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.15.1 kernel.
All users of the 5.15 kernel series must upgrade.
The updated 5.15.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.15.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 drivers/amba/bus.c | 3 drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 80 -------------- drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.h | 5 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 8 - drivers/gpu/drm/amd/amdkfd/kfd_device.c | 3 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 3 drivers/gpu/drm/i915/gt/intel_execlists_submission.c | 4 drivers/media/firewire/firedtv-avc.c | 14 +- drivers/media/firewire/firedtv-ci.c | 2 drivers/net/ethernet/sfc/ethtool_common.c | 10 - drivers/net/wireless/ath/wcn36xx/main.c | 10 - drivers/net/wireless/ath/wcn36xx/pmc.c | 5 drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 1 drivers/soc/imx/gpcv2.c | 4 drivers/usb/core/hcd.c | 29 +---- drivers/usb/host/xhci.c | 1 include/linux/usb/hcd.h | 2 sound/usb/quirks.c | 2 20 files changed, 32 insertions(+), 158 deletions(-)
Anson Jacob (1):
drm/amd/display: Revert "Directly retrain link from debugfs"
Bryan O'Donoghue (1):
Revert "wcn36xx: Disable bmps when encryption is disabled"
Christian König (1):
drm/amdgpu: revert "Add autodump debugfs node for gpu reset v8"
Dan Carpenter (1):
media: firewire: firedtv-avc: fix a buffer overflow in avc_ca_pmt()
Erik Ekman (1):
sfc: Fix reading non-legacy supported link modes
Greg Kroah-Hartman (3):
Revert "xhci: Set HCD flag to defer primary roothub registration" Revert "usb: core: hcd: Add support for deferring roothub registration" Linux 5.15.1
Lucas Stach (1):
Revert "soc: imx: gpcv2: move reset assert after requesting domain power up"
Matthew Brost (1):
Revert "drm/i915/gt: Propagate change in error status to children on unhold"
Takashi Iwai (1):
ALSA: usb-audio: Add quirk for Audient iD14
Wang Kefeng (1):
ARM: 9120/1: Revert "amba: make use of -1 IRQs warn"
Yifan Zhang (1):
drm/amdkfd: fix boot failure when iommu is disabled in Picasso.
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 15 -SUBLEVEL = 0 +SUBLEVEL = 1 EXTRAVERSION = NAME = Trick or Treat
drivers/amba/bus.c +0 -3
@@ -377,9 +377,6 @@ static int amba_device_try_add(struct amba_device *dev, struct resource *parent)void __iomem *tmp;int i, ret; -WARN_ON (dev->irq[0 ] == (unsigned int )-1 ); -WARN_ON (dev->irq[1 ] == (unsigned int )-1 ); - ret =request_resource (parent, &dev->res);if (ret) goto err_out;
drivers/gpu/drm/amd/amdgpu/amdgpu.h +0 -2
@@ -1078,8 +1078,6 @@ struct amdgpu_device {char product_name[32 ];char serial[20 ]; -struct amdgpu_autodump autodump; -atomic_t throttling_logging_enabled;struct ratelimit_state throttling_logging_rs;uint32_t ras_hw_enabled;
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c +0 -80
99 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.h +0 -5
@@ -26,10 +26,6 @@/* * Debugfs */ -struct amdgpu_autodump { -struct completion dumping; -struct wait_queue_head gpu_hang; -};int amdgpu_debugfs_regs_init (struct amdgpu_device *adev);int amdgpu_debugfs_init (struct amdgpu_device *adev);
@@ -37,4 +33,3 @@ void amdgpu_debugfs_fini(struct amdgpu_device *adev);void amdgpu_debugfs_fence_init (struct amdgpu_device *adev);void amdgpu_debugfs_firmware_init (struct amdgpu_device *adev);void amdgpu_debugfs_gem_init (struct amdgpu_device *adev); -int amdgpu_debugfs_wait_dump (struct amdgpu_device *adev);
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +0 -8
@@ -2432,10 +2432,6 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)if (!adev->gmc.xgmi.pending_reset)amdgpu_amdkfd_device_init (adev); - r =amdgpu_amdkfd_resume_iommu (adev); -if (r) - goto init_failed; -amdgpu_fru_get_product_info (adev); init_failed:
@@ -4466,10 +4462,6 @@ int amdgpu_device_pre_asic_reset(struct amdgpu_device *adev,if (reset_context->reset_req_dev == adev) job = reset_context->job; -/* no need to dump if device is not in good state during probe period */ -if (!adev->gmc.xgmi.pending_reset) -amdgpu_debugfs_wait_dump (adev); -if (amdgpu_sriov_vf (adev)) {/* stop the data exchange thread */ amdgpu_virt_fini_data_exchange (adev);
drivers/gpu/drm/amd/amdkfd/kfd_device.c +3 -0
@@ -924,6 +924,9 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd,svm_migrate_init ((struct amdgpu_device *)kfd->kgd); +if (kgd2kfd_resume_iommu (kfd)) + goto device_iommu_error; +if (kfd_resume (kfd)) goto kfd_resume_error;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +2 -1
@@ -247,6 +247,7 @@ static ssize_t dp_link_settings_write(struct file *f, const char __user *buf, {struct amdgpu_dm_connector *connector =file_inode (f)->i_private;struct dc_link *link = connector->dc_link; +struct dc *dc = (struct dc *)link->dc;struct dc_link_settings prefer_link_settings;char *wr_buf =NULL ;const uint32_t wr_buf_size =40 ;
@@ -313,7 +314,7 @@ static ssize_t dp_link_settings_write(struct file *f, const char __user *buf, prefer_link_settings.lane_count = param[0 ]; prefer_link_settings.link_rate = param[1 ]; -dp_retrain_link_dp_test (link, &prefer_link_settings, false); +dc_link_set_preferred_training_settings (dc, &prefer_link_settings,NULL , link, true);kfree (wr_buf);return size;
drivers/gpu/drm/i915/gt/intel_execlists_submission.c +0 -4
@@ -2140,10 +2140,6 @@ static void __execlists_unhold(struct i915_request *rq)if (p->flags &I915_DEPENDENCY_WEAK )continue ; -/* Propagate any change in error status */ -if (rq->fence.error) -i915_request_set_error_once (w, rq->fence.error); -if (w->engine != rq->engine)continue ;
drivers/media/firewire/firedtv-avc.c +11 -3
@@ -1165,7 +1165,11 @@ int avc_ca_pmt(struct firedtv *fdtv, char *msg, int length) read_pos += program_info_length; write_pos += program_info_length; } -while (read_pos < length) { +while (read_pos +4 < length) { +if (write_pos +4 >=sizeof (c->operand) -4 ) { + ret = -EINVAL ; + goto out; + } c->operand[write_pos++] = msg[read_pos++]; c->operand[write_pos++] = msg[read_pos++]; c->operand[write_pos++] = msg[read_pos++];
@@ -1177,13 +1181,17 @@ int avc_ca_pmt(struct firedtv *fdtv, char *msg, int length) c->operand[write_pos++] = es_info_length >>8 ; c->operand[write_pos++] = es_info_length &0xff ;if (es_info_length >0 ) { +if (read_pos >= length) { + ret = -EINVAL ; + goto out; + } pmt_cmd_id = msg[read_pos++];if (pmt_cmd_id !=1 && pmt_cmd_id !=4 )dev_err (fdtv->device,"invalid pmt_cmd_id %d at stream level\n" , pmt_cmd_id); -if (es_info_length >sizeof (c->operand) -4 - - write_pos) { +if (es_info_length >sizeof (c->operand) -4 - write_pos || + es_info_length > length - read_pos) { ret = -EINVAL ; goto out; }
drivers/media/firewire/firedtv-ci.c +2 -0
@@ -134,6 +134,8 @@ static int fdtv_ca_pmt(struct firedtv *fdtv, void *arg) }else { data_length = msg->msg[3 ]; } +if (data_length >sizeof (msg->msg) - data_pos) +return -EINVAL ;return avc_ca_pmt (fdtv, &msg->msg[data_pos], data_length); }
drivers/net/ethernet/sfc/ethtool_common.c +2 -8
@@ -563,20 +563,14 @@ int efx_ethtool_get_link_ksettings(struct net_device *net_dev, {struct efx_nic *efx =netdev_priv (net_dev);struct efx_link_state *link_state = &efx->link_state; -u32 supported;mutex_lock (&efx->mac_lock);efx_mcdi_phy_get_link_ksettings (efx, cmd);mutex_unlock (&efx->mac_lock);/* Both MACs support pause frames (bidirectional and respond-only) */ -ethtool_convert_link_mode_to_legacy_u32 (&supported, - cmd->link_modes.supported); - - supported |= SUPPORTED_Pause | SUPPORTED_Asym_Pause; - -ethtool_convert_legacy_u32_to_link_mode (cmd->link_modes.supported, - supported); +ethtool_link_ksettings_add_link_mode (cmd, supported, Pause); +ethtool_link_ksettings_add_link_mode (cmd, supported, Asym_Pause);if (LOOPBACK_INTERNAL (efx)) { cmd->base.speed = link_state->speed;
drivers/net/wireless/ath/wcn36xx/main.c +0 -10
@@ -604,15 +604,6 @@ static int wcn36xx_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, } } } -/* FIXME: Only enable bmps support when encryption is enabled. -* For any reasons, when connected to open/no-security BSS, -* the wcn36xx controller in bmps mode does not forward -* 'wake-up' beacons despite AP sends DTIM with station AID. -* It could be due to a firmware issue or to the way driver -* configure the station. -*/ -if (vif->type ==NL80211_IFTYPE_STATION ) - vif_priv->allow_bmps = true;break ;case DISABLE_KEY :if (!(IEEE80211_KEY_FLAG_PAIRWISE & key_conf->flags)) {
@@ -913,7 +904,6 @@ static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw, vif->addr, bss_conf->aid); vif_priv->sta_assoc = false; - vif_priv->allow_bmps = false; wcn36xx_smd_set_link_st(wcn, bss_conf->bssid, vif->addr,
drivers/net/wireless/ath/wcn36xx/pmc.c +1 -4
@@ -23,10 +23,7 @@ int wcn36xx_pmc_enter_bmps_state(struct wcn36xx *wcn, {int ret =0 ;struct wcn36xx_vif *vif_priv =wcn36xx_vif_to_priv (vif); - -if (!vif_priv->allow_bmps) -return -ENOTSUPP ; - +/* TODO: Make sure the TX chain clean */ ret =wcn36xx_smd_enter_bmps (wcn, vif);if (!ret) {wcn36xx_dbg (WCN36XX_DBG_PMC ,"Entered BMPS\n" );
drivers/net/wireless/ath/wcn36xx/wcn36xx.h +0 -1
@@ -128,7 +128,6 @@ struct wcn36xx_vif {enum wcn36xx_hal_bss_type bss_type;/* Power management */ -bool allow_bmps;enum wcn36xx_power_state pw_state;u8 bss_index;
drivers/soc/imx/gpcv2.c +2 -2
@@ -244,6 +244,8 @@ static int imx_pgc_power_up(struct generic_pm_domain *genpd) goto out_regulator_disable; } +reset_control_assert (domain->reset); +if (domain->bits.pxx) {/* request the domain to power up */ regmap_update_bits(domain->regmap, GPC_PU_PGC_SW_PUP_REQ,
@@ -266,8 +268,6 @@ static int imx_pgc_power_up(struct generic_pm_domain *genpd) GPC_PGC_CTRL_PCR); } -reset_control_assert (domain->reset); -/* delay for reset to propagate */ udelay (5 );
drivers/usb/core/hcd.c +6 -23
@@ -2795,7 +2795,6 @@ int usb_add_hcd(struct usb_hcd *hcd, {int retval;struct usb_device *rhdev; -struct usb_hcd *shared_hcd;if (!hcd->skip_phy_initialization &&usb_hcd_is_primary_hcd (hcd)) { hcd->phy_roothub =usb_phy_roothub_alloc (hcd->self.sysdev);
@@ -2956,26 +2955,13 @@ int usb_add_hcd(struct usb_hcd *hcd, goto err_hcd_driver_start; } -/* starting here, usbcore will pay attention to the shared HCD roothub */ - shared_hcd = hcd->shared_hcd; -if (!usb_hcd_is_primary_hcd (hcd) && shared_hcd &&HCD_DEFER_RH_REGISTER (shared_hcd)) { - retval =register_root_hub (shared_hcd); -if (retval !=0 ) - goto err_register_root_hub; - -if (shared_hcd->uses_new_polling &&HCD_POLL_RH (shared_hcd)) -usb_hcd_poll_rh_status (shared_hcd); - } -/* starting here, usbcore will pay attention to this root hub */ -if (!HCD_DEFER_RH_REGISTER (hcd)) { - retval =register_root_hub (hcd); -if (retval !=0 ) - goto err_register_root_hub; + retval =register_root_hub (hcd); +if (retval !=0 ) + goto err_register_root_hub; -if (hcd->uses_new_polling &&HCD_POLL_RH (hcd)) -usb_hcd_poll_rh_status (hcd); - } +if (hcd->uses_new_polling &&HCD_POLL_RH (hcd)) +usb_hcd_poll_rh_status (hcd);return retval;
@@ -3013,7 +2999,6 @@ EXPORT_SYMBOL_GPL(usb_add_hcd);void usb_remove_hcd (struct usb_hcd *hcd) {struct usb_device *rhdev = hcd->self.root_hub; -bool rh_registered;dev_info (hcd->self.controller,"remove, state %x\n" , hcd->state);
@@ -3024,7 +3009,6 @@ void usb_remove_hcd(struct usb_hcd *hcd)dev_dbg (hcd->self.controller,"roothub graceful disconnect\n" );spin_lock_irq (&hcd_root_hub_lock); - rh_registered = hcd->rh_registered; hcd->rh_registered =0 ;spin_unlock_irq (&hcd_root_hub_lock);
@@ -3034,8 +3018,7 @@ void usb_remove_hcd(struct usb_hcd *hcd)cancel_work_sync (&hcd->died_work);mutex_lock (&usb_bus_idr_lock); -if (rh_registered) -usb_disconnect (&rhdev);/* Sets rhdev to NULL */ +usb_disconnect (&rhdev);/* Sets rhdev to NULL */ mutex_unlock (&usb_bus_idr_lock);/*
drivers/usb/host/xhci.c +0 -1
@@ -692,7 +692,6 @@ int xhci_run(struct usb_hcd *hcd)if (ret)xhci_free_command (xhci, command); } -set_bit (HCD_FLAG_DEFER_RH_REGISTER , &hcd->flags);xhci_dbg_trace (xhci, trace_xhci_dbg_init,"Finished xhci_run for USB2 roothub" );
include/linux/usb/hcd.h +0 -2
@@ -124,7 +124,6 @@ struct usb_hcd {#define HCD_FLAG_RH_RUNNING 5/* root hub is running? */ #define HCD_FLAG_DEAD 6/* controller has died? */ #define HCD_FLAG_INTF_AUTHORIZED 7/* authorize interfaces? */ -#define HCD_FLAG_DEFER_RH_REGISTER 8/* Defer roothub registration */ /* The flags can be tested using these macros; they are likely to * be slightly faster than test_bit().
@@ -135,7 +134,6 @@ struct usb_hcd {#define HCD_WAKEUP_PENDING (hcd) ((hcd)->flags & (1U << HCD_FLAG_WAKEUP_PENDING))#define HCD_RH_RUNNING (hcd) ((hcd)->flags & (1U << HCD_FLAG_RH_RUNNING))#define HCD_DEAD (hcd) ((hcd)->flags & (1U << HCD_FLAG_DEAD)) -#define HCD_DEFER_RH_REGISTER (hcd) ((hcd)->flags & (1U << HCD_FLAG_DEFER_RH_REGISTER))/* * Specifies if interfaces are authorized by default
sound/usb/quirks.c +2 -0
@@ -1887,6 +1887,8 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = { QUIRK_FLAG_SHARE_MEDIA_DEVICE | QUIRK_FLAG_ALIGN_TRANSFER),DEVICE_FLG (0x21b4 ,0x0081 ,/* AudioQuest DragonFly */ QUIRK_FLAG_GET_SAMPLE_RATE ), +DEVICE_FLG (0x2708 ,0x0002 ,/* Audient iD14 */ +QUIRK_FLAG_IGNORE_CTL_ERROR ),DEVICE_FLG (0x2912 ,0x30c8 ,/* Audioengine D1 */ QUIRK_FLAG_GET_SAMPLE_RATE ), DEVICE_FLG(0x30be, 0x0101, /* Schiit Hel */