diff options
| -rw-r--r-- | Documentation/kernel-parameters.txt | 3 | ||||
| -rw-r--r-- | arch/s390/kernel/debug.c | 20 | ||||
| -rw-r--r-- | arch/s390/kernel/irq.c | 3 | ||||
| -rw-r--r-- | arch/s390/kernel/smp.c | 16 | ||||
| -rw-r--r-- | arch/s390/mm/vmem.c | 19 | ||||
| -rw-r--r-- | drivers/s390/block/dasd.c | 5 | ||||
| -rw-r--r-- | drivers/s390/block/dasd_devmap.c | 10 | ||||
| -rw-r--r-- | drivers/s390/block/dasd_int.h | 2 | ||||
| -rw-r--r-- | drivers/s390/char/tape_core.c | 31 | ||||
| -rw-r--r-- | drivers/s390/char/vmlogrdr.c | 2 | ||||
| -rw-r--r-- | drivers/s390/cio/blacklist.c | 1 | ||||
| -rw-r--r-- | drivers/s390/cio/device_pgid.c | 12 | ||||
| -rw-r--r-- | include/asm-s390/debug.h | 4 |
13 files changed, 46 insertions, 82 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index cdd5b934f43e..7038a6da3c12 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
| @@ -398,9 +398,6 @@ and is between 256 and 4096 characters. It is defined in the file | |||
| 398 | cio_ignore= [S390] | 398 | cio_ignore= [S390] |
| 399 | See Documentation/s390/CommonIO for details. | 399 | See Documentation/s390/CommonIO for details. |
| 400 | 400 | ||
| 401 | cio_msg= [S390] | ||
| 402 | See Documentation/s390/CommonIO for details. | ||
| 403 | |||
| 404 | clock= [BUGS=X86-32, HW] gettimeofday clocksource override. | 401 | clock= [BUGS=X86-32, HW] gettimeofday clocksource override. |
| 405 | [Deprecated] | 402 | [Deprecated] |
| 406 | Forces specified clocksource (if available) to be used | 403 | Forces specified clocksource (if available) to be used |
diff --git a/arch/s390/kernel/debug.c b/arch/s390/kernel/debug.c index dff0568e67ec..c93d1296cc0a 100644 --- a/arch/s390/kernel/debug.c +++ b/arch/s390/kernel/debug.c | |||
| @@ -71,7 +71,7 @@ static ssize_t debug_input(struct file *file, const char __user *user_buf, | |||
| 71 | size_t user_len, loff_t * offset); | 71 | size_t user_len, loff_t * offset); |
| 72 | static int debug_open(struct inode *inode, struct file *file); | 72 | static int debug_open(struct inode *inode, struct file *file); |
| 73 | static int debug_close(struct inode *inode, struct file *file); | 73 | static int debug_close(struct inode *inode, struct file *file); |
| 74 | static debug_info_t* debug_info_create(char *name, int pages_per_area, | 74 | static debug_info_t *debug_info_create(const char *name, int pages_per_area, |
| 75 | int nr_areas, int buf_size, mode_t mode); | 75 | int nr_areas, int buf_size, mode_t mode); |
| 76 | static void debug_info_get(debug_info_t *); | 76 | static void debug_info_get(debug_info_t *); |
| 77 | static void debug_info_put(debug_info_t *); | 77 | static void debug_info_put(debug_info_t *); |
| @@ -234,8 +234,8 @@ fail_malloc_areas: | |||
| 234 | */ | 234 | */ |
| 235 | 235 | ||
| 236 | static debug_info_t* | 236 | static debug_info_t* |
| 237 | debug_info_alloc(char *name, int pages_per_area, int nr_areas, int buf_size, | 237 | debug_info_alloc(const char *name, int pages_per_area, int nr_areas, |
| 238 | int level, int mode) | 238 | int buf_size, int level, int mode) |
| 239 | { | 239 | { |
| 240 | debug_info_t* rc; | 240 | debug_info_t* rc; |
| 241 | 241 | ||
| @@ -326,8 +326,8 @@ debug_info_free(debug_info_t* db_info){ | |||
| 326 | */ | 326 | */ |
| 327 | 327 | ||
| 328 | static debug_info_t* | 328 | static debug_info_t* |
| 329 | debug_info_create(char *name, int pages_per_area, int nr_areas, int buf_size, | 329 | debug_info_create(const char *name, int pages_per_area, int nr_areas, |
| 330 | mode_t mode) | 330 | int buf_size, mode_t mode) |
| 331 | { | 331 | { |
| 332 | debug_info_t* rc; | 332 | debug_info_t* rc; |
| 333 | 333 | ||
| @@ -684,9 +684,9 @@ debug_close(struct inode *inode, struct file *file) | |||
| 684 | * - Returns handle for debug area | 684 | * - Returns handle for debug area |
| 685 | */ | 685 | */ |
| 686 | 686 | ||
| 687 | debug_info_t *debug_register_mode(char *name, int pages_per_area, int nr_areas, | 687 | debug_info_t *debug_register_mode(const char *name, int pages_per_area, |
| 688 | int buf_size, mode_t mode, uid_t uid, | 688 | int nr_areas, int buf_size, mode_t mode, |
| 689 | gid_t gid) | 689 | uid_t uid, gid_t gid) |
| 690 | { | 690 | { |
| 691 | debug_info_t *rc = NULL; | 691 | debug_info_t *rc = NULL; |
| 692 | 692 | ||
| @@ -722,8 +722,8 @@ EXPORT_SYMBOL(debug_register_mode); | |||
| 722 | * - returns handle for debug area | 722 | * - returns handle for debug area |
| 723 | */ | 723 | */ |
| 724 | 724 | ||
| 725 | debug_info_t *debug_register(char *name, int pages_per_area, int nr_areas, | 725 | debug_info_t *debug_register(const char *name, int pages_per_area, |
| 726 | int buf_size) | 726 | int nr_areas, int buf_size) |
| 727 | { | 727 | { |
| 728 | return debug_register_mode(name, pages_per_area, nr_areas, buf_size, | 728 | return debug_register_mode(name, pages_per_area, nr_areas, buf_size, |
| 729 | S_IRUSR | S_IWUSR, 0, 0); | 729 | S_IRUSR | S_IWUSR, 0, 0); |
diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c index c59a86dca584..e7c5bfb7c755 100644 --- a/arch/s390/kernel/irq.c +++ b/arch/s390/kernel/irq.c | |||
| @@ -25,6 +25,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
| 25 | static const char *intrclass_names[] = { "EXT", "I/O", }; | 25 | static const char *intrclass_names[] = { "EXT", "I/O", }; |
| 26 | int i = *(loff_t *) v, j; | 26 | int i = *(loff_t *) v, j; |
| 27 | 27 | ||
| 28 | get_online_cpus(); | ||
| 28 | if (i == 0) { | 29 | if (i == 0) { |
| 29 | seq_puts(p, " "); | 30 | seq_puts(p, " "); |
| 30 | for_each_online_cpu(j) | 31 | for_each_online_cpu(j) |
| @@ -43,7 +44,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
| 43 | seq_putc(p, '\n'); | 44 | seq_putc(p, '\n'); |
| 44 | 45 | ||
| 45 | } | 46 | } |
| 46 | 47 | put_online_cpus(); | |
| 47 | return 0; | 48 | return 0; |
| 48 | } | 49 | } |
| 49 | 50 | ||
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index 0aeb290060d9..1f4228948dc4 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c | |||
| @@ -139,7 +139,6 @@ static void __smp_call_function_map(void (*func) (void *info), void *info, | |||
| 139 | if (wait) | 139 | if (wait) |
| 140 | data.finished = CPU_MASK_NONE; | 140 | data.finished = CPU_MASK_NONE; |
| 141 | 141 | ||
| 142 | spin_lock(&call_lock); | ||
| 143 | call_data = &data; | 142 | call_data = &data; |
| 144 | 143 | ||
| 145 | for_each_cpu_mask(cpu, map) | 144 | for_each_cpu_mask(cpu, map) |
| @@ -151,7 +150,6 @@ static void __smp_call_function_map(void (*func) (void *info), void *info, | |||
| 151 | if (wait) | 150 | if (wait) |
| 152 | while (!cpus_equal(map, data.finished)) | 151 | while (!cpus_equal(map, data.finished)) |
| 153 | cpu_relax(); | 152 | cpu_relax(); |
| 154 | spin_unlock(&call_lock); | ||
| 155 | out: | 153 | out: |
| 156 | if (local) { | 154 | if (local) { |
| 157 | local_irq_disable(); | 155 | local_irq_disable(); |
| @@ -177,11 +175,11 @@ int smp_call_function(void (*func) (void *info), void *info, int nonatomic, | |||
| 177 | { | 175 | { |
| 178 | cpumask_t map; | 176 | cpumask_t map; |
| 179 | 177 | ||
| 180 | preempt_disable(); | 178 | spin_lock(&call_lock); |
| 181 | map = cpu_online_map; | 179 | map = cpu_online_map; |
| 182 | cpu_clear(smp_processor_id(), map); | 180 | cpu_clear(smp_processor_id(), map); |
| 183 | __smp_call_function_map(func, info, nonatomic, wait, map); | 181 | __smp_call_function_map(func, info, nonatomic, wait, map); |
| 184 | preempt_enable(); | 182 | spin_unlock(&call_lock); |
| 185 | return 0; | 183 | return 0; |
| 186 | } | 184 | } |
| 187 | EXPORT_SYMBOL(smp_call_function); | 185 | EXPORT_SYMBOL(smp_call_function); |
| @@ -202,10 +200,10 @@ EXPORT_SYMBOL(smp_call_function); | |||
| 202 | int smp_call_function_single(int cpu, void (*func) (void *info), void *info, | 200 | int smp_call_function_single(int cpu, void (*func) (void *info), void *info, |
| 203 | int nonatomic, int wait) | 201 | int nonatomic, int wait) |
| 204 | { | 202 | { |
| 205 | preempt_disable(); | 203 | spin_lock(&call_lock); |
| 206 | __smp_call_function_map(func, info, nonatomic, wait, | 204 | __smp_call_function_map(func, info, nonatomic, wait, |
| 207 | cpumask_of_cpu(cpu)); | 205 | cpumask_of_cpu(cpu)); |
| 208 | preempt_enable(); | 206 | spin_unlock(&call_lock); |
| 209 | return 0; | 207 | return 0; |
| 210 | } | 208 | } |
| 211 | EXPORT_SYMBOL(smp_call_function_single); | 209 | EXPORT_SYMBOL(smp_call_function_single); |
| @@ -228,10 +226,10 @@ EXPORT_SYMBOL(smp_call_function_single); | |||
| 228 | int smp_call_function_mask(cpumask_t mask, void (*func)(void *), void *info, | 226 | int smp_call_function_mask(cpumask_t mask, void (*func)(void *), void *info, |
| 229 | int wait) | 227 | int wait) |
| 230 | { | 228 | { |
| 231 | preempt_disable(); | 229 | spin_lock(&call_lock); |
| 232 | cpu_clear(smp_processor_id(), mask); | 230 | cpu_clear(smp_processor_id(), mask); |
| 233 | __smp_call_function_map(func, info, 0, wait, mask); | 231 | __smp_call_function_map(func, info, 0, wait, mask); |
| 234 | preempt_enable(); | 232 | spin_unlock(&call_lock); |
| 235 | return 0; | 233 | return 0; |
| 236 | } | 234 | } |
| 237 | EXPORT_SYMBOL(smp_call_function_mask); | 235 | EXPORT_SYMBOL(smp_call_function_mask); |
| @@ -592,7 +590,9 @@ int __cpuinit start_secondary(void *cpuvoid) | |||
| 592 | pfault_init(); | 590 | pfault_init(); |
| 593 | 591 | ||
| 594 | /* Mark this cpu as online */ | 592 | /* Mark this cpu as online */ |
| 593 | spin_lock(&call_lock); | ||
| 595 | cpu_set(smp_processor_id(), cpu_online_map); | 594 | cpu_set(smp_processor_id(), cpu_online_map); |
| 595 | spin_unlock(&call_lock); | ||
| 596 | /* Switch on interrupts */ | 596 | /* Switch on interrupts */ |
| 597 | local_irq_enable(); | 597 | local_irq_enable(); |
| 598 | /* Print info about this processor */ | 598 | /* Print info about this processor */ |
diff --git a/arch/s390/mm/vmem.c b/arch/s390/mm/vmem.c index beccacf907f3..ea2804808f39 100644 --- a/arch/s390/mm/vmem.c +++ b/arch/s390/mm/vmem.c | |||
| @@ -27,19 +27,12 @@ struct memory_segment { | |||
| 27 | 27 | ||
| 28 | static LIST_HEAD(mem_segs); | 28 | static LIST_HEAD(mem_segs); |
| 29 | 29 | ||
| 30 | static void __ref *vmem_alloc_pages(unsigned int order) | 30 | static pud_t *vmem_pud_alloc(void) |
| 31 | { | ||
| 32 | if (slab_is_available()) | ||
| 33 | return (void *)__get_free_pages(GFP_KERNEL, order); | ||
| 34 | return alloc_bootmem_pages((1 << order) * PAGE_SIZE); | ||
| 35 | } | ||
| 36 | |||
| 37 | static inline pud_t *vmem_pud_alloc(void) | ||
| 38 | { | 31 | { |
| 39 | pud_t *pud = NULL; | 32 | pud_t *pud = NULL; |
| 40 | 33 | ||
| 41 | #ifdef CONFIG_64BIT | 34 | #ifdef CONFIG_64BIT |
| 42 | pud = vmem_alloc_pages(2); | 35 | pud = vmemmap_alloc_block(PAGE_SIZE * 4, 0); |
| 43 | if (!pud) | 36 | if (!pud) |
| 44 | return NULL; | 37 | return NULL; |
| 45 | clear_table((unsigned long *) pud, _REGION3_ENTRY_EMPTY, PAGE_SIZE * 4); | 38 | clear_table((unsigned long *) pud, _REGION3_ENTRY_EMPTY, PAGE_SIZE * 4); |
| @@ -47,12 +40,12 @@ static inline pud_t *vmem_pud_alloc(void) | |||
| 47 | return pud; | 40 | return pud; |
| 48 | } | 41 | } |
| 49 | 42 | ||
| 50 | static inline pmd_t *vmem_pmd_alloc(void) | 43 | static pmd_t *vmem_pmd_alloc(void) |
| 51 | { | 44 | { |
| 52 | pmd_t *pmd = NULL; | 45 | pmd_t *pmd = NULL; |
| 53 | 46 | ||
| 54 | #ifdef CONFIG_64BIT | 47 | #ifdef CONFIG_64BIT |
| 55 | pmd = vmem_alloc_pages(2); | 48 | pmd = vmemmap_alloc_block(PAGE_SIZE * 4, 0); |
| 56 | if (!pmd) | 49 | if (!pmd) |
| 57 | return NULL; | 50 | return NULL; |
| 58 | clear_table((unsigned long *) pmd, _SEGMENT_ENTRY_EMPTY, PAGE_SIZE * 4); | 51 | clear_table((unsigned long *) pmd, _SEGMENT_ENTRY_EMPTY, PAGE_SIZE * 4); |
| @@ -60,7 +53,7 @@ static inline pmd_t *vmem_pmd_alloc(void) | |||
| 60 | return pmd; | 53 | return pmd; |
| 61 | } | 54 | } |
| 62 | 55 | ||
| 63 | static pte_t __init_refok *vmem_pte_alloc(void) | 56 | static pte_t __ref *vmem_pte_alloc(void) |
| 64 | { | 57 | { |
| 65 | pte_t *pte; | 58 | pte_t *pte; |
| 66 | 59 | ||
| @@ -214,7 +207,7 @@ int __meminit vmemmap_populate(struct page *start, unsigned long nr, int node) | |||
| 214 | if (pte_none(*pt_dir)) { | 207 | if (pte_none(*pt_dir)) { |
| 215 | unsigned long new_page; | 208 | unsigned long new_page; |
| 216 | 209 | ||
| 217 | new_page =__pa(vmem_alloc_pages(0)); | 210 | new_page =__pa(vmemmap_alloc_block(PAGE_SIZE, 0)); |
| 218 | if (!new_page) | 211 | if (!new_page) |
| 219 | goto out; | 212 | goto out; |
| 220 | pte = pfn_pte(new_page >> PAGE_SHIFT, PAGE_KERNEL); | 213 | pte = pfn_pte(new_page >> PAGE_SHIFT, PAGE_KERNEL); |
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c index ac6d4d3218b3..8ba3f135da22 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c | |||
| @@ -925,6 +925,8 @@ static void dasd_handle_killed_request(struct ccw_device *cdev, | |||
| 925 | struct dasd_ccw_req *cqr; | 925 | struct dasd_ccw_req *cqr; |
| 926 | struct dasd_device *device; | 926 | struct dasd_device *device; |
| 927 | 927 | ||
| 928 | if (!intparm) | ||
| 929 | return; | ||
| 928 | cqr = (struct dasd_ccw_req *) intparm; | 930 | cqr = (struct dasd_ccw_req *) intparm; |
| 929 | if (cqr->status != DASD_CQR_IN_IO) { | 931 | if (cqr->status != DASD_CQR_IN_IO) { |
| 930 | MESSAGE(KERN_DEBUG, | 932 | MESSAGE(KERN_DEBUG, |
| @@ -976,17 +978,16 @@ void dasd_int_handler(struct ccw_device *cdev, unsigned long intparm, | |||
| 976 | if (IS_ERR(irb)) { | 978 | if (IS_ERR(irb)) { |
| 977 | switch (PTR_ERR(irb)) { | 979 | switch (PTR_ERR(irb)) { |
| 978 | case -EIO: | 980 | case -EIO: |
| 979 | dasd_handle_killed_request(cdev, intparm); | ||
| 980 | break; | 981 | break; |
| 981 | case -ETIMEDOUT: | 982 | case -ETIMEDOUT: |
| 982 | printk(KERN_WARNING"%s(%s): request timed out\n", | 983 | printk(KERN_WARNING"%s(%s): request timed out\n", |
| 983 | __func__, cdev->dev.bus_id); | 984 | __func__, cdev->dev.bus_id); |
| 984 | //FIXME - dasd uses own timeout interface... | ||
| 985 | break; | 985 | break; |
| 986 | default: | 986 | default: |
| 987 | printk(KERN_WARNING"%s(%s): unknown error %ld\n", | 987 | printk(KERN_WARNING"%s(%s): unknown error %ld\n", |
| 988 | __func__, cdev->dev.bus_id, PTR_ERR(irb)); | 988 | __func__, cdev->dev.bus_id, PTR_ERR(irb)); |
| 989 | } | 989 | } |
| 990 | dasd_handle_killed_request(cdev, intparm); | ||
| 990 | return; | 991 | return; |
| 991 | } | 992 | } |
| 992 | 993 | ||
diff --git a/drivers/s390/block/dasd_devmap.c b/drivers/s390/block/dasd_devmap.c index f4fb40257348..d774e79476fe 100644 --- a/drivers/s390/block/dasd_devmap.c +++ b/drivers/s390/block/dasd_devmap.c | |||
| @@ -86,10 +86,10 @@ static DEFINE_SPINLOCK(dasd_devmap_lock); | |||
| 86 | static struct list_head dasd_hashlists[256]; | 86 | static struct list_head dasd_hashlists[256]; |
| 87 | int dasd_max_devindex; | 87 | int dasd_max_devindex; |
| 88 | 88 | ||
| 89 | static struct dasd_devmap *dasd_add_busid(char *, int); | 89 | static struct dasd_devmap *dasd_add_busid(const char *, int); |
| 90 | 90 | ||
| 91 | static inline int | 91 | static inline int |
| 92 | dasd_hash_busid(char *bus_id) | 92 | dasd_hash_busid(const char *bus_id) |
| 93 | { | 93 | { |
| 94 | int hash, i; | 94 | int hash, i; |
| 95 | 95 | ||
| @@ -394,7 +394,7 @@ dasd_parse(void) | |||
| 394 | * devices. | 394 | * devices. |
| 395 | */ | 395 | */ |
| 396 | static struct dasd_devmap * | 396 | static struct dasd_devmap * |
| 397 | dasd_add_busid(char *bus_id, int features) | 397 | dasd_add_busid(const char *bus_id, int features) |
| 398 | { | 398 | { |
| 399 | struct dasd_devmap *devmap, *new, *tmp; | 399 | struct dasd_devmap *devmap, *new, *tmp; |
| 400 | int hash; | 400 | int hash; |
| @@ -430,7 +430,7 @@ dasd_add_busid(char *bus_id, int features) | |||
| 430 | * Find devmap for device with given bus_id. | 430 | * Find devmap for device with given bus_id. |
| 431 | */ | 431 | */ |
| 432 | static struct dasd_devmap * | 432 | static struct dasd_devmap * |
| 433 | dasd_find_busid(char *bus_id) | 433 | dasd_find_busid(const char *bus_id) |
| 434 | { | 434 | { |
| 435 | struct dasd_devmap *devmap, *tmp; | 435 | struct dasd_devmap *devmap, *tmp; |
| 436 | int hash; | 436 | int hash; |
| @@ -452,7 +452,7 @@ dasd_find_busid(char *bus_id) | |||
| 452 | * Check if busid has been added to the list of dasd ranges. | 452 | * Check if busid has been added to the list of dasd ranges. |
| 453 | */ | 453 | */ |
| 454 | int | 454 | int |
| 455 | dasd_busid_known(char *bus_id) | 455 | dasd_busid_known(const char *bus_id) |
| 456 | { | 456 | { |
| 457 | return IS_ERR(dasd_find_busid(bus_id)) ? -ENOENT : 0; | 457 | return IS_ERR(dasd_find_busid(bus_id)) ? -ENOENT : 0; |
| 458 | } | 458 | } |
diff --git a/drivers/s390/block/dasd_int.h b/drivers/s390/block/dasd_int.h index 6c624bf44617..fb2f931cf844 100644 --- a/drivers/s390/block/dasd_int.h +++ b/drivers/s390/block/dasd_int.h | |||
| @@ -598,7 +598,7 @@ struct dasd_device *dasd_device_from_cdev_locked(struct ccw_device *); | |||
| 598 | struct dasd_device *dasd_device_from_devindex(int); | 598 | struct dasd_device *dasd_device_from_devindex(int); |
| 599 | 599 | ||
| 600 | int dasd_parse(void); | 600 | int dasd_parse(void); |
| 601 | int dasd_busid_known(char *); | 601 | int dasd_busid_known(const char *); |
| 602 | 602 | ||
| 603 | /* externals in dasd_gendisk.c */ | 603 | /* externals in dasd_gendisk.c */ |
| 604 | int dasd_gendisk_init(void); | 604 | int dasd_gendisk_init(void); |
diff --git a/drivers/s390/char/tape_core.c b/drivers/s390/char/tape_core.c index 7ad8cf157641..76e44eb7c47f 100644 --- a/drivers/s390/char/tape_core.c +++ b/drivers/s390/char/tape_core.c | |||
| @@ -76,32 +76,9 @@ const char *tape_op_verbose[TO_SIZE] = | |||
| 76 | [TO_KEKL_QUERY] = "KLQ",[TO_RDC] = "RDC", | 76 | [TO_KEKL_QUERY] = "KLQ",[TO_RDC] = "RDC", |
| 77 | }; | 77 | }; |
| 78 | 78 | ||
| 79 | static int | 79 | static int devid_to_int(struct ccw_dev_id *dev_id) |
| 80 | busid_to_int(char *bus_id) | ||
| 81 | { | 80 | { |
| 82 | int dec; | 81 | return dev_id->devno + (dev_id->ssid << 16); |
| 83 | int d; | ||
| 84 | char * s; | ||
| 85 | |||
| 86 | for(s = bus_id, d = 0; *s != '\0' && *s != '.'; s++) | ||
| 87 | d = (d * 10) + (*s - '0'); | ||
| 88 | dec = d; | ||
| 89 | for(s++, d = 0; *s != '\0' && *s != '.'; s++) | ||
| 90 | d = (d * 10) + (*s - '0'); | ||
| 91 | dec = (dec << 8) + d; | ||
| 92 | |||
| 93 | for(s++; *s != '\0'; s++) { | ||
| 94 | if (*s >= '0' && *s <= '9') { | ||
| 95 | d = *s - '0'; | ||
| 96 | } else if (*s >= 'a' && *s <= 'f') { | ||
| 97 | d = *s - 'a' + 10; | ||
| 98 | } else { | ||
| 99 | d = *s - 'A' + 10; | ||
| 100 | } | ||
| 101 | dec = (dec << 4) + d; | ||
| 102 | } | ||
| 103 | |||
| 104 | return dec; | ||
| 105 | } | 82 | } |
| 106 | 83 | ||
| 107 | /* | 84 | /* |
| @@ -551,6 +528,7 @@ tape_generic_probe(struct ccw_device *cdev) | |||
| 551 | { | 528 | { |
| 552 | struct tape_device *device; | 529 | struct tape_device *device; |
| 553 | int ret; | 530 | int ret; |
| 531 | struct ccw_dev_id dev_id; | ||
| 554 | 532 | ||
| 555 | device = tape_alloc_device(); | 533 | device = tape_alloc_device(); |
| 556 | if (IS_ERR(device)) | 534 | if (IS_ERR(device)) |
| @@ -565,7 +543,8 @@ tape_generic_probe(struct ccw_device *cdev) | |||
| 565 | cdev->dev.driver_data = device; | 543 | cdev->dev.driver_data = device; |
| 566 | cdev->handler = __tape_do_irq; | 544 | cdev->handler = __tape_do_irq; |
| 567 | device->cdev = cdev; | 545 | device->cdev = cdev; |
| 568 | device->cdev_id = busid_to_int(cdev->dev.bus_id); | 546 | ccw_device_get_id(cdev, &dev_id); |
| 547 | device->cdev_id = devid_to_int(&dev_id); | ||
| 569 | PRINT_INFO("tape device %s found\n", cdev->dev.bus_id); | 548 | PRINT_INFO("tape device %s found\n", cdev->dev.bus_id); |
| 570 | return ret; | 549 | return ret; |
| 571 | } | 550 | } |
diff --git a/drivers/s390/char/vmlogrdr.c b/drivers/s390/char/vmlogrdr.c index d364e0bfae12..e8487347e4d4 100644 --- a/drivers/s390/char/vmlogrdr.c +++ b/drivers/s390/char/vmlogrdr.c | |||
| @@ -858,7 +858,7 @@ static int __init vmlogrdr_init(void) | |||
| 858 | for (i=0; i < MAXMINOR; ++i ) { | 858 | for (i=0; i < MAXMINOR; ++i ) { |
| 859 | sys_ser[i].buffer = (char *) get_zeroed_page(GFP_KERNEL); | 859 | sys_ser[i].buffer = (char *) get_zeroed_page(GFP_KERNEL); |
| 860 | if (!sys_ser[i].buffer) { | 860 | if (!sys_ser[i].buffer) { |
| 861 | rc = ENOMEM; | 861 | rc = -ENOMEM; |
| 862 | break; | 862 | break; |
| 863 | } | 863 | } |
| 864 | sys_ser[i].current_position = sys_ser[i].buffer; | 864 | sys_ser[i].current_position = sys_ser[i].buffer; |
diff --git a/drivers/s390/cio/blacklist.c b/drivers/s390/cio/blacklist.c index 9c21b8f43f9b..a4a5f2efea48 100644 --- a/drivers/s390/cio/blacklist.c +++ b/drivers/s390/cio/blacklist.c | |||
| @@ -19,7 +19,6 @@ | |||
| 19 | 19 | ||
| 20 | #include <asm/cio.h> | 20 | #include <asm/cio.h> |
| 21 | #include <asm/uaccess.h> | 21 | #include <asm/uaccess.h> |
| 22 | #include <asm/cio.h> | ||
| 23 | 22 | ||
| 24 | #include "blacklist.h" | 23 | #include "blacklist.h" |
| 25 | #include "cio.h" | 24 | #include "cio.h" |
diff --git a/drivers/s390/cio/device_pgid.c b/drivers/s390/cio/device_pgid.c index ba559053402e..5cf7be008e98 100644 --- a/drivers/s390/cio/device_pgid.c +++ b/drivers/s390/cio/device_pgid.c | |||
| @@ -243,16 +243,10 @@ __ccw_device_do_pgid(struct ccw_device *cdev, __u8 func) | |||
| 243 | /* Setup sense path group id channel program. */ | 243 | /* Setup sense path group id channel program. */ |
| 244 | cdev->private->pgid[0].inf.fc = func; | 244 | cdev->private->pgid[0].inf.fc = func; |
| 245 | ccw = cdev->private->iccws; | 245 | ccw = cdev->private->iccws; |
| 246 | if (!cdev->private->flags.pgid_single) { | 246 | if (cdev->private->flags.pgid_single) |
| 247 | cdev->private->pgid[0].inf.fc |= SPID_FUNC_MULTI_PATH; | ||
| 248 | ccw->cmd_code = CCW_CMD_SUSPEND_RECONN; | ||
| 249 | ccw->cda = 0; | ||
| 250 | ccw->count = 0; | ||
| 251 | ccw->flags = CCW_FLAG_SLI | CCW_FLAG_CC; | ||
| 252 | ccw++; | ||
| 253 | } else | ||
| 254 | cdev->private->pgid[0].inf.fc |= SPID_FUNC_SINGLE_PATH; | 247 | cdev->private->pgid[0].inf.fc |= SPID_FUNC_SINGLE_PATH; |
| 255 | 248 | else | |
| 249 | cdev->private->pgid[0].inf.fc |= SPID_FUNC_MULTI_PATH; | ||
| 256 | ccw->cmd_code = CCW_CMD_SET_PGID; | 250 | ccw->cmd_code = CCW_CMD_SET_PGID; |
| 257 | ccw->cda = (__u32) __pa (&cdev->private->pgid[0]); | 251 | ccw->cda = (__u32) __pa (&cdev->private->pgid[0]); |
| 258 | ccw->count = sizeof (struct pgid); | 252 | ccw->count = sizeof (struct pgid); |
diff --git a/include/asm-s390/debug.h b/include/asm-s390/debug.h index 335baf4fc64f..9450ce6e32de 100644 --- a/include/asm-s390/debug.h +++ b/include/asm-s390/debug.h | |||
| @@ -120,10 +120,10 @@ debug_entry_t* debug_exception_common(debug_info_t* id, int level, | |||
| 120 | 120 | ||
| 121 | /* Debug Feature API: */ | 121 | /* Debug Feature API: */ |
| 122 | 122 | ||
| 123 | debug_info_t* debug_register(char* name, int pages, int nr_areas, | 123 | debug_info_t *debug_register(const char *name, int pages, int nr_areas, |
| 124 | int buf_size); | 124 | int buf_size); |
| 125 | 125 | ||
| 126 | debug_info_t *debug_register_mode(char *name, int pages, int nr_areas, | 126 | debug_info_t *debug_register_mode(const char *name, int pages, int nr_areas, |
| 127 | int buf_size, mode_t mode, uid_t uid, | 127 | int buf_size, mode_t mode, uid_t uid, |
| 128 | gid_t gid); | 128 | gid_t gid); |
| 129 | 129 | ||
