patch-2.4.27 linux-2.4.27/drivers/s390/s390io.c
Next file: linux-2.4.27/drivers/sbus/char/flash.c
Previous file: linux-2.4.27/drivers/s390/net/qeth.c
Back to the patch index
Back to the overall index
- Lines: 96
- Date:
2004-08-07 16:26:05.488381047 -0700
- Orig file:
linux-2.4.26/drivers/s390/s390io.c
- Orig date:
2004-02-18 05:36:31.000000000 -0800
diff -urN linux-2.4.26/drivers/s390/s390io.c linux-2.4.27/drivers/s390/s390io.c
@@ -8328,14 +8328,15 @@
{
loff_t len;
tempinfo_t *p_info = (tempinfo_t *) file->private_data;
+ loff_t pos = *offset;
- if (*offset >= p_info->len) {
+ if (pos < 0 || pos >= p_info->len) {
return 0;
} else {
- len = MIN (user_len, (p_info->len - *offset));
- if (copy_to_user (user_buf, &(p_info->data[*offset]), len))
+ len = MIN (user_len, (p_info->len - pos));
+ if (copy_to_user (user_buf, &(p_info->data[pos]), len))
return -EFAULT;
- (*offset) += len;
+ *offset = pos + len;
return len;
}
}
@@ -8410,14 +8411,15 @@
{
loff_t len;
tempinfo_t *p_info = (tempinfo_t *) file->private_data;
+ loff_t pos = *offset;
- if (*offset >= p_info->len) {
+ if (pos < 0 || pos >= p_info->len) {
return 0;
} else {
- len = MIN (user_len, (p_info->len - *offset));
- if (copy_to_user (user_buf, &(p_info->data[*offset]), len))
+ len = MIN (user_len, (p_info->len - pos));
+ if (copy_to_user (user_buf, &(p_info->data[pos]), len))
return -EFAULT;
- (*offset) += len;
+ *offset = pos + len;
return len;
}
}
@@ -8874,14 +8876,15 @@
{
loff_t len;
tempinfo_t *p_info = (tempinfo_t *) file->private_data;
+ loff_t pos = *offset;
- if (*offset >= p_info->len) {
+ if (pos < 0 || pos >= p_info->len) {
return 0;
} else {
len = MIN (user_len, (p_info->len - *offset));
if (copy_to_user (user_buf, &(p_info->data[*offset]), len))
return -EFAULT;
- (*offset) += len;
+ (*offset) = pos + len;
return len;
}
}
@@ -8994,14 +8997,15 @@
{
loff_t len;
tempinfo_t *p_info = (tempinfo_t *) file->private_data;
+ loff_t pos = *offset;
- if (*offset >= p_info->len) {
+ if (pos < 0 || pos >= p_info->len) {
return 0;
} else {
len = MIN (user_len, (p_info->len - *offset));
if (copy_to_user (user_buf, &(p_info->data[*offset]), len))
return -EFAULT;
- (*offset) += len;
+ (*offset) = pos + len;
return len;
}
}
@@ -9123,14 +9127,15 @@
{
loff_t len;
tempinfo_t *p_info = (tempinfo_t *) file->private_data;
+ loff_t pos = *offset;
- if ( *offset>=p_info->len) {
+ if (pos < 0 || pos >= p_info->len) {
return 0;
} else {
- len = MIN(user_len, (p_info->len - *offset));
- if (copy_to_user( user_buf, &(p_info->data[*offset]), len))
+ len = MIN(user_len, (p_info->len - pos));
+ if (copy_to_user( user_buf, &(p_info->data[pos]), len))
return -EFAULT;
- (* offset) += len;
+ *offset = pos + len;
return len;
}
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)