markj
5b04314827
Add a missing error check for a malloc() call in idr_get().
...
Submitted by: Matt Joras <mjoras@isilon.com>
Approved by: re (gjb)
MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division
2016-06-14 03:57:00 +00:00
hselasky
552a8ba1c7
Fallback to arc4rand() in the LinuxKPI when read_random() returns
...
zero. This can happen for virtual machines.
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-06-07 13:10:13 +00:00
hselasky
80f7038dc0
The SCHEDULER_STOPPED() macro already contains a predict false statement.
...
Remove superfluous unlikely() wrapper.
Suggested by: glebius
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-27 07:33:49 +00:00
hselasky
b9085c1dde
Define ATOMIC_LONG_INIT() in the LinuxKPI.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-26 10:03:22 +00:00
hselasky
9a6095a092
Add support for runtime modifiable module parameters in the LinuxKPI.
...
Linux module parameters have a permissions value. If any write bits
are set we are allowed to modify the module parameter runtime. Reflect
this when creating the static SYSCTL nodes.
Sponsored by: Mellanox Technologies
MFC after: 1 week
2016-05-26 09:04:14 +00:00
hselasky
a6cde7cbc4
Add more module parameter macros to the LinuxKPI.
...
Obtained from: kmacy @
Sponsored by: Mellanox Technologies
2016-05-26 08:47:06 +00:00
hselasky
b7fc53f64b
Add support for boolean module parameters in the LinuxKPI.
...
Requested by: kmacy @
Sponsored by: Mellanox Technologies
2016-05-26 08:44:11 +00:00
hselasky
6427f98e8c
Implement Linux module parameters as read-only tunable SYSCTLs.
...
Bool module parameters are no longer supported, because there is no
equivalent in FreeBSD.
There are two macros available which control the behaviour of the
LinuxKPI module parameters:
- LINUXKPI_PARAM_PARENT allows the consumer to set the SYSCTL parent
where the modules parameters will be created.
- LINUXKPI_PARAM_PREFIX defines a parameter name prefix, which is
added to all created module parameters.
Sponsored by: Mellanox Technologies
MFC after: 1 week
2016-05-25 12:12:14 +00:00
hselasky
dbcba89131
Add checks for SCHEDULER_STOPPED() so that code using the LinuxKPI can
...
run after a panic(). This for example allows a LinuxKPI based graphics
stack to receive prints during a panic.
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-25 09:04:06 +00:00
kevlo
9f26e9cda7
Add __iowrite32_copy() to the Linux kernel compatibility layer.
...
Reviewed by: hselasky
2016-05-24 09:23:04 +00:00
hselasky
53c5fcfd37
Use the DROP_GIANT() and PICKUP_GIANT() macros instead of making
...
assumptions about how the Giant mutex is locked.
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-24 07:52:53 +00:00
hselasky
9c5bbe0e98
Set "current" for all PCI enumeration callbacks.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-24 07:46:20 +00:00
hselasky
d0bcd7e397
Use make_dev_s() instead of make_dev() to avoid race setting
...
"si_drv1". Convert panic() into regular error while at it.
Suggested by: jhb @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-24 07:06:04 +00:00
hselasky
2404d6db8a
Implement "atomic_long_add_unless()" in the LinuxKPI and fix the
...
implementation of "atomic_long_inc_not_zero()".
Found by: ngie @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-23 16:19:51 +00:00
hselasky
e6ee9b2fa8
A missing definition needed by ktime_to_ms().
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-23 13:19:20 +00:00
hselasky
4909bf3f4c
Fix some data types and add "inline" keyword for __reg_op() function.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-23 13:18:15 +00:00
hselasky
d7c595eff7
Implement ror32() in the LinuxKPI.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-23 12:53:17 +00:00
hselasky
caddc9e5bb
Define more copy to/from userspace functions in the LinuxKPI.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-23 12:52:22 +00:00
hselasky
bbffa168e8
Add more printf() related functions to the LinuxKPI.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-23 12:35:07 +00:00
hselasky
8f6176cfd2
Set an invalid IRQ number when no PCI IRQ is available in the LinuxKPI.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-23 12:13:16 +00:00
hselasky
718ffce00b
Add more ktime related functions to the LinuxKPI.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-23 12:10:28 +00:00
hselasky
22a26146ed
Implement "kref_put_mutex()" for the LinuxKPI.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-23 12:06:34 +00:00
hselasky
704290bfa2
Add more list_xxx() functions to the LinuxKPI.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-23 12:03:40 +00:00
hselasky
024c1d0e21
Make header file standalone by including definitions for needed
...
linux_wait_xxx() functions.
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-23 11:57:23 +00:00
hselasky
dee3f2f5b8
Implement "_outb()" to the LinuxKPI for i386 and amd64 only.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-23 11:53:00 +00:00
hselasky
6286c33bf7
Add support for "cdev_add_ext()" to the LinuxKPI.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-23 11:50:05 +00:00
hselasky
1f43b454c7
Add more GFP related defines to the LinuxKPI.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-23 11:47:54 +00:00
hselasky
a5692befeb
Add support for atomic_long_inc_not_zero() to the LinuxKPI.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-23 11:44:46 +00:00
hselasky
e422a20ca7
Add support for atomic_long_inc_not_zero() to the LinuxKPI.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-23 11:41:35 +00:00
hselasky
a8602da0e0
Only lock Giant when needed in the LinuxKPI.
...
Suggested by: ngie @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-16 17:41:25 +00:00
hselasky
c121e24b65
Implement more Linux device related functions in the LinuxKPI. While
...
at it use NULL for some pointer checks.
Bump the FreeBSD version to force recompilation of all kernel modules
due to a structure size change.
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-16 09:56:48 +00:00
hselasky
c8b75fc824
Don't dereference parent pointer when it is NULL.
...
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-16 09:25:56 +00:00
hselasky
ba172014a8
Properly implement "cpu_has_clflush" macro.
...
Suggested by: kib, jhb
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-16 09:16:15 +00:00
hselasky
948541ae6a
Handle case of class being set, but not parent when calling
...
device_register() in the LinuxKPI.
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-13 13:01:02 +00:00
hselasky
7bf21672e6
Add more PAGE related defines to the LinuxKPI. Move the definition of
...
"pgprot_t" to "linux/page.h" similar to what Linux does.
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-13 12:41:21 +00:00
hselasky
7447b30bc7
Implement "old_encode_dev()" for the LinuxKPI.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-13 11:51:43 +00:00
hselasky
687a2b5d7f
Define _IOC_SIZE() in the LinuxKPI.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-13 11:42:36 +00:00
hselasky
8582824c7b
Add unlikely() statement to optimise the IS_ERR_VALUE() macro.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-13 11:30:56 +00:00
hselasky
c4e3a7ca23
Implement nsecs_to_jiffies() in the LinuxKPI and while at it
...
streamline the rest of the xxx_to_jiffies() functions to have a
constant 64-bit argument and use identical range checks for the
result.
Specifically preserve msecs_to_jiffies(0) returning 0. See r282743 for
further details.
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-13 11:02:02 +00:00
hselasky
6254012238
Add more Linux defines. Improve some existing ones.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-13 10:10:43 +00:00
hselasky
8ba724fa4e
The Linux error defines should all be positive, else frequently used
...
error code checks might fail. ERESTART is in the BSD world defined as
-1. While at it add more Linux error codes.
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-13 09:21:22 +00:00
hselasky
2ddabeabf7
Fix handling of IOCTLs in the LinuxKPI.
...
Linux requires that all IOCTL data resides in userspace. FreeBSD
always moves the main IOCTL structure into a kernel buffer before
invoking the IOCTL handler and then copies it back into userspace,
before returning. Hide this difference in the "linux_copyin()" and
"linux_copyout()" functions by remapping userspace addresses in the
range from 0x10000 to 0x20000, to the kernel IOCTL data buffer.
It is assumed that the userspace code, data and stack segments starts
no lower than memory address 0x400000, which is also stated by "man 1
ld", which means any valid userspace pointer can be passed to regular
LinuxKPI handled IOCTLs.
Bump the FreeBSD version to force recompilation of all kernel modules.
Discussed with: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-12 11:38:28 +00:00
hselasky
8fc2673ccd
Remove redundant "task_struct_set()".
...
This is done by the "linux_kthread_fn()".
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-12 09:11:18 +00:00
hselasky
010f9828c6
Create a dummy "task_struct" on the stack which is returned by
...
"current" inside all LinuxKPI file operation callbacks. The "current"
is frequently used for various debug prints, printing the thread name
and thread ID for example.
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-12 09:06:54 +00:00
hselasky
d41206de4f
Match Linux behaviour and iterate the IDR tree unlocked. The caller is
...
responsible the IDR tree stays unmodified while iterating.
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-11 17:20:20 +00:00
hselasky
f1a3baf765
Return a proper error code instead of panicing when an I/O vector
...
having the wrong number of entries is detected.
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-11 10:50:59 +00:00
hselasky
c88f8cd9d8
Add more IDR and IDA related functions to the LinuxKPI.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-11 10:40:04 +00:00
hselasky
95308efe32
Factor out common code into "idr_find_layer_locked()" and fix inverted
...
bitmap test for free entry in "idr_replace()".
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-11 10:35:15 +00:00
hselasky
c897e8c2f1
Add missing destruction of mutex.
...
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-11 10:06:58 +00:00
hselasky
dd885b9a0a
Add more atomic LinuxKPI functions.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-11 07:58:43 +00:00