Jelajahi Sumber

Merge branch 'staging-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6

* 'staging-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6:
  staging: zram: fix data corruption issue
  Staging: Comedi: Fix a few NI module dependencies
  Staging: comedi: Add MODULE_LICENSE and similar to NI modules
  staging: brcm80211: bugfix for softmac crash on multi cpu configurations
  staging: sst: Fix for dmic capture on v2 pmic
  staging: hv: Enable sending GARP packet after live migration
Linus Torvalds 14 tahun lalu
induk
melakukan
b477958314

+ 10 - 2
drivers/staging/brcm80211/sys/wl_mac80211.c

@@ -263,9 +263,7 @@ ieee_set_channel(struct ieee80211_hw *hw, struct ieee80211_channel *chan,
 	switch (type) {
 	switch (type) {
 	case NL80211_CHAN_HT20:
 	case NL80211_CHAN_HT20:
 	case NL80211_CHAN_NO_HT:
 	case NL80211_CHAN_NO_HT:
-		WL_LOCK(wl);
 		err = wlc_set(wl->wlc, WLC_SET_CHANNEL, chan->hw_value);
 		err = wlc_set(wl->wlc, WLC_SET_CHANNEL, chan->hw_value);
-		WL_UNLOCK(wl);
 		break;
 		break;
 	case NL80211_CHAN_HT40MINUS:
 	case NL80211_CHAN_HT40MINUS:
 	case NL80211_CHAN_HT40PLUS:
 	case NL80211_CHAN_HT40PLUS:
@@ -285,6 +283,7 @@ static int wl_ops_config(struct ieee80211_hw *hw, u32 changed)
 	int err = 0;
 	int err = 0;
 	int new_int;
 	int new_int;
 
 
+	WL_LOCK(wl);
 	if (changed & IEEE80211_CONF_CHANGE_LISTEN_INTERVAL) {
 	if (changed & IEEE80211_CONF_CHANGE_LISTEN_INTERVAL) {
 		WL_NONE("%s: Setting listen interval to %d\n",
 		WL_NONE("%s: Setting listen interval to %d\n",
 			__func__, conf->listen_interval);
 			__func__, conf->listen_interval);
@@ -341,6 +340,7 @@ static int wl_ops_config(struct ieee80211_hw *hw, u32 changed)
 	}
 	}
 
 
  config_out:
  config_out:
+	WL_UNLOCK(wl);
 	return err;
 	return err;
 }
 }
 
 
@@ -459,13 +459,21 @@ wl_ops_set_tim(struct ieee80211_hw *hw, struct ieee80211_sta *sta, bool set)
 
 
 static void wl_ops_sw_scan_start(struct ieee80211_hw *hw)
 static void wl_ops_sw_scan_start(struct ieee80211_hw *hw)
 {
 {
+	struct wl_info *wl = hw->priv;
 	WL_NONE("Scan Start\n");
 	WL_NONE("Scan Start\n");
+	WL_LOCK(wl);
+	wlc_scan_start(wl->wlc);
+	WL_UNLOCK(wl);
 	return;
 	return;
 }
 }
 
 
 static void wl_ops_sw_scan_complete(struct ieee80211_hw *hw)
 static void wl_ops_sw_scan_complete(struct ieee80211_hw *hw)
 {
 {
+	struct wl_info *wl = hw->priv;
 	WL_NONE("Scan Complete\n");
 	WL_NONE("Scan Complete\n");
+	WL_LOCK(wl);
+	wlc_scan_stop(wl->wlc);
+	WL_UNLOCK(wl);
 	return;
 	return;
 }
 }
 
 

+ 13 - 0
drivers/staging/brcm80211/sys/wlc_mac80211.c

@@ -8461,3 +8461,16 @@ static void wlc_txq_free(struct wlc_info *wlc, struct osl_info *osh,
 
 
 	kfree(qi);
 	kfree(qi);
 }
 }
+
+/*
+ * Flag 'scan in progress' to withold dynamic phy calibration
+ */
+void wlc_scan_start(struct wlc_info *wlc)
+{
+	wlc_phy_hold_upd(wlc->band->pi, PHY_HOLD_FOR_SCAN, true);
+}
+
+void wlc_scan_stop(struct wlc_info *wlc)
+{
+	wlc_phy_hold_upd(wlc->band->pi, PHY_HOLD_FOR_SCAN, false);
+}

+ 2 - 0
drivers/staging/brcm80211/sys/wlc_pub.h

@@ -570,6 +570,8 @@ extern void wlc_enable_mac(struct wlc_info *wlc);
 extern u16 wlc_rate_shm_offset(struct wlc_info *wlc, u8 rate);
 extern u16 wlc_rate_shm_offset(struct wlc_info *wlc, u8 rate);
 extern u32 wlc_get_rspec_history(struct wlc_bsscfg *cfg);
 extern u32 wlc_get_rspec_history(struct wlc_bsscfg *cfg);
 extern u32 wlc_get_current_highest_rate(struct wlc_bsscfg *cfg);
 extern u32 wlc_get_current_highest_rate(struct wlc_bsscfg *cfg);
