diff options
| -rw-r--r-- | MAINTAINERS | 2 | ||||
| -rw-r--r-- | arch/arm/boot/dts/ste-nomadik-s8815.dts | 2 | ||||
| -rw-r--r-- | arch/arm/boot/dts/ste-nomadik-stn8815.dtsi | 7 | ||||
| -rw-r--r-- | arch/x86/include/asm/irqflags.h | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/entry_64.S | 28 | ||||
| -rw-r--r-- | arch/x86/kernel/paravirt_patch_64.c | 2 | ||||
| -rw-r--r-- | drivers/iio/accel/bma180.c | 8 | ||||
| -rw-r--r-- | drivers/iio/industrialio-buffer.c | 2 | ||||
| -rw-r--r-- | drivers/md/dm-bufio.c | 2 | ||||
| -rw-r--r-- | drivers/md/dm-cache-target.c | 13 | ||||
| -rw-r--r-- | drivers/staging/rtl8723au/os_dep/usb_intf.c | 4 | ||||
| -rw-r--r-- | drivers/staging/vt6655/bssdb.c | 2 | ||||
| -rw-r--r-- | drivers/staging/vt6655/device_main.c | 7 |
13 files changed, 39 insertions, 42 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 95990dd2678c..c2066f4c3286 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -8922,7 +8922,7 @@ M: Stephen Warren <swarren@wwwdotorg.org> | |||
| 8922 | M: Thierry Reding <thierry.reding@gmail.com> | 8922 | M: Thierry Reding <thierry.reding@gmail.com> |
| 8923 | L: linux-tegra@vger.kernel.org | 8923 | L: linux-tegra@vger.kernel.org |
| 8924 | Q: http://patchwork.ozlabs.org/project/linux-tegra/list/ | 8924 | Q: http://patchwork.ozlabs.org/project/linux-tegra/list/ |
| 8925 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra.git | 8925 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux.git |
| 8926 | S: Supported | 8926 | S: Supported |
| 8927 | N: [^a-z]tegra | 8927 | N: [^a-z]tegra |
| 8928 | 8928 | ||
diff --git a/arch/arm/boot/dts/ste-nomadik-s8815.dts b/arch/arm/boot/dts/ste-nomadik-s8815.dts index f557feb997f4..90d8b6c7a205 100644 --- a/arch/arm/boot/dts/ste-nomadik-s8815.dts +++ b/arch/arm/boot/dts/ste-nomadik-s8815.dts | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| 6 | /dts-v1/; | 6 | /dts-v1/; |
| 7 | /include/ "ste-nomadik-stn8815.dtsi" | 7 | #include "ste-nomadik-stn8815.dtsi" |
| 8 | 8 | ||
| 9 | / { | 9 | / { |
| 10 | model = "Calao Systems USB-S8815"; | 10 | model = "Calao Systems USB-S8815"; |
diff --git a/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi b/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi index d316c955bd5f..dbcf521b017f 100644 --- a/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi +++ b/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi | |||
| @@ -1,7 +1,9 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Device Tree for the ST-Ericsson Nomadik 8815 STn8815 SoC | 2 | * Device Tree for the ST-Ericsson Nomadik 8815 STn8815 SoC |
| 3 | */ | 3 | */ |
| 4 | /include/ "skeleton.dtsi" | 4 | |
| 5 | #include <dt-bindings/gpio/gpio.h> | ||
| 6 | #include "skeleton.dtsi" | ||
| 5 | 7 | ||
| 6 | / { | 8 | / { |
| 7 | #address-cells = <1>; | 9 | #address-cells = <1>; |
| @@ -842,8 +844,7 @@ | |||
| 842 | bus-width = <4>; | 844 | bus-width = <4>; |
| 843 | cap-mmc-highspeed; | 845 | cap-mmc-highspeed; |
| 844 | cap-sd-highspeed; | 846 | cap-sd-highspeed; |
| 845 | cd-gpios = <&gpio3 15 0x1>; | 847 | cd-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>; |
| 846 | cd-inverted; | ||
| 847 | pinctrl-names = "default"; | 848 | pinctrl-names = "default"; |
| 848 | pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>; | 849 | pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>; |
| 849 | vmmc-supply = <&vmmc_regulator>; | 850 | vmmc-supply = <&vmmc_regulator>; |
diff --git a/arch/x86/include/asm/irqflags.h b/arch/x86/include/asm/irqflags.h index bba3cf88e624..0a8b519226b8 100644 --- a/arch/x86/include/asm/irqflags.h +++ b/arch/x86/include/asm/irqflags.h | |||
| @@ -129,7 +129,7 @@ static inline notrace unsigned long arch_local_irq_save(void) | |||
| 129 | 129 | ||
| 130 | #define PARAVIRT_ADJUST_EXCEPTION_FRAME /* */ | 130 | #define PARAVIRT_ADJUST_EXCEPTION_FRAME /* */ |
| 131 | 131 | ||
| 132 | #define INTERRUPT_RETURN iretq | 132 | #define INTERRUPT_RETURN jmp native_iret |
| 133 | #define USERGS_SYSRET64 \ | 133 | #define USERGS_SYSRET64 \ |
| 134 | swapgs; \ | 134 | swapgs; \ |
| 135 | sysretq; | 135 | sysretq; |
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S index b25ca969edd2..c844f0816ab8 100644 --- a/arch/x86/kernel/entry_64.S +++ b/arch/x86/kernel/entry_64.S | |||
| @@ -830,27 +830,24 @@ restore_args: | |||
| 830 | RESTORE_ARGS 1,8,1 | 830 | RESTORE_ARGS 1,8,1 |
| 831 | 831 | ||
| 832 | irq_return: | 832 | irq_return: |
| 833 | INTERRUPT_RETURN | ||
| 834 | |||
| 835 | ENTRY(native_iret) | ||
| 833 | /* | 836 | /* |
| 834 | * Are we returning to a stack segment from the LDT? Note: in | 837 | * Are we returning to a stack segment from the LDT? Note: in |
| 835 | * 64-bit mode SS:RSP on the exception stack is always valid. | 838 | * 64-bit mode SS:RSP on the exception stack is always valid. |
| 836 | */ | 839 | */ |
| 837 | #ifdef CONFIG_X86_ESPFIX64 | 840 | #ifdef CONFIG_X86_ESPFIX64 |
| 838 | testb $4,(SS-RIP)(%rsp) | 841 | testb $4,(SS-RIP)(%rsp) |
| 839 | jnz irq_return_ldt | 842 | jnz native_irq_return_ldt |
| 840 | #endif | 843 | #endif |
| 841 | 844 | ||
| 842 | irq_return_iret: | 845 | native_irq_return_iret: |
| 843 | INTERRUPT_RETURN | ||
| 844 | _ASM_EXTABLE(irq_return_iret, bad_iret) | ||
| 845 | |||
| 846 | #ifdef CONFIG_PARAVIRT | ||
| 847 | ENTRY(native_iret) | ||
| 848 | iretq | 846 | iretq |
| 849 | _ASM_EXTABLE(native_iret, bad_iret) | 847 | _ASM_EXTABLE(native_irq_return_iret, bad_iret) |
| 850 | #endif | ||
| 851 | 848 | ||
| 852 | #ifdef CONFIG_X86_ESPFIX64 | 849 | #ifdef CONFIG_X86_ESPFIX64 |
| 853 | irq_return_ldt: | 850 | native_irq_return_ldt: |
| 854 | pushq_cfi %rax | 851 | pushq_cfi %rax |
| 855 | pushq_cfi %rdi | 852 | pushq_cfi %rdi |
| 856 | SWAPGS | 853 | SWAPGS |
| @@ -872,7 +869,7 @@ irq_return_ldt: | |||
| 872 | SWAPGS | 869 | SWAPGS |
| 873 | movq %rax,%rsp | 870 | movq %rax,%rsp |
| 874 | popq_cfi %rax | 871 | popq_cfi %rax |
| 875 | jmp irq_return_iret | 872 | jmp native_irq_return_iret |
| 876 | #endif | 873 | #endif |
| 877 | 874 | ||
| 878 | .section .fixup,"ax" | 875 | .section .fixup,"ax" |
| @@ -956,13 +953,8 @@ __do_double_fault: | |||
| 956 | cmpl $__KERNEL_CS,CS(%rdi) | 953 | cmpl $__KERNEL_CS,CS(%rdi) |
| 957 | jne do_double_fault | 954 | jne do_double_fault |
| 958 | movq RIP(%rdi),%rax | 955 | movq RIP(%rdi),%rax |
| 959 | cmpq $irq_return_iret,%rax | 956 | cmpq $native_irq_return_iret,%rax |
| 960 | #ifdef CONFIG_PARAVIRT | ||
| 961 | je 1f | ||
| 962 | cmpq $native_iret,%rax | ||
| 963 | #endif | ||
| 964 | jne do_double_fault /* This shouldn't happen... */ | 957 | jne do_double_fault /* This shouldn't happen... */ |
| 965 | 1: | ||
| 966 | movq PER_CPU_VAR(kernel_stack),%rax | 958 | movq PER_CPU_VAR(kernel_stack),%rax |
| 967 | subq $(6*8-KERNEL_STACK_OFFSET),%rax /* Reset to original stack */ | 959 | subq $(6*8-KERNEL_STACK_OFFSET),%rax /* Reset to original stack */ |
| 968 | movq %rax,RSP(%rdi) | 960 | movq %rax,RSP(%rdi) |
| @@ -1428,7 +1420,7 @@ error_sti: | |||
| 1428 | */ | 1420 | */ |
| 1429 | error_kernelspace: | 1421 | error_kernelspace: |
| 1430 | incl %ebx | 1422 | incl %ebx |
| 1431 | leaq irq_return_iret(%rip),%rcx | 1423 | leaq native_irq_return_iret(%rip),%rcx |
| 1432 | cmpq %rcx,RIP+8(%rsp) | 1424 | cmpq %rcx,RIP+8(%rsp) |
| 1433 | je error_swapgs | 1425 | je error_swapgs |
| 1434 | movl %ecx,%eax /* zero extend */ | 1426 | movl %ecx,%eax /* zero extend */ |
diff --git a/arch/x86/kernel/paravirt_patch_64.c b/arch/x86/kernel/paravirt_patch_64.c index 3f08f34f93eb..a1da6737ba5b 100644 --- a/arch/x86/kernel/paravirt_patch_64.c +++ b/arch/x86/kernel/paravirt_patch_64.c | |||
| @@ -6,7 +6,6 @@ DEF_NATIVE(pv_irq_ops, irq_disable, "cli"); | |||
| 6 | DEF_NATIVE(pv_irq_ops, irq_enable, "sti"); | 6 | DEF_NATIVE(pv_irq_ops, irq_enable, "sti"); |
| 7 | DEF_NATIVE(pv_irq_ops, restore_fl, "pushq %rdi; popfq"); | 7 | DEF_NATIVE(pv_irq_ops, restore_fl, "pushq %rdi; popfq"); |
| 8 | DEF_NATIVE(pv_irq_ops, save_fl, "pushfq; popq %rax"); | 8 | DEF_NATIVE(pv_irq_ops, save_fl, "pushfq; popq %rax"); |
| 9 | DEF_NATIVE(pv_cpu_ops, iret, "iretq"); | ||
| 10 | DEF_NATIVE(pv_mmu_ops, read_cr2, "movq %cr2, %rax"); | 9 | DEF_NATIVE(pv_mmu_ops, read_cr2, "movq %cr2, %rax"); |
| 11 | DEF_NATIVE(pv_mmu_ops, read_cr3, "movq %cr3, %rax"); | 10 | DEF_NATIVE(pv_mmu_ops, read_cr3, "movq %cr3, %rax"); |
| 12 | DEF_NATIVE(pv_mmu_ops, write_cr3, "movq %rdi, %cr3"); | 11 | DEF_NATIVE(pv_mmu_ops, write_cr3, "movq %rdi, %cr3"); |
| @@ -50,7 +49,6 @@ unsigned native_patch(u8 type, u16 clobbers, void *ibuf, | |||
| 50 | PATCH_SITE(pv_irq_ops, save_fl); | 49 | PATCH_SITE(pv_irq_ops, save_fl); |
| 51 | PATCH_SITE(pv_irq_ops, irq_enable); | 50 | PATCH_SITE(pv_irq_ops, irq_enable); |
| 52 | PATCH_SITE(pv_irq_ops, irq_disable); | 51 | PATCH_SITE(pv_irq_ops, irq_disable); |
| 53 | PATCH_SITE(pv_cpu_ops, iret); | ||
| 54 | PATCH_SITE(pv_cpu_ops, irq_enable_sysexit); | 52 | PATCH_SITE(pv_cpu_ops, irq_enable_sysexit); |
| 55 | PATCH_SITE(pv_cpu_ops, usergs_sysret32); | 53 | PATCH_SITE(pv_cpu_ops, usergs_sysret32); |
| 56 | PATCH_SITE(pv_cpu_ops, usergs_sysret64); | 54 | PATCH_SITE(pv_cpu_ops, usergs_sysret64); |
diff --git a/drivers/iio/accel/bma180.c b/drivers/iio/accel/bma180.c index a7e68c81f89d..a077cc86421b 100644 --- a/drivers/iio/accel/bma180.c +++ b/drivers/iio/accel/bma180.c | |||
| @@ -68,13 +68,13 @@ | |||
| 68 | /* Defaults values */ | 68 | /* Defaults values */ |
| 69 | #define BMA180_DEF_PMODE 0 | 69 | #define BMA180_DEF_PMODE 0 |
| 70 | #define BMA180_DEF_BW 20 | 70 | #define BMA180_DEF_BW 20 |
| 71 | #define BMA180_DEF_SCALE 250 | 71 | #define BMA180_DEF_SCALE 2452 |
| 72 | 72 | ||
| 73 | /* Available values for sysfs */ | 73 | /* Available values for sysfs */ |
| 74 | #define BMA180_FLP_FREQ_AVAILABLE \ | 74 | #define BMA180_FLP_FREQ_AVAILABLE \ |
| 75 | "10 20 40 75 150 300" | 75 | "10 20 40 75 150 300" |
| 76 | #define BMA180_SCALE_AVAILABLE \ | 76 | #define BMA180_SCALE_AVAILABLE \ |
| 77 | "0.000130 0.000190 0.000250 0.000380 0.000500 0.000990 0.001980" | 77 | "0.001275 0.001863 0.002452 0.003727 0.004903 0.009709 0.019417" |
| 78 | 78 | ||
| 79 | struct bma180_data { | 79 | struct bma180_data { |
| 80 | struct i2c_client *client; | 80 | struct i2c_client *client; |
| @@ -94,7 +94,7 @@ enum bma180_axis { | |||
| 94 | }; | 94 | }; |
| 95 | 95 | ||
| 96 | static int bw_table[] = { 10, 20, 40, 75, 150, 300 }; /* Hz */ | 96 | static int bw_table[] = { 10, 20, 40, 75, 150, 300 }; /* Hz */ |
| 97 | static int scale_table[] = { 130, 190, 250, 380, 500, 990, 1980 }; | 97 | static int scale_table[] = { 1275, 1863, 2452, 3727, 4903, 9709, 19417 }; |
| 98 | 98 | ||
| 99 | static int bma180_get_acc_reg(struct bma180_data *data, enum bma180_axis axis) | 99 | static int bma180_get_acc_reg(struct bma180_data *data, enum bma180_axis axis) |
| 100 | { | 100 | { |
| @@ -376,6 +376,8 @@ static int bma180_write_raw(struct iio_dev *indio_dev, | |||
| 376 | mutex_unlock(&data->mutex); | 376 | mutex_unlock(&data->mutex); |
| 377 | return ret; | 377 | return ret; |
| 378 | case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY: | 378 | case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY: |
| 379 | if (val2) | ||
| 380 | return -EINVAL; | ||
| 379 | mutex_lock(&data->mutex); | 381 | mutex_lock(&data->mutex); |
| 380 | ret = bma180_set_bw(data, val); | 382 | ret = bma180_set_bw(data, val); |
| 381 | mutex_unlock(&data->mutex); | 383 | mutex_unlock(&data->mutex); |
diff --git a/drivers/iio/industrialio-buffer.c b/drivers/iio/industrialio-buffer.c index 36b1ae92e239..9f1a14009901 100644 --- a/drivers/iio/industrialio-buffer.c +++ b/drivers/iio/industrialio-buffer.c | |||
| @@ -966,7 +966,7 @@ static int iio_buffer_update_demux(struct iio_dev *indio_dev, | |||
| 966 | 966 | ||
| 967 | /* Now we have the two masks, work from least sig and build up sizes */ | 967 | /* Now we have the two masks, work from least sig and build up sizes */ |
| 968 | for_each_set_bit(out_ind, | 968 | for_each_set_bit(out_ind, |
| 969 | indio_dev->active_scan_mask, | 969 | buffer->scan_mask, |
| 970 | indio_dev->masklength) { | 970 | indio_dev->masklength) { |
| 971 | in_ind = find_next_bit(indio_dev->active_scan_mask, | 971 | in_ind = find_next_bit(indio_dev->active_scan_mask, |
| 972 | indio_dev->masklength, | 972 | indio_dev->masklength, |
diff --git a/drivers/md/dm-bufio.c b/drivers/md/dm-bufio.c index 4e84095833db..d724459860d9 100644 --- a/drivers/md/dm-bufio.c +++ b/drivers/md/dm-bufio.c | |||
| @@ -1541,7 +1541,7 @@ struct dm_bufio_client *dm_bufio_client_create(struct block_device *bdev, unsign | |||
| 1541 | BUG_ON(block_size < 1 << SECTOR_SHIFT || | 1541 | BUG_ON(block_size < 1 << SECTOR_SHIFT || |
| 1542 | (block_size & (block_size - 1))); | 1542 | (block_size & (block_size - 1))); |
| 1543 | 1543 | ||
| 1544 | c = kmalloc(sizeof(*c), GFP_KERNEL); | 1544 | c = kzalloc(sizeof(*c), GFP_KERNEL); |
| 1545 | if (!c) { | 1545 | if (!c) { |
| 1546 | r = -ENOMEM; | 1546 | r = -ENOMEM; |
| 1547 | goto bad_client; | 1547 | goto bad_client; |
diff --git a/drivers/md/dm-cache-target.c b/drivers/md/dm-cache-target.c index 5f054c44b485..2c63326638b6 100644 --- a/drivers/md/dm-cache-target.c +++ b/drivers/md/dm-cache-target.c | |||
| @@ -231,7 +231,7 @@ struct cache { | |||
| 231 | /* | 231 | /* |
| 232 | * cache_size entries, dirty if set | 232 | * cache_size entries, dirty if set |
| 233 | */ | 233 | */ |
| 234 | dm_cblock_t nr_dirty; | 234 | atomic_t nr_dirty; |
| 235 | unsigned long *dirty_bitset; | 235 | unsigned long *dirty_bitset; |
| 236 | 236 | ||
| 237 | /* | 237 | /* |
| @@ -492,7 +492,7 @@ static bool is_dirty(struct cache *cache, dm_cblock_t b) | |||
| 492 | static void set_dirty(struct cache *cache, dm_oblock_t oblock, dm_cblock_t cblock) | 492 | static void set_dirty(struct cache *cache, dm_oblock_t oblock, dm_cblock_t cblock) |
| 493 | { | 493 | { |
| 494 | if (!test_and_set_bit(from_cblock(cblock), cache->dirty_bitset)) { | 494 | if (!test_and_set_bit(from_cblock(cblock), cache->dirty_bitset)) { |
| 495 | cache->nr_dirty = to_cblock(from_cblock(cache->nr_dirty) + 1); | 495 | atomic_inc(&cache->nr_dirty); |
| 496 | policy_set_dirty(cache->policy, oblock); | 496 | policy_set_dirty(cache->policy, oblock); |
| 497 | } | 497 | } |
| 498 | } | 498 | } |
| @@ -501,8 +501,7 @@ static void clear_dirty(struct cache *cache, dm_oblock_t oblock, dm_cblock_t cbl | |||
| 501 | { | 501 | { |
| 502 | if (test_and_clear_bit(from_cblock(cblock), cache->dirty_bitset)) { | 502 | if (test_and_clear_bit(from_cblock(cblock), cache->dirty_bitset)) { |
| 503 | policy_clear_dirty(cache->policy, oblock); | 503 | policy_clear_dirty(cache->policy, oblock); |
| 504 | cache->nr_dirty = to_cblock(from_cblock(cache->nr_dirty) - 1); | 504 | if (atomic_dec_return(&cache->nr_dirty) == 0) |
| 505 | if (!from_cblock(cache->nr_dirty)) | ||
| 506 | dm_table_event(cache->ti->table); | 505 | dm_table_event(cache->ti->table); |
| 507 | } | 506 | } |
| 508 | } | 507 | } |
| @@ -2269,7 +2268,7 @@ static int cache_create(struct cache_args *ca, struct cache **result) | |||
| 2269 | atomic_set(&cache->quiescing_ack, 0); | 2268 | atomic_set(&cache->quiescing_ack, 0); |
| 2270 | 2269 | ||
| 2271 | r = -ENOMEM; | 2270 | r = -ENOMEM; |
| 2272 | cache->nr_dirty = 0; | 2271 | atomic_set(&cache->nr_dirty, 0); |
| 2273 | cache->dirty_bitset = alloc_bitset(from_cblock(cache->cache_size)); | 2272 | cache->dirty_bitset = alloc_bitset(from_cblock(cache->cache_size)); |
| 2274 | if (!cache->dirty_bitset) { | 2273 | if (!cache->dirty_bitset) { |
| 2275 | *error = "could not allocate dirty bitset"; | 2274 | *error = "could not allocate dirty bitset"; |
| @@ -2808,7 +2807,7 @@ static void cache_status(struct dm_target *ti, status_type_t type, | |||
| 2808 | 2807 | ||
| 2809 | residency = policy_residency(cache->policy); | 2808 | residency = policy_residency(cache->policy); |
| 2810 | 2809 | ||
| 2811 | DMEMIT("%u %llu/%llu %u %llu/%llu %u %u %u %u %u %u %llu ", | 2810 | DMEMIT("%u %llu/%llu %u %llu/%llu %u %u %u %u %u %u %lu ", |
| 2812 | (unsigned)(DM_CACHE_METADATA_BLOCK_SIZE >> SECTOR_SHIFT), | 2811 | (unsigned)(DM_CACHE_METADATA_BLOCK_SIZE >> SECTOR_SHIFT), |
| 2813 | (unsigned long long)(nr_blocks_metadata - nr_free_blocks_metadata), | 2812 | (unsigned long long)(nr_blocks_metadata - nr_free_blocks_metadata), |
| 2814 | (unsigned long long)nr_blocks_metadata, | 2813 | (unsigned long long)nr_blocks_metadata, |
| @@ -2821,7 +2820,7 @@ static void cache_status(struct dm_target *ti, status_type_t type, | |||
| 2821 | (unsigned) atomic_read(&cache->stats.write_miss), | 2820 | (unsigned) atomic_read(&cache->stats.write_miss), |
| 2822 | (unsigned) atomic_read(&cache->stats.demotion), | 2821 | (unsigned) atomic_read(&cache->stats.demotion), |
| 2823 | (unsigned) atomic_read(&cache->stats.promotion), | 2822 | (unsigned) atomic_read(&cache->stats.promotion), |
| 2824 | (unsigned long long) from_cblock(cache->nr_dirty)); | 2823 | (unsigned long) atomic_read(&cache->nr_dirty)); |
| 2825 | 2824 | ||
| 2826 | if (writethrough_mode(&cache->features)) | 2825 | if (writethrough_mode(&cache->features)) |
| 2827 | DMEMIT("1 writethrough "); | 2826 | DMEMIT("1 writethrough "); |
diff --git a/drivers/staging/rtl8723au/os_dep/usb_intf.c b/drivers/staging/rtl8723au/os_dep/usb_intf.c index 8b25c1aa2025..ebb19b22f47f 100644 --- a/drivers/staging/rtl8723au/os_dep/usb_intf.c +++ b/drivers/staging/rtl8723au/os_dep/usb_intf.c | |||
| @@ -530,8 +530,10 @@ int rtw_resume_process23a(struct rtw_adapter *padapter) | |||
| 530 | pwrpriv->bkeepfwalive = false; | 530 | pwrpriv->bkeepfwalive = false; |
| 531 | 531 | ||
| 532 | DBG_8723A("bkeepfwalive(%x)\n", pwrpriv->bkeepfwalive); | 532 | DBG_8723A("bkeepfwalive(%x)\n", pwrpriv->bkeepfwalive); |
| 533 | if (pm_netdev_open23a(pnetdev, true) != 0) | 533 | if (pm_netdev_open23a(pnetdev, true) != 0) { |
| 534 | up(&pwrpriv->lock); | ||
| 534 | goto exit; | 535 | goto exit; |
| 536 | } | ||
| 535 | 537 | ||
| 536 | netif_device_attach(pnetdev); | 538 | netif_device_attach(pnetdev); |
| 537 | netif_carrier_on(pnetdev); | 539 | netif_carrier_on(pnetdev); |
diff --git a/drivers/staging/vt6655/bssdb.c b/drivers/staging/vt6655/bssdb.c index 59679cd46816..69b80e80b011 100644 --- a/drivers/staging/vt6655/bssdb.c +++ b/drivers/staging/vt6655/bssdb.c | |||
| @@ -981,7 +981,7 @@ start: | |||
| 981 | pDevice->byERPFlag &= ~(WLAN_SET_ERP_USE_PROTECTION(1)); | 981 | pDevice->byERPFlag &= ~(WLAN_SET_ERP_USE_PROTECTION(1)); |
| 982 | } | 982 | } |
| 983 | 983 | ||
| 984 | { | 984 | if (pDevice->eCommandState == WLAN_ASSOCIATE_WAIT) { |
| 985 | pDevice->byReAssocCount++; | 985 | pDevice->byReAssocCount++; |
| 986 | /* 10 sec timeout */ | 986 | /* 10 sec timeout */ |
| 987 | if ((pDevice->byReAssocCount > 10) && (!pDevice->bLinkPass)) { | 987 | if ((pDevice->byReAssocCount > 10) && (!pDevice->bLinkPass)) { |
diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index 1d3908d044d0..5a5fd937a442 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c | |||
| @@ -2318,6 +2318,7 @@ static irqreturn_t device_intr(int irq, void *dev_instance) { | |||
| 2318 | int handled = 0; | 2318 | int handled = 0; |
| 2319 | unsigned char byData = 0; | 2319 | unsigned char byData = 0; |
| 2320 | int ii = 0; | 2320 | int ii = 0; |
| 2321 | unsigned long flags; | ||
| 2321 | 2322 | ||
| 2322 | MACvReadISR(pDevice->PortOffset, &pDevice->dwIsr); | 2323 | MACvReadISR(pDevice->PortOffset, &pDevice->dwIsr); |
| 2323 | 2324 | ||
| @@ -2331,7 +2332,8 @@ static irqreturn_t device_intr(int irq, void *dev_instance) { | |||
| 2331 | 2332 | ||
| 2332 | handled = 1; | 2333 | handled = 1; |
| 2333 | MACvIntDisable(pDevice->PortOffset); | 2334 | MACvIntDisable(pDevice->PortOffset); |
| 2334 | spin_lock_irq(&pDevice->lock); | 2335 | |
| 2336 | spin_lock_irqsave(&pDevice->lock, flags); | ||
| 2335 | 2337 | ||
| 2336 | //Make sure current page is 0 | 2338 | //Make sure current page is 0 |
| 2337 | VNSvInPortB(pDevice->PortOffset + MAC_REG_PAGE1SEL, &byOrgPageSel); | 2339 | VNSvInPortB(pDevice->PortOffset + MAC_REG_PAGE1SEL, &byOrgPageSel); |
| @@ -2560,7 +2562,8 @@ static irqreturn_t device_intr(int irq, void *dev_instance) { | |||
| 2560 | if (byOrgPageSel == 1) | 2562 | if (byOrgPageSel == 1) |
| 2561 | MACvSelectPage1(pDevice->PortOffset); | 2563 | MACvSelectPage1(pDevice->PortOffset); |
| 2562 | 2564 | ||
| 2563 | spin_unlock_irq(&pDevice->lock); | 2565 | spin_unlock_irqrestore(&pDevice->lock, flags); |
| 2566 | |||
| 2564 | MACvIntEnable(pDevice->PortOffset, IMR_MASK_VALUE); | 2567 | MACvIntEnable(pDevice->PortOffset, IMR_MASK_VALUE); |
| 2565 | 2568 | ||
| 2566 | return IRQ_RETVAL(handled); | 2569 | return IRQ_RETVAL(handled); |
