Hi everyone,
This is a conversion of all subsystem-wide v4l2 code to avoid the
use of types based on time_t. The first five patches should all
be harmless and obvious, so they can get applied for 4.3 after
normal review.
The last two patches are marked RFC for now because their possible
impact on the user space ABI and to decide if this is the best
approach or whether we should instead introduce extra code in
the kernel to handle modified user space.
There are a few device drivers beyond this series that rely on
time_t/timeval/timespec internally, but they are all easy to fix
and can be taken care of later.
Arnd
Arnd Bergmann (7):
[media] dvb: use ktime_t for internal timeout
[media] dvb: remove unused systime() function
[media] dvb: don't use 'time_t' in event ioctl
[media] exynos4-is: use monotonic timestamps as advertized
[media] use v4l2_get_timestamp where possible
[RFC] [media]: v4l2: introduce v4l2_timeval
[RFC] [media] introduce v4l2_timespec type for timestamps
drivers/media/dvb-core/demux.h | 2 +-
drivers/media/dvb-core/dmxdev.c | 2 +-
drivers/media/dvb-core/dvb_demux.c | 17 ++++++-----------
drivers/media/dvb-core/dvb_demux.h | 4 ++--
drivers/media/dvb-core/dvb_net.c | 2 +-
drivers/media/dvb-frontends/dibx000_common.c | 10 ----------
drivers/media/dvb-frontends/dibx000_common.h | 2 --
drivers/media/pci/bt8xx/bttv-driver.c | 7 ++-----
drivers/media/pci/cx18/cx18-mailbox.c | 2 +-
drivers/media/pci/meye/meye.h | 2 +-
drivers/media/pci/zoran/zoran.h | 2 +-
drivers/media/platform/coda/coda.h | 2 +-
drivers/media/platform/exynos4-is/fimc-capture.c | 8 +-------
drivers/media/platform/exynos4-is/fimc-lite.c | 7 +------
drivers/media/platform/omap/omap_vout.c | 4 ++--
drivers/media/platform/omap3isp/ispstat.c | 5 ++---
drivers/media/platform/omap3isp/ispstat.h | 2 +-
drivers/media/platform/s3c-camif/camif-capture.c | 8 +-------
drivers/media/platform/vim2m.c | 2 +-
drivers/media/platform/vivid/vivid-ctrls.c | 2 +-
drivers/media/usb/cpia2/cpia2.h | 2 +-
drivers/media/usb/cpia2/cpia2_v4l.c | 2 +-
drivers/media/usb/gspca/gspca.c | 6 +++---
drivers/media/usb/usbvision/usbvision.h | 2 +-
drivers/media/v4l2-core/v4l2-common.c | 6 +++---
drivers/media/v4l2-core/v4l2-event.c | 20 +++++++++++++-------
drivers/staging/media/omap4iss/iss_video.c | 5 +----
include/media/v4l2-common.h | 2 +-
include/media/videobuf-core.h | 2 +-
include/trace/events/v4l2.h | 12 ++++++++++--
include/uapi/linux/dvb/video.h | 3 ++-
include/uapi/linux/omap3isp.h | 2 +-
include/uapi/linux/videodev2.h | 16 ++++++++++++++--
33 files changed, 79 insertions(+), 93 deletions(-)
--
2.1.0.rc2
This is a preparatory series to make i/o y2038-safe by replacing
the use of struct timespec which is not y2038 safe by y2038 safe
struct timespec64.
Sockets and userspace interfaces themselves will be changed in
a separate series.
Deepa Dinamani (2):
select: Use get/put_timespec64
io_getevents: Use timespec64 to represent timeouts
fs/aio.c | 55 ++++++++++++++++++++++++++++++-------------------------
fs/select.c | 60 ++++++++++++++++++++++++------------------------------------
2 files changed, 54 insertions(+), 61 deletions(-)
--
2.11.0
Cc: linux-aio(a)kvack.org
y2038
NO. 1 components on-line shopping mall from China.
COMPONENTS SOURCING, BOMs Kitting and PCB ASSEMBLY. We can reduce your project budget by HALF.
We support components sourcing & BOMs kitting. We provides the latest new products from stock. We recommend you low costs, high quality components from China.
We are PCBA Manufacturer and exporter in China. We have more than 10 years' experience in this field. All products can be offered with fast delivery and good quality control from small order to big volume order.
We offer the following PCB assembly services:
Quick-turn prototype assembly Turn-key assembly Partial turn-key assembly Consignment assembly RoHS compliant lead-free assembly Non-RoHS assembly Conformal coating Final box-build and packaging
________________________________________________________________________________________
We will reduce your costs by half. Any requests for components sourcing or PCB assembly?Please contact:King Song
Dunfa Components
Tel : 86-755-82544038
Fax : 86-755-23894043
Email : king(a)dunfa.com.cn
Skype : philipsun8
no problem too big no BUSINESS too SMALL
The series aims at isolating data conversions of time_t based structures:
struct timespec and struct itimerspec at user space boundaries.
This helps to later change the underlying types to handle y2038 changes
to these.
The series is an update to Arnd Bergmann's previous series:
http://sourceware.org/ml/libc-alpha/2015-05/msg00070.html
Changes since v1:
* Rebased and removed common code paths on the tip linux-next.
Changes since v2:
* Removed accidental inclusion of wrong version of patch 3/7.
Deepa Dinamani (7):
time: add get_timespec64 and put_timespec64
time: introduce {get,put}_itimerspec64
posix-stubs: Conditionally include COMPAT_SYS_NI defines
posix-timers: Use get_timepsec64() and put_timespec64()
nanosleep: Use get_timepsec64() and put_timespec64()
timerfd: Use get_itimerspec64() and put_itimerspec64()
posix_clocks: Use get_itimerspec64() and put_itimerspec64()
fs/timerfd.c | 43 +++++++------
include/linux/compat.h | 6 ++
include/linux/hrtimer.h | 2 +-
include/linux/posix-timers.h | 1 -
include/linux/time.h | 18 ++++++
kernel/compat.c | 65 ++++++++++++++++++++
kernel/time/alarmtimer.c | 4 +-
kernel/time/hrtimer.c | 30 ++++------
kernel/time/posix-cpu-timers.c | 8 +--
kernel/time/posix-stubs.c | 96 +++++++++++++++--------------
kernel/time/posix-timers.c | 133 +++++++++++++++--------------------------
kernel/time/time.c | 58 ++++++++++++++++++
12 files changed, 287 insertions(+), 177 deletions(-)
--
2.11.0
The series aims at isolating data conversions of time_t based structures:
struct timespec and struct itimerspec at user space boundaries.
This helps to later change the underlying types to handle y2038 changes
to these.
The series is an update to Arnd Bergmann's previous series:
http://sourceware.org/ml/libc-alpha/2015-05/msg00070.html
Changes since v1:
* Rebased and removed common code paths on the tip linux-next.
Deepa Dinamani (7):
time: add get_timespec64 and put_timespec64
time: introduce {get,put}_itimerspec64
posix-stubs: Conditionally include COMPAT_SYS_NI defines
posix-timers: Use get_timepsec64() and put_timespec64()
nanosleep: Use get_timepsec64() and put_timespec64()
timerfd: Use get_itimerspec64() and put_itimerspec64()
posix_clocks: Use get_itimerspec64() and put_itimerspec64()
fs/timerfd.c | 43 +++++++------
include/linux/compat.h | 6 ++
include/linux/hrtimer.h | 2 +-
include/linux/posix-timers.h | 1 -
include/linux/time.h | 18 ++++++
kernel/compat.c | 65 ++++++++++++++++++++
kernel/time/alarmtimer.c | 4 +-
kernel/time/hrtimer.c | 30 ++++------
kernel/time/posix-cpu-timers.c | 8 +--
kernel/time/posix-stubs.c | 99 ++++++++++++++++--------------
kernel/time/posix-timers.c | 133 +++++++++++++++--------------------------
kernel/time/time.c | 58 ++++++++++++++++++
12 files changed, 289 insertions(+), 178 deletions(-)
--
2.11.0
The series aims at isolating data conversions of time_t based structures:
struct timespec and struct itimerspec at user space boundaries.
This helps to later change the underlying types to handle y2038 changes
to these.
The series is an update to Arnd Bergmann's previous series:
http://sourceware.org/ml/libc-alpha/2015-05/msg00070.html
The series particularly aims at changing kernel clock and timer interfaces.
The changes include
a. Add data conversion apis for native and compat modes.
b. Refactor nanosleep and clock_nanosleep logic:
1. Move nanosleep and its compat version to a new file nanosleep.c.
Alternatively, these can be moved into hrtimer.c.
2. Refactor common functions for nanosleep: same functions
are used for posix timers and posix stubs.
3. Change the posix clock callbacks to take advantage of these
common functions.
b. Move compat syscalls to the same files as the regular syscalls.
c. Use data conversion apis in the regular and compat syscall paths.
d. Remove set_fs()/get_fs() calls in the compat syscall path and
use the same logic as in the regular syscall path.
Deepa Dinamani (8):
time: add get_timespec64 and put_timespec64
nanosleep: Move native and compat syscalls
kernel: compat: Move clock and timer compat syscalls
nanosleep: Use get_timespec64() and set_timespec64()
posix-timers: Use get_timepsec64() and put_timespec64()
time: introduce {get,put}_itimerspec64
posix_clocks: Use get_itimerspec64() and put_itimerspec64()
timerfd: Use get_itimerspec64() and put_itimerspec64()
fs/timerfd.c | 43 +++---
include/linux/compat.h | 6 +
include/linux/hrtimer.h | 5 +-
include/linux/posix-timers.h | 1 -
include/linux/time.h | 18 +++
kernel/compat.c | 288 ++++++++++------------------------------
kernel/time/Makefile | 2 +-
kernel/time/alarmtimer.c | 26 ++--
kernel/time/hrtimer.c | 34 +----
kernel/time/nanosleep.c | 126 ++++++++++++++++++
kernel/time/nanosleep.h | 19 +++
kernel/time/posix-cpu-timers.c | 27 ++--
kernel/time/posix-stubs.c | 155 +++++++++++++++++-----
kernel/time/posix-timers.c | 292 +++++++++++++++++++++++++++++++----------
kernel/time/posix-timers.h | 5 +-
kernel/time/time.c | 58 ++++++++
16 files changed, 694 insertions(+), 411 deletions(-)
create mode 100644 kernel/time/nanosleep.c
create mode 100644 kernel/time/nanosleep.h
--
2.11.0