diff options
| author | Paul Mackerras <paulus@samba.org> | 2007-09-13 11:24:25 -0400 |
|---|---|---|
| committer | Paul Mackerras <paulus@samba.org> | 2007-09-13 11:24:25 -0400 |
| commit | b2315372eac9cd9f622c32a93e323cf6f0f03462 (patch) | |
| tree | 9e1faa7cdcddf5d90bec4fb9523742d4cce699a1 /arch/powerpc/kernel | |
| parent | 5326152fa182b0a16e4abf913ce403e3c7ab53b7 (diff) | |
| parent | c87ce65868bbf9bbea9c3f112ff8315302daf8f2 (diff) | |
Merge branch 'linux-2.6' into for-2.6.24
Diffstat (limited to 'arch/powerpc/kernel')
| -rw-r--r-- | arch/powerpc/kernel/ibmebus.c | 30 | ||||
| -rw-r--r-- | arch/powerpc/kernel/legacy_serial.c | 2 | ||||
| -rw-r--r-- | arch/powerpc/kernel/process.c | 6 |
3 files changed, 13 insertions, 25 deletions
diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c index 9a8c9af43b22..d6a38cd5018e 100644 --- a/arch/powerpc/kernel/ibmebus.c +++ b/arch/powerpc/kernel/ibmebus.c | |||
| @@ -188,33 +188,21 @@ static struct ibmebus_dev* __devinit ibmebus_register_device_node( | |||
| 188 | struct device_node *dn) | 188 | struct device_node *dn) |
| 189 | { | 189 | { |
| 190 | struct ibmebus_dev *dev; | 190 | struct ibmebus_dev *dev; |
| 191 | const char *loc_code; | 191 | int i, len, bus_len; |
| 192 | int length; | ||
| 193 | |||
| 194 | loc_code = of_get_property(dn, "ibm,loc-code", NULL); | ||
| 195 | if (!loc_code) { | ||
| 196 | printk(KERN_WARNING "%s: node %s missing 'ibm,loc-code'\n", | ||
| 197 | __FUNCTION__, dn->name ? dn->name : "<unknown>"); | ||
| 198 | return ERR_PTR(-EINVAL); | ||
| 199 | } | ||
| 200 | |||
| 201 | if (strlen(loc_code) == 0) { | ||
| 202 | printk(KERN_WARNING "%s: 'ibm,loc-code' is invalid\n", | ||
| 203 | __FUNCTION__); | ||
| 204 | return ERR_PTR(-EINVAL); | ||
| 205 | } | ||
| 206 | 192 | ||
| 207 | dev = kzalloc(sizeof(struct ibmebus_dev), GFP_KERNEL); | 193 | dev = kzalloc(sizeof(struct ibmebus_dev), GFP_KERNEL); |
| 208 | if (!dev) { | 194 | if (!dev) |
| 209 | return ERR_PTR(-ENOMEM); | 195 | return ERR_PTR(-ENOMEM); |
| 210 | } | ||
| 211 | 196 | ||
| 212 | dev->ofdev.node = of_node_get(dn); | 197 | dev->ofdev.node = of_node_get(dn); |
| 213 | 198 | ||
| 214 | length = strlen(loc_code); | 199 | len = strlen(dn->full_name + 1); |
| 215 | memcpy(dev->ofdev.dev.bus_id, loc_code | 200 | bus_len = min(len, BUS_ID_SIZE - 1); |
| 216 | + (length - min(length, BUS_ID_SIZE - 1)), | 201 | memcpy(dev->ofdev.dev.bus_id, dn->full_name + 1 |
| 217 | min(length, BUS_ID_SIZE - 1)); | 202 | + (len - bus_len), bus_len); |
| 203 | for (i = 0; i < bus_len; i++) | ||
| 204 | if (dev->ofdev.dev.bus_id[i] == '/') | ||
| 205 | dev->ofdev.dev.bus_id[i] = '_'; | ||
| 218 | 206 | ||
| 219 | /* Register with generic device framework. */ | 207 | /* Register with generic device framework. */ |
| 220 | if (ibmebus_register_device_common(dev, dn->name) != 0) { | 208 | if (ibmebus_register_device_common(dev, dn->name) != 0) { |
diff --git a/arch/powerpc/kernel/legacy_serial.c b/arch/powerpc/kernel/legacy_serial.c index cea8045ba40b..90fa11c72e1c 100644 --- a/arch/powerpc/kernel/legacy_serial.c +++ b/arch/powerpc/kernel/legacy_serial.c | |||
| @@ -493,7 +493,7 @@ static int __init serial_dev_init(void) | |||
| 493 | 493 | ||
| 494 | return platform_device_register(&serial_device); | 494 | return platform_device_register(&serial_device); |
| 495 | } | 495 | } |
| 496 | arch_initcall(serial_dev_init); | 496 | device_initcall(serial_dev_init); |
| 497 | 497 | ||
| 498 | 498 | ||
| 499 | /* | 499 | /* |
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index a83727b308a0..e477c9d0498b 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c | |||
| @@ -83,7 +83,7 @@ void flush_fp_to_thread(struct task_struct *tsk) | |||
| 83 | */ | 83 | */ |
| 84 | BUG_ON(tsk != current); | 84 | BUG_ON(tsk != current); |
| 85 | #endif | 85 | #endif |
| 86 | giveup_fpu(current); | 86 | giveup_fpu(tsk); |
| 87 | } | 87 | } |
| 88 | preempt_enable(); | 88 | preempt_enable(); |
| 89 | } | 89 | } |
| @@ -143,7 +143,7 @@ void flush_altivec_to_thread(struct task_struct *tsk) | |||
| 143 | #ifdef CONFIG_SMP | 143 | #ifdef CONFIG_SMP |
| 144 | BUG_ON(tsk != current); | 144 | BUG_ON(tsk != current); |
| 145 | #endif | 145 | #endif |
| 146 | giveup_altivec(current); | 146 | giveup_altivec(tsk); |
| 147 | } | 147 | } |
| 148 | preempt_enable(); | 148 | preempt_enable(); |
| 149 | } | 149 | } |
| @@ -182,7 +182,7 @@ void flush_spe_to_thread(struct task_struct *tsk) | |||
| 182 | #ifdef CONFIG_SMP | 182 | #ifdef CONFIG_SMP |
| 183 | BUG_ON(tsk != current); | 183 | BUG_ON(tsk != current); |
| 184 | #endif | 184 | #endif |
| 185 | giveup_spe(current); | 185 | giveup_spe(tsk); |
| 186 | } | 186 | } |
| 187 | preempt_enable(); | 187 | preempt_enable(); |
| 188 | } | 188 | } |