+extern void wlc_scan_start(struct wlc_info *wlc);
+extern void wlc_scan_stop(struct wlc_info *wlc);
 
 
 static inline int wlc_iovar_getuint(struct wlc_info *wlc, const char *name,
 static inline int wlc_iovar_getuint(struct wlc_info *wlc, const char *name,
 				    uint *arg)
 				    uint *arg)

+ 4 - 1
drivers/staging/comedi/Kconfig

@@ -439,6 +439,7 @@ config COMEDI_NI_AT_AO
 config COMEDI_NI_ATMIO
 config COMEDI_NI_ATMIO
 	tristate "NI AT-MIO E series ISA-PNP card support"
 	tristate "NI AT-MIO E series ISA-PNP card support"
 	depends on ISAPNP && COMEDI_NI_TIO && COMEDI_NI_COMMON
 	depends on ISAPNP && COMEDI_NI_TIO && COMEDI_NI_COMMON
+	select COMEDI_8255
 	default N
 	default N
 	---help---
 	---help---
 	  Enable support for National Instruments AT-MIO E series cards
 	  Enable support for National Instruments AT-MIO E series cards
@@ -1040,6 +1041,8 @@ config COMEDI_NI_PCIDIO
 config COMEDI_NI_PCIMIO
 config COMEDI_NI_PCIMIO
 	tristate "NI PCI-MIO-E series and M series support"
 	tristate "NI PCI-MIO-E series and M series support"
 	depends on COMEDI_NI_TIO && COMEDI_NI_COMMON
 	depends on COMEDI_NI_TIO && COMEDI_NI_COMMON
+	select COMEDI_8255
+	select COMEDI_FC
 	default N
 	default N
 	---help---
 	---help---
 	  Enable support for National Instruments PCI-MIO-E series and M series
 	  Enable support for National Instruments PCI-MIO-E series and M series
@@ -1164,6 +1167,7 @@ config COMEDI_NI_LABPC_CS
 config COMEDI_NI_MIO_CS
 config COMEDI_NI_MIO_CS
 	tristate "NI DAQCard E series PCMCIA support"
 	tristate "NI DAQCard E series PCMCIA support"
 	depends on COMEDI_NI_TIO && COMEDI_NI_COMMON
 	depends on COMEDI_NI_TIO && COMEDI_NI_COMMON
+	select COMEDI_8255
 	select COMEDI_FC
 	select COMEDI_FC
 	default N
 	default N
 	---help---
 	---help---
@@ -1268,7 +1272,6 @@ config COMEDI_MITE
 config COMEDI_NI_TIO
 config COMEDI_NI_TIO
 	tristate "NI general purpose counter support"
 	tristate "NI general purpose counter support"
 	depends on COMEDI_MITE
 	depends on COMEDI_MITE
-	select COMEDI_8255
 	default N
 	default N
 	---help---
 	---help---
 	  Enable support for National Instruments general purpose counters.
 	  Enable support for National Instruments general purpose counters.

+ 0 - 2
drivers/staging/comedi/drivers/mite.c

@@ -61,8 +61,6 @@
 #define PCI_DAQ_SIZE		4096
 #define PCI_DAQ_SIZE		4096
 #define PCI_DAQ_SIZE_660X       8192
 #define PCI_DAQ_SIZE_660X       8192
 
 
-MODULE_LICENSE("GPL");
-
 struct mite_struct *mite_devices;
 struct mite_struct *mite_devices;
 EXPORT_SYMBOL(mite_devices);
 EXPORT_SYMBOL(mite_devices);
 
 

+ 4 - 0
drivers/staging/comedi/drivers/ni_6527.c

@@ -527,3 +527,7 @@ static void __exit driver_ni6527_cleanup_module(void)
 
 
 module_init(driver_ni6527_init_module);
 module_init(driver_ni6527_init_module);
 module_exit(driver_ni6527_cleanup_module);
 module_exit(driver_ni6527_cleanup_module);
+
+MODULE_AUTHOR("Comedi http://www.comedi.org");
+MODULE_DESCRIPTION("Comedi low-level driver");
+MODULE_LICENSE("GPL");

+ 4 - 0
drivers/staging/comedi/drivers/ni_65xx.c

@@ -871,3 +871,7 @@ static void __exit driver_ni_65xx_cleanup_module(void)
 
 
 module_init(driver_ni_65xx_init_module);
 module_init(driver_ni_65xx_init_module);
 module_exit(driver_ni_65xx_cleanup_module);
 module_exit(driver_ni_65xx_cleanup_module);
+
+MODULE_AUTHOR("Comedi http://www.comedi.org");
+MODULE_DESCRIPTION("Comedi low-level driver");
+MODULE_LICENSE("GPL");

+ 4 - 0
drivers/staging/comedi/drivers/ni_660x.c

@@ -1421,3 +1421,7 @@ static int ni_660x_dio_insn_config(struct comedi_device *dev,
 	};
 	};
 	return 0;
 	return 0;
 }
 }
+
+MODULE_AUTHOR("Comedi http://www.comedi.org");
+MODULE_DESCRIPTION("Comedi low-level driver");
+MODULE_LICENSE("GPL");

+ 4 - 0
drivers/staging/comedi/drivers/ni_670x.c

@@ -384,3 +384,7 @@ static int ni_670x_find_device(struct comedi_device *dev, int bus, int slot)
 	mite_list_devices();
 	mite_list_devices();
 	return -EIO;
 	return -EIO;
 }
 }
+
+MODULE_AUTHOR("Comedi http://www.comedi.org");
+MODULE_DESCRIPTION("Comedi low-level driver");
+MODULE_LICENSE("GPL");

+ 4 - 0
drivers/staging/comedi/drivers/ni_pcidio.c

@@ -1354,3 +1354,7 @@ static void __exit driver_pcidio_cleanup_module(void)
 
 
 module_init(driver_pcidio_init_module);
 module_init(driver_pcidio_init_module);
 module_exit(driver_pcidio_cleanup_module);
 module_exit(driver_pcidio_cleanup_module);
+
+MODULE_AUTHOR("Comedi http://www.comedi.org");
+MODULE_DESCRIPTION("Comedi low-level driver");
+MODULE_LICENSE("GPL");

+ 4 - 0
drivers/staging/comedi/drivers/ni_pcimio.c

@@ -1853,3 +1853,7 @@ static int pcimio_dio_change(struct comedi_device *dev,
 
 
 	return 0;
 	return 0;
 }
 }
+
+MODULE_AUTHOR("Comedi http://www.comedi.org");
+MODULE_DESCRIPTION("Comedi low-level driver");
+MODULE_LICENSE("GPL");

+ 1 - 0
drivers/staging/hv/netvsc_drv.c

@@ -236,6 +236,7 @@ static void netvsc_linkstatus_callback(struct hv_device *device_obj,
 	if (status == 1) {
 	if (status == 1) {
 		netif_carrier_on(net);
 		netif_carrier_on(net);
 		netif_wake_queue(net);
 		netif_wake_queue(net);
+		netif_notify_peers(net);
 	} else {
 	} else {
 		netif_carrier_off(net);
 		netif_carrier_off(net);
 		netif_stop_queue(net);
 		netif_stop_queue(net);

+ 4 - 1
drivers/staging/intel_sst/intelmid_v2_control.c

@@ -874,7 +874,10 @@ static int nc_set_selected_input_dev(u8 value)
 		sc_access[3].reg_addr = 0x109;
 		sc_access[3].reg_addr = 0x109;
 		sc_access[3].mask = MASK6;
 		sc_access[3].mask = MASK6;
 		sc_access[3].value = 0x00;
 		sc_access[3].value = 0x00;
-		num_val = 4;
+		sc_access[4].reg_addr = 0x104;
+		sc_access[4].value = 0x3C;
+		sc_access[4].mask = 0xff;
+		num_val = 5;
 		break;
 		break;
 	default:
 	default:
 		return -EINVAL;
 		return -EINVAL;

+ 4 - 0
drivers/staging/zram/zram_drv.c

@@ -227,6 +227,7 @@ static int zram_read(struct zram *zram, struct bio *bio)
 
 
 		if (zram_test_flag(zram, index, ZRAM_ZERO)) {
 		if (zram_test_flag(zram, index, ZRAM_ZERO)) {
 			handle_zero_page(page);
 			handle_zero_page(page);
+			index++;
 			continue;
 			continue;
 		}
 		}
 
 
@@ -235,12 +236,14 @@ static int zram_read(struct zram *zram, struct bio *bio)
 			pr_debug("Read before write: sector=%lu, size=%u",
 			pr_debug("Read before write: sector=%lu, size=%u",
 				(ulong)(bio->bi_sector), bio->bi_size);
 				(ulong)(bio->bi_sector), bio->bi_size);
 			/* Do nothing */
 			/* Do nothing */
+			index++;
 			continue;
 			continue;
 		}
 		}
 
 
 		/* Page is stored uncompressed since it's incompressible */
 		/* Page is stored uncompressed since it's incompressible */
 		if (unlikely(zram_test_flag(zram, index, ZRAM_UNCOMPRESSED))) {
 		if (unlikely(zram_test_flag(zram, index, ZRAM_UNCOMPRESSED))) {
 			handle_uncompressed_page(zram, page, index);
 			handle_uncompressed_page(zram, page, index);
+			index++;
 			continue;
 			continue;
 		}
 		}
 
 
@@ -320,6 +323,7 @@ static int zram_write(struct zram *zram, struct bio *bio)
 			mutex_unlock(&zram->lock);
 			mutex_unlock(&zram->lock);
 			zram_stat_inc(&zram->stats.pages_zero);
 			zram_stat_inc(&zram->stats.pages_zero);
 			zram_set_flag(zram, index, ZRAM_ZERO);
 			zram_set_flag(zram, index, ZRAM_ZERO);
+			index++;
 			continue;
 			continue;
 		}
 		}