diff options
Diffstat (limited to 'drivers/s390/char')
-rw-r--r-- | drivers/s390/char/con3215.c | 22 | ||||
-rw-r--r-- | drivers/s390/char/con3270.c | 13 | ||||
-rw-r--r-- | drivers/s390/char/monreader.c | 6 | ||||
-rw-r--r-- | drivers/s390/char/raw3270.c | 36 | ||||
-rw-r--r-- | drivers/s390/char/sclp_con.c | 7 | ||||
-rw-r--r-- | drivers/s390/char/sclp_vt220.c | 18 | ||||
-rw-r--r-- | drivers/s390/char/tape_core.c | 2 | ||||
-rw-r--r-- | drivers/s390/char/vmlogrdr.c | 4 | ||||
-rw-r--r-- | drivers/s390/char/vmur.c | 2 |
9 files changed, 33 insertions, 77 deletions
diff --git a/drivers/s390/char/con3215.c b/drivers/s390/char/con3215.c index 04dc734805c6..21639d6c996f 100644 --- a/drivers/s390/char/con3215.c +++ b/drivers/s390/char/con3215.c | |||
@@ -20,10 +20,7 @@ | |||
20 | #include <linux/interrupt.h> | 20 | #include <linux/interrupt.h> |
21 | #include <linux/err.h> | 21 | #include <linux/err.h> |
22 | #include <linux/reboot.h> | 22 | #include <linux/reboot.h> |
23 | |||
24 | #include <linux/slab.h> | 23 | #include <linux/slab.h> |
25 | #include <linux/bootmem.h> | ||
26 | |||
27 | #include <asm/ccwdev.h> | 24 | #include <asm/ccwdev.h> |
28 | #include <asm/cio.h> | 25 | #include <asm/cio.h> |
29 | #include <asm/io.h> | 26 | #include <asm/io.h> |
@@ -735,7 +732,7 @@ static int raw3215_pm_stop(struct ccw_device *cdev) | |||
735 | unsigned long flags; | 732 | unsigned long flags; |
736 | 733 | ||
737 | /* Empty the output buffer, then prevent new I/O. */ | 734 | /* Empty the output buffer, then prevent new I/O. */ |
738 | raw = cdev->dev.driver_data; | 735 | raw = dev_get_drvdata(&cdev->dev); |
739 | spin_lock_irqsave(get_ccwdev_lock(raw->cdev), flags); | 736 | spin_lock_irqsave(get_ccwdev_lock(raw->cdev), flags); |
740 | raw3215_make_room(raw, RAW3215_BUFFER_SIZE); | 737 | raw3215_make_room(raw, RAW3215_BUFFER_SIZE); |
741 | raw->flags |= RAW3215_FROZEN; | 738 | raw->flags |= RAW3215_FROZEN; |
@@ -749,7 +746,7 @@ static int raw3215_pm_start(struct ccw_device *cdev) | |||
749 | unsigned long flags; | 746 | unsigned long flags; |
750 | 747 | ||
751 | /* Allow I/O again and flush output buffer. */ | 748 | /* Allow I/O again and flush output buffer. */ |
752 | raw = cdev->dev.driver_data; | 749 | raw = dev_get_drvdata(&cdev->dev); |
753 | spin_lock_irqsave(get_ccwdev_lock(raw->cdev), flags); | 750 | spin_lock_irqsave(get_ccwdev_lock(raw->cdev), flags); |
754 | raw->flags &= ~RAW3215_FROZEN; | 751 | raw->flags &= ~RAW3215_FROZEN; |
755 | raw->flags |= RAW3215_FLUSHING; | 752 | raw->flags |= RAW3215_FLUSHING; |
@@ -883,7 +880,7 @@ static int __init con3215_init(void) | |||
883 | raw3215_freelist = NULL; | 880 | raw3215_freelist = NULL; |
884 | spin_lock_init(&raw3215_freelist_lock); | 881 | spin_lock_init(&raw3215_freelist_lock); |
885 | for (i = 0; i < NR_3215_REQ; i++) { | 882 | for (i = 0; i < NR_3215_REQ; i++) { |
886 | req = (struct raw3215_req *) alloc_bootmem_low(sizeof(struct raw3215_req)); | 883 | req = kzalloc(sizeof(struct raw3215_req), GFP_KERNEL | GFP_DMA); |
887 | req->next = raw3215_freelist; | 884 | req->next = raw3215_freelist; |
888 | raw3215_freelist = req; | 885 | raw3215_freelist = req; |
889 | } | 886 | } |
@@ -893,10 +890,9 @@ static int __init con3215_init(void) | |||
893 | return -ENODEV; | 890 | return -ENODEV; |
894 | 891 | ||
895 | raw3215[0] = raw = (struct raw3215_info *) | 892 | raw3215[0] = raw = (struct raw3215_info *) |
896 | alloc_bootmem_low(sizeof(struct raw3215_info)); | 893 | kzalloc(sizeof(struct raw3215_info), GFP_KERNEL | GFP_DMA); |
897 | memset(raw, 0, sizeof(struct raw3215_info)); | 894 | raw->buffer = kzalloc(RAW3215_BUFFER_SIZE, GFP_KERNEL | GFP_DMA); |
898 | raw->buffer = (char *) alloc_bootmem_low(RAW3215_BUFFER_SIZE); | 895 | raw->inbuf = kzalloc(RAW3215_INBUF_SIZE, GFP_KERNEL | GFP_DMA); |
899 | raw->inbuf = (char *) alloc_bootmem_low(RAW3215_INBUF_SIZE); | ||
900 | raw->cdev = cdev; | 896 | raw->cdev = cdev; |
901 | dev_set_drvdata(&cdev->dev, raw); | 897 | dev_set_drvdata(&cdev->dev, raw); |
902 | cdev->handler = raw3215_irq; | 898 | cdev->handler = raw3215_irq; |
@@ -906,9 +902,9 @@ static int __init con3215_init(void) | |||
906 | 902 | ||
907 | /* Request the console irq */ | 903 | /* Request the console irq */ |
908 | if (raw3215_startup(raw) != 0) { | 904 | if (raw3215_startup(raw) != 0) { |
909 | free_bootmem((unsigned long) raw->inbuf, RAW3215_INBUF_SIZE); | 905 | kfree(raw->inbuf); |
910 | free_bootmem((unsigned long) raw->buffer, RAW3215_BUFFER_SIZE); | 906 | kfree(raw->buffer); |
911 | free_bootmem((unsigned long) raw, sizeof(struct raw3215_info)); | 907 | kfree(raw); |
912 | raw3215[0] = NULL; | 908 | raw3215[0] = NULL; |
913 | return -ENODEV; | 909 | return -ENODEV; |
914 | } | 910 | } |
diff --git a/drivers/s390/char/con3270.c b/drivers/s390/char/con3270.c index 44d02e371c04..bb838bdf829d 100644 --- a/drivers/s390/char/con3270.c +++ b/drivers/s390/char/con3270.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright IBM Corp. 2003, 2009 | 7 | * Copyright IBM Corp. 2003, 2009 |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/bootmem.h> | ||
11 | #include <linux/console.h> | 10 | #include <linux/console.h> |
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
13 | #include <linux/interrupt.h> | 12 | #include <linux/interrupt.h> |
@@ -600,16 +599,14 @@ con3270_init(void) | |||
600 | if (IS_ERR(rp)) | 599 | if (IS_ERR(rp)) |
601 | return PTR_ERR(rp); | 600 | return PTR_ERR(rp); |
602 | 601 | ||
603 | condev = (struct con3270 *) alloc_bootmem_low(sizeof(struct con3270)); | 602 | condev = kzalloc(sizeof(struct con3270), GFP_KERNEL | GFP_DMA); |
604 | memset(condev, 0, sizeof(struct con3270)); | ||
605 | condev->view.dev = rp; | 603 | condev->view.dev = rp; |
606 | 604 | ||
607 | condev->read = raw3270_request_alloc_bootmem(0); | 605 | condev->read = raw3270_request_alloc(0); |
608 | condev->read->callback = con3270_read_callback; | 606 | condev->read->callback = con3270_read_callback; |
609 | condev->read->callback_data = condev; | 607 | condev->read->callback_data = condev; |
610 | condev->write = | 608 | condev->write = raw3270_request_alloc(CON3270_OUTPUT_BUFFER_SIZE); |
611 | raw3270_request_alloc_bootmem(CON3270_OUTPUT_BUFFER_SIZE); | 609 | condev->kreset = raw3270_request_alloc(1); |
612 | condev->kreset = raw3270_request_alloc_bootmem(1); | ||
613 | 610 | ||
614 | INIT_LIST_HEAD(&condev->lines); | 611 | INIT_LIST_HEAD(&condev->lines); |
615 | INIT_LIST_HEAD(&condev->update); | 612 | INIT_LIST_HEAD(&condev->update); |
@@ -623,7 +620,7 @@ con3270_init(void) | |||
623 | 620 | ||
624 | INIT_LIST_HEAD(&condev->freemem); | 621 | INIT_LIST_HEAD(&condev->freemem); |
625 | for (i = 0; i < CON3270_STRING_PAGES; i++) { | 622 | for (i = 0; i < CON3270_STRING_PAGES; i++) { |
626 | cbuf = (void *) alloc_bootmem_low_pages(PAGE_SIZE); | 623 | cbuf = (void *) get_zeroed_page(GFP_KERNEL | GFP_DMA); |
627 | add_string_memory(&condev->freemem, cbuf, PAGE_SIZE); | 624 | add_string_memory(&condev->freemem, cbuf, PAGE_SIZE); |
628 | } | 625 | } |
629 | condev->cline = alloc_string(&condev->freemem, condev->view.cols); | 626 | condev->cline = alloc_string(&condev->freemem, condev->view.cols); |
diff --git a/drivers/s390/char/monreader.c b/drivers/s390/char/monreader.c index 75a8831eebbc..7892550d7932 100644 --- a/drivers/s390/char/monreader.c +++ b/drivers/s390/char/monreader.c | |||
@@ -320,7 +320,7 @@ static int mon_open(struct inode *inode, struct file *filp) | |||
320 | goto out_path; | 320 | goto out_path; |
321 | } | 321 | } |
322 | filp->private_data = monpriv; | 322 | filp->private_data = monpriv; |
323 | monreader_device->driver_data = monpriv; | 323 | dev_set_drvdata(&monreader_device, monpriv); |
324 | unlock_kernel(); | 324 | unlock_kernel(); |
325 | return nonseekable_open(inode, filp); | 325 | return nonseekable_open(inode, filp); |
326 | 326 | ||
@@ -463,7 +463,7 @@ static struct miscdevice mon_dev = { | |||
463 | *****************************************************************************/ | 463 | *****************************************************************************/ |
464 | static int monreader_freeze(struct device *dev) | 464 | static int monreader_freeze(struct device *dev) |
465 | { | 465 | { |
466 | struct mon_private *monpriv = dev->driver_data; | 466 | struct mon_private *monpriv = dev_get_drvdata(&dev); |
467 | int rc; | 467 | int rc; |
468 | 468 | ||
469 | if (!monpriv) | 469 | if (!monpriv) |
@@ -487,7 +487,7 @@ static int monreader_freeze(struct device *dev) | |||
487 | 487 | ||
488 | static int monreader_thaw(struct device *dev) | 488 | static int monreader_thaw(struct device *dev) |
489 | { | 489 | { |
490 | struct mon_private *monpriv = dev->driver_data; | 490 | struct mon_private *monpriv = dev_get_drvdata(dev); |
491 | int rc; | 491 | int rc; |
492 | 492 | ||
493 | if (!monpriv) | 493 | if (!monpriv) |
diff --git a/drivers/s390/char/raw3270.c b/drivers/s390/char/raw3270.c index acab7b2dfe8a..d6a022f55e92 100644 --- a/drivers/s390/char/raw3270.c +++ b/drivers/s390/char/raw3270.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright IBM Corp. 2003, 2009 | 7 | * Copyright IBM Corp. 2003, 2009 |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/bootmem.h> | ||
11 | #include <linux/module.h> | 10 | #include <linux/module.h> |
12 | #include <linux/err.h> | 11 | #include <linux/err.h> |
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
@@ -143,33 +142,6 @@ raw3270_request_alloc(size_t size) | |||
143 | return rq; | 142 | return rq; |
144 | } | 143 | } |
145 | 144 | ||
146 | #ifdef CONFIG_TN3270_CONSOLE | ||
147 | /* | ||
148 | * Allocate a new 3270 ccw request from bootmem. Only works very | ||
149 | * early in the boot process. Only con3270.c should be using this. | ||
150 | */ | ||
151 | struct raw3270_request __init *raw3270_request_alloc_bootmem(size_t size) | ||
152 | { | ||
153 | struct raw3270_request *rq; | ||
154 | |||
155 | rq = alloc_bootmem_low(sizeof(struct raw3270)); | ||
156 | |||
157 | /* alloc output buffer. */ | ||
158 | if (size > 0) | ||
159 | rq->buffer = alloc_bootmem_low(size); | ||
160 | rq->size = size; | ||
161 | INIT_LIST_HEAD(&rq->list); | ||
162 | |||
163 | /* | ||
164 | * Setup ccw. | ||
165 | */ | ||
166 | rq->ccw.cda = __pa(rq->buffer); | ||
167 | rq->ccw.flags = CCW_FLAG_SLI; | ||
168 | |||
169 | return rq; | ||
170 | } | ||
171 | #endif | ||
172 | |||
173 | /* | 145 | /* |
174 | * Free 3270 ccw request | 146 | * Free 3270 ccw request |
175 | */ | 147 | */ |
@@ -846,8 +818,8 @@ struct raw3270 __init *raw3270_setup_console(struct ccw_device *cdev) | |||
846 | char *ascebc; | 818 | char *ascebc; |
847 | int rc; | 819 | int rc; |
848 | 820 | ||
849 | rp = (struct raw3270 *) alloc_bootmem_low(sizeof(struct raw3270)); | 821 | rp = kzalloc(sizeof(struct raw3270), GFP_KERNEL | GFP_DMA); |
850 | ascebc = (char *) alloc_bootmem(256); | 822 | ascebc = kzalloc(256, GFP_KERNEL); |
851 | rc = raw3270_setup_device(cdev, rp, ascebc); | 823 | rc = raw3270_setup_device(cdev, rp, ascebc); |
852 | if (rc) | 824 | if (rc) |
853 | return ERR_PTR(rc); | 825 | return ERR_PTR(rc); |
@@ -1350,7 +1322,7 @@ static int raw3270_pm_stop(struct ccw_device *cdev) | |||
1350 | struct raw3270_view *view; | 1322 | struct raw3270_view *view; |
1351 | unsigned long flags; | 1323 | unsigned long flags; |
1352 | 1324 | ||
1353 | rp = cdev->dev.driver_data; | 1325 | rp = dev_get_drvdata(&cdev->dev); |
1354 | if (!rp) | 1326 | if (!rp) |
1355 | return 0; | 1327 | return 0; |
1356 | spin_lock_irqsave(get_ccwdev_lock(rp->cdev), flags); | 1328 | spin_lock_irqsave(get_ccwdev_lock(rp->cdev), flags); |
@@ -1376,7 +1348,7 @@ static int raw3270_pm_start(struct ccw_device *cdev) | |||
1376 | struct raw3270 *rp; | 1348 | struct raw3270 *rp; |
1377 | unsigned long flags; | 1349 | unsigned long flags; |
1378 | 1350 | ||
1379 | rp = cdev->dev.driver_data; | 1351 | rp = dev_get_drvdata(&cdev->dev); |
1380 | if (!rp) | 1352 | if (!rp) |
1381 | return 0; | 1353 | return 0; |
1382 | spin_lock_irqsave(get_ccwdev_lock(rp->cdev), flags); | 1354 | spin_lock_irqsave(get_ccwdev_lock(rp->cdev), flags); |
diff --git a/drivers/s390/char/sclp_con.c b/drivers/s390/char/sclp_con.c index 336811a77672..ad698d30cb3b 100644 --- a/drivers/s390/char/sclp_con.c +++ b/drivers/s390/char/sclp_con.c | |||
@@ -11,7 +11,6 @@ | |||
11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
12 | #include <linux/timer.h> | 12 | #include <linux/timer.h> |
13 | #include <linux/jiffies.h> | 13 | #include <linux/jiffies.h> |
14 | #include <linux/bootmem.h> | ||
15 | #include <linux/termios.h> | 14 | #include <linux/termios.h> |
16 | #include <linux/err.h> | 15 | #include <linux/err.h> |
17 | #include <linux/reboot.h> | 16 | #include <linux/reboot.h> |
@@ -110,7 +109,7 @@ static void sclp_console_sync_queue(void) | |||
110 | 109 | ||
111 | spin_lock_irqsave(&sclp_con_lock, flags); | 110 | spin_lock_irqsave(&sclp_con_lock, flags); |
112 | if (timer_pending(&sclp_con_timer)) | 111 | if (timer_pending(&sclp_con_timer)) |
113 | del_timer_sync(&sclp_con_timer); | 112 | del_timer(&sclp_con_timer); |
114 | while (sclp_con_queue_running) { | 113 | while (sclp_con_queue_running) { |
115 | spin_unlock_irqrestore(&sclp_con_lock, flags); | 114 | spin_unlock_irqrestore(&sclp_con_lock, flags); |
116 | sclp_sync_wait(); | 115 | sclp_sync_wait(); |
@@ -298,8 +297,8 @@ sclp_console_init(void) | |||
298 | /* Allocate pages for output buffering */ | 297 | /* Allocate pages for output buffering */ |
299 | INIT_LIST_HEAD(&sclp_con_pages); | 298 | INIT_LIST_HEAD(&sclp_con_pages); |
300 | for (i = 0; i < MAX_CONSOLE_PAGES; i++) { | 299 | for (i = 0; i < MAX_CONSOLE_PAGES; i++) { |
301 | page = alloc_bootmem_low_pages(PAGE_SIZE); | 300 | page = (void *) get_zeroed_page(GFP_KERNEL | GFP_DMA); |
302 | list_add_tail((struct list_head *) page, &sclp_con_pages); | 301 | list_add_tail(page, &sclp_con_pages); |
303 | } | 302 | } |
304 | INIT_LIST_HEAD(&sclp_con_outqueue); | 303 | INIT_LIST_HEAD(&sclp_con_outqueue); |
305 | spin_lock_init(&sclp_con_lock); | 304 | spin_lock_init(&sclp_con_lock); |
diff --git a/drivers/s390/char/sclp_vt220.c b/drivers/s390/char/sclp_vt220.c index 5518e24946aa..178724f2a4c3 100644 --- a/drivers/s390/char/sclp_vt220.c +++ b/drivers/s390/char/sclp_vt220.c | |||
@@ -20,7 +20,6 @@ | |||
20 | #include <linux/major.h> | 20 | #include <linux/major.h> |
21 | #include <linux/console.h> | 21 | #include <linux/console.h> |
22 | #include <linux/kdev_t.h> | 22 | #include <linux/kdev_t.h> |
23 | #include <linux/bootmem.h> | ||
24 | #include <linux/interrupt.h> | 23 | #include <linux/interrupt.h> |
25 | #include <linux/init.h> | 24 | #include <linux/init.h> |
26 | #include <linux/reboot.h> | 25 | #include <linux/reboot.h> |
@@ -601,10 +600,7 @@ static void __init __sclp_vt220_free_pages(void) | |||
601 | 600 | ||
602 | list_for_each_safe(page, p, &sclp_vt220_empty) { | 601 | list_for_each_safe(page, p, &sclp_vt220_empty) { |
603 | list_del(page); | 602 | list_del(page); |
604 | if (slab_is_available()) | 603 | free_page((unsigned long) page); |
605 | free_page((unsigned long) page); | ||
606 | else | ||
607 | free_bootmem((unsigned long) page, PAGE_SIZE); | ||
608 | } | 604 | } |
609 | } | 605 | } |
610 | 606 | ||
@@ -640,16 +636,12 @@ static int __init __sclp_vt220_init(int num_pages) | |||
640 | sclp_vt220_flush_later = 0; | 636 | sclp_vt220_flush_later = 0; |
641 | 637 | ||
642 | /* Allocate pages for output buffering */ | 638 | /* Allocate pages for output buffering */ |
639 | rc = -ENOMEM; | ||
643 | for (i = 0; i < num_pages; i++) { | 640 | for (i = 0; i < num_pages; i++) { |
644 | if (slab_is_available()) | 641 | page = (void *) get_zeroed_page(GFP_KERNEL | GFP_DMA); |
645 | page = (void *) get_zeroed_page(GFP_KERNEL | GFP_DMA); | 642 | if (!page) |
646 | else | ||
647 | page = alloc_bootmem_low_pages(PAGE_SIZE); | ||
648 | if (!page) { | ||
649 | rc = -ENOMEM; | ||
650 | goto out; | 643 | goto out; |
651 | } | 644 | list_add_tail(page, &sclp_vt220_empty); |
652 | list_add_tail((struct list_head *) page, &sclp_vt220_empty); | ||
653 | } | 645 | } |
654 | rc = sclp_register(&sclp_vt220_register); | 646 | rc = sclp_register(&sclp_vt220_register); |
655 | out: | 647 | out: |
diff --git a/drivers/s390/char/tape_core.c b/drivers/s390/char/tape_core.c index 595aa04cfd01..1d420d947596 100644 --- a/drivers/s390/char/tape_core.c +++ b/drivers/s390/char/tape_core.c | |||
@@ -396,7 +396,7 @@ int tape_generic_pm_suspend(struct ccw_device *cdev) | |||
396 | { | 396 | { |
397 | struct tape_device *device; | 397 | struct tape_device *device; |
398 | 398 | ||
399 | device = cdev->dev.driver_data; | 399 | device = dev_get_drvdata(&cdev->dev); |
400 | if (!device) { | 400 | if (!device) { |
401 | return -ENODEV; | 401 | return -ENODEV; |
402 | } | 402 | } |
diff --git a/drivers/s390/char/vmlogrdr.c b/drivers/s390/char/vmlogrdr.c index 411cfa3c7719..c20a4fe6da51 100644 --- a/drivers/s390/char/vmlogrdr.c +++ b/drivers/s390/char/vmlogrdr.c | |||
@@ -663,7 +663,7 @@ static struct attribute *vmlogrdr_attrs[] = { | |||
663 | static int vmlogrdr_pm_prepare(struct device *dev) | 663 | static int vmlogrdr_pm_prepare(struct device *dev) |
664 | { | 664 | { |
665 | int rc; | 665 | int rc; |
666 | struct vmlogrdr_priv_t *priv = dev->driver_data; | 666 | struct vmlogrdr_priv_t *priv = dev_get_drvdata(dev); |
667 | 667 | ||
668 | rc = 0; | 668 | rc = 0; |
669 | if (priv) { | 669 | if (priv) { |
@@ -753,7 +753,7 @@ static int vmlogrdr_register_device(struct vmlogrdr_priv_t *priv) | |||
753 | dev->bus = &iucv_bus; | 753 | dev->bus = &iucv_bus; |
754 | dev->parent = iucv_root; | 754 | dev->parent = iucv_root; |
755 | dev->driver = &vmlogrdr_driver; | 755 | dev->driver = &vmlogrdr_driver; |
756 | dev->driver_data = priv; | 756 | dev_set_drvdata(dev, priv); |
757 | /* | 757 | /* |
758 | * The release function could be called after the | 758 | * The release function could be called after the |
759 | * module has been unloaded. It's _only_ task is to | 759 | * module has been unloaded. It's _only_ task is to |
diff --git a/drivers/s390/char/vmur.c b/drivers/s390/char/vmur.c index 7d9e67cb6471..31b902e94f7b 100644 --- a/drivers/s390/char/vmur.c +++ b/drivers/s390/char/vmur.c | |||
@@ -170,7 +170,7 @@ static void urdev_put(struct urdev *urd) | |||
170 | */ | 170 | */ |
171 | static int ur_pm_suspend(struct ccw_device *cdev) | 171 | static int ur_pm_suspend(struct ccw_device *cdev) |
172 | { | 172 | { |
173 | struct urdev *urd = cdev->dev.driver_data; | 173 | struct urdev *urd = dev_get_drvdata(&cdev->dev); |
174 | 174 | ||
175 | TRACE("ur_pm_suspend: cdev=%p\n", cdev); | 175 | TRACE("ur_pm_suspend: cdev=%p\n", cdev); |
176 | if (urd->open_flag) { | 176 | if (urd->open_flag) { |