Commit b4779583 authored by Linus Torvalds's avatar Linus Torvalds

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
parents e128c5e2 5414e557
...@@ -263,9 +263,7 @@ ieee_set_channel(struct ieee80211_hw *hw, struct ieee80211_channel *chan, ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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;
} }
......
...@@ -8461,3 +8461,16 @@ static void wlc_txq_free(struct wlc_info *wlc, struct osl_info *osh, ...@@ -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);
}
...@@ -570,6 +570,8 @@ extern void wlc_enable_mac(struct wlc_info *wlc); ...@@ -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)
......
...@@ -439,6 +439,7 @@ config COMEDI_NI_AT_AO ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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.
......
...@@ -61,8 +61,6 @@ ...@@ -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);
......
...@@ -527,3 +527,7 @@ static void __exit driver_ni6527_cleanup_module(void) ...@@ -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");
...@@ -871,3 +871,7 @@ static void __exit driver_ni_65xx_cleanup_module(void) ...@@ -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");
...@@ -1421,3 +1421,7 @@ static int ni_660x_dio_insn_config(struct comedi_device *dev, ...@@ -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");
...@@ -384,3 +384,7 @@ static int ni_670x_find_device(struct comedi_device *dev, int bus, int slot) ...@@ -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");
...@@ -1354,3 +1354,7 @@ static void __exit driver_pcidio_cleanup_module(void) ...@@ -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");
...@@ -1853,3 +1853,7 @@ static int pcimio_dio_change(struct comedi_device *dev, ...@@ -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");
...@@ -236,6 +236,7 @@ static void netvsc_linkstatus_callback(struct hv_device *device_obj, ...@@ -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);
......
...@@ -874,7 +874,10 @@ static int nc_set_selected_input_dev(u8 value) ...@@ -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;
......
...@@ -227,6 +227,7 @@ static int zram_read(struct zram *zram, struct bio *bio) ...@@ -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) ...@@ -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) ...@@ -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;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment