aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Huang2017-08-18 05:00:42 -0500
committerDavid Huang2017-08-18 05:00:42 -0500
commit0b51cec0f27cb76ff520dbee7bcd6535726c0c19 (patch)
tree1fd53319c8cb9942ea65effec3123bb73323e80d
parentb9ef742fba4ab2bcad11adeb25f1af3f0e4d8a62 (diff)
parentb5194df45f8ca19e5f4215dec066492f473f11b9 (diff)
downloadkernel-omap-0b51cec0f27cb76ff520dbee7bcd6535726c0c19.tar.gz
kernel-omap-0b51cec0f27cb76ff520dbee7bcd6535726c0c19.tar.xz
kernel-omap-0b51cec0f27cb76ff520dbee7bcd6535726c0c19.zip
Merge branch 'ti-lsk-linux-4.4.y' of git://git.ti.com/ti-linux-kernel/ti-linux-kernel into p-ti-lsk-linux-4.4.y
Auto Merge of: TI-Feature: lcpd-linux-4.4.y_linux-4.4.y TI-Tree: git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git TI-Branch: ti-lsk-linux-4.4.y * 'ti-lsk-linux-4.4.y' of git://git.ti.com/ti-linux-kernel/ti-linux-kernel: (24 commits) Linux 4.4.83 pinctrl: samsung: Remove bogus irq_[un]mask from resource management pinctrl: sunxi: add a missing function of A10/A20 pinctrl driver pnfs/blocklayout: require 64-bit sector_t iio: adc: vf610_adc: Fix VALT selection value for REFSEL bits usb:xhci:Add quirk for Certain failing HP keyboard on reset after resume usb: quirks: Add no-lpm quirk for Moshi USB to Ethernet Adapter usb: core: unlink urbs from the tail of the endpoint's urb_list USB: Check for dropped connection before switching to full speed uas: Add US_FL_IGNORE_RESIDUE for Initio Corporation INIC-3069 iio: light: tsl2563: use correct event code iio: accel: bmc150: Always restore device to normal mode after suspend-resume staging:iio:resolver:ad2s1210 fix negative IIO_ANGL_VEL read USB: hcd: Mark secondary HCD as dead if the primary one died usb: musb: fix tx fifo flush handling again USB: serial: pl2303: add new ATEN device id USB: serial: cp210x: add support for Qivicon USB ZigBee dongle USB: serial: option: add D-Link DWM-222 device ID nfs/flexfiles: fix leak of nfs4_ff_ds_version arrays fuse: initialize the flock flag in fuse_file on allocation ... Signed-off-by: David Huang <d-huang@ti.com>
-rw-r--r--Makefile2
-rw-r--r--drivers/iio/accel/bmc150-accel-core.c9
-rw-r--r--drivers/iio/adc/vf610_adc.c2
-rw-r--r--drivers/iio/light/tsl2563.c2
-rw-r--r--drivers/pinctrl/samsung/pinctrl-exynos.c4
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c1
-rw-r--r--drivers/staging/iio/resolver/ad2s1210.c2
-rw-r--r--drivers/target/iscsi/iscsi_target.c2
-rw-r--r--drivers/target/iscsi/iscsi_target_login.c7
-rw-r--r--drivers/usb/core/hcd.c4
-rw-r--r--drivers/usb/core/hub.c10
-rw-r--r--drivers/usb/core/quirks.c4
-rw-r--r--drivers/usb/host/pci-quirks.c17
-rw-r--r--drivers/usb/musb/musb_host.c1
-rw-r--r--drivers/usb/serial/cp210x.c1
-rw-r--r--drivers/usb/serial/option.c2
-rw-r--r--drivers/usb/serial/pl2303.c1
-rw-r--r--drivers/usb/serial/pl2303.h1
-rw-r--r--drivers/usb/storage/unusual_uas.h4
-rw-r--r--fs/fuse/file.c2
-rw-r--r--fs/nfs/Kconfig1
-rw-r--r--fs/nfs/flexfilelayout/flexfilelayoutdev.c1
-rw-r--r--include/linux/cpuset.h7
-rw-r--r--include/target/iscsi/iscsi_target_core.h1
-rw-r--r--kernel/cpuset.c1
-rw-r--r--mm/page_alloc.c2
26 files changed, 57 insertions, 34 deletions
diff --git a/Makefile b/Makefile
index 52f2dd8dcebd..7f67b35caf99 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
1VERSION = 4 1VERSION = 4
2PATCHLEVEL = 4 2PATCHLEVEL = 4
3SUBLEVEL = 82 3SUBLEVEL = 83
4EXTRAVERSION = 4EXTRAVERSION =
5NAME = Blurry Fish Butt 5NAME = Blurry Fish Butt
6 6
diff --git a/drivers/iio/accel/bmc150-accel-core.c b/drivers/iio/accel/bmc150-accel-core.c
index fa24d5196615..c7122919a8c0 100644
--- a/drivers/iio/accel/bmc150-accel-core.c
+++ b/drivers/iio/accel/bmc150-accel-core.c
@@ -194,7 +194,6 @@ struct bmc150_accel_data {
194 struct device *dev; 194 struct device *dev;
195 int irq; 195 int irq;
196 struct bmc150_accel_interrupt interrupts[BMC150_ACCEL_INTERRUPTS]; 196 struct bmc150_accel_interrupt interrupts[BMC150_ACCEL_INTERRUPTS];
197 atomic_t active_intr;
198 struct bmc150_accel_trigger triggers[BMC150_ACCEL_TRIGGERS]; 197 struct bmc150_accel_trigger triggers[BMC150_ACCEL_TRIGGERS];
199 struct mutex mutex; 198 struct mutex mutex;
200 u8 fifo_mode, watermark; 199 u8 fifo_mode, watermark;
@@ -489,11 +488,6 @@ static int bmc150_accel_set_interrupt(struct bmc150_accel_data *data, int i,
489 goto out_fix_power_state; 488 goto out_fix_power_state;
490 } 489 }
491 490
492 if (state)
493 atomic_inc(&data->active_intr);
494 else
495 atomic_dec(&data->active_intr);
496
497 return 0; 491 return 0;
498 492
499out_fix_power_state: 493out_fix_power_state:
@@ -1704,8 +1698,7 @@ static int bmc150_accel_resume(struct device *dev)
1704 struct bmc150_accel_data *data = iio_priv(indio_dev); 1698 struct bmc150_accel_data *data = iio_priv(indio_dev);
1705 1699
1706 mutex_lock(&data->mutex); 1700 mutex_lock(&data->mutex);
1707 if (atomic_read(&data->active_intr)) 1701 bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_NORMAL, 0);
1708 bmc150_accel_set_mode(data, BMC150_ACCEL_SLEEP_MODE_NORMAL, 0);
1709 bmc150_accel_fifo_set_mode(data); 1702 bmc150_accel_fifo_set_mode(data);
1710 mutex_unlock(&data->mutex); 1703 mutex_unlock(&data->mutex);
1711 1704
diff --git a/drivers/iio/adc/vf610_adc.c b/drivers/iio/adc/vf610_adc.c
index b10f629cc44b..1dbc2143cdfc 100644
--- a/drivers/iio/adc/vf610_adc.c
+++ b/drivers/iio/adc/vf610_adc.c
@@ -77,7 +77,7 @@
77#define VF610_ADC_ADSTS_MASK 0x300 77#define VF610_ADC_ADSTS_MASK 0x300
78#define VF610_ADC_ADLPC_EN 0x80 78#define VF610_ADC_ADLPC_EN 0x80
79#define VF610_ADC_ADHSC_EN 0x400 79#define VF610_ADC_ADHSC_EN 0x400
80#define VF610_ADC_REFSEL_VALT 0x100 80#define VF610_ADC_REFSEL_VALT 0x800
81#define VF610_ADC_REFSEL_VBG 0x1000 81#define VF610_ADC_REFSEL_VBG 0x1000
82#define VF610_ADC_ADTRG_HARD 0x2000 82#define VF610_ADC_ADTRG_HARD 0x2000
83#define VF610_ADC_AVGS_8 0x4000 83#define VF610_ADC_AVGS_8 0x4000
diff --git a/drivers/iio/light/tsl2563.c b/drivers/iio/light/tsl2563.c
index 12731d6b89ec..ec1b2e798cc1 100644
--- a/drivers/iio/light/tsl2563.c
+++ b/drivers/iio/light/tsl2563.c
@@ -626,7 +626,7 @@ static irqreturn_t tsl2563_event_handler(int irq, void *private)
626 struct tsl2563_chip *chip = iio_priv(dev_info); 626 struct tsl2563_chip *chip = iio_priv(dev_info);
627 627
628 iio_push_event(dev_info, 628 iio_push_event(dev_info,
629 IIO_UNMOD_EVENT_CODE(IIO_LIGHT, 629 IIO_UNMOD_EVENT_CODE(IIO_INTENSITY,
630 0, 630 0,
631 IIO_EV_TYPE_THRESH, 631 IIO_EV_TYPE_THRESH,
632 IIO_EV_DIR_EITHER), 632 IIO_EV_DIR_EITHER),
diff --git a/drivers/pinctrl/samsung/pinctrl-exynos.c b/drivers/pinctrl/samsung/pinctrl-exynos.c
index 71ccf6a90b22..2551e4adb33f 100644
--- a/drivers/pinctrl/samsung/pinctrl-exynos.c
+++ b/drivers/pinctrl/samsung/pinctrl-exynos.c
@@ -194,8 +194,6 @@ static int exynos_irq_request_resources(struct irq_data *irqd)
194 194
195 spin_unlock_irqrestore(&bank->slock, flags); 195 spin_unlock_irqrestore(&bank->slock, flags);
196 196
197 exynos_irq_unmask(irqd);
198
199 return 0; 197 return 0;
200} 198}
201 199
@@ -216,8 +214,6 @@ static void exynos_irq_release_resources(struct irq_data *irqd)
216 shift = irqd->hwirq * bank_type->fld_width[PINCFG_TYPE_FUNC]; 214 shift = irqd->hwirq * bank_type->fld_width[PINCFG_TYPE_FUNC];
217 mask = (1 << bank_type->fld_width[PINCFG_TYPE_FUNC]) - 1; 215 mask = (1 << bank_type->fld_width[PINCFG_TYPE_FUNC]) - 1;
218 216
219 exynos_irq_mask(irqd);
220
221 spin_lock_irqsave(&bank->slock, flags); 217 spin_lock_irqsave(&bank->slock, flags);
222 218
223 con = readl(d->virt_base + reg_con); 219 con = readl(d->virt_base + reg_con);
diff --git a/drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c b/drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c
index 862a096c5dba..be5c71df148d 100644
--- a/drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c
+++ b/drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c
@@ -811,6 +811,7 @@ static const struct sunxi_desc_pin sun4i_a10_pins[] = {
811 SUNXI_FUNCTION(0x2, "lcd1"), /* D16 */ 811 SUNXI_FUNCTION(0x2, "lcd1"), /* D16 */
812 SUNXI_FUNCTION(0x3, "pata"), /* ATAD12 */ 812 SUNXI_FUNCTION(0x3, "pata"), /* ATAD12 */
813 SUNXI_FUNCTION(0x4, "keypad"), /* IN6 */ 813 SUNXI_FUNCTION(0x4, "keypad"), /* IN6 */
814 SUNXI_FUNCTION(0x5, "sim"), /* DET */
814 SUNXI_FUNCTION_IRQ(0x6, 16), /* EINT16 */ 815 SUNXI_FUNCTION_IRQ(0x6, 16), /* EINT16 */
815 SUNXI_FUNCTION(0x7, "csi1")), /* D16 */ 816 SUNXI_FUNCTION(0x7, "csi1")), /* D16 */
816 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 17), 817 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 17),
diff --git a/drivers/staging/iio/resolver/ad2s1210.c b/drivers/staging/iio/resolver/ad2s1210.c
index d97aa2827412..8eb7179da342 100644
--- a/drivers/staging/iio/resolver/ad2s1210.c
+++ b/drivers/staging/iio/resolver/ad2s1210.c
@@ -468,7 +468,7 @@ static int ad2s1210_read_raw(struct iio_dev *indio_dev,
468 long m) 468 long m)
469{ 469{
470 struct ad2s1210_state *st = iio_priv(indio_dev); 470 struct ad2s1210_state *st = iio_priv(indio_dev);
471 bool negative; 471 u16 negative;
472 int ret = 0; 472 int ret = 0;
473 u16 pos; 473 u16 pos;
474 s16 vel; 474 s16 vel;
diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
index 31d5d9c0e10b..1ff1c83e2df5 100644
--- a/drivers/target/iscsi/iscsi_target.c
+++ b/drivers/target/iscsi/iscsi_target.c
@@ -418,6 +418,7 @@ int iscsit_reset_np_thread(
418 return 0; 418 return 0;
419 } 419 }
420 np->np_thread_state = ISCSI_NP_THREAD_RESET; 420 np->np_thread_state = ISCSI_NP_THREAD_RESET;
421 atomic_inc(&np->np_reset_count);
421 422
422 if (np->np_thread) { 423 if (np->np_thread) {
423 spin_unlock_bh(&np->np_thread_lock); 424 spin_unlock_bh(&np->np_thread_lock);
@@ -1996,6 +1997,7 @@ iscsit_setup_text_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd,
1996 cmd->cmd_sn = be32_to_cpu(hdr->cmdsn); 1997 cmd->cmd_sn = be32_to_cpu(hdr->cmdsn);
1997 cmd->exp_stat_sn = be32_to_cpu(hdr->exp_statsn); 1998 cmd->exp_stat_sn = be32_to_cpu(hdr->exp_statsn);
1998 cmd->data_direction = DMA_NONE; 1999 cmd->data_direction = DMA_NONE;
2000 kfree(cmd->text_in_ptr);
1999 cmd->text_in_ptr = NULL; 2001 cmd->text_in_ptr = NULL;
2000 2002
2001 return 0; 2003 return 0;
diff --git a/drivers/target/iscsi/iscsi_target_login.c b/drivers/target/iscsi/iscsi_target_login.c
index b19edffa7d98..bc2cbffec27e 100644
--- a/drivers/target/iscsi/iscsi_target_login.c
+++ b/drivers/target/iscsi/iscsi_target_login.c
@@ -1219,9 +1219,11 @@ static int __iscsi_target_login_thread(struct iscsi_np *np)
1219 flush_signals(current); 1219 flush_signals(current);
1220 1220
1221 spin_lock_bh(&np->np_thread_lock); 1221 spin_lock_bh(&np->np_thread_lock);
1222 if (np->np_thread_state == ISCSI_NP_THREAD_RESET) { 1222 if (atomic_dec_if_positive(&np->np_reset_count) >= 0) {
1223 np->np_thread_state = ISCSI_NP_THREAD_ACTIVE; 1223 np->np_thread_state = ISCSI_NP_THREAD_ACTIVE;
1224 spin_unlock_bh(&np->np_thread_lock);
1224 complete(&np->np_restart_comp); 1225 complete(&np->np_restart_comp);
1226 return 1;
1225 } else if (np->np_thread_state == ISCSI_NP_THREAD_SHUTDOWN) { 1227 } else if (np->np_thread_state == ISCSI_NP_THREAD_SHUTDOWN) {
1226 spin_unlock_bh(&np->np_thread_lock); 1228 spin_unlock_bh(&np->np_thread_lock);
1227 goto exit; 1229 goto exit;
@@ -1254,7 +1256,8 @@ static int __iscsi_target_login_thread(struct iscsi_np *np)
1254 goto exit; 1256 goto exit;
1255 } else if (rc < 0) { 1257 } else if (rc < 0) {
1256 spin_lock_bh(&np->np_thread_lock); 1258 spin_lock_bh(&np->np_thread_lock);
1257 if (np->np_thread_state == ISCSI_NP_THREAD_RESET) { 1259 if (atomic_dec_if_positive(&np->np_reset_count) >= 0) {
1260 np->np_thread_state = ISCSI_NP_THREAD_ACTIVE;
1258 spin_unlock_bh(&np->np_thread_lock); 1261 spin_unlock_bh(&np->np_thread_lock);
1259 complete(&np->np_restart_comp); 1262 complete(&np->np_restart_comp);
1260 iscsit_put_transport(conn->conn_transport); 1263 iscsit_put_transport(conn->conn_transport);
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index 5e1bd8c92daa..9fa19c5fb471 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -1852,7 +1852,7 @@ void usb_hcd_flush_endpoint(struct usb_device *udev,
1852 /* No more submits can occur */ 1852 /* No more submits can occur */
1853 spin_lock_irq(&hcd_urb_list_lock); 1853 spin_lock_irq(&hcd_urb_list_lock);
1854rescan: 1854rescan:
1855 list_for_each_entry (urb, &ep->urb_list, urb_list) { 1855 list_for_each_entry_reverse(urb, &ep->urb_list, urb_list) {
1856 int is_in; 1856 int is_in;
1857 1857
1858 if (urb->unlinked) 1858 if (urb->unlinked)
@@ -2449,6 +2449,8 @@ void usb_hc_died (struct usb_hcd *hcd)
2449 } 2449 }
2450 if (usb_hcd_is_primary_hcd(hcd) && hcd->shared_hcd) { 2450 if (usb_hcd_is_primary_hcd(hcd) && hcd->shared_hcd) {
2451 hcd = hcd->shared_hcd; 2451 hcd = hcd->shared_hcd;
2452 clear_bit(HCD_FLAG_RH_RUNNING, &hcd->flags);
2453 set_bit(HCD_FLAG_DEAD, &hcd->flags);
2452 if (hcd->rh_registered) { 2454 if (hcd->rh_registered) {
2453 clear_bit(HCD_FLAG_POLL_RH, &hcd->flags); 2455 clear_bit(HCD_FLAG_POLL_RH, &hcd->flags);
2454 2456
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index d08f65eb1acd..9dc72e53712f 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -4673,7 +4673,8 @@ hub_power_remaining(struct usb_hub *hub)
4673static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus, 4673static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
4674 u16 portchange) 4674 u16 portchange)
4675{ 4675{
4676 int status, i; 4676 int status = -ENODEV;
4677 int i;
4677 unsigned unit_load; 4678 unsigned unit_load;
4678 struct usb_device *hdev = hub->hdev; 4679 struct usb_device *hdev = hub->hdev;
4679 struct usb_hcd *hcd = bus_to_hcd(hdev->bus); 4680 struct usb_hcd *hcd = bus_to_hcd(hdev->bus);
@@ -4877,9 +4878,10 @@ loop:
4877 4878
4878done: 4879done:
4879 hub_port_disable(hub, port1, 1); 4880 hub_port_disable(hub, port1, 1);
4880 if (hcd->driver->relinquish_port && !hub->hdev->parent) 4881 if (hcd->driver->relinquish_port && !hub->hdev->parent) {
4881 hcd->driver->relinquish_port(hcd, port1); 4882 if (status != -ENOTCONN && status != -ENODEV)
4882 4883 hcd->driver->relinquish_port(hcd, port1);
4884 }
4883} 4885}
4884 4886
4885/* Handle physical or logical connection change events. 4887/* Handle physical or logical connection change events.
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index 3116edfcdc18..574da2b4529c 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -150,6 +150,9 @@ static const struct usb_device_id usb_quirk_list[] = {
150 /* appletouch */ 150 /* appletouch */
151 { USB_DEVICE(0x05ac, 0x021a), .driver_info = USB_QUIRK_RESET_RESUME }, 151 { USB_DEVICE(0x05ac, 0x021a), .driver_info = USB_QUIRK_RESET_RESUME },
152 152
153 /* Genesys Logic hub, internally used by Moshi USB to Ethernet Adapter */
154 { USB_DEVICE(0x05e3, 0x0616), .driver_info = USB_QUIRK_NO_LPM },
155
153 /* Avision AV600U */ 156 /* Avision AV600U */
154 { USB_DEVICE(0x0638, 0x0a13), .driver_info = 157 { USB_DEVICE(0x0638, 0x0a13), .driver_info =
155 USB_QUIRK_STRING_FETCH_255 }, 158 USB_QUIRK_STRING_FETCH_255 },
@@ -249,6 +252,7 @@ static const struct usb_device_id usb_amd_resume_quirk_list[] = {
249 { USB_DEVICE(0x093a, 0x2500), .driver_info = USB_QUIRK_RESET_RESUME }, 252 { USB_DEVICE(0x093a, 0x2500), .driver_info = USB_QUIRK_RESET_RESUME },
250 { USB_DEVICE(0x093a, 0x2510), .driver_info = USB_QUIRK_RESET_RESUME }, 253 { USB_DEVICE(0x093a, 0x2510), .driver_info = USB_QUIRK_RESET_RESUME },
251 { USB_DEVICE(0x093a, 0x2521), .driver_info = USB_QUIRK_RESET_RESUME }, 254 { USB_DEVICE(0x093a, 0x2521), .driver_info = USB_QUIRK_RESET_RESUME },
255 { USB_DEVICE(0x03f0, 0x2b4a), .driver_info = USB_QUIRK_RESET_RESUME },
252 256
253 /* Logitech Optical Mouse M90/M100 */ 257 /* Logitech Optical Mouse M90/M100 */
254 { USB_DEVICE(0x046d, 0xc05a), .driver_info = USB_QUIRK_RESET_RESUME }, 258 { USB_DEVICE(0x046d, 0xc05a), .driver_info = USB_QUIRK_RESET_RESUME },
diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
index f9400564cb72..03b9a372636f 100644
--- a/drivers/usb/host/pci-quirks.c
+++ b/drivers/usb/host/pci-quirks.c
@@ -89,6 +89,7 @@ enum amd_chipset_gen {
89 AMD_CHIPSET_HUDSON2, 89 AMD_CHIPSET_HUDSON2,
90 AMD_CHIPSET_BOLTON, 90 AMD_CHIPSET_BOLTON,
91 AMD_CHIPSET_YANGTZE, 91 AMD_CHIPSET_YANGTZE,
92 AMD_CHIPSET_TAISHAN,
92 AMD_CHIPSET_UNKNOWN, 93 AMD_CHIPSET_UNKNOWN,
93}; 94};
94 95
@@ -132,6 +133,11 @@ static int amd_chipset_sb_type_init(struct amd_chipset_info *pinfo)
132 pinfo->sb_type.gen = AMD_CHIPSET_SB700; 133 pinfo->sb_type.gen = AMD_CHIPSET_SB700;
133 else if (rev >= 0x40 && rev <= 0x4f) 134 else if (rev >= 0x40 && rev <= 0x4f)
134 pinfo->sb_type.gen = AMD_CHIPSET_SB800; 135 pinfo->sb_type.gen = AMD_CHIPSET_SB800;
136 }
137 pinfo->smbus_dev = pci_get_device(PCI_VENDOR_ID_AMD,
138 0x145c, NULL);
139 if (pinfo->smbus_dev) {
140 pinfo->sb_type.gen = AMD_CHIPSET_TAISHAN;
135 } else { 141 } else {
136 pinfo->smbus_dev = pci_get_device(PCI_VENDOR_ID_AMD, 142 pinfo->smbus_dev = pci_get_device(PCI_VENDOR_ID_AMD,
137 PCI_DEVICE_ID_AMD_HUDSON2_SMBUS, NULL); 143 PCI_DEVICE_ID_AMD_HUDSON2_SMBUS, NULL);
@@ -251,11 +257,12 @@ int usb_hcd_amd_remote_wakeup_quirk(struct pci_dev *pdev)
251{ 257{
252 /* Make sure amd chipset type has already been initialized */ 258 /* Make sure amd chipset type has already been initialized */
253 usb_amd_find_chipset_info(); 259 usb_amd_find_chipset_info();
254 if (amd_chipset.sb_type.gen != AMD_CHIPSET_YANGTZE) 260 if (amd_chipset.sb_type.gen == AMD_CHIPSET_YANGTZE ||
255 return 0; 261 amd_chipset.sb_type.gen == AMD_CHIPSET_TAISHAN) {
256 262 dev_dbg(&pdev->dev, "QUIRK: Enable AMD remote wakeup fix\n");
257 dev_dbg(&pdev->dev, "QUIRK: Enable AMD remote wakeup fix\n"); 263 return 1;
258 return 1; 264 }
265 return 0;
259} 266}
260EXPORT_SYMBOL_GPL(usb_hcd_amd_remote_wakeup_quirk); 267EXPORT_SYMBOL_GPL(usb_hcd_amd_remote_wakeup_quirk);
261 268
diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
index fc25a140548a..22358ab524b0 100644
--- a/drivers/usb/musb/musb_host.c
+++ b/drivers/usb/musb/musb_host.c
@@ -138,6 +138,7 @@ static void musb_h_tx_flush_fifo(struct musb_hw_ep *ep)
138 "Could not flush host TX%d fifo: csr: %04x\n", 138 "Could not flush host TX%d fifo: csr: %04x\n",
139 ep->epnum, csr)) 139 ep->epnum, csr))
140 return; 140 return;
141 mdelay(1);
141 } 142 }
142} 143}
143 144
diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
index b0dc6da3d970..41a6513646de 100644
--- a/drivers/usb/serial/cp210x.c
+++ b/drivers/usb/serial/cp210x.c
@@ -135,6 +135,7 @@ static const struct usb_device_id id_table[] = {
135 { USB_DEVICE(0x10C4, 0x8998) }, /* KCF Technologies PRN */ 135 { USB_DEVICE(0x10C4, 0x8998) }, /* KCF Technologies PRN */
136 { USB_DEVICE(0x10C4, 0x8A2A) }, /* HubZ dual ZigBee and Z-Wave dongle */ 136 { USB_DEVICE(0x10C4, 0x8A2A) }, /* HubZ dual ZigBee and Z-Wave dongle */
137 { USB_DEVICE(0x10C4, 0x8A5E) }, /* CEL EM3588 ZigBee USB Stick Long Range */ 137 { USB_DEVICE(0x10C4, 0x8A5E) }, /* CEL EM3588 ZigBee USB Stick Long Range */
138 { USB_DEVICE(0x10C4, 0x8B34) }, /* Qivicon ZigBee USB Radio Stick */
138 { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */ 139 { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */
139 { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */ 140 { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */
140 { USB_DEVICE(0x10C4, 0xEA70) }, /* Silicon Labs factory default */ 141 { USB_DEVICE(0x10C4, 0xEA70) }, /* Silicon Labs factory default */
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index ebe51f11105d..fe123153b1a5 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -2025,6 +2025,8 @@ static const struct usb_device_id option_ids[] = {
2025 { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff) }, /* D-Link DWM-158 */ 2025 { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d04, 0xff) }, /* D-Link DWM-158 */
2026 { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e19, 0xff), /* D-Link DWM-221 B1 */ 2026 { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e19, 0xff), /* D-Link DWM-221 B1 */
2027 .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, 2027 .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
2028 { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7e35, 0xff), /* D-Link DWM-222 */
2029 .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
2028 { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) }, /* D-Link DWM-152/C1 */ 2030 { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) }, /* D-Link DWM-152/C1 */
2029 { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/C1 */ 2031 { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/C1 */
2030 { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x7e11, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/A3 */ 2032 { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x7e11, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/A3 */
diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index 1db4b61bdf7b..a51b28379850 100644
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -49,6 +49,7 @@ static const struct usb_device_id id_table[] = {
49 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) }, 49 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) },
50 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID_RSAQ5) }, 50 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID_RSAQ5) },
51 { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID) }, 51 { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID) },
52 { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_UC485) },
52 { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID2) }, 53 { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID2) },
53 { USB_DEVICE(ATEN_VENDOR_ID2, ATEN_PRODUCT_ID) }, 54 { USB_DEVICE(ATEN_VENDOR_ID2, ATEN_PRODUCT_ID) },
54 { USB_DEVICE(ELCOM_VENDOR_ID, ELCOM_PRODUCT_ID) }, 55 { USB_DEVICE(ELCOM_VENDOR_ID, ELCOM_PRODUCT_ID) },
diff --git a/drivers/usb/serial/pl2303.h b/drivers/usb/serial/pl2303.h
index 09d9be88209e..3b5a15d1dc0d 100644
--- a/drivers/usb/serial/pl2303.h
+++ b/drivers/usb/serial/pl2303.h
@@ -27,6 +27,7 @@
27#define ATEN_VENDOR_ID 0x0557 27#define ATEN_VENDOR_ID 0x0557
28#define ATEN_VENDOR_ID2 0x0547 28#define ATEN_VENDOR_ID2 0x0547
29#define ATEN_PRODUCT_ID 0x2008 29#define ATEN_PRODUCT_ID 0x2008
30#define ATEN_PRODUCT_UC485 0x2021
30#define ATEN_PRODUCT_ID2 0x2118 31#define ATEN_PRODUCT_ID2 0x2118
31 32
32#define IODATA_VENDOR_ID 0x04bb 33#define IODATA_VENDOR_ID 0x04bb
diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h
index 53341a77d89f..a37ed1e59e99 100644
--- a/drivers/usb/storage/unusual_uas.h
+++ b/drivers/usb/storage/unusual_uas.h
@@ -123,9 +123,9 @@ UNUSUAL_DEV(0x0bc2, 0xab2a, 0x0000, 0x9999,
123/* Reported-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> */ 123/* Reported-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> */
124UNUSUAL_DEV(0x13fd, 0x3940, 0x0000, 0x9999, 124UNUSUAL_DEV(0x13fd, 0x3940, 0x0000, 0x9999,
125 "Initio Corporation", 125 "Initio Corporation",
126 "", 126 "INIC-3069",
127 USB_SC_DEVICE, USB_PR_DEVICE, NULL, 127 USB_SC_DEVICE, USB_PR_DEVICE, NULL,
128 US_FL_NO_ATA_1X), 128 US_FL_NO_ATA_1X | US_FL_IGNORE_RESIDUE),
129 129
130/* Reported-by: Tom Arild Naess <tanaess@gmail.com> */ 130/* Reported-by: Tom Arild Naess <tanaess@gmail.com> */
131UNUSUAL_DEV(0x152d, 0x0539, 0x0000, 0x9999, 131UNUSUAL_DEV(0x152d, 0x0539, 0x0000, 0x9999,
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 11538a8be9f0..1a063cbfe503 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -46,7 +46,7 @@ struct fuse_file *fuse_file_alloc(struct fuse_conn *fc)
46{ 46{
47 struct fuse_file *ff; 47 struct fuse_file *ff;
48 48
49 ff = kmalloc(sizeof(struct fuse_file), GFP_KERNEL); 49 ff = kzalloc(sizeof(struct fuse_file), GFP_KERNEL);
50 if (unlikely(!ff)) 50 if (unlikely(!ff))
51 return NULL; 51 return NULL;
52 52
diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
index f31fd0dd92c6..b1daeafbea92 100644
--- a/fs/nfs/Kconfig
+++ b/fs/nfs/Kconfig
@@ -121,6 +121,7 @@ config PNFS_FILE_LAYOUT
121config PNFS_BLOCK 121config PNFS_BLOCK
122 tristate 122 tristate
123 depends on NFS_V4_1 && BLK_DEV_DM 123 depends on NFS_V4_1 && BLK_DEV_DM
124 depends on 64BIT || LBDAF
124 default NFS_V4 125 default NFS_V4
125 126
126config PNFS_OBJLAYOUT 127config PNFS_OBJLAYOUT
diff --git a/fs/nfs/flexfilelayout/flexfilelayoutdev.c b/fs/nfs/flexfilelayout/flexfilelayoutdev.c
index e125e55de86d..2603d7589946 100644
--- a/fs/nfs/flexfilelayout/flexfilelayoutdev.c
+++ b/fs/nfs/flexfilelayout/flexfilelayoutdev.c
@@ -30,6 +30,7 @@ void nfs4_ff_layout_free_deviceid(struct nfs4_ff_layout_ds *mirror_ds)
30{ 30{
31 nfs4_print_deviceid(&mirror_ds->id_node.deviceid); 31 nfs4_print_deviceid(&mirror_ds->id_node.deviceid);
32 nfs4_pnfs_ds_put(mirror_ds->ds); 32 nfs4_pnfs_ds_put(mirror_ds->ds);
33 kfree(mirror_ds->ds_versions);
33 kfree_rcu(mirror_ds, id_node.rcu); 34 kfree_rcu(mirror_ds, id_node.rcu);
34} 35}
35 36
diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h
index 85a868ccb493..8397dc235e84 100644
--- a/include/linux/cpuset.h
+++ b/include/linux/cpuset.h
@@ -16,6 +16,7 @@
16 16
17#ifdef CONFIG_CPUSETS 17#ifdef CONFIG_CPUSETS
18 18
19extern struct static_key cpusets_pre_enable_key;
19extern struct static_key cpusets_enabled_key; 20extern struct static_key cpusets_enabled_key;
20static inline bool cpusets_enabled(void) 21static inline bool cpusets_enabled(void)
21{ 22{
@@ -30,12 +31,14 @@ static inline int nr_cpusets(void)
30 31
31static inline void cpuset_inc(void) 32static inline void cpuset_inc(void)
32{ 33{
34 static_key_slow_inc(&cpusets_pre_enable_key);
33 static_key_slow_inc(&cpusets_enabled_key); 35 static_key_slow_inc(&cpusets_enabled_key);
34} 36}
35 37
36static inline void cpuset_dec(void) 38static inline void cpuset_dec(void)
37{ 39{
38 static_key_slow_dec(&cpusets_enabled_key); 40 static_key_slow_dec(&cpusets_enabled_key);
41 static_key_slow_dec(&cpusets_pre_enable_key);
39} 42}
40 43
41extern int cpuset_init(void); 44extern int cpuset_init(void);
@@ -104,7 +107,7 @@ extern void cpuset_print_current_mems_allowed(void);
104 */ 107 */
105static inline unsigned int read_mems_allowed_begin(void) 108static inline unsigned int read_mems_allowed_begin(void)
106{ 109{
107 if (!cpusets_enabled()) 110 if (!static_key_false(&cpusets_pre_enable_key))
108 return 0; 111 return 0;
109 112
110 return read_seqcount_begin(&current->mems_allowed_seq); 113 return read_seqcount_begin(&current->mems_allowed_seq);
@@ -118,7 +121,7 @@ static inline unsigned int read_mems_allowed_begin(void)
118 */ 121 */
119static inline bool read_mems_allowed_retry(unsigned int seq) 122static inline bool read_mems_allowed_retry(unsigned int seq)
120{ 123{
121 if (!cpusets_enabled()) 124 if (!static_key_false(&cpusets_enabled_key))
122 return false; 125 return false;
123 126
124 return read_seqcount_retry(&current->mems_allowed_seq, seq); 127 return read_seqcount_retry(&current->mems_allowed_seq, seq);
diff --git a/include/target/iscsi/iscsi_target_core.h b/include/target/iscsi/iscsi_target_core.h
index fdda45f26f75..22f442ab85f9 100644
--- a/include/target/iscsi/iscsi_target_core.h
+++ b/include/target/iscsi/iscsi_target_core.h
@@ -784,6 +784,7 @@ struct iscsi_np {
784 int np_sock_type; 784 int np_sock_type;
785 enum np_thread_state_table np_thread_state; 785 enum np_thread_state_table np_thread_state;
786 bool enabled; 786 bool enabled;
787 atomic_t np_reset_count;
787 enum iscsi_timer_flags_table np_login_timer_flags; 788 enum iscsi_timer_flags_table np_login_timer_flags;
788 u32 np_exports; 789 u32 np_exports;
789 enum np_flags_table np_flags; 790 enum np_flags_table np_flags;
diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index 3b5e5430f5d0..8ccd66a97c8b 100644
--- a/kernel/cpuset.c
+++ b/kernel/cpuset.c
@@ -60,6 +60,7 @@
60#include <linux/cgroup.h> 60#include <linux/cgroup.h>
61#include <linux/wait.h> 61#include <linux/wait.h>
62 62
63struct static_key cpusets_pre_enable_key __read_mostly = STATIC_KEY_INIT_FALSE;
63struct static_key cpusets_enabled_key __read_mostly = STATIC_KEY_INIT_FALSE; 64struct static_key cpusets_enabled_key __read_mostly = STATIC_KEY_INIT_FALSE;
64 65
65/* See "Frequency meter" comments, below. */ 66/* See "Frequency meter" comments, below. */
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 868db0c637e9..badac96cb969 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -6789,7 +6789,7 @@ int alloc_contig_range(unsigned long start, unsigned long end,
6789 6789
6790 /* Make sure the range is really isolated. */ 6790 /* Make sure the range is really isolated. */
6791 if (test_pages_isolated(outer_start, end, false)) { 6791 if (test_pages_isolated(outer_start, end, false)) {
6792 pr_info("%s: [%lx, %lx) PFNs busy\n", 6792 pr_info_ratelimited("%s: [%lx, %lx) PFNs busy\n",
6793 __func__, outer_start, end); 6793 __func__, outer_start, end);
6794 ret = -EBUSY; 6794 ret = -EBUSY;
6795 goto done; 6795 goto done;