Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
For the out-of-band Slashdot experience (mostly headlines), follow us on Twitter, or Facebook. ×

Comment: Re:Looks Neat (Score 1) 81 81

Also, diagnostic codes are not very useful if the problem lies in the computer that's telling you the codes.

I had a fault on my Mitsi GTO ('3000GT' in americanese), it was only running on about 4 cylinders. According to the fancy whiz bang diagnostic gizmo, one of the coil packs was faulty. Some time and much money later, it turned out the coils were fine, but the ECU was playing up. Replacing that solved the problem.

Computers lie! It was trying to misdirect attention so it didn't get replaced!

Comment: Re:One word.. (Score 5, Insightful) 683 683

I can't figure out if I'm the only sane one or the only crazy one. Especially given the 'pyramid' referred to - I don't see a pyramid unless it's rewritten to use nested ifs.

To me, nested ifs are much easier to read - they convey the meaning/intent of the code a lot better. As in 'if this function call works, then do this. Otherwise, just clean up and exit'

How is this so hard to understand?

geode_aes_probe(struct pci_dev *dev, const struct pci_device_id *id) {
        int ret;

        if ((ret = pci_enable_device(dev)))
                return ret;

        if (!(ret = pci_request_regions(dev, "geode-aes"))) {
                _iobase = pci_iomap(dev, 0, 0);
                if (_iobase == NULL) {
                        ret = -ENOMEM;
                }
                else {
                        spin_lock_init(&lock); /* Clear any pending activity */
                        iowrite32(AES_INTR_PENDING | AES_INTR_MASK, _iobase + AES_INTR_REG);
                        if (!(ret = crypto_register_alg(&geode_alg))) {
                                if (!(ret = crypto_register_alg(&geode_ecb_alg))) {
                                        if (!(ret = crypto_register_alg(&geode_cbc_alg))) {
                                                printk(KERN_NOTICE "geode-aes: GEODE AES engine enabled.\n");
                                                return 0;
                                        }
                                        crypto_unregister_alg(&geode_ecb_alg);
                                }
                                crypto_unregister_alg(&geode_alg);
                        }
                        pci_iounmap(dev, _iobase);
                }
                pci_release_regions(dev);
        }
        pci_disable_device(dev);

        printk(KERN_ERR "geode-aes: GEODE AES initialization failed.\n");
        return ret;
}

Have you ever noticed that the people who are always trying to tell you `there's a time for work and a time for play' never find the time for play?

Working...