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:
commit
6328e6475a
56 changed files with 228 additions and 133 deletions
6
Makefile
6
Makefile
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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 },
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
Loading…
Reference in a new issue