net: ibm: emac: mal: move irq maps down
authorRosen Penev <rosenp@gmail.com>
Wed, 30 Oct 2024 20:37:27 +0000 (13:37 -0700)
committerJakub Kicinski <kuba@kernel.org>
Sun, 3 Nov 2024 22:37:43 +0000 (14:37 -0800)
Moves the handling right before they are used and allows merging a
branch.

Also get rid of the error handling as devm_request_irq can handle that.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://patch.msgid.link/20241030203727.6039-13-rosenp@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/ibm/emac/mal.c

index db9faac213172f9e9354ebc9b1a179a611ea9840..7d70056e90081cbd1af42bb9921b1f38c6583016 100644 (file)
@@ -579,25 +579,6 @@ static int mal_probe(struct platform_device *ofdev)
 #endif
        }
 
-       mal->txeob_irq = platform_get_irq(ofdev, 0);
-       mal->rxeob_irq = platform_get_irq(ofdev, 1);
-       mal->serr_irq = platform_get_irq(ofdev, 2);
-
-       if (mal_has_feature(mal, MAL_FTR_COMMON_ERR_INT)) {
-               mal->txde_irq = mal->rxde_irq = mal->serr_irq;
-       } else {
-               mal->txde_irq = platform_get_irq(ofdev, 3);
-               mal->rxde_irq = platform_get_irq(ofdev, 4);
-       }
-
-       if (mal->txeob_irq < 0 || mal->rxeob_irq < 0 || mal->serr_irq < 0 ||
-           mal->txde_irq < 0 || mal->rxde_irq < 0) {
-               printk(KERN_ERR
-                      "mal%d: failed to map interrupts !\n", index);
-               err = -ENODEV;
-               goto fail_unmap;
-       }
-
        INIT_LIST_HEAD(&mal->poll_list);
        INIT_LIST_HEAD(&mal->list);
        spin_lock_init(&mal->lock);
@@ -651,10 +632,17 @@ static int mal_probe(struct platform_device *ofdev)
                             sizeof(struct mal_descriptor) *
                             mal_rx_bd_offset(mal, i));
 
+       mal->txeob_irq = platform_get_irq(ofdev, 0);
+       mal->rxeob_irq = platform_get_irq(ofdev, 1);
+       mal->serr_irq = platform_get_irq(ofdev, 2);
+
        if (mal_has_feature(mal, MAL_FTR_COMMON_ERR_INT)) {
+               mal->txde_irq = mal->rxde_irq = mal->serr_irq;
                irqflags = IRQF_SHARED;
                hdlr_serr = hdlr_txde = hdlr_rxde = mal_int;
        } else {
+               mal->txde_irq = platform_get_irq(ofdev, 3);
+               mal->rxde_irq = platform_get_irq(ofdev, 4);
                irqflags = 0;
                hdlr_serr = mal_serr;
                hdlr_txde = mal_txde;