diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-04-30 13:16:55 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-04-30 13:16:55 -0400 |
commit | be1066bbcd443a65df312fdecea7e4959adedb45 (patch) | |
tree | e00904878d65c4a60195f9e26eb3a0481484c225 /drivers | |
parent | 87156d692afdc4c689e99380a263445217a4b76c (diff) | |
parent | 4839737b3b6af2a9b3b960584f08177fbc9bf118 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6:
Staging: vme: Re-introduce necessary brackets
Staging: iio: fix up the iio_get_new_idr_val comment
Staging: add Add Sitecom WL-349 to rtl8192su
Staging: rt2860: add Belkin F5D8055 Wireless-N USB Dongle device id
staging: rtl8192su: add Support for Belkin F5D8053 v6
Staging: dt3155: fix 50Hz configuration
staging: usbip: Fix deadlock
Staging: rtl8192su: add USB ID for 0bda:8171
Staging: hv: name network device ethX rather than sethX
Staging: hv: Fix up memory leak on HvCleanup
Staging: hv: Fix a bug affecting IPv6
staging: iio: ring_sw: Fix incorrect test on successful read of last value, causes infinite loop
staging: iio: Function iio_get_new_idr_val() return negative value if fails.
Staging: iio: adc: fix dangling pointers
Staging: iio: light: fix dangling pointers
Staging: iio: test for failed allocation
staging: iio: lis3l02dq - incorrect ws used in container of call.
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/staging/dt3155/dt3155_drv.c | 4 | ||||
-rw-r--r-- | drivers/staging/hv/Hv.c | 2 | ||||
-rw-r--r-- | drivers/staging/hv/RndisFilter.c | 1 | ||||
-rw-r--r-- | drivers/staging/hv/netvsc_drv.c | 3 | ||||
-rw-r--r-- | drivers/staging/iio/accel/lis3l02dq_core.c | 2 | ||||
-rw-r--r-- | drivers/staging/iio/accel/lis3l02dq_ring.c | 3 | ||||
-rw-r--r-- | drivers/staging/iio/adc/max1363_core.c | 2 | ||||
-rw-r--r-- | drivers/staging/iio/industrialio-core.c | 3 | ||||
-rw-r--r-- | drivers/staging/iio/light/tsl2563.c | 2 | ||||
-rw-r--r-- | drivers/staging/iio/ring_sw.c | 2 | ||||
-rw-r--r-- | drivers/staging/rt2860/usb_main_dev.c | 1 | ||||
-rw-r--r-- | drivers/staging/rtl8192su/r8192U_core.c | 3 | ||||
-rw-r--r-- | drivers/staging/usbip/usbip_event.c | 3 | ||||
-rw-r--r-- | drivers/staging/vme/bridges/vme_tsi148.c | 3 |
14 files changed, 25 insertions, 9 deletions
diff --git a/drivers/staging/dt3155/dt3155_drv.c b/drivers/staging/dt3155/dt3155_drv.c index e2c44ec6fc45..7ac2c6d8e9a3 100644 --- a/drivers/staging/dt3155/dt3155_drv.c +++ b/drivers/staging/dt3155/dt3155_drv.c | |||
@@ -464,9 +464,9 @@ static void dt3155_init_isr(int minor) | |||
464 | /* 50/60 Hz should be set before this point but let's make sure it is */ | 464 | /* 50/60 Hz should be set before this point but let's make sure it is */ |
465 | /* right anyway */ | 465 | /* right anyway */ |
466 | 466 | ||
467 | ReadI2C(dt3155_lbase[ minor ], CONFIG, &i2c_csr2.reg); | 467 | ReadI2C(dt3155_lbase[ minor ], CSR2, &i2c_csr2.reg); |
468 | i2c_csr2.fld.HZ50 = FORMAT50HZ; | 468 | i2c_csr2.fld.HZ50 = FORMAT50HZ; |
469 | WriteI2C(dt3155_lbase[ minor ], CONFIG, i2c_config.reg); | 469 | WriteI2C(dt3155_lbase[ minor ], CSR2, i2c_csr2.reg); |
470 | 470 | ||
471 | /* enable busmaster chip, clear flags */ | 471 | /* enable busmaster chip, clear flags */ |
472 | 472 | ||
diff --git a/drivers/staging/hv/Hv.c b/drivers/staging/hv/Hv.c index 5d53889fb4a4..3a1112d29aeb 100644 --- a/drivers/staging/hv/Hv.c +++ b/drivers/staging/hv/Hv.c | |||
@@ -306,9 +306,9 @@ void HvCleanup(void) | |||
306 | DPRINT_ENTER(VMBUS); | 306 | DPRINT_ENTER(VMBUS); |
307 | 307 | ||
308 | if (gHvContext.SignalEventBuffer) { | 308 | if (gHvContext.SignalEventBuffer) { |
309 | kfree(gHvContext.SignalEventBuffer); | ||
309 | gHvContext.SignalEventBuffer = NULL; | 310 | gHvContext.SignalEventBuffer = NULL; |
310 | gHvContext.SignalEventParam = NULL; | 311 | gHvContext.SignalEventParam = NULL; |
311 | kfree(gHvContext.SignalEventBuffer); | ||
312 | } | 312 | } |
313 | 313 | ||
314 | if (gHvContext.HypercallPage) { | 314 | if (gHvContext.HypercallPage) { |
diff --git a/drivers/staging/hv/RndisFilter.c b/drivers/staging/hv/RndisFilter.c index cd2930de2176..6704f64c93f0 100644 --- a/drivers/staging/hv/RndisFilter.c +++ b/drivers/staging/hv/RndisFilter.c | |||
@@ -751,6 +751,7 @@ static int RndisFilterOpenDevice(struct rndis_device *Device) | |||
751 | 751 | ||
752 | ret = RndisFilterSetPacketFilter(Device, | 752 | ret = RndisFilterSetPacketFilter(Device, |
753 | NDIS_PACKET_TYPE_BROADCAST | | 753 | NDIS_PACKET_TYPE_BROADCAST | |
754 | NDIS_PACKET_TYPE_ALL_MULTICAST | | ||
754 | NDIS_PACKET_TYPE_DIRECTED); | 755 | NDIS_PACKET_TYPE_DIRECTED); |
755 | if (ret == 0) | 756 | if (ret == 0) |
756 | Device->State = RNDIS_DEV_DATAINITIALIZED; | 757 | Device->State = RNDIS_DEV_DATAINITIALIZED; |
diff --git a/drivers/staging/hv/netvsc_drv.c b/drivers/staging/hv/netvsc_drv.c index 2ccb6b93fe47..ab27d9a4446d 100644 --- a/drivers/staging/hv/netvsc_drv.c +++ b/drivers/staging/hv/netvsc_drv.c | |||
@@ -403,8 +403,7 @@ static int netvsc_probe(struct device *device) | |||
403 | if (!net_drv_obj->Base.OnDeviceAdd) | 403 | if (!net_drv_obj->Base.OnDeviceAdd) |
404 | return -1; | 404 | return -1; |
405 | 405 | ||
406 | net = alloc_netdev(sizeof(struct net_device_context), "seth%d", | 406 | net = alloc_etherdev(sizeof(struct net_device_context)); |
407 | ether_setup); | ||
408 | if (!net) | 407 | if (!net) |
409 | return -1; | 408 | return -1; |
410 | 409 | ||
diff --git a/drivers/staging/iio/accel/lis3l02dq_core.c b/drivers/staging/iio/accel/lis3l02dq_core.c index ea76902797bb..82e43588e8a5 100644 --- a/drivers/staging/iio/accel/lis3l02dq_core.c +++ b/drivers/staging/iio/accel/lis3l02dq_core.c | |||
@@ -618,7 +618,7 @@ static int lis3l02dq_thresh_handler_th(struct iio_dev *dev_info, | |||
618 | static void lis3l02dq_thresh_handler_bh_no_check(struct work_struct *work_s) | 618 | static void lis3l02dq_thresh_handler_bh_no_check(struct work_struct *work_s) |
619 | { | 619 | { |
620 | struct iio_work_cont *wc | 620 | struct iio_work_cont *wc |
621 | = container_of(work_s, struct iio_work_cont, ws_nocheck); | 621 | = container_of(work_s, struct iio_work_cont, ws); |
622 | struct lis3l02dq_state *st = wc->st; | 622 | struct lis3l02dq_state *st = wc->st; |
623 | u8 t; | 623 | u8 t; |
624 | 624 | ||
diff --git a/drivers/staging/iio/accel/lis3l02dq_ring.c b/drivers/staging/iio/accel/lis3l02dq_ring.c index 93712430e579..a4d97ea0df3d 100644 --- a/drivers/staging/iio/accel/lis3l02dq_ring.c +++ b/drivers/staging/iio/accel/lis3l02dq_ring.c | |||
@@ -493,6 +493,9 @@ int lis3l02dq_probe_trigger(struct iio_dev *indio_dev) | |||
493 | struct lis3l02dq_state *state = indio_dev->dev_data; | 493 | struct lis3l02dq_state *state = indio_dev->dev_data; |
494 | 494 | ||
495 | state->trig = iio_allocate_trigger(); | 495 | state->trig = iio_allocate_trigger(); |
496 | if (!state->trig) | ||
497 | return -ENOMEM; | ||
498 | |||
496 | state->trig->name = kmalloc(IIO_TRIGGER_NAME_LENGTH, GFP_KERNEL); | 499 | state->trig->name = kmalloc(IIO_TRIGGER_NAME_LENGTH, GFP_KERNEL); |
497 | if (!state->trig->name) { | 500 | if (!state->trig->name) { |
498 | ret = -ENOMEM; | 501 | ret = -ENOMEM; |
diff --git a/drivers/staging/iio/adc/max1363_core.c b/drivers/staging/iio/adc/max1363_core.c index 790d1cc9cdc3..773f1d1d9c6e 100644 --- a/drivers/staging/iio/adc/max1363_core.c +++ b/drivers/staging/iio/adc/max1363_core.c | |||
@@ -557,6 +557,7 @@ error_put_reg: | |||
557 | if (!IS_ERR(st->reg)) | 557 | if (!IS_ERR(st->reg)) |
558 | regulator_put(st->reg); | 558 | regulator_put(st->reg); |
559 | error_free_st: | 559 | error_free_st: |
560 | i2c_set_clientdata(client, NULL); | ||
560 | kfree(st); | 561 | kfree(st); |
561 | 562 | ||
562 | error_ret: | 563 | error_ret: |
@@ -574,6 +575,7 @@ static int max1363_remove(struct i2c_client *client) | |||
574 | regulator_disable(st->reg); | 575 | regulator_disable(st->reg); |
575 | regulator_put(st->reg); | 576 | regulator_put(st->reg); |
576 | } | 577 | } |
578 | i2c_set_clientdata(client, NULL); | ||
577 | kfree(st); | 579 | kfree(st); |
578 | 580 | ||
579 | return 0; | 581 | return 0; |
diff --git a/drivers/staging/iio/industrialio-core.c b/drivers/staging/iio/industrialio-core.c index 37f58f66e491..1d77082c8531 100644 --- a/drivers/staging/iio/industrialio-core.c +++ b/drivers/staging/iio/industrialio-core.c | |||
@@ -537,6 +537,7 @@ static void iio_device_unregister_sysfs(struct iio_dev *dev_info) | |||
537 | sysfs_remove_group(&dev_info->dev.kobj, dev_info->attrs); | 537 | sysfs_remove_group(&dev_info->dev.kobj, dev_info->attrs); |
538 | } | 538 | } |
539 | 539 | ||
540 | /* Return a negative errno on failure */ | ||
540 | int iio_get_new_idr_val(struct idr *this_idr) | 541 | int iio_get_new_idr_val(struct idr *this_idr) |
541 | { | 542 | { |
542 | int ret; | 543 | int ret; |
@@ -660,7 +661,7 @@ static int iio_device_register_eventset(struct iio_dev *dev_info) | |||
660 | for (i = 0; i < dev_info->num_interrupt_lines; i++) { | 661 | for (i = 0; i < dev_info->num_interrupt_lines; i++) { |
661 | dev_info->event_interfaces[i].owner = dev_info->driver_module; | 662 | dev_info->event_interfaces[i].owner = dev_info->driver_module; |
662 | ret = iio_get_new_idr_val(&iio_event_idr); | 663 | ret = iio_get_new_idr_val(&iio_event_idr); |
663 | if (ret) | 664 | if (ret < 0) |
664 | goto error_free_setup_ev_ints; | 665 | goto error_free_setup_ev_ints; |
665 | else | 666 | else |
666 | dev_info->event_interfaces[i].id = ret; | 667 | dev_info->event_interfaces[i].id = ret; |
diff --git a/drivers/staging/iio/light/tsl2563.c b/drivers/staging/iio/light/tsl2563.c index 1ba4aa392f6e..8770a00e3652 100644 --- a/drivers/staging/iio/light/tsl2563.c +++ b/drivers/staging/iio/light/tsl2563.c | |||
@@ -682,6 +682,7 @@ static int __devinit tsl2563_probe(struct i2c_client *client, | |||
682 | fail2: | 682 | fail2: |
683 | iio_device_unregister(chip->indio_dev); | 683 | iio_device_unregister(chip->indio_dev); |
684 | fail1: | 684 | fail1: |
685 | i2c_set_clientdata(client, NULL); | ||
685 | kfree(chip); | 686 | kfree(chip); |
686 | return err; | 687 | return err; |
687 | } | 688 | } |
@@ -692,6 +693,7 @@ static int tsl2563_remove(struct i2c_client *client) | |||
692 | 693 | ||
693 | iio_device_unregister(chip->indio_dev); | 694 | iio_device_unregister(chip->indio_dev); |
694 | 695 | ||
696 | i2c_set_clientdata(client, NULL); | ||
695 | kfree(chip); | 697 | kfree(chip); |
696 | return 0; | 698 | return 0; |
697 | } | 699 | } |
diff --git a/drivers/staging/iio/ring_sw.c b/drivers/staging/iio/ring_sw.c index b104c3d9c35e..cf22c091668c 100644 --- a/drivers/staging/iio/ring_sw.c +++ b/drivers/staging/iio/ring_sw.c | |||
@@ -293,7 +293,7 @@ again: | |||
293 | return -EAGAIN; | 293 | return -EAGAIN; |
294 | memcpy(data, last_written_p_copy, ring->buf.bpd); | 294 | memcpy(data, last_written_p_copy, ring->buf.bpd); |
295 | 295 | ||
296 | if (unlikely(ring->last_written_p >= last_written_p_copy)) | 296 | if (unlikely(ring->last_written_p != last_written_p_copy)) |
297 | goto again; | 297 | goto again; |
298 | 298 | ||
299 | iio_unmark_sw_rb_in_use(&ring->buf); | 299 | iio_unmark_sw_rb_in_use(&ring->buf); |
diff --git a/drivers/staging/rt2860/usb_main_dev.c b/drivers/staging/rt2860/usb_main_dev.c index 1873a79bb033..740db0c1ac01 100644 --- a/drivers/staging/rt2860/usb_main_dev.c +++ b/drivers/staging/rt2860/usb_main_dev.c | |||
@@ -63,6 +63,7 @@ struct usb_device_id rtusb_usb_id[] = { | |||
63 | {USB_DEVICE(0x07D1, 0x3C11)}, /* D-Link */ | 63 | {USB_DEVICE(0x07D1, 0x3C11)}, /* D-Link */ |
64 | {USB_DEVICE(0x14B2, 0x3C07)}, /* AL */ | 64 | {USB_DEVICE(0x14B2, 0x3C07)}, /* AL */ |
65 | {USB_DEVICE(0x050D, 0x8053)}, /* Belkin */ | 65 | {USB_DEVICE(0x050D, 0x8053)}, /* Belkin */ |
66 | {USB_DEVICE(0x050D, 0x825B)}, /* Belkin */ | ||
66 | {USB_DEVICE(0x14B2, 0x3C23)}, /* Airlink */ | 67 | {USB_DEVICE(0x14B2, 0x3C23)}, /* Airlink */ |
67 | {USB_DEVICE(0x14B2, 0x3C27)}, /* Airlink */ | 68 | {USB_DEVICE(0x14B2, 0x3C27)}, /* Airlink */ |
68 | {USB_DEVICE(0x07AA, 0x002F)}, /* Corega */ | 69 | {USB_DEVICE(0x07AA, 0x002F)}, /* Corega */ |
diff --git a/drivers/staging/rtl8192su/r8192U_core.c b/drivers/staging/rtl8192su/r8192U_core.c index e16256fe595a..04d9b85f3d4c 100644 --- a/drivers/staging/rtl8192su/r8192U_core.c +++ b/drivers/staging/rtl8192su/r8192U_core.c | |||
@@ -113,14 +113,17 @@ u32 rt_global_debug_component = \ | |||
113 | 113 | ||
114 | static const struct usb_device_id rtl8192_usb_id_tbl[] = { | 114 | static const struct usb_device_id rtl8192_usb_id_tbl[] = { |
115 | /* Realtek */ | 115 | /* Realtek */ |
116 | {USB_DEVICE(0x0bda, 0x8171)}, | ||
116 | {USB_DEVICE(0x0bda, 0x8192)}, | 117 | {USB_DEVICE(0x0bda, 0x8192)}, |
117 | {USB_DEVICE(0x0bda, 0x8709)}, | 118 | {USB_DEVICE(0x0bda, 0x8709)}, |
118 | /* Corega */ | 119 | /* Corega */ |
119 | {USB_DEVICE(0x07aa, 0x0043)}, | 120 | {USB_DEVICE(0x07aa, 0x0043)}, |
120 | /* Belkin */ | 121 | /* Belkin */ |
121 | {USB_DEVICE(0x050d, 0x805E)}, | 122 | {USB_DEVICE(0x050d, 0x805E)}, |
123 | {USB_DEVICE(0x050d, 0x815F)}, /* Belkin F5D8053 v6 */ | ||
122 | /* Sitecom */ | 124 | /* Sitecom */ |
123 | {USB_DEVICE(0x0df6, 0x0031)}, | 125 | {USB_DEVICE(0x0df6, 0x0031)}, |
126 | {USB_DEVICE(0x0df6, 0x004b)}, /* WL-349 */ | ||
124 | /* EnGenius */ | 127 | /* EnGenius */ |
125 | {USB_DEVICE(0x1740, 0x9201)}, | 128 | {USB_DEVICE(0x1740, 0x9201)}, |
126 | /* Dlink */ | 129 | /* Dlink */ |
diff --git a/drivers/staging/usbip/usbip_event.c b/drivers/staging/usbip/usbip_event.c index 6da1021e8a65..a2566f1075d5 100644 --- a/drivers/staging/usbip/usbip_event.c +++ b/drivers/staging/usbip/usbip_event.c | |||
@@ -117,6 +117,9 @@ void usbip_stop_eh(struct usbip_device *ud) | |||
117 | { | 117 | { |
118 | struct usbip_task *eh = &ud->eh; | 118 | struct usbip_task *eh = &ud->eh; |
119 | 119 | ||
120 | if (eh->thread == current) | ||
121 | return; /* do not wait for myself */ | ||
122 | |||
120 | wait_for_completion(&eh->thread_done); | 123 | wait_for_completion(&eh->thread_done); |
121 | usbip_dbg_eh("usbip_eh has finished\n"); | 124 | usbip_dbg_eh("usbip_eh has finished\n"); |
122 | } | 125 | } |
diff --git a/drivers/staging/vme/bridges/vme_tsi148.c b/drivers/staging/vme/bridges/vme_tsi148.c index 68f24425977f..783051f59f19 100644 --- a/drivers/staging/vme/bridges/vme_tsi148.c +++ b/drivers/staging/vme/bridges/vme_tsi148.c | |||
@@ -2455,9 +2455,10 @@ static int tsi148_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
2455 | dev_info(&pdev->dev, "VME Write and flush and error check is %s\n", | 2455 | dev_info(&pdev->dev, "VME Write and flush and error check is %s\n", |
2456 | err_chk ? "enabled" : "disabled"); | 2456 | err_chk ? "enabled" : "disabled"); |
2457 | 2457 | ||
2458 | if (tsi148_crcsr_init(tsi148_bridge, pdev)) | 2458 | if (tsi148_crcsr_init(tsi148_bridge, pdev)) { |
2459 | dev_err(&pdev->dev, "CR/CSR configuration failed.\n"); | 2459 | dev_err(&pdev->dev, "CR/CSR configuration failed.\n"); |
2460 | goto err_crcsr; | 2460 | goto err_crcsr; |
2461 | } | ||
2461 | 2462 | ||
2462 | retval = vme_register_bridge(tsi148_bridge); | 2463 | retval = vme_register_bridge(tsi148_bridge); |
2463 | if (retval != 0) { | 2464 | if (retval != 0) { |