Linux v3.4-rc2-174-gecca5c3
This commit is contained in:
parent
e6eb2f8053
commit
1ad219b123
11
kernel.spec
11
kernel.spec
@ -95,7 +95,7 @@ Summary: The Linux kernel
|
|||||||
# The rc snapshot level
|
# The rc snapshot level
|
||||||
%define rcrev 2
|
%define rcrev 2
|
||||||
# The git snapshot level
|
# The git snapshot level
|
||||||
%define gitrev 1
|
%define gitrev 2
|
||||||
# Set rpm version accordingly
|
# Set rpm version accordingly
|
||||||
%define rpmversion 3.%{upstream_sublevel}.0
|
%define rpmversion 3.%{upstream_sublevel}.0
|
||||||
%endif
|
%endif
|
||||||
@ -736,9 +736,6 @@ Patch21260: x86-Avoid-invoking-RCU-when-CPU-is-idle.patch
|
|||||||
#rhbz 804957 CVE-2012-1568
|
#rhbz 804957 CVE-2012-1568
|
||||||
Patch21306: shlib_base_randomize.patch
|
Patch21306: shlib_base_randomize.patch
|
||||||
|
|
||||||
#rhbz 806433
|
|
||||||
Patch21360: uvcvideo-Fix-race-induced-crash-in-uvc_video_clock_update.patch
|
|
||||||
|
|
||||||
#rhbz 806676 807632
|
#rhbz 806676 807632
|
||||||
Patch21385: libata-disable-runtime-pm-for-hotpluggable-port.patch
|
Patch21385: libata-disable-runtime-pm-for-hotpluggable-port.patch
|
||||||
|
|
||||||
@ -1442,9 +1439,6 @@ ApplyPatch selinux-apply-different-permission-to-ptrace-child.patch
|
|||||||
#Highbank clock functions
|
#Highbank clock functions
|
||||||
ApplyPatch highbank-export-clock-functions.patch
|
ApplyPatch highbank-export-clock-functions.patch
|
||||||
|
|
||||||
#rhbz 806433
|
|
||||||
ApplyPatch uvcvideo-Fix-race-induced-crash-in-uvc_video_clock_update.patch
|
|
||||||
|
|
||||||
#rhbz 806676 807632
|
#rhbz 806676 807632
|
||||||
ApplyPatch libata-disable-runtime-pm-for-hotpluggable-port.patch
|
ApplyPatch libata-disable-runtime-pm-for-hotpluggable-port.patch
|
||||||
|
|
||||||
@ -2312,6 +2306,9 @@ fi
|
|||||||
# ||----w |
|
# ||----w |
|
||||||
# || ||
|
# || ||
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Apr 12 2012 Justin M. Forbes <jforbes@redhat.com> - 3.4.0-0.rc2.git2.1
|
||||||
|
- Linux v3.4-rc2-174-gecca5c3
|
||||||
|
|
||||||
* Thu Apr 12 2012 Dennis Gilmore <dennis@ausil.us>
|
* Thu Apr 12 2012 Dennis Gilmore <dennis@ausil.us>
|
||||||
- KALLSYMS_EXTRA_PASS=1 has to be passed in on the command line so do so only for arm
|
- KALLSYMS_EXTRA_PASS=1 has to be passed in on the command line so do so only for arm
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1,3 +1,3 @@
|
|||||||
7133f5a2086a7d7ef97abac610c094f5 linux-3.3.tar.xz
|
7133f5a2086a7d7ef97abac610c094f5 linux-3.3.tar.xz
|
||||||
cc3f9ca69749eb6a92d003598c45a04b patch-3.4-rc2.xz
|
cc3f9ca69749eb6a92d003598c45a04b patch-3.4-rc2.xz
|
||||||
50f5336851ff8ad784e6caf45564c32a patch-3.4-rc2-git1.xz
|
53f2b39868825626da097b687cf7da58 patch-3.4-rc2-git2.xz
|
||||||
|
@ -1,113 +0,0 @@
|
|||||||
@@ -, +, @@
|
|
||||||
drivers/media/video/uvc/uvc_video.c | 50 ++++++++++++++++++++++------------
|
|
||||||
1 files changed, 32 insertions(+), 18 deletions(-)
|
|
||||||
--- a/drivers/media/video/uvc/uvc_video.c
|
|
||||||
+++ a/drivers/media/video/uvc/uvc_video.c
|
|
||||||
@@ -468,22 +468,30 @@ uvc_video_clock_decode(struct uvc_streaming *stream, struct uvc_buffer *buf,
|
|
||||||
spin_unlock_irqrestore(&stream->clock.lock, flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
-static int uvc_video_clock_init(struct uvc_streaming *stream)
|
|
||||||
+static void uvc_video_clock_reset(struct uvc_streaming *stream)
|
|
||||||
{
|
|
||||||
struct uvc_clock *clock = &stream->clock;
|
|
||||||
|
|
||||||
- spin_lock_init(&clock->lock);
|
|
||||||
clock->head = 0;
|
|
||||||
clock->count = 0;
|
|
||||||
- clock->size = 32;
|
|
||||||
clock->last_sof = -1;
|
|
||||||
clock->sof_offset = -1;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int uvc_video_clock_init(struct uvc_streaming *stream)
|
|
||||||
+{
|
|
||||||
+ struct uvc_clock *clock = &stream->clock;
|
|
||||||
+
|
|
||||||
+ spin_lock_init(&clock->lock);
|
|
||||||
+ clock->size = 32;
|
|
||||||
|
|
||||||
clock->samples = kmalloc(clock->size * sizeof(*clock->samples),
|
|
||||||
GFP_KERNEL);
|
|
||||||
if (clock->samples == NULL)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
+ uvc_video_clock_reset(stream);
|
|
||||||
+
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1424,8 +1432,6 @@ static void uvc_uninit_video(struct uvc_streaming *stream, int free_buffers)
|
|
||||||
|
|
||||||
if (free_buffers)
|
|
||||||
uvc_free_urb_buffers(stream);
|
|
||||||
-
|
|
||||||
- uvc_video_clock_cleanup(stream);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
@@ -1555,10 +1561,6 @@ static int uvc_init_video(struct uvc_streaming *stream, gfp_t gfp_flags)
|
|
||||||
|
|
||||||
uvc_video_stats_start(stream);
|
|
||||||
|
|
||||||
- ret = uvc_video_clock_init(stream);
|
|
||||||
- if (ret < 0)
|
|
||||||
- return ret;
|
|
||||||
-
|
|
||||||
if (intf->num_altsetting > 1) {
|
|
||||||
struct usb_host_endpoint *best_ep = NULL;
|
|
||||||
unsigned int best_psize = 3 * 1024;
|
|
||||||
@@ -1683,6 +1685,8 @@ int uvc_video_resume(struct uvc_streaming *stream, int reset)
|
|
||||||
|
|
||||||
stream->frozen = 0;
|
|
||||||
|
|
||||||
+ uvc_video_clock_reset(stream);
|
|
||||||
+
|
|
||||||
ret = uvc_commit_video(stream, &stream->ctrl);
|
|
||||||
if (ret < 0) {
|
|
||||||
uvc_queue_enable(&stream->queue, 0);
|
|
||||||
@@ -1819,25 +1823,35 @@ int uvc_video_enable(struct uvc_streaming *stream, int enable)
|
|
||||||
uvc_uninit_video(stream, 1);
|
|
||||||
usb_set_interface(stream->dev->udev, stream->intfnum, 0);
|
|
||||||
uvc_queue_enable(&stream->queue, 0);
|
|
||||||
+ uvc_video_clock_cleanup(stream);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
- ret = uvc_queue_enable(&stream->queue, 1);
|
|
||||||
+ ret = uvc_video_clock_init(stream);
|
|
||||||
if (ret < 0)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
+ ret = uvc_queue_enable(&stream->queue, 1);
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ goto error_queue;
|
|
||||||
+
|
|
||||||
/* Commit the streaming parameters. */
|
|
||||||
ret = uvc_commit_video(stream, &stream->ctrl);
|
|
||||||
- if (ret < 0) {
|
|
||||||
- uvc_queue_enable(&stream->queue, 0);
|
|
||||||
- return ret;
|
|
||||||
- }
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ goto error_commit;
|
|
||||||
|
|
||||||
ret = uvc_init_video(stream, GFP_KERNEL);
|
|
||||||
- if (ret < 0) {
|
|
||||||
- usb_set_interface(stream->dev->udev, stream->intfnum, 0);
|
|
||||||
- uvc_queue_enable(&stream->queue, 0);
|
|
||||||
- }
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ goto error_video;
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+error_video:
|
|
||||||
+ usb_set_interface(stream->dev->udev, stream->intfnum, 0);
|
|
||||||
+error_commit:
|
|
||||||
+ uvc_queue_enable(&stream->queue, 0);
|
|
||||||
+error_queue:
|
|
||||||
+ uvc_video_clock_cleanup(stream);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user