diff options
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/brcm80211/brcmsmac/wl_mac80211.c | 12 | ||||
-rw-r--r-- | drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c | 13 | ||||
-rw-r--r-- | drivers/staging/brcm80211/brcmsmac/wlc_pub.h | 2 | ||||
-rw-r--r-- | drivers/staging/comedi/Kconfig | 5 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/mite.c | 2 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/ni_6527.c | 4 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/ni_65xx.c | 4 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/ni_660x.c | 4 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/ni_670x.c | 4 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/ni_pcidio.c | 4 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/ni_pcimio.c | 4 | ||||
-rw-r--r-- | drivers/staging/hv/netvsc_drv.c | 1 | ||||
-rw-r--r-- | drivers/staging/intel_sst/intelmid_v2_control.c | 5 | ||||
-rw-r--r-- | drivers/staging/lirc/lirc_zilog.c | 32 | ||||
-rw-r--r-- | drivers/staging/zram/zram_drv.c | 4 |
15 files changed, 88 insertions, 12 deletions
diff --git a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c index 54bfe22ec12..745c8874036 100644 --- a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c +++ b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c | |||
@@ -239,9 +239,7 @@ ieee_set_channel(struct ieee80211_hw *hw, struct ieee80211_channel *chan, | |||
239 | switch (type) { | 239 | switch (type) { |
240 | case NL80211_CHAN_HT20: | 240 | case NL80211_CHAN_HT20: |
241 | case NL80211_CHAN_NO_HT: | 241 | case NL80211_CHAN_NO_HT: |
242 | WL_LOCK(wl); | ||
243 | err = wlc_set(wl->wlc, WLC_SET_CHANNEL, chan->hw_value); | 242 | err = wlc_set(wl->wlc, WLC_SET_CHANNEL, chan->hw_value); |
244 | WL_UNLOCK(wl); | ||
245 | break; | 243 | break; |
246 | case NL80211_CHAN_HT40MINUS: | 244 | case NL80211_CHAN_HT40MINUS: |
247 | case NL80211_CHAN_HT40PLUS: | 245 | case NL80211_CHAN_HT40PLUS: |
@@ -261,6 +259,7 @@ static int wl_ops_config(struct ieee80211_hw *hw, u32 changed) | |||
261 | int err = 0; | 259 | int err = 0; |
262 | int new_int; | 260 | int new_int; |
263 | 261 | ||
262 | WL_LOCK(wl); | ||
264 | if (changed & IEEE80211_CONF_CHANGE_LISTEN_INTERVAL) { | 263 | if (changed & IEEE80211_CONF_CHANGE_LISTEN_INTERVAL) { |
265 | WL_NONE("%s: Setting listen interval to %d\n", | 264 | WL_NONE("%s: Setting listen interval to %d\n", |
266 | __func__, conf->listen_interval); | 265 | __func__, conf->listen_interval); |
@@ -317,6 +316,7 @@ static int wl_ops_config(struct ieee80211_hw *hw, u32 changed) | |||
317 | } | 316 | } |
318 | 317 | ||
319 | config_out: | 318 | config_out: |
319 | WL_UNLOCK(wl); | ||
320 | return err; | 320 | return err; |
321 | } | 321 | } |
322 | 322 | ||
@@ -435,13 +435,21 @@ wl_ops_set_tim(struct ieee80211_hw *hw, struct ieee80211_sta *sta, bool set) | |||
435 | 435 | ||
436 | static void wl_ops_sw_scan_start(struct ieee80211_hw *hw) | 436 | static void wl_ops_sw_scan_start(struct ieee80211_hw *hw) |
437 | { | 437 | { |
438 | struct wl_info *wl = hw->priv; | ||
438 | WL_NONE("Scan Start\n"); | 439 | WL_NONE("Scan Start\n"); |
440 | WL_LOCK(wl); | ||
441 | wlc_scan_start(wl->wlc); | ||
442 | WL_UNLOCK(wl); | ||
439 | return; | 443 | return; |
440 | } | 444 | } |
441 | 445 | ||
442 | static void wl_ops_sw_scan_complete(struct ieee80211_hw *hw) | 446 | static void wl_ops_sw_scan_complete(struct ieee80211_hw *hw) |
443 | { | 447 | { |
448 | struct wl_info *wl = hw->priv; | ||
444 | WL_NONE("Scan Complete\n"); | 449 | WL_NONE("Scan Complete\n"); |
450 | WL_LOCK(wl); | ||
451 | wlc_scan_stop(wl->wlc); | ||
452 | WL_UNLOCK(wl); | ||
445 | return; | 453 | return; |
446 | } | 454 | } |
447 | 455 | ||
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c b/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c index b05a491f3f6..6debd45c796 100644 --- a/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c +++ b/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c | |||
@@ -8496,3 +8496,16 @@ static void wlc_txq_free(struct wlc_info *wlc, struct osl_info *osh, | |||
8496 | 8496 | ||
8497 | kfree(qi); | 8497 | kfree(qi); |
8498 | } | 8498 | } |
8499 | |||
8500 | /* | ||
8501 | * Flag 'scan in progress' to withold dynamic phy calibration | ||
8502 | */ | ||
8503 | void wlc_scan_start(struct wlc_info *wlc) | ||
8504 | { | ||
8505 | wlc_phy_hold_upd(wlc->band->pi, PHY_HOLD_FOR_SCAN, true); | ||
8506 | } | ||
8507 | |||
8508 | void wlc_scan_stop(struct wlc_info *wlc) | ||
8509 | { | ||
8510 | wlc_phy_hold_upd(wlc->band->pi, PHY_HOLD_FOR_SCAN, false); | ||
8511 | } | ||
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_pub.h b/drivers/staging/brcm80211/brcmsmac/wlc_pub.h index 0e39414d5e5..e059ebf101c 100644 --- a/drivers/staging/brcm80211/brcmsmac/wlc_pub.h +++ b/drivers/staging/brcm80211/brcmsmac/wlc_pub.h | |||
@@ -566,6 +566,8 @@ extern void wlc_enable_mac(struct wlc_info *wlc); | |||
566 | extern u16 wlc_rate_shm_offset(struct wlc_info *wlc, u8 rate); | 566 | extern u16 wlc_rate_shm_offset(struct wlc_info *wlc, u8 rate); |
567 | extern u32 wlc_get_rspec_history(struct wlc_bsscfg *cfg); | 567 | extern u32 wlc_get_rspec_history(struct wlc_bsscfg *cfg); |
568 | extern u32 wlc_get_current_highest_rate(struct wlc_bsscfg *cfg); | 568 | extern u32 wlc_get_current_highest_rate(struct wlc_bsscfg *cfg); |
569 | extern void wlc_scan_start(struct wlc_info *wlc); | ||
570 | extern void wlc_scan_stop(struct wlc_info *wlc); | ||
569 | 571 | ||
570 | static inline int wlc_iovar_getuint(struct wlc_info *wlc, const char *name, | 572 | static inline int wlc_iovar_getuint(struct wlc_info *wlc, const char *name, |
571 | uint *arg) | 573 | uint *arg) |
diff --git a/drivers/staging/comedi/Kconfig b/drivers/staging/comedi/Kconfig index aad47326d6d..1502d80f6f7 100644 --- a/drivers/staging/comedi/Kconfig +++ b/drivers/staging/comedi/Kconfig | |||
@@ -439,6 +439,7 @@ config COMEDI_NI_AT_AO | |||
439 | config COMEDI_NI_ATMIO | 439 | config COMEDI_NI_ATMIO |
440 | tristate "NI AT-MIO E series ISA-PNP card support" | 440 | tristate "NI AT-MIO E series ISA-PNP card support" |
441 | depends on ISAPNP && COMEDI_NI_TIO && COMEDI_NI_COMMON | 441 | depends on ISAPNP && COMEDI_NI_TIO && COMEDI_NI_COMMON |
442 | select COMEDI_8255 | ||
442 | default N | 443 | default N |
443 | ---help--- | 444 | ---help--- |
444 | Enable support for National Instruments AT-MIO E series cards | 445 | Enable support for National Instruments AT-MIO E series cards |
@@ -1040,6 +1041,8 @@ config COMEDI_NI_PCIDIO | |||
1040 | config COMEDI_NI_PCIMIO | 1041 | config COMEDI_NI_PCIMIO |
1041 | tristate "NI PCI-MIO-E series and M series support" | 1042 | tristate "NI PCI-MIO-E series and M series support" |
1042 | depends on COMEDI_NI_TIO && COMEDI_NI_COMMON | 1043 | depends on COMEDI_NI_TIO && COMEDI_NI_COMMON |
1044 | select COMEDI_8255 | ||
1045 | select COMEDI_FC | ||
1043 | default N | 1046 | default N |
1044 | ---help--- | 1047 | ---help--- |
1045 | Enable support for National Instruments PCI-MIO-E series and M series | 1048 | Enable support for National Instruments PCI-MIO-E series and M series |
@@ -1164,6 +1167,7 @@ config COMEDI_NI_LABPC_CS | |||
1164 | config COMEDI_NI_MIO_CS | 1167 | config COMEDI_NI_MIO_CS |
1165 | tristate "NI DAQCard E series PCMCIA support" | 1168 | tristate "NI DAQCard E series PCMCIA support" |
1166 | depends on COMEDI_NI_TIO && COMEDI_NI_COMMON | 1169 | depends on COMEDI_NI_TIO && COMEDI_NI_COMMON |
1170 | select COMEDI_8255 | ||
1167 | select COMEDI_FC | 1171 | select COMEDI_FC |
1168 | default N | 1172 | default N |
1169 | ---help--- | 1173 | ---help--- |
@@ -1268,7 +1272,6 @@ config COMEDI_MITE | |||
1268 | config COMEDI_NI_TIO | 1272 | config COMEDI_NI_TIO |
1269 | tristate "NI general purpose counter support" | 1273 | tristate "NI general purpose counter support" |
1270 | depends on COMEDI_MITE | 1274 | depends on COMEDI_MITE |
1271 | select COMEDI_8255 | ||
1272 | default N | 1275 | default N |
1273 | ---help--- | 1276 | ---help--- |
1274 | Enable support for National Instruments general purpose counters. | 1277 | Enable support for National Instruments general purpose counters. |
diff --git a/drivers/staging/comedi/drivers/mite.c b/drivers/staging/comedi/drivers/mite.c index cd25b241cc1..fd274e9c7b7 100644 --- a/drivers/staging/comedi/drivers/mite.c +++ b/drivers/staging/comedi/drivers/mite.c | |||
@@ -61,8 +61,6 @@ | |||
61 | #define PCI_DAQ_SIZE 4096 | 61 | #define PCI_DAQ_SIZE 4096 |
62 | #define PCI_DAQ_SIZE_660X 8192 | 62 | #define PCI_DAQ_SIZE_660X 8192 |
63 | 63 | ||
64 | MODULE_LICENSE("GPL"); | ||
65 | |||
66 | struct mite_struct *mite_devices; | 64 | struct mite_struct *mite_devices; |
67 | EXPORT_SYMBOL(mite_devices); | 65 | EXPORT_SYMBOL(mite_devices); |
68 | 66 | ||
diff --git a/drivers/staging/comedi/drivers/ni_6527.c b/drivers/staging/comedi/drivers/ni_6527.c index 14e716e99a5..54741c9e1af 100644 --- a/drivers/staging/comedi/drivers/ni_6527.c +++ b/drivers/staging/comedi/drivers/ni_6527.c | |||
@@ -527,3 +527,7 @@ static void __exit driver_ni6527_cleanup_module(void) | |||
527 | 527 | ||
528 | module_init(driver_ni6527_init_module); | 528 | module_init(driver_ni6527_init_module); |
529 | module_exit(driver_ni6527_cleanup_module); | 529 | module_exit(driver_ni6527_cleanup_module); |
530 | |||
531 | MODULE_AUTHOR("Comedi http://www.comedi.org"); | ||
532 | MODULE_DESCRIPTION("Comedi low-level driver"); | ||
533 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/staging/comedi/drivers/ni_65xx.c b/drivers/staging/comedi/drivers/ni_65xx.c index 8b8e2aaf77f..403fc0997d3 100644 --- a/drivers/staging/comedi/drivers/ni_65xx.c +++ b/drivers/staging/comedi/drivers/ni_65xx.c | |||
@@ -871,3 +871,7 @@ static void __exit driver_ni_65xx_cleanup_module(void) | |||
871 | 871 | ||
872 | module_init(driver_ni_65xx_init_module); | 872 | module_init(driver_ni_65xx_init_module); |
873 | module_exit(driver_ni_65xx_cleanup_module); | 873 | module_exit(driver_ni_65xx_cleanup_module); |
874 | |||
875 | MODULE_AUTHOR("Comedi http://www.comedi.org"); | ||
876 | MODULE_DESCRIPTION("Comedi low-level driver"); | ||
877 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/staging/comedi/drivers/ni_660x.c b/drivers/staging/comedi/drivers/ni_660x.c index 6612b085c4e..ca2aeaa9449 100644 --- a/drivers/staging/comedi/drivers/ni_660x.c +++ b/drivers/staging/comedi/drivers/ni_660x.c | |||
@@ -1421,3 +1421,7 @@ static int ni_660x_dio_insn_config(struct comedi_device *dev, | |||
1421 | }; | 1421 | }; |
1422 | return 0; | 1422 | return 0; |
1423 | } | 1423 | } |
1424 | |||
1425 | MODULE_AUTHOR("Comedi http://www.comedi.org"); | ||
1426 | MODULE_DESCRIPTION("Comedi low-level driver"); | ||
1427 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/staging/comedi/drivers/ni_670x.c b/drivers/staging/comedi/drivers/ni_670x.c index e9f034efdc6..d8d91f90060 100644 --- a/drivers/staging/comedi/drivers/ni_670x.c +++ b/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) | |||
384 | mite_list_devices(); | 384 | mite_list_devices(); |
385 | return -EIO; | 385 | return -EIO; |
386 | } | 386 | } |
387 | |||
388 | MODULE_AUTHOR("Comedi http://www.comedi.org"); | ||
389 | MODULE_DESCRIPTION("Comedi low-level driver"); | ||
390 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/staging/comedi/drivers/ni_pcidio.c b/drivers/staging/comedi/drivers/ni_pcidio.c index 84a15c34e48..005d2fe86ee 100644 --- a/drivers/staging/comedi/drivers/ni_pcidio.c +++ b/drivers/staging/comedi/drivers/ni_pcidio.c | |||
@@ -1354,3 +1354,7 @@ static void __exit driver_pcidio_cleanup_module(void) | |||
1354 | 1354 | ||
1355 | module_init(driver_pcidio_init_module); | 1355 | module_init(driver_pcidio_init_module); |
1356 | module_exit(driver_pcidio_cleanup_module); | 1356 | module_exit(driver_pcidio_cleanup_module); |
1357 | |||
1358 | MODULE_AUTHOR("Comedi http://www.comedi.org"); | ||
1359 | MODULE_DESCRIPTION("Comedi low-level driver"); | ||
1360 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/staging/comedi/drivers/ni_pcimio.c b/drivers/staging/comedi/drivers/ni_pcimio.c index 23a38124728..9148abdad07 100644 --- a/drivers/staging/comedi/drivers/ni_pcimio.c +++ b/drivers/staging/comedi/drivers/ni_pcimio.c | |||
@@ -1853,3 +1853,7 @@ static int pcimio_dio_change(struct comedi_device *dev, | |||
1853 | 1853 | ||
1854 | return 0; | 1854 | return 0; |
1855 | } | 1855 | } |
1856 | |||
1857 | MODULE_AUTHOR("Comedi http://www.comedi.org"); | ||
1858 | MODULE_DESCRIPTION("Comedi low-level driver"); | ||
1859 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/staging/hv/netvsc_drv.c b/drivers/staging/hv/netvsc_drv.c index 6b8fd0c2b0d..a7f7819cc3b 100644 --- a/drivers/staging/hv/netvsc_drv.c +++ b/drivers/staging/hv/netvsc_drv.c | |||
@@ -238,6 +238,7 @@ static void netvsc_linkstatus_callback(struct hv_device *device_obj, | |||
238 | if (status == 1) { | 238 | if (status == 1) { |
239 | netif_carrier_on(net); | 239 | netif_carrier_on(net); |
240 | netif_wake_queue(net); | 240 | netif_wake_queue(net); |
241 | netif_notify_peers(net); | ||
241 | } else { | 242 | } else { |
242 | netif_carrier_off(net); | 243 | netif_carrier_off(net); |
243 | netif_stop_queue(net); | 244 | netif_stop_queue(net); |
diff --git a/drivers/staging/intel_sst/intelmid_v2_control.c b/drivers/staging/intel_sst/intelmid_v2_control.c index e38e89df6e8..e2f6d6a3c85 100644 --- a/drivers/staging/intel_sst/intelmid_v2_control.c +++ b/drivers/staging/intel_sst/intelmid_v2_control.c | |||
@@ -874,7 +874,10 @@ static int nc_set_selected_input_dev(u8 value) | |||
874 | sc_access[3].reg_addr = 0x109; | 874 | sc_access[3].reg_addr = 0x109; |
875 | sc_access[3].mask = MASK6; | 875 | sc_access[3].mask = MASK6; |
876 | sc_access[3].value = 0x00; | 876 | sc_access[3].value = 0x00; |
877 | num_val = 4; | 877 | sc_access[4].reg_addr = 0x104; |
878 | sc_access[4].value = 0x3C; | ||
879 | sc_access[4].mask = 0xff; | ||
880 | num_val = 5; | ||
878 | break; | 881 | break; |
879 | default: | 882 | default: |
880 | return -EINVAL; | 883 | return -EINVAL; |
diff --git a/drivers/staging/lirc/lirc_zilog.c b/drivers/staging/lirc/lirc_zilog.c index 3fe5f416019..0aad0d7a74a 100644 --- a/drivers/staging/lirc/lirc_zilog.c +++ b/drivers/staging/lirc/lirc_zilog.c | |||
@@ -495,7 +495,7 @@ static int send_data_block(struct IR_tx *tx, unsigned char *data_block) | |||
495 | /* send boot data to the IR TX device */ | 495 | /* send boot data to the IR TX device */ |
496 | static int send_boot_data(struct IR_tx *tx) | 496 | static int send_boot_data(struct IR_tx *tx) |
497 | { | 497 | { |
498 | int ret; | 498 | int ret, i; |
499 | unsigned char buf[4]; | 499 | unsigned char buf[4]; |
500 | 500 | ||
501 | /* send the boot block */ | 501 | /* send the boot block */ |
@@ -503,7 +503,7 @@ static int send_boot_data(struct IR_tx *tx) | |||
503 | if (ret != 0) | 503 | if (ret != 0) |
504 | return ret; | 504 | return ret; |
505 | 505 | ||
506 | /* kick it off? */ | 506 | /* Hit the go button to activate the new boot data */ |
507 | buf[0] = 0x00; | 507 | buf[0] = 0x00; |
508 | buf[1] = 0x20; | 508 | buf[1] = 0x20; |
509 | ret = i2c_master_send(tx->c, buf, 2); | 509 | ret = i2c_master_send(tx->c, buf, 2); |
@@ -511,7 +511,19 @@ static int send_boot_data(struct IR_tx *tx) | |||
511 | zilog_error("i2c_master_send failed with %d\n", ret); | 511 | zilog_error("i2c_master_send failed with %d\n", ret); |
512 | return ret < 0 ? ret : -EFAULT; | 512 | return ret < 0 ? ret : -EFAULT; |
513 | } | 513 | } |
514 | ret = i2c_master_send(tx->c, buf, 1); | 514 | |
515 | /* | ||
516 | * Wait for zilog to settle after hitting go post boot block upload. | ||
517 | * Without this delay, the HD-PVR and HVR-1950 both return an -EIO | ||
518 | * upon attempting to get firmware revision, and tx probe thus fails. | ||
519 | */ | ||
520 | for (i = 0; i < 10; i++) { | ||
521 | ret = i2c_master_send(tx->c, buf, 1); | ||
522 | if (ret == 1) | ||
523 | break; | ||
524 | udelay(100); | ||
525 | } | ||
526 | |||
515 | if (ret != 1) { | 527 | if (ret != 1) { |
516 | zilog_error("i2c_master_send failed with %d\n", ret); | 528 | zilog_error("i2c_master_send failed with %d\n", ret); |
517 | return ret < 0 ? ret : -EFAULT; | 529 | return ret < 0 ? ret : -EFAULT; |
@@ -523,8 +535,8 @@ static int send_boot_data(struct IR_tx *tx) | |||
523 | zilog_error("i2c_master_recv failed with %d\n", ret); | 535 | zilog_error("i2c_master_recv failed with %d\n", ret); |
524 | return 0; | 536 | return 0; |
525 | } | 537 | } |
526 | if (buf[0] != 0x80) { | 538 | if ((buf[0] != 0x80) && (buf[0] != 0xa0)) { |
527 | zilog_error("unexpected IR TX response: %02x\n", buf[0]); | 539 | zilog_error("unexpected IR TX init response: %02x\n", buf[0]); |
528 | return 0; | 540 | return 0; |
529 | } | 541 | } |
530 | zilog_notify("Zilog/Hauppauge IR blaster firmware version " | 542 | zilog_notify("Zilog/Hauppauge IR blaster firmware version " |
@@ -827,7 +839,15 @@ static int send_code(struct IR_tx *tx, unsigned int code, unsigned int key) | |||
827 | zilog_error("i2c_master_send failed with %d\n", ret); | 839 | zilog_error("i2c_master_send failed with %d\n", ret); |
828 | return ret < 0 ? ret : -EFAULT; | 840 | return ret < 0 ? ret : -EFAULT; |
829 | } | 841 | } |
830 | ret = i2c_master_send(tx->c, buf, 1); | 842 | |
843 | /* Give the z8 a moment to process data block */ | ||
844 | for (i = 0; i < 10; i++) { | ||
845 | ret = i2c_master_send(tx->c, buf, 1); | ||
846 | if (ret == 1) | ||
847 | break; | ||
848 | udelay(100); | ||
849 | } | ||
850 | |||
831 | if (ret != 1) { | 851 | if (ret != 1) { |
832 | zilog_error("i2c_master_send failed with %d\n", ret); | 852 | zilog_error("i2c_master_send failed with %d\n", ret); |
833 | return ret < 0 ? ret : -EFAULT; | 853 | return ret < 0 ? ret : -EFAULT; |
diff --git a/drivers/staging/zram/zram_drv.c b/drivers/staging/zram/zram_drv.c index 1017d6df17d..5fdf9d2fc95 100644 --- a/drivers/staging/zram/zram_drv.c +++ b/drivers/staging/zram/zram_drv.c | |||
@@ -230,6 +230,7 @@ static void zram_read(struct zram *zram, struct bio *bio) | |||
230 | 230 | ||
231 | if (zram_test_flag(zram, index, ZRAM_ZERO)) { | 231 | if (zram_test_flag(zram, index, ZRAM_ZERO)) { |
232 | handle_zero_page(page); | 232 | handle_zero_page(page); |
233 | index++; | ||
233 | continue; | 234 | continue; |
234 | } | 235 | } |
235 | 236 | ||
@@ -238,12 +239,14 @@ static void zram_read(struct zram *zram, struct bio *bio) | |||
238 | pr_debug("Read before write: sector=%lu, size=%u", | 239 | pr_debug("Read before write: sector=%lu, size=%u", |
239 | (ulong)(bio->bi_sector), bio->bi_size); | 240 | (ulong)(bio->bi_sector), bio->bi_size); |
240 | handle_zero_page(page); | 241 | handle_zero_page(page); |
242 | index++; | ||
241 | continue; | 243 | continue; |
242 | } | 244 | } |
243 | 245 | ||
244 | /* Page is stored uncompressed since it's incompressible */ | 246 | /* Page is stored uncompressed since it's incompressible */ |
245 | if (unlikely(zram_test_flag(zram, index, ZRAM_UNCOMPRESSED))) { | 247 | if (unlikely(zram_test_flag(zram, index, ZRAM_UNCOMPRESSED))) { |
246 | handle_uncompressed_page(zram, page, index); | 248 | handle_uncompressed_page(zram, page, index); |
249 | index++; | ||
247 | continue; | 250 | continue; |
248 | } | 251 | } |
249 | 252 | ||
@@ -322,6 +325,7 @@ static void zram_write(struct zram *zram, struct bio *bio) | |||
322 | mutex_unlock(&zram->lock); | 325 | mutex_unlock(&zram->lock); |
323 | zram_stat_inc(&zram->stats.pages_zero); | 326 | zram_stat_inc(&zram->stats.pages_zero); |
324 | zram_set_flag(zram, index, ZRAM_ZERO); | 327 | zram_set_flag(zram, index, ZRAM_ZERO); |
328 | index++; | ||
325 | continue; | 329 | continue; |
326 | } | 330 | } |
327 | 331 | ||