This is the 4.9.145 stable release

-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAlwSFk4ACgkQONu9yGCS
 aT78wRAAlajHoZZKGX7WCYSptr63w5J5jKcoYdU2dM8JsN6T67Q7Qhn/+la56iyf
 eFTYw/AgqbTBnYjsShIfEHwSF5ddbAYz67GyhHdm93uUv4E8iyLyVWpVLdZF9XD2
 SjSG0fm27eisojoVcYhMMZ3xj4jUbZQIG4I/jXYQ09aS7XVZ9eX3fTi9ZN6g6haD
 tQWXE8c1NoDM/LG3rAzcielz+XVf6BRVXxOYgShWXsTV3OIXs5HxJIcMFj939KcG
 n3sA/BHYpIgSzc5SNsuUYSqpCYIsncF/nbAz0xJhcn2kurydvXdCT7B4v/vFfKL7
 A5Hw8XGklvEa3gB1kqin9O4KvZWOErH4VnSqKfFDMcqHYqJMTi7yh8cHb8DsfpH/
 qoAJOni33vMQxO9flxD47BLq9s1VX36/KyoRZ8zm2yG1S1jsjYr/CeK4aeWW2yYQ
 wBdig2qnWfLAdYgqu7R1pyy+N5hpJndDSs7tzsHxybq7ouV+CiVnt2GFDsxm2dUa
 Or102lClpnxZ2hB0mQJMbTAHW7E4/jm9mxk2YC/vi/k5XTR3uiULDIT17AfBJ2h3
 0+o0Kiuo21xjPJx4OOSdYNjB+2grpuMwqgfY3DhbfqWNjqBbYo4zCsY419wwmwbj
 E+E7C62XFhMjvy0GdCPtrP2AoWxlm4KvIwhDzyfr+QHaka+lLNE=
 =ztNe
 -----END PGP SIGNATURE-----

Merge 4.9.145 into android-4.9

Changes in 4.9.145
	media: omap3isp: Unregister media device as first
	iommu/vt-d: Fix NULL pointer dereference in prq_event_thread()
	brcmutil: really fix decoding channel info for 160 MHz bandwidth
	iommu/ipmmu-vmsa: Fix crash on early domain free
	can: rcar_can: Fix erroneous registration
	HID: input: Ignore battery reported by Symbol DS4308
	batman-adv: Expand merged fragment buffer for full packet
	bnx2x: Assign unique DMAE channel number for FW DMAE transactions.
	qed: Fix PTT leak in qed_drain()
	qed: Fix reading wrong value in loop condition
	net/mlx4_core: Zero out lkey field in SW2HW_MPT fw command
	net/mlx4_core: Fix uninitialized variable compilation warning
	net/mlx4: Fix UBSAN warning of signed integer overflow
	mtd: rawnand: qcom: Namespace prefix some commands
	net: faraday: ftmac100: remove netif_running(netdev) check before disabling interrupts
	iommu/vt-d: Use memunmap to free memremap
	team: no need to do team_notify_peers or team_mcast_rejoin when disabling port
	net: amd: add missing of_node_put()
	mm: don't warn about allocations which stall for too long
	ARC: [zebu] Remove CONFIG_INITRAMFS_SOURCE from defconfigs
	usb: quirk: add no-LPM quirk on SanDisk Ultra Flair device
	usb: appledisplay: Add 27" Apple Cinema Display
	USB: check usb_get_extra_descriptor for proper size
	ALSA: usb-audio: Fix UAF decrement if card has no live interfaces in card.c
	ALSA: hda: Add support for AMD Stoney Ridge
	ALSA: pcm: Fix starvation on down_write_nonblock()
	ALSA: pcm: Call snd_pcm_unlink() conditionally at closing
	ALSA: pcm: Fix interval evaluation with openmin/max
	ALSA: hda/realtek - Fix speaker output regression on Thinkpad T570
	virtio/s390: avoid race on vcdev->config
	virtio/s390: fix race in ccw_io_helper()
	SUNRPC: Fix leak of krb5p encode pages
	dmaengine: cppi41: delete channel from pending list when stop channel
	xhci: Prevent U1/U2 link pm states if exit latency is too long
	sr: pass down correctly sized SCSI sense buffer
	swiotlb: clean up reporting
	vsock: lookup and setup guest_cid inside vhost_vsock_lock
	vhost/vsock: fix use-after-free in network stack callers
	Staging: lustre: remove two build warnings
	cifs: Fix separator when building path from dentry
	staging: rtl8712: Fix possible buffer overrun
	tty: serial: 8250_mtk: always resume the device in probe.
	tty: do not set TTY_IO_ERROR flag if console port
	kgdboc: fix KASAN global-out-of-bounds bug in param_set_kgdboc_var()
	mac80211_hwsim: Timer should be initialized before device registered
	mac80211: Clear beacon_int in ieee80211_do_stop
	mac80211: ignore tx status for PS stations in ieee80211_tx_status_ext
	mac80211: fix reordering of buffered broadcast packets
	mac80211: ignore NullFunc frames in the duplicate detection
	kbuild: fix linker feature test macros when cross compiling with Clang
	kbuild: allow to use GCC toolchain not in Clang search path
	Linux 4.9.145

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Greg Kroah-Hartman 2018-12-13 09:39:24 +01:00
commit 6328e6475a
56 changed files with 228 additions and 133 deletions

View file

@ -1,6 +1,6 @@
VERSION = 4 VERSION = 4
PATCHLEVEL = 9 PATCHLEVEL = 9
SUBLEVEL = 144 SUBLEVEL = 145
EXTRAVERSION = EXTRAVERSION =
NAME = Roaring Lionus NAME = Roaring Lionus
@ -522,8 +522,8 @@ endif
ifneq ($(GCC_TOOLCHAIN),) ifneq ($(GCC_TOOLCHAIN),)
CLANG_GCC_TC := --gcc-toolchain=$(GCC_TOOLCHAIN) CLANG_GCC_TC := --gcc-toolchain=$(GCC_TOOLCHAIN)
endif endif
KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,) KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,)
KBUILD_CFLAGS += $(call cc-disable-warning, unused-variable) KBUILD_CFLAGS += $(call cc-disable-warning, unused-variable)
KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier) KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier)

View file

@ -11,7 +11,6 @@ CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set # CONFIG_UTS_NS is not set
# CONFIG_PID_NS is not set # CONFIG_PID_NS is not set
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE="../../arc_initramfs_hs/"
CONFIG_EXPERT=y CONFIG_EXPERT=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set

View file

@ -11,7 +11,6 @@ CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set # CONFIG_UTS_NS is not set
# CONFIG_PID_NS is not set # CONFIG_PID_NS is not set
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE="../../arc_initramfs_hs/"
CONFIG_EMBEDDED=y CONFIG_EMBEDDED=y
CONFIG_PERF_EVENTS=y CONFIG_PERF_EVENTS=y
# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_VM_EVENT_COUNTERS is not set

View file

@ -717,8 +717,22 @@ static int cppi41_stop_chan(struct dma_chan *chan)
desc_phys = lower_32_bits(c->desc_phys); desc_phys = lower_32_bits(c->desc_phys);
desc_num = (desc_phys - cdd->descs_phys) / sizeof(struct cppi41_desc); desc_num = (desc_phys - cdd->descs_phys) / sizeof(struct cppi41_desc);
if (!cdd->chan_busy[desc_num]) if (!cdd->chan_busy[desc_num]) {
struct cppi41_channel *cc, *_ct;
/*
* channels might still be in the pendling list if
* cppi41_dma_issue_pending() is called after
* cppi41_runtime_suspend() is called
*/
list_for_each_entry_safe(cc, _ct, &cdd->pending, node) {
if (cc != c)
continue;
list_del(&cc->node);
break;
}
return 0; return 0;
}
ret = cppi41_tear_down_chan(c); ret = cppi41_tear_down_chan(c);
if (ret) if (ret)

View file

@ -965,6 +965,7 @@
#define USB_VENDOR_ID_SYMBOL 0x05e0 #define USB_VENDOR_ID_SYMBOL 0x05e0
#define USB_DEVICE_ID_SYMBOL_SCANNER_1 0x0800 #define USB_DEVICE_ID_SYMBOL_SCANNER_1 0x0800
#define USB_DEVICE_ID_SYMBOL_SCANNER_2 0x1300 #define USB_DEVICE_ID_SYMBOL_SCANNER_2 0x1300
#define USB_DEVICE_ID_SYMBOL_SCANNER_3 0x1200
#define USB_VENDOR_ID_SYNAPTICS 0x06cb #define USB_VENDOR_ID_SYNAPTICS 0x06cb
#define USB_DEVICE_ID_SYNAPTICS_TP 0x0001 #define USB_DEVICE_ID_SYNAPTICS_TP 0x0001

View file

@ -324,6 +324,9 @@ static const struct hid_device_id hid_battery_quirks[] = {
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ELECOM, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ELECOM,
USB_DEVICE_ID_ELECOM_BM084), USB_DEVICE_ID_ELECOM_BM084),
HID_BATTERY_QUIRK_IGNORE }, HID_BATTERY_QUIRK_IGNORE },
{ HID_USB_DEVICE(USB_VENDOR_ID_SYMBOL,
USB_DEVICE_ID_SYMBOL_SCANNER_3),
HID_BATTERY_QUIRK_IGNORE },
{} {}
}; };

View file

@ -3054,7 +3054,7 @@ static int copy_context_table(struct intel_iommu *iommu,
} }
if (old_ce) if (old_ce)
iounmap(old_ce); memunmap(old_ce);
ret = 0; ret = 0;
if (devfn < 0x80) if (devfn < 0x80)

View file

@ -558,7 +558,7 @@ static irqreturn_t prq_event_thread(int irq, void *d)
pr_err("%s: Page request without PASID: %08llx %08llx\n", pr_err("%s: Page request without PASID: %08llx %08llx\n",
iommu->name, ((unsigned long long *)req)[0], iommu->name, ((unsigned long long *)req)[0],
((unsigned long long *)req)[1]); ((unsigned long long *)req)[1]);
goto bad_req; goto no_pasid;
} }
if (!svm || svm->pasid != req->pasid) { if (!svm || svm->pasid != req->pasid) {

View file

@ -372,6 +372,9 @@ static int ipmmu_domain_init_context(struct ipmmu_vmsa_domain *domain)
static void ipmmu_domain_destroy_context(struct ipmmu_vmsa_domain *domain) static void ipmmu_domain_destroy_context(struct ipmmu_vmsa_domain *domain)
{ {
if (!domain->mmu)
return;
/* /*
* Disable the context. Flush the TLB as required when modifying the * Disable the context. Flush the TLB as required when modifying the
* context registers. * context registers.

View file

@ -1591,6 +1591,8 @@ static void isp_pm_complete(struct device *dev)
static void isp_unregister_entities(struct isp_device *isp) static void isp_unregister_entities(struct isp_device *isp)
{ {
media_device_unregister(&isp->media_dev);
omap3isp_csi2_unregister_entities(&isp->isp_csi2a); omap3isp_csi2_unregister_entities(&isp->isp_csi2a);
omap3isp_ccp2_unregister_entities(&isp->isp_ccp2); omap3isp_ccp2_unregister_entities(&isp->isp_ccp2);
omap3isp_ccdc_unregister_entities(&isp->isp_ccdc); omap3isp_ccdc_unregister_entities(&isp->isp_ccdc);
@ -1601,7 +1603,6 @@ static void isp_unregister_entities(struct isp_device *isp)
omap3isp_stat_unregister_entities(&isp->isp_hist); omap3isp_stat_unregister_entities(&isp->isp_hist);
v4l2_device_unregister(&isp->v4l2_dev); v4l2_device_unregister(&isp->v4l2_dev);
media_device_unregister(&isp->media_dev);
media_device_cleanup(&isp->media_dev); media_device_cleanup(&isp->media_dev);
} }

View file

@ -142,15 +142,15 @@
#define NAND_VERSION_MINOR_SHIFT 16 #define NAND_VERSION_MINOR_SHIFT 16
/* NAND OP_CMDs */ /* NAND OP_CMDs */
#define PAGE_READ 0x2 #define OP_PAGE_READ 0x2
#define PAGE_READ_WITH_ECC 0x3 #define OP_PAGE_READ_WITH_ECC 0x3
#define PAGE_READ_WITH_ECC_SPARE 0x4 #define OP_PAGE_READ_WITH_ECC_SPARE 0x4
#define PROGRAM_PAGE 0x6 #define OP_PROGRAM_PAGE 0x6
#define PAGE_PROGRAM_WITH_ECC 0x7 #define OP_PAGE_PROGRAM_WITH_ECC 0x7
#define PROGRAM_PAGE_SPARE 0x9 #define OP_PROGRAM_PAGE_SPARE 0x9
#define BLOCK_ERASE 0xa #define OP_BLOCK_ERASE 0xa
#define FETCH_ID 0xb #define OP_FETCH_ID 0xb
#define RESET_DEVICE 0xd #define OP_RESET_DEVICE 0xd
/* Default Value for NAND_DEV_CMD_VLD */ /* Default Value for NAND_DEV_CMD_VLD */
#define NAND_DEV_CMD_VLD_VAL (READ_START_VLD | WRITE_START_VLD | \ #define NAND_DEV_CMD_VLD_VAL (READ_START_VLD | WRITE_START_VLD | \
@ -425,11 +425,11 @@ static void update_rw_regs(struct qcom_nand_host *host, int num_cw, bool read)
if (read) { if (read) {
if (host->use_ecc) if (host->use_ecc)
cmd = PAGE_READ_WITH_ECC | PAGE_ACC | LAST_PAGE; cmd = OP_PAGE_READ_WITH_ECC | PAGE_ACC | LAST_PAGE;
else else
cmd = PAGE_READ | PAGE_ACC | LAST_PAGE; cmd = OP_PAGE_READ | PAGE_ACC | LAST_PAGE;
} else { } else {
cmd = PROGRAM_PAGE | PAGE_ACC | LAST_PAGE; cmd = OP_PROGRAM_PAGE | PAGE_ACC | LAST_PAGE;
} }
if (host->use_ecc) { if (host->use_ecc) {
@ -662,7 +662,7 @@ static int nandc_param(struct qcom_nand_host *host)
* in use. we configure the controller to perform a raw read of 512 * in use. we configure the controller to perform a raw read of 512
* bytes to read onfi params * bytes to read onfi params
*/ */
nandc_set_reg(nandc, NAND_FLASH_CMD, PAGE_READ | PAGE_ACC | LAST_PAGE); nandc_set_reg(nandc, NAND_FLASH_CMD, OP_PAGE_READ | PAGE_ACC | LAST_PAGE);
nandc_set_reg(nandc, NAND_ADDR0, 0); nandc_set_reg(nandc, NAND_ADDR0, 0);
nandc_set_reg(nandc, NAND_ADDR1, 0); nandc_set_reg(nandc, NAND_ADDR1, 0);
nandc_set_reg(nandc, NAND_DEV0_CFG0, 0 << CW_PER_PAGE nandc_set_reg(nandc, NAND_DEV0_CFG0, 0 << CW_PER_PAGE
@ -715,7 +715,7 @@ static int erase_block(struct qcom_nand_host *host, int page_addr)
struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip); struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
nandc_set_reg(nandc, NAND_FLASH_CMD, nandc_set_reg(nandc, NAND_FLASH_CMD,
BLOCK_ERASE | PAGE_ACC | LAST_PAGE); OP_BLOCK_ERASE | PAGE_ACC | LAST_PAGE);
nandc_set_reg(nandc, NAND_ADDR0, page_addr); nandc_set_reg(nandc, NAND_ADDR0, page_addr);
nandc_set_reg(nandc, NAND_ADDR1, 0); nandc_set_reg(nandc, NAND_ADDR1, 0);
nandc_set_reg(nandc, NAND_DEV0_CFG0, nandc_set_reg(nandc, NAND_DEV0_CFG0,
@ -746,7 +746,7 @@ static int read_id(struct qcom_nand_host *host, int column)
if (column == -1) if (column == -1)
return 0; return 0;
nandc_set_reg(nandc, NAND_FLASH_CMD, FETCH_ID); nandc_set_reg(nandc, NAND_FLASH_CMD, OP_FETCH_ID);
nandc_set_reg(nandc, NAND_ADDR0, column); nandc_set_reg(nandc, NAND_ADDR0, column);
nandc_set_reg(nandc, NAND_ADDR1, 0); nandc_set_reg(nandc, NAND_ADDR1, 0);
nandc_set_reg(nandc, NAND_FLASH_CHIP_SELECT, DM_EN); nandc_set_reg(nandc, NAND_FLASH_CHIP_SELECT, DM_EN);
@ -766,7 +766,7 @@ static int reset(struct qcom_nand_host *host)
struct nand_chip *chip = &host->chip; struct nand_chip *chip = &host->chip;
struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip); struct qcom_nand_controller *nandc = get_qcom_nand_controller(chip);
nandc_set_reg(nandc, NAND_FLASH_CMD, RESET_DEVICE); nandc_set_reg(nandc, NAND_FLASH_CMD, OP_RESET_DEVICE);
nandc_set_reg(nandc, NAND_EXEC_CMD, 1); nandc_set_reg(nandc, NAND_EXEC_CMD, 1);
write_reg_dma(nandc, NAND_FLASH_CMD, 1); write_reg_dma(nandc, NAND_FLASH_CMD, 1);

View file

@ -24,6 +24,9 @@
#define RCAR_CAN_DRV_NAME "rcar_can" #define RCAR_CAN_DRV_NAME "rcar_can"
#define RCAR_SUPPORTED_CLOCKS (BIT(CLKR_CLKP1) | BIT(CLKR_CLKP2) | \
BIT(CLKR_CLKEXT))
/* Mailbox configuration: /* Mailbox configuration:
* mailbox 60 - 63 - Rx FIFO mailboxes * mailbox 60 - 63 - Rx FIFO mailboxes
* mailbox 56 - 59 - Tx FIFO mailboxes * mailbox 56 - 59 - Tx FIFO mailboxes
@ -789,7 +792,7 @@ static int rcar_can_probe(struct platform_device *pdev)
goto fail_clk; goto fail_clk;
} }
if (clock_select >= ARRAY_SIZE(clock_names)) { if (!(BIT(clock_select) & RCAR_SUPPORTED_CLOCKS)) {
err = -EINVAL; err = -EINVAL;
dev_err(&pdev->dev, "invalid CAN clock selected\n"); dev_err(&pdev->dev, "invalid CAN clock selected\n");
goto fail_clk; goto fail_clk;

View file

@ -1419,7 +1419,7 @@ static int sparc_lance_probe_one(struct platform_device *op,
prop = of_get_property(nd, "tpe-link-test?", NULL); prop = of_get_property(nd, "tpe-link-test?", NULL);
if (!prop) if (!prop)
goto no_link_test; goto node_put;
if (strcmp(prop, "true")) { if (strcmp(prop, "true")) {
printk(KERN_NOTICE "SunLance: warning: overriding option " printk(KERN_NOTICE "SunLance: warning: overriding option "
@ -1428,6 +1428,8 @@ static int sparc_lance_probe_one(struct platform_device *op,
"to ecd@skynet.be\n"); "to ecd@skynet.be\n");
auxio_set_lte(AUXIO_LTE_ON); auxio_set_lte(AUXIO_LTE_ON);
} }
node_put:
of_node_put(nd);
no_link_test: no_link_test:
lp->auto_select = 1; lp->auto_select = 1;
lp->tpe = 0; lp->tpe = 0;

View file

@ -2187,6 +2187,13 @@ void bnx2x_igu_clear_sb_gen(struct bnx2x *bp, u8 func, u8 idu_sb_id,
#define PMF_DMAE_C(bp) (BP_PORT(bp) * MAX_DMAE_C_PER_PORT + \ #define PMF_DMAE_C(bp) (BP_PORT(bp) * MAX_DMAE_C_PER_PORT + \
E1HVN_MAX) E1HVN_MAX)
/* Following is the DMAE channel number allocation for the clients.
* MFW: OCBB/OCSD implementations use DMAE channels 14/15 respectively.
* Driver: 0-3 and 8-11 (for PF dmae operations)
* 4 and 12 (for stats requests)
*/
#define BNX2X_FW_DMAE_C 13 /* Channel for FW DMAE operations */
/* PCIE link and speed */ /* PCIE link and speed */
#define PCICFG_LINK_WIDTH 0x1f00000 #define PCICFG_LINK_WIDTH 0x1f00000
#define PCICFG_LINK_WIDTH_SHIFT 20 #define PCICFG_LINK_WIDTH_SHIFT 20

View file

@ -6149,6 +6149,7 @@ static inline int bnx2x_func_send_start(struct bnx2x *bp,
rdata->sd_vlan_tag = cpu_to_le16(start_params->sd_vlan_tag); rdata->sd_vlan_tag = cpu_to_le16(start_params->sd_vlan_tag);
rdata->path_id = BP_PATH(bp); rdata->path_id = BP_PATH(bp);
rdata->network_cos_mode = start_params->network_cos_mode; rdata->network_cos_mode = start_params->network_cos_mode;
rdata->dmae_cmd_id = BNX2X_FW_DMAE_C;
rdata->vxlan_dst_port = cpu_to_le16(start_params->vxlan_dst_port); rdata->vxlan_dst_port = cpu_to_le16(start_params->vxlan_dst_port);
rdata->geneve_dst_port = cpu_to_le16(start_params->geneve_dst_port); rdata->geneve_dst_port = cpu_to_le16(start_params->geneve_dst_port);

View file

@ -865,11 +865,10 @@ static irqreturn_t ftmac100_interrupt(int irq, void *dev_id)
struct net_device *netdev = dev_id; struct net_device *netdev = dev_id;
struct ftmac100 *priv = netdev_priv(netdev); struct ftmac100 *priv = netdev_priv(netdev);
if (likely(netif_running(netdev))) { /* Disable interrupts for polling */
/* Disable interrupts for polling */ ftmac100_disable_all_int(priv);
ftmac100_disable_all_int(priv); if (likely(netif_running(netdev)))
napi_schedule(&priv->napi); napi_schedule(&priv->napi);
}
return IRQ_HANDLED; return IRQ_HANDLED;
} }

View file

@ -339,7 +339,7 @@ void mlx4_zone_allocator_destroy(struct mlx4_zone_allocator *zone_alloc)
static u32 __mlx4_alloc_from_zone(struct mlx4_zone_entry *zone, int count, static u32 __mlx4_alloc_from_zone(struct mlx4_zone_entry *zone, int count,
int align, u32 skip_mask, u32 *puid) int align, u32 skip_mask, u32 *puid)
{ {
u32 uid; u32 uid = 0;
u32 res; u32 res;
struct mlx4_zone_allocator *zone_alloc = zone->allocator; struct mlx4_zone_allocator *zone_alloc = zone->allocator;
struct mlx4_zone_entry *curr_node; struct mlx4_zone_entry *curr_node;

View file

@ -542,8 +542,8 @@ struct slave_list {
struct resource_allocator { struct resource_allocator {
spinlock_t alloc_lock; /* protect quotas */ spinlock_t alloc_lock; /* protect quotas */
union { union {
int res_reserved; unsigned int res_reserved;
int res_port_rsvd[MLX4_MAX_PORTS]; unsigned int res_port_rsvd[MLX4_MAX_PORTS];
}; };
union { union {
int res_free; int res_free;

View file

@ -366,6 +366,7 @@ int mlx4_mr_hw_write_mpt(struct mlx4_dev *dev, struct mlx4_mr *mmr,
container_of((void *)mpt_entry, struct mlx4_cmd_mailbox, container_of((void *)mpt_entry, struct mlx4_cmd_mailbox,
buf); buf);
(*mpt_entry)->lkey = 0;
err = mlx4_SW2HW_MPT(dev, mailbox, key); err = mlx4_SW2HW_MPT(dev, mailbox, key);
} }

View file

@ -2135,6 +2135,8 @@ static int qed_int_attentions(struct qed_hwfn *p_hwfn)
*/ */
do { do {
index = p_sb_attn->sb_index; index = p_sb_attn->sb_index;
/* finish reading index before the loop condition */
dma_rmb();
attn_bits = le32_to_cpu(p_sb_attn->atten_bits); attn_bits = le32_to_cpu(p_sb_attn->atten_bits);
attn_acks = le32_to_cpu(p_sb_attn->atten_ack); attn_acks = le32_to_cpu(p_sb_attn->atten_ack);
} while (index != p_sb_attn->sb_index); } while (index != p_sb_attn->sb_index);

Some files were not shown because too many files have changed in this diff Show more