Commit 7723d8c2 authored by Dean Luick's avatar Dean Luick Committed by Doug Ledford

IB/hfi1: Use kernel default llseek for ui device

The ui device llseek had a mistake with SEEK_END and did
not fully follow seek semantics.  Correct all this by
using a kernel supplied function for fixed size devices.

Cc: Al Viro <>
Reviewed-by: default avatarDennis Dalessandro <>
Signed-off-by: default avatarDean Luick <>
Signed-off-by: default avatarDoug Ledford <>
parent 94158442
......@@ -1559,29 +1559,8 @@ static loff_t ui_lseek(struct file *filp, loff_t offset, int whence)
struct hfi1_devdata *dd = filp->private_data;
switch (whence) {
case SEEK_SET:
case SEEK_CUR:
offset += filp->f_pos;
case SEEK_END:
offset = ((dd->kregend - dd->kregbase) + DC8051_DATA_MEM_SIZE) -
return -EINVAL;
if (offset < 0)
return -EINVAL;
if (offset >= (dd->kregend - dd->kregbase) + DC8051_DATA_MEM_SIZE)
return -EINVAL;
filp->f_pos = offset;
return filp->f_pos;
return fixed_size_llseek(filp, offset, whence,
(dd->kregend - dd->kregbase) + DC8051_DATA_MEM_SIZE);
/* NOTE: assumes unsigned long is 8 bytes */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment