Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F112009313
D18041.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
5 KB
Referenced Files
None
Subscribers
None
D18041.diff
View Options
Index: sys/compat/linuxkpi/common/include/linux/device.h
===================================================================
--- sys/compat/linuxkpi/common/include/linux/device.h
+++ sys/compat/linuxkpi/common/include/linux/device.h
@@ -183,6 +183,14 @@
#define dev_printk(lvl, dev, fmt, ...) \
device_printf((dev)->bsddev, fmt, ##__VA_ARGS__)
+#define dev_err_once(dev, ...) do { \
+ static bool __dev_err_once; \
+ if (!__dev_err_once) { \
+ __dev_err_once = 1; \
+ dev_err(dev, __VA_ARGS__); \
+ } \
+} while (0)
+
#define dev_err_ratelimited(dev, ...) do { \
static linux_ratelimit_t __ratelimited; \
if (linux_ratelimited(&__ratelimited)) \
Index: sys/compat/linuxkpi/common/include/linux/fs.h
===================================================================
--- sys/compat/linuxkpi/common/include/linux/fs.h
+++ sys/compat/linuxkpi/common/include/linux/fs.h
@@ -319,4 +319,13 @@
#define shmem_truncate_range(...) \
linux_shmem_truncate_range(__VA_ARGS__)
+static inline int
+simple_open(struct inode *inode, struct file *file)
+{
+ // BSDFIXME: Is it OK to do same as Linux here??
+ if (inode->i_private)
+ file->private_data = inode->i_private;
+ return 0;
+}
+
#endif /* _LINUX_FS_H_ */
Index: sys/compat/linuxkpi/common/include/linux/hardirq.h
===================================================================
--- sys/compat/linuxkpi/common/include/linux/hardirq.h
+++ sys/compat/linuxkpi/common/include/linux/hardirq.h
@@ -37,6 +37,7 @@
#include <sys/bus.h>
#include <sys/interrupt.h>
-#define synchronize_irq(irq) _intr_drain((irq))
+#define synchronize_irq(irq) _intr_drain((irq))
+#define synchronize_hardirq(irq) _intr_drain((irq))
#endif /* _LINUX_HARDIRQ_H_ */
Index: sys/compat/linuxkpi/common/include/linux/kernel.h
===================================================================
--- sys/compat/linuxkpi/common/include/linux/kernel.h
+++ sys/compat/linuxkpi/common/include/linux/kernel.h
@@ -130,9 +130,11 @@
#define ALIGN(x, y) roundup2((x), (y))
#undef PTR_ALIGN
#define PTR_ALIGN(p, a) ((__typeof(p))ALIGN((uintptr_t)(p), (a)))
+#define IS_ALIGNED(x, a) (((x) & ((__typeof(x))(a) - 1)) == 0)
#define DIV_ROUND_UP(x, n) howmany(x, n)
#define __KERNEL_DIV_ROUND_UP(x, n) howmany(x, n)
#define DIV_ROUND_UP_ULL(x, n) DIV_ROUND_UP((unsigned long long)(x), (n))
+#define DIV_ROUND_DOWN_ULL(x, n) (((unsigned long long)(x) / (n)) * (n))
#define FIELD_SIZEOF(t, f) sizeof(((t *)0)->f)
#define printk(...) printf(__VA_ARGS__)
Index: sys/compat/linuxkpi/common/include/linux/ktime.h
===================================================================
--- sys/compat/linuxkpi/common/include/linux/ktime.h
+++ sys/compat/linuxkpi/common/include/linux/ktime.h
@@ -35,7 +35,8 @@
#include <linux/time.h>
#include <linux/jiffies.h>
-#define ktime_get_ts(x) getnanouptime(x)
+#define ktime_get_ts(x) getnanotime(x)
+#define ktime_get_raw_ts(x) getnanotime(x)
/* time values in nanoseconds */
typedef s64 ktime_t;
@@ -172,11 +173,19 @@
return (ktime_set(tv.tv_sec, tv.tv_usec * NSEC_PER_USEC));
}
+static inline int64_t
+timespec64_to_ns(struct timespec64 *ts)
+{
+ return ((int64_t) ts->tv_sec * NSEC_PER_SEC) + ts->tv_nsec;
+}
+
#define ktime_to_timespec(kt) ns_to_timespec(kt)
#define ktime_to_timespec64(kt) ns_to_timespec(kt)
#define ktime_to_timeval(kt) ns_to_timeval(kt)
#define ktime_to_ns(kt) (kt)
#define ktime_get_ts64(ts) ktime_get_ts(ts)
+#define ktime_get_raw_ts64(ts) ktime_get_raw_ts(ts)
+#define getrawmonotonic64(ts) ktime_get_raw_ts64(ts)
static inline int64_t
ktime_get_ns(void)
@@ -238,7 +247,7 @@
{
struct timespec ts;
- nanouptime(&ts);
+ nanotime(&ts);
return (ktime_to_ns(timespec_to_ktime(ts)));
}
Index: sys/compat/linuxkpi/common/include/linux/random.h
===================================================================
--- sys/compat/linuxkpi/common/include/linux/random.h
+++ sys/compat/linuxkpi/common/include/linux/random.h
@@ -43,6 +43,15 @@
arc4rand(buf, nbytes, 0);
}
+static inline uint32_t
+get_random_u32(void)
+{
+ uint32_t val;
+
+ get_random_bytes(&val, sizeof(val));
+ return (val);
+}
+
static inline u_int
get_random_int(void)
{
Index: sys/compat/linuxkpi/common/include/linux/sched.h
===================================================================
--- sys/compat/linuxkpi/common/include/linux/sched.h
+++ sys/compat/linuxkpi/common/include/linux/sched.h
@@ -178,4 +178,12 @@
return ((uint64_t)ts.tv_sec * NSEC_PER_SEC + ts.tv_nsec);
}
+static inline const char *
+get_task_comm(char *buf, struct task_struct *task)
+{
+
+ buf[0] = 0; /* buffer is too small */
+ return (task->comm);
+}
+
#endif /* _LINUX_SCHED_H_ */
Index: sys/compat/linuxkpi/common/include/linux/slab.h
===================================================================
--- sys/compat/linuxkpi/common/include/linux/slab.h
+++ sys/compat/linuxkpi/common/include/linux/slab.h
@@ -43,6 +43,8 @@
MALLOC_DECLARE(M_KMALLOC);
#define kvmalloc(size) kmalloc(size, 0)
+#define kvzalloc(size, flags) kmalloc(size, (flags) | __GFP_ZERO)
+#define kvcalloc(n, size, flags) kvmalloc_array(n, size, (flags) | __GFP_ZERO)
#define kzalloc(size, flags) kmalloc(size, (flags) | __GFP_ZERO)
#define kzalloc_node(size, flags, node) kmalloc(size, (flags) | __GFP_ZERO)
#define kfree_const(ptr) kfree(ptr)
Index: sys/compat/linuxkpi/common/include/linux/srcu.h
===================================================================
--- sys/compat/linuxkpi/common/include/linux/srcu.h
+++ sys/compat/linuxkpi/common/include/linux/srcu.h
@@ -34,6 +34,9 @@
#define srcu_dereference(ptr,srcu) ((__typeof(*(ptr)) *)(ptr))
+#define DEFINE_STATIC_SRCU(name) \
+ static struct srcu_struct name = {};
+
/* prototypes */
extern int srcu_read_lock(struct srcu_struct *);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Mar 12, 12:45 PM (8 h, 13 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17119556
Default Alt Text
D18041.diff (5 KB)
Attached To
Mode
D18041: LKPI updates for drm-v4.18
Attached
Detach File
Event Timeline
Log In to Comment