Add s390 patches.
* debian/patches/series/0experimental.2, debian/patches/s390-drivers-ccw-uevent-cleanup.patch, debian/patches/s390-drivers-ccw-uevent-modalias.patch, debian/patches/s390-scripts-modpost-ccw.patch: Add. svn path=/dists/trunk/linux-2.6/; revision=6127
This commit is contained in:
parent
583250c52d
commit
32edf77d7a
|
@ -0,0 +1,62 @@
|
|||
## Upstream status: pending
|
||||
|
||||
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
|
||||
index ea4652b..5f07dd0 100644
|
||||
--- a/drivers/s390/cio/device.c
|
||||
+++ b/drivers/s390/cio/device.c
|
||||
@@ -85,43 +85,19 @@ ccw_uevent (struct device *dev, char **e
|
||||
return -ENODEV;
|
||||
|
||||
/* what we want to pass to /sbin/hotplug */
|
||||
-
|
||||
- envp[i++] = buffer;
|
||||
- length += scnprintf(buffer, buffer_size - length, "CU_TYPE=%04X",
|
||||
- cdev->id.cu_type);
|
||||
- if ((buffer_size - length <= 0) || (i >= num_envp))
|
||||
- return -ENOMEM;
|
||||
- ++length;
|
||||
- buffer += length;
|
||||
-
|
||||
- envp[i++] = buffer;
|
||||
- length += scnprintf(buffer, buffer_size - length, "CU_MODEL=%02X",
|
||||
- cdev->id.cu_model);
|
||||
- if ((buffer_size - length <= 0) || (i >= num_envp))
|
||||
- return -ENOMEM;
|
||||
- ++length;
|
||||
- buffer += length;
|
||||
-
|
||||
+ add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &length,
|
||||
+ "CU_TYPE=%04X", cdev->id.cu_type);
|
||||
+ add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &length,
|
||||
+ "CU_MODEL=%02X", cdev->id.cu_model);
|
||||
/* The next two can be zero, that's ok for us */
|
||||
- envp[i++] = buffer;
|
||||
- length += scnprintf(buffer, buffer_size - length, "DEV_TYPE=%04X",
|
||||
- cdev->id.dev_type);
|
||||
- if ((buffer_size - length <= 0) || (i >= num_envp))
|
||||
- return -ENOMEM;
|
||||
- ++length;
|
||||
- buffer += length;
|
||||
-
|
||||
- envp[i++] = buffer;
|
||||
- length += scnprintf(buffer, buffer_size - length, "DEV_MODEL=%02X",
|
||||
- cdev->id.dev_model);
|
||||
- if ((buffer_size - length <= 0) || (i >= num_envp))
|
||||
- return -ENOMEM;
|
||||
- ++length;
|
||||
- buffer += length;
|
||||
-
|
||||
- envp[i++] = buffer;
|
||||
- length += tmp_length = scnprintf(buffer, buffer_size - length, "MODALIAS=");
|
||||
- length += modalias_print(cdev, buffer + tmp_length, buffer_size - length);
|
||||
+ add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &length,
|
||||
+ "DEV_TYPE=%04X", cdev->id.dev_type);
|
||||
+ add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &length,
|
||||
+ "DEV_MODEL=%02X", cdev->id.dev_model);
|
||||
+
|
||||
+ envp[i++] = buffer + length;
|
||||
+ length += scnprintf(buffer + length, buffer_size - length, "MODALIAS=");
|
||||
+ length += modalias_print(cdev, buffer + length, buffer_size - length);
|
||||
if ((buffer_size - length <= 0) || (i >= num_envp))
|
||||
return -ENOMEM;
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
## Upstream status: In mm-tree.
|
||||
|
||||
diff -u b/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
|
||||
--- b/drivers/s390/cio/device.c
|
||||
+++ b/drivers/s390/cio/device.c
|
||||
@@ -53,6 +53,22 @@
|
||||
return 1;
|
||||
}
|
||||
|
||||
+static ssize_t
|
||||
+modalias_print (struct ccw_device *cdev, char *buf, size_t size)
|
||||
+{
|
||||
+ struct ccw_device_id *id = &(cdev->id);
|
||||
+ ssize_t len;
|
||||
+
|
||||
+ len = snprintf(buf, size, "ccw:t%04Xm%02X",
|
||||
+ id->cu_type, id->cu_model);
|
||||
+ if (id->dev_type != 0)
|
||||
+ len += snprintf(buf + len, size - len, "dt%04Xdm%02X",
|
||||
+ id->dev_type, id->dev_model);
|
||||
+ else
|
||||
+ len += snprintf(buf + len, size - len, "dtdm");
|
||||
+ return len;
|
||||
+}
|
||||
+
|
||||
/*
|
||||
* Hotplugging interface for ccw devices.
|
||||
* Heavily modeled on pci and usb hotplug.
|
||||
@@ -63,7 +79,7 @@
|
||||
{
|
||||
struct ccw_device *cdev = to_ccwdev(dev);
|
||||
int i = 0;
|
||||
- int length = 0;
|
||||
+ int length = 0, tmp_length = 0;
|
||||
|
||||
if (!cdev)
|
||||
return -ENODEV;
|
||||
@@ -100,6 +116,14 @@
|
||||
cdev->id.dev_model);
|
||||
if ((buffer_size - length <= 0) || (i >= num_envp))
|
||||
return -ENOMEM;
|
||||
+ ++length;
|
||||
+ buffer += length;
|
||||
+
|
||||
+ envp[i++] = buffer;
|
||||
+ length += tmp_length = scnprintf(buffer, buffer_size - length, "MODALIAS=");
|
||||
+ length += modalias_print(cdev, buffer + tmp_length, buffer_size - length);
|
||||
+ if ((buffer_size - length <= 0) || (i >= num_envp))
|
||||
+ return -ENOMEM;
|
||||
|
||||
envp[i] = 0;
|
||||
|
||||
@@ -251,17 +275,11 @@
|
||||
modalias_show (struct device *dev, struct device_attribute *attr, char *buf)
|
||||
{
|
||||
struct ccw_device *cdev = to_ccwdev(dev);
|
||||
- struct ccw_device_id *id = &(cdev->id);
|
||||
- int ret;
|
||||
+ ssize_t len;
|
||||
|
||||
- ret = sprintf(buf, "ccw:t%04Xm%02X",
|
||||
- id->cu_type, id->cu_model);
|
||||
- if (id->dev_type != 0)
|
||||
- ret += sprintf(buf + ret, "dt%04Xdm%02X\n",
|
||||
- id->dev_type, id->dev_model);
|
||||
- else
|
||||
- ret += sprintf(buf + ret, "dtdm\n");
|
||||
- return ret;
|
||||
+ len = modalias_print(cdev, buf, PAGE_SIZE);
|
||||
+ len += snprintf(buf + len, PAGE_SIZE - len, "\n");
|
||||
+ return len;
|
||||
}
|
||||
|
||||
static ssize_t
|
|
@ -0,0 +1,15 @@
|
|||
## Upstream status: Commited as de1d9c033f32ce39bf60e25be3b8624225fa9181
|
||||
|
||||
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
|
||||
index be97caf..c164b23 100644
|
||||
--- a/scripts/mod/file2alias.c
|
||||
+++ b/scripts/mod/file2alias.c
|
||||
@@ -246,7 +246,7 @@ static int do_ccw_entry(const char *file
|
||||
id->cu_model);
|
||||
ADD(alias, "dt", id->match_flags&CCW_DEVICE_ID_MATCH_DEVICE_TYPE,
|
||||
id->dev_type);
|
||||
- ADD(alias, "dm", id->match_flags&CCW_DEVICE_ID_MATCH_DEVICE_TYPE,
|
||||
+ ADD(alias, "dm", id->match_flags&CCW_DEVICE_ID_MATCH_DEVICE_MODEL,
|
||||
id->dev_model);
|
||||
return 1;
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
+ s390-scripts-modpost-ccw.patch
|
||||
+ s390-drivers-ccw-uevent-modalias.patch
|
||||
+ s390-drivers-ccw-uevent-cleanup.patch
|
Loading…
Reference in New Issue