]> git.neil.brown.name Git - history.git/commitdiff
Import 2.4.0-test2pre10 2.4.0-test2pre10
authorLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:35:47 +0000 (15:35 -0500)
committerLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:35:47 +0000 (15:35 -0500)
68 files changed:
Documentation/filesystems/devfs/ChangeLog
arch/alpha/kernel/core_mcpcia.c
arch/alpha/kernel/core_titan.c
arch/alpha/kernel/irq.c
arch/alpha/kernel/machvec_impl.h
arch/alpha/kernel/pci.c
arch/alpha/kernel/pci_iommu.c
arch/alpha/kernel/sys_dp264.c
arch/i386/kernel/microcode.c
arch/i386/kernel/mtrr.c
arch/m68k/atari/joystick.c
arch/sparc64/solaris/socksys.c
drivers/block/acsi_slm.c
drivers/block/floppy.c
drivers/block/loop.c
drivers/block/md.c
drivers/block/nbd.c
drivers/block/paride/pg.c
drivers/block/paride/pt.c
drivers/block/rd.c
drivers/cdrom/aztcd.c
drivers/cdrom/cdrom.c
drivers/cdrom/gscd.c
drivers/cdrom/optcd.c
drivers/cdrom/sbpcd.c
drivers/cdrom/sjcd.c
drivers/cdrom/sonycd535.c
drivers/char/dsp56k.c
drivers/char/dtlk.c
drivers/char/ftape/zftape/zftape-init.c
drivers/char/ip2main.c
drivers/char/istallion.c
drivers/char/lp.c
drivers/char/mem.c
drivers/char/misc.c
drivers/char/ppdev.c
drivers/char/stallion.c
drivers/char/tpqic02.c
drivers/char/tty_io.c
drivers/char/vc_screen.c
drivers/char/videodev.c
drivers/ide/ide-cd.c
drivers/ide/ide-tape.c
drivers/isdn/avmb1/capi.c
drivers/isdn/isdn_common.c
drivers/macintosh/adb.c
drivers/net/ppp_generic.c
drivers/net/wan/cosa.c
drivers/s390/block/dasd.c
drivers/sbus/audio/audio.c
drivers/sbus/char/bpp.c
drivers/sbus/char/sunkbd.c
drivers/sbus/char/vfc_dev.c
drivers/scsi/sg.c
drivers/scsi/sr.c
drivers/scsi/st.c
drivers/sgi/char/shmiq.c
drivers/sound/sound_core.c
drivers/sound/soundcard.c
drivers/usb/input.c
drivers/video/fbmem.c
fs/coda/psdev.c
fs/devfs/base.c
fs/devfs/util.c
fs/partitions/check.c
include/asm-alpha/cache.h
include/linux/devfs_fs_kernel.h
net/netlink/netlink_dev.c

index 8285489a918ab878adddec8351af448d3f9e1a0b..a96f6f09e0795072c57674d9de09f2ae0d3a24d0 100644 (file)
@@ -1568,3 +1568,11 @@ Work sponsored by SGI
   <free_dentries>
 
 - Ported to kernel 2.4.0-test2-pre3
+===============================================================================
+Changes for patch v172
+
+Work sponsored by SGI
+
+- Changed interface to <devfs_register>
+
+- Changed interface to <devfs_register_series>
index 648090d2407e4e53fc67ce7de49806bcfce36935..f114ab24fee9408b31e9aef8d652813e66b0f47d 100644 (file)
@@ -45,8 +45,6 @@
 
 #define MCPCIA_MAX_HOSES 4
 
-static int mcpcia_hose_count; /* Actual number found. */
-
 /*
  * Given a bus, device, and function number, compute resulting
  * configuration space address and setup the MCPCIA_HAXR2 register
@@ -412,10 +410,9 @@ mcpcia_startup_hose(struct pci_controler *hose)
         * Window 2 is direct access 2GB at 2GB
         * ??? We ought to scale window 1 with memory.
         */
+       hose->sg_isa = iommu_arena_new(hose, 0x00800000, 0x00800000, 0);
+       hose->sg_pci = iommu_arena_new(hose, 0x40000000, 0x08000000, 0);
 
-       /* Make sure to align the arenas. */
-       hose->sg_isa = iommu_arena_new(hose, 0x00800000, 0x00800000, 1);
-       hose->sg_pci = iommu_arena_new(hose, 0x40000000, 0x08000000, 1);
        __direct_map_base = 0x80000000;
        __direct_map_size = 0x80000000;
 
@@ -468,20 +465,20 @@ void __init
 mcpcia_init_hoses(void)
 {
        struct pci_controler *hose;
+       int hose_count;
        int h;
 
-       mcpcia_hose_count = 0;
-
        /* First, find how many hoses we have.  */
+       hose_count = 0;
        for (h = 0; h < MCPCIA_MAX_HOSES; ++h) {
                if (mcpcia_probe_hose(h)) {
                        if (h != 0)
                                mcpcia_new_hose(h);
-                       mcpcia_hose_count++;
+                       hose_count++;
                }
        }
 
-       printk("mcpcia_init_hoses: found %d hoses\n", mcpcia_hose_count);
+       printk("mcpcia_init_hoses: found %d hoses\n", hose_count);
 
        /* Now do init for each hose.  */
        for (hose = hose_head; hose; hose = hose->next)
@@ -564,7 +561,7 @@ static void
 mcpcia_print_system_area(unsigned long la_ptr)
 {
        struct el_common *frame;
-       int i;
+       struct pci_controler *hose;
 
        struct IOD_subpacket {
          unsigned long base;
@@ -593,12 +590,12 @@ mcpcia_print_system_area(unsigned long la_ptr)
        } *iodpp;
 
        frame = (struct el_common *)la_ptr;
-
        iodpp = (struct IOD_subpacket *) (la_ptr + frame->sys_offset);
 
-       for (i = 0; i < mcpcia_hose_count; i++, iodpp++) {
+       for (hose = hose_head; hose; hose = hose->next, iodpp++) {
+
          printk("IOD %d Register Subpacket - Bridge Base Address %16lx\n",
-                i, iodpp->base);
+                hose->index, iodpp->base);
          printk("  WHOAMI      = %8x\n", iodpp->whoami);
          printk("  PCI_REV     = %8x\n", iodpp->pci_rev);
          printk("  CAP_CTRL    = %8x\n", iodpp->cap_ctrl);
index 37dd8b3c382cd83793ea504673d93b7ae20b5675..fac75cab543d15b6d419a956830b7f664562b1a4 100644 (file)
@@ -23,7 +23,6 @@
 #include "proto.h"
 #include "pci_impl.h"
 
-int TITAN_bootcpu;
 unsigned TITAN_agp = 0;
 
 static struct
@@ -343,7 +342,11 @@ titan_init_one_pachip_port(titan_pachip_port *port, int index)
         * address range.
         */
        hose->sg_isa = iommu_arena_new(hose, 0x00800000, 0x00800000, 0);
+       hose->sg_isa->align_entry = 8; /* 64KB for ISA */
+
        hose->sg_pci = iommu_arena_new(hose, 0xc0000000, 0x08000000, 0);
+       hose->sg_pci->align_entry = 4; /* Titan caches 4 PTEs at a time */
+
        __direct_map_base = 0x40000000;
        __direct_map_size = 0x80000000;
 
@@ -401,7 +404,7 @@ titan_init_arch(void)
        printk("%s: CSR_DREV 0x%lx\n", FN, TITAN_dchip->drev.csr);
 #endif
 
-       TITAN_bootcpu = __hard_smp_processor_id();
+       boot_cpuid = __hard_smp_processor_id();
 
        /* With multiple PCI busses, we play with I/O as physical addrs.  */
        ioport_resource.end = ~0UL;
index dc665fbfbdff2baf2c4868ecd3b432d8f1e5b3d9..ac7ca67f89f2eaa2eb18769518d0f8ff045bd233 100644 (file)
@@ -233,7 +233,7 @@ static unsigned long irq_affinity[NR_IRQS] = { [0 ... NR_IRQS-1] = ~0UL };
 static void
 select_smp_affinity(int irq)
 {
-       static int last_cpu = 0;
+       static int last_cpu;
        int cpu = last_cpu + 1;
 
        if (! irq_desc[irq].handler->set_affinity || irq_user_affinity[irq])
index 454950c1bd11d514f5d3c424465bd204b1e8c439..f29e775db4e2f534d6d768670ddfa52c628c643d 100644 (file)
  * all but one of which we want to go away.  In a non-GENERIC kernel,
  * we want only one, ever.
  *
- * Accomplish this in the GENERIC kernel by puting all of the vectors
+ * Accomplish this in the GENERIC kernel by putting all of the vectors
  * in the .init.data section where they'll go away.  We'll copy the
  * one we want to the real alpha_mv vector in setup_arch.
  *
index 39de164655ca0d1449c6db21cfd6600ef5dde28a..7a916ad08b9b078e1a0176f50f3b740a5db0ae27 100644 (file)
@@ -426,8 +426,8 @@ pcibios_size_bridge(struct pci_bus *bus, struct pbus_set_ranges_data *outer)
        inner.mem_end -= inner.mem_start;
 
        /* Align the sizes up by bridge rules */
-       inner.io_end = ROUND_UP(inner.io_end, 4*1024);
-       inner.mem_end = ROUND_UP(inner.mem_end, 1*1024*1024);
+       inner.io_end = ROUND_UP(inner.io_end, 4*1024) - 1;
+       inner.mem_end = ROUND_UP(inner.mem_end, 1*1024*1024) - 1;
 
        /* Adjust the bridge's allocation requirements */
        bridge->resource[0].end = bridge->resource[0].start + inner.io_end;
index cadf69b58cb9600ae389097113b492a7fbb12325..ccf0cefbbe94a3cd514515dd363bb6304a8b2961 100644 (file)
@@ -97,6 +97,10 @@ iommu_arena_alloc(struct pci_iommu_arena *arena, long n)
        }
 
        if (i < n) {
+                /* Reached the end.  Flush the TLB and restart the
+                   search from the beginning.  */
+               alpha_mv.mv_pci_tbi(arena->hose, 0, -1);
+
                p = 0, i = 0;
                while (i < n && p+i < nent) {
                        if (ptes[p+i])
@@ -197,7 +201,6 @@ pci_map_single(struct pci_dev *pdev, void *cpu_addr, long size, int direction)
        DBGA("pci_map_single: [%p,%lx] np %ld -> sg %x from %p\n",
             cpu_addr, size, npages, ret, __builtin_return_address(0));
 
-       alpha_mv.mv_pci_tbi(hose, ret, ret + size - 1);
        return ret;
 }
 
@@ -247,6 +250,13 @@ pci_unmap_single(struct pci_dev *pdev, dma_addr_t dma_addr, long size,
        npages = calc_npages((dma_addr & ~PAGE_MASK) + size);
        iommu_arena_free(arena, dma_ofs, npages);
 
+
+        /*
+          If we're freeing ptes above the `next_entry' pointer (they
+           may have snuck back into the TLB since the last wrap flush),
+           we need to flush the TLB before reallocating the latter.
+       */
+       if (dma_ofs >= arena->next_entry)
                alpha_mv.mv_pci_tbi(hose, dma_addr, dma_addr + size - 1);
 
        DBGA("pci_unmap_single: sg [%x,%lx] np %ld from %p\n",
@@ -434,8 +444,6 @@ sg_fill(struct scatterlist *leader, struct scatterlist *end,
 #endif
        } while (++sg < end && (int) sg->dma_address < 0);
 
-       alpha_mv.mv_pci_tbi(arena->hose, out->dma_address, 
-                           out->dma_address+out->dma_length-1);
        return 1;
 }
 
@@ -569,6 +577,12 @@ pci_unmap_sg(struct pci_dev *pdev, struct scatterlist *sg, int nents,
                if (fend < tend) fend = tend;
        }
 
+        /*
+          If we're freeing ptes above the `next_entry' pointer (they
+           may have snuck back into the TLB since the last wrap flush),
+           we need to flush the TLB before reallocating the latter.
+       */
+       if ((fend - arena->dma_base) >> PAGE_SHIFT >= arena->next_entry)
                alpha_mv.mv_pci_tbi(hose, fbeg, fend);
 
        DBGA("pci_unmap_sg: %d entries\n", nents - (end - sg));
index 475b477bd3d1e08700f31aec98e219957b85580a..88f4afd68532d8a5277b83fff4b0c0e82b60b4c2 100644 (file)
@@ -275,11 +275,6 @@ clipper_srm_device_interrupt(unsigned long vector, struct pt_regs * regs)
 
        irq = (vector - 0x800) >> 4;
 
-#if 0
-       printk("clipper_srm_device_interrupt: vector 0x%lx IRQ %d cpu %d\n",
-              vector, irq, smp_processor_id());
-#endif
-
 /*
         * The SRM console reports PCI interrupts with a vector calculated by:
         *
index 989f70c7ea65c1a150b76a76d16f018e82617959..7d7a5874111be5fec18ced74d6875b6d29ae296a 100644 (file)
@@ -103,9 +103,9 @@ static int __init microcode_init(void)
                        MICROCODE_MINOR);
                error = 1;
        }
-       devfs_handle = devfs_register(NULL, "cpu/microcode", 0, 
+       devfs_handle = devfs_register(NULL, "cpu/microcode",
                        DEVFS_FL_DEFAULT, 0, 0, S_IFREG | S_IRUSR | S_IWUSR, 
-                       0, 0, &microcode_fops, NULL);
+                       &microcode_fops, NULL);
        if (devfs_handle == NULL && error) {
                printk(KERN_ERR "microcode: failed to devfs_register()\n");
                return -EINVAL;
index 758b3ec388443cbaa730997795f705b2c283acb4..c0a158694398a1dbeb16788f12f598fe88ebfd4f 100644 (file)
@@ -1885,8 +1885,8 @@ int __init mtrr_init(void)
     proc_root_mtrr->proc_fops = &mtrr_fops;
 #endif
 #ifdef CONFIG_DEVFS_FS
-    devfs_handle = devfs_register (NULL, "cpu/mtrr", 0, DEVFS_FL_DEFAULT, 0, 0,
-                                  S_IFREG | S_IRUGO | S_IWUSR, 0, 0,
+    devfs_handle = devfs_register (NULL, "cpu/mtrr", DEVFS_FL_DEFAULT, 0, 0,
+                                  S_IFREG | S_IRUGO | S_IWUSR,
                                   &mtrr_fops, NULL);
 #endif
     init_table ();
index 86bd24c73a138803ac2877deb8313f8fca408db7..2d20eb6536022a9dd56deb248546f2db0f6141d7 100644 (file)
@@ -136,7 +136,7 @@ int __init atari_joystick_init(void)
     if (devfs_register_chrdev(MAJOR_NR, "Joystick", &atari_joystick_fops))
        printk("unable to get major %d for joystick devices\n", MAJOR_NR);
     devfs_register_series (NULL, "joysticks/digital%u", 2, DEVFS_FL_DEFAULT,
-                          MAJOR_NR, 128, S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                          MAJOR_NR, 128, S_IFCHR | S_IRUSR | S_IWUSR,
                           &atari_joystick_fops, NULL);
 
     return 0;
index 220e549ac658b282919edfbf68e55721c4b536ca..85075d87e81717ff35477da06b5c3c4dced7d27b 100644 (file)
@@ -181,9 +181,9 @@ init_socksys(void)
                printk ("Couldn't create socket\n");
                return ret;
        }
-       devfs_handle = devfs_register (NULL, "socksys", 0, DEVFS_FL_NONE,
+       devfs_handle = devfs_register (NULL, "socksys", DEVFS_FL_DEFAULT,
                                       30, 0,
-                                      S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                                      S_IFCHR | S_IRUSR | S_IWUSR,
                                       &socksys_fops, NULL);
        file = fcheck(ret);
        /* N.B. Is this valid? Suppose the f_ops are in a module ... */
index 51bb6b1a3aa9e64ccdfd31dcaf2cb7e1e80143f4..62758a297f8d3b92b3ab768505fd0d8b76256798 100644 (file)
@@ -1009,7 +1009,7 @@ int slm_init( void )
        
        devfs_handle = devfs_mk_dir (NULL, "slm", 3, NULL);
        devfs_register_series (devfs_handle, "%u", MAX_SLM, DEVFS_FL_DEFAULT,
-                              MAJOR_NR, 0, S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                              MAJOR_NR, 0, S_IFCHR | S_IRUSR | S_IWUSR,
                               &slm_fops, NULL);
        return 0;
 }
index 8f47348189d3b45d7a08002af13d669b01e0495a..1fcd8b73f8842b3d43fa773b5994c60551faab1b 100644 (file)
@@ -3878,10 +3878,10 @@ static void __init register_devfs_entries (int drive)
            char name[16];
 
            sprintf (name, "%d%s", drive, table[table_sup[UDP->cmos][i]]);
-           devfs_register (devfs_handle, name, 0, DEVFS_FL_DEFAULT, MAJOR_NR,
+           devfs_register (devfs_handle, name, DEVFS_FL_DEFAULT, MAJOR_NR,
                            base_minor + (table_sup[UDP->cmos][i] << 2),
                            S_IFBLK | S_IRUSR | S_IWUSR | S_IRGRP |S_IWGRP,
-                           0, 0, &floppy_fops, NULL);
+                           &floppy_fops, NULL);
        } while (table_sup[UDP->cmos][i++]);
     }
 }
index 96dacdc225f797a7bfb11bfe5d2e1af55fb5173c..89018e54a915589964a37dc2a5093d87ed7e1846 100644 (file)
@@ -785,7 +785,7 @@ int __init loop_init(void)
        devfs_handle = devfs_mk_dir (NULL, "loop", 0, NULL);
        devfs_register_series (devfs_handle, "%u", max_loop, DEVFS_FL_DEFAULT,
                               MAJOR_NR, 0,
-                              S_IFBLK | S_IRUSR | S_IWUSR | S_IRGRP, 0, 0,
+                              S_IFBLK | S_IRUSR | S_IWUSR | S_IRGRP,
                               &lo_fops, NULL);
 
        if ((max_loop < 1) || (max_loop > 255)) {
index 918dbdaf26367b4f515c0d08cab0ef2afb4c9c26..617990e771ba6ec47285683e77b8364348b365c5 100644 (file)
@@ -3629,7 +3629,7 @@ int md__init md_init (void)
        }
        devfs_handle = devfs_mk_dir (NULL, "md", 0, NULL);
        devfs_register_series (devfs_handle, "%u",MAX_MD_DEVS,DEVFS_FL_DEFAULT,
-                               MAJOR_NR, 0, S_IFBLK | S_IRUSR | S_IWUSR, 0, 0,
+                               MAJOR_NR, 0, S_IFBLK | S_IRUSR | S_IWUSR,
                                &md_fops, NULL);
 
        blk_dev[MD_MAJOR].queue = md_get_queue;
index 8256c57bd0b0030396ead7100e5203b1a649298a..222622c359833220259d2afe7f697e653fc81b10 100644 (file)
@@ -519,9 +519,9 @@ int nbd_init(void)
        }
        devfs_handle = devfs_mk_dir (NULL, "nbd", 0, NULL);
        devfs_register_series (devfs_handle, "%u", MAX_NBD,
-               DEVFS_FL_DEFAULT, MAJOR_NR, 0,
-               S_IFBLK | S_IRUSR | S_IWUSR, 0, 0,
-               &nbd_fops, NULL);
+                              DEVFS_FL_DEFAULT, MAJOR_NR, 0,
+                              S_IFBLK | S_IRUSR | S_IWUSR,
+                              &nbd_fops, NULL);
 
        return 0;
 }
index 3cb11286da1d6c9778c8c811ed40a3241f669717..5c4dbbee8434c75f3c64629996ec7a2807e19625 100644 (file)
@@ -309,7 +309,7 @@ int pg_init (void)      /* preliminary initialisation */
        }
        devfs_handle = devfs_mk_dir (NULL, "pg", 2, NULL);
        devfs_register_series (devfs_handle, "%u", 4, DEVFS_FL_DEFAULT,
-                              major, 0, S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                              major, 0, S_IFCHR | S_IRUSR | S_IWUSR,
                               &pg_fops, NULL);
        return 0;
 }
index 739755a93787ad1dab507acfc5d58735e6a22f37..52c67d01796a5a9e325f4011dffdfe206f435355 100644 (file)
@@ -314,10 +314,10 @@ int pt_init (void)      /* preliminary initialisation */
 
        devfs_handle = devfs_mk_dir (NULL, "pt", 2, NULL);
        devfs_register_series (devfs_handle, "%u", 4, DEVFS_FL_DEFAULT,
-                              major, 0, S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                              major, 0, S_IFCHR | S_IRUSR | S_IWUSR,
                               &pt_fops, NULL);
        devfs_register_series (devfs_handle, "%un", 4, DEVFS_FL_DEFAULT,
-                              major, 128, S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                              major, 128, S_IFCHR | S_IRUSR | S_IWUSR,
                               &pt_fops, NULL);
         return 0;
 }
index 564f822eaa8e773c6d3bef8d8785a0525d66c050..26c0509d22957eed123a1712663d0b2688c92c64 100644 (file)
@@ -411,7 +411,7 @@ int __init rd_init (void)
        devfs_handle = devfs_mk_dir (NULL, "rd", 0, NULL);
        devfs_register_series (devfs_handle, "%u", NUM_RAMDISKS,
                               DEVFS_FL_DEFAULT, MAJOR_NR, 0,
-                              S_IFBLK | S_IRUSR | S_IWUSR, 0, 0,
+                              S_IFBLK | S_IRUSR | S_IWUSR,
                               &fd_fops, NULL);
 
        for (i = 0; i < NUM_RAMDISKS; i++)
index aaad8e0c6bc29e0a0d27502612e735d0be962c37..e32238d323590c4b7d39aa537e1a7c8716194e78 100644 (file)
@@ -1791,8 +1791,8 @@ int __init aztcd_init(void)
                return -EIO;
             }
         }
-       devfs_register (NULL, "aztcd", 0, DEVFS_FL_DEFAULT, MAJOR_NR, 0,
-                       S_IFBLK | S_IRUGO | S_IWUGO, 0, 0, &azt_fops, NULL);
+       devfs_register (NULL, "aztcd", DEVFS_FL_DEFAULT, MAJOR_NR, 0,
+                       S_IFBLK | S_IRUGO | S_IWUGO, &azt_fops, NULL);
        if (devfs_register_blkdev(MAJOR_NR, "aztcd", &azt_fops) != 0)
        {
                printk("aztcd: Unable to get major %d for Aztech CD-ROM\n",
index 6b117a6be8e42db81680095c41902ade77620e12..caa3900b3a6f34e6ee1610348e9054eb9427de6c 100644 (file)
@@ -408,9 +408,9 @@ int register_cdrom(struct cdrom_device_info *cdi)
        }
        else {
                cdi->de =
-                   devfs_register (devfs_handle, vname, 0, DEVFS_FL_DEFAULT,
+                   devfs_register (devfs_handle, vname, DEVFS_FL_DEFAULT,
                                    MAJOR (cdi->dev), MINOR (cdi->dev),
-                                   S_IFBLK | S_IRUGO | S_IWUGO, 0, 0,
+                                   S_IFBLK | S_IRUGO | S_IWUGO,
                                    &cdrom_fops, NULL);
        }
        cdinfo(CD_REG_UNREG, "drive \"/dev/%s\" registered\n", cdi->name);
index f563a16c03137458cbcb2ff5b4274132d28d9723..b0fa47b3ed383ecae610903166eb9fbb420b1c42 100644 (file)
@@ -1075,8 +1075,8 @@ int result;
                       MAJOR_NR);
                return -EIO;
        }
-       devfs_register (NULL, "gscd", 0, DEVFS_FL_DEFAULT, MAJOR_NR, 0,
-                       S_IFBLK | S_IRUGO | S_IWUGO, 0, 0, &gscd_fops, NULL);
+       devfs_register (NULL, "gscd", DEVFS_FL_DEFAULT, MAJOR_NR, 0,
+                       S_IFBLK | S_IRUGO | S_IWUGO, &gscd_fops, NULL);
 
        blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), DEVICE_REQUEST);
        blksize_size[MAJOR_NR] = gscd_blocksizes;
index 07f1f030cb7a6713e19ba67888d8b676f7c31262..480a01833ab79f52f18ce9943039d3936d762db7 100644 (file)
@@ -2064,8 +2064,8 @@ int __init optcd_init(void)
                printk(KERN_ERR "optcd: unable to get major %d\n", MAJOR_NR);
                return -EIO;
        }
-       devfs_register (NULL, "optcd", 0, DEVFS_FL_DEFAULT, MAJOR_NR, 0,
-                       S_IFBLK | S_IRUGO | S_IWUGO, 0, 0, &opt_fops, NULL);
+       devfs_register (NULL, "optcd", DEVFS_FL_DEFAULT, MAJOR_NR, 0,
+                       S_IFBLK | S_IRUGO | S_IWUGO, &opt_fops, NULL);
        hardsect_size[MAJOR_NR] = &hsecsize;
        blksize_size[MAJOR_NR] = &blksize;
        blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), DEVICE_REQUEST);
index 01dd94bf5ac60580b405e24b84d60e44fb93a9b7..08400a52ceca3f26552e6f9109d3cb7d813c8091 100644 (file)
@@ -5803,9 +5803,9 @@ int __init SBPCD_INIT(void)
 
                sprintf (nbuff, "c%dt%d/cd", SBPCD_ISSUE - 1, D_S[j].drv_id);
                sbpcd_infop->de =
-                   devfs_register (devfs_handle, nbuff, 0, DEVFS_FL_DEFAULT,
+                   devfs_register (devfs_handle, nbuff, DEVFS_FL_DEFAULT,
                                    MAJOR_NR, j, S_IFBLK | S_IRUGO | S_IWUGO,
-                                   0, 0, &cdrom_fops, NULL);
+                                   &cdrom_fops, NULL);
                if (register_cdrom(sbpcd_infop))
                {
                        printk(" sbpcd: Unable to register with Uniform CD-ROm driver\n");
index 82dd5e5b9a1beb711e1f231d34c48fb673a178d2..a867c3819b0c69b5ac6786facb93c3d0e3cc24ba 100644 (file)
@@ -1565,8 +1565,8 @@ int __init sjcd_init( void ){
   }
 
   printk(KERN_INFO "SJCD: Status: port=0x%x.\n", sjcd_base);
-  devfs_register (NULL, "sjcd", 0, DEVFS_FL_DEFAULT, MAJOR_NR, 0,
-                 S_IFBLK | S_IRUGO | S_IWUGO, 0, 0, &sjcd_fops, NULL);
+  devfs_register (NULL, "sjcd", DEVFS_FL_DEFAULT, MAJOR_NR, 0,
+                 S_IFBLK | S_IRUGO | S_IWUGO, &sjcd_fops, NULL);
 
   sjcd_present++;
   return( 0 );
index 1f5fea7b93922a4106e188664e8bf4d6d75a3408..d85fbc01f1a7c43e4168401e196790571c2950aa 100644 (file)
@@ -1587,11 +1587,11 @@ sony535_init(void)
                                        printk("IRQ%d, ", tmp_irq);
                                printk("using %d byte buffer\n", sony_buffer_size);
 
-                               devfs_register (NULL, CDU535_HANDLE, 0,
+                               devfs_register (NULL, CDU535_HANDLE,
                                                DEVFS_FL_DEFAULT,
                                                MAJOR_NR, 0,
                                                S_IFBLK | S_IRUGO | S_IWUGO,
-                                               0, 0, &cdu_fops, NULL);
+                                               &cdu_fops, NULL);
                                if (devfs_register_blkdev(MAJOR_NR, CDU535_HANDLE, &cdu_fops)) {
                                        printk("Unable to get major %d for %s\n",
                                                        MAJOR_NR, CDU535_MESSAGE_NAME);
index dc076dd5a400a34d8fbc1c2b51537dbc46fbb902..6fe41e118c2988fa867eb6307e76419d42402d91 100644 (file)
@@ -519,9 +519,9 @@ int __init dsp56k_init(void)
                printk("DSP56k driver: Unable to register driver\n");
                return -ENODEV;
        }
-       devfs_handle = devfs_register (NULL, "dsp56k", 0, DEVFS_FL_NONE,
+       devfs_handle = devfs_register (NULL, "dsp56k", DEVFS_FL_DEFAULT,
                                       DSP56K_MAJOR, 0,
-                                      S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                                      S_IFCHR | S_IRUSR | S_IWUSR,
                                       &dsp56k_fops, NULL);
 
        dsp56k.in_use = 0;
index 730b69b1773dd5a59ee409c5a1d86dac594644d2..475e1d0529b538b6672df94eba77f12cac468c33 100644 (file)
@@ -352,9 +352,9 @@ static int __init dtlk_init(void)
        }
        if (dtlk_dev_probe() == 0)
                printk(", MAJOR %d\n", dtlk_major);
-       devfs_handle = devfs_register (NULL, "dtlk", 0, DEVFS_FL_NONE,
+       devfs_handle = devfs_register (NULL, "dtlk", DEVFS_FL_DEFAULT,
                                       dtlk_major, DTLK_MINOR,
-                                      S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                                      S_IFCHR | S_IRUSR | S_IWUSR,
                                       &dtlk_fops, NULL);
 
        init_timer(&dtlk_timer);
index 883f4a1068cf360348806991f2cb5f8abb359167..e6cb87d1e25c4ed4d8cefe10dc3c740abe939a79 100644 (file)
@@ -439,34 +439,34 @@ KERN_INFO
                char devname[9];
 
                sprintf (devname, "qft%i", i);
-               devfs_register (NULL, devname, 0, DEVFS_FL_NONE,
+               devfs_register (NULL, devname, DEVFS_FL_DEFAULT,
                                QIC117_TAPE_MAJOR, i,
-                               S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                               S_IFCHR | S_IRUSR | S_IWUSR,
                                &zft_cdev, NULL);
                sprintf (devname, "nqft%i", i);
-               devfs_register (NULL, devname, 0, DEVFS_FL_NONE,
+               devfs_register (NULL, devname, DEVFS_FL_DEFAULT,
                                QIC117_TAPE_MAJOR, i + 4,
-                               S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                               S_IFCHR | S_IRUSR | S_IWUSR,
                                &zft_cdev, NULL);
                sprintf (devname, "zqft%i", i);
-               devfs_register (NULL, devname, 0, DEVFS_FL_NONE,
+               devfs_register (NULL, devname, DEVFS_FL_DEFAULT,
                                QIC117_TAPE_MAJOR, i + 16,
-                               S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                               S_IFCHR | S_IRUSR | S_IWUSR,
                                &zft_cdev, NULL);
                sprintf (devname, "nzqft%i", i);
-               devfs_register (NULL, devname, 0, DEVFS_FL_NONE,
+               devfs_register (NULL, devname, DEVFS_FL_DEFAULT,
                                QIC117_TAPE_MAJOR, i + 20,
-                               S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                               S_IFCHR | S_IRUSR | S_IWUSR,
                                &zft_cdev, NULL);
                sprintf (devname, "rawqft%i", i);
-               devfs_register (NULL, devname, 0, DEVFS_FL_NONE,
+               devfs_register (NULL, devname, DEVFS_FL_DEFAULT,
                                QIC117_TAPE_MAJOR, i + 32,
-                               S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                               S_IFCHR | S_IRUSR | S_IWUSR,
                                &zft_cdev, NULL);
                sprintf (devname, "nrawqft%i", i);
-               devfs_register (NULL, devname, 0, DEVFS_FL_NONE,
+               devfs_register (NULL, devname, DEVFS_FL_DEFAULT,
                                QIC117_TAPE_MAJOR, i + 36,
-                               S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                               S_IFCHR | S_IRUSR | S_IWUSR,
                                &zft_cdev, NULL);
        }
 
index 033eb9aafe72395f4a6ca063fed1c3641dcf6481..a645832c47afa0b703eae96214fffe6402e6cca7 100644 (file)
@@ -877,19 +877,19 @@ old_ip2_init(void)
 #ifdef CONFIG_DEVFS_FS
                        sprintf( name, "ipl%d", i );
                        i2BoardPtrTable[i]->devfs_ipl_handle =
-                               devfs_register (devfs_handle, name, 0,
-                                       DEVFS_FL_NONE,
+                               devfs_register (devfs_handle, name,
+                                       DEVFS_FL_DEFAULT,
                                        IP2_IPL_MAJOR, 4 * i,
                                        S_IRUSR | S_IWUSR | S_IRGRP | S_IFCHR,
-                                       0, 0, &ip2_ipl, NULL);
+                                       &ip2_ipl, NULL);
 
                        sprintf( name, "stat%d", i );
                        i2BoardPtrTable[i]->devfs_stat_handle =
-                               devfs_register (devfs_handle, name, 0,
-                                       DEVFS_FL_NONE,
+                               devfs_register (devfs_handle, name,
+                                       DEVFS_FL_DEFAULT,
                                        IP2_IPL_MAJOR, 4 * i + 1,
                                        S_IRUSR | S_IWUSR | S_IRGRP | S_IFCHR,
-                                       0, 0, &ip2_ipl, NULL);
+                                       &ip2_ipl, NULL);
 
                        for ( box = 0; box < ABS_MAX_BOXES; ++box )
                        {
index 8d16c9daf1adcc738ba2da77c0a543029971cb12..81421c032997d8692ff88c5cc465f7858f667c96 100644 (file)
@@ -5310,7 +5310,7 @@ int __init stli_init(void)
        devfs_handle = devfs_mk_dir (NULL, "staliomem", 9, NULL);
        devfs_register_series (devfs_handle, "%u", 4, DEVFS_FL_DEFAULT,
                               STL_SIOMEMMAJOR, 0,
-                              S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                              S_IFCHR | S_IRUSR | S_IWUSR,
                               &stli_fsiomem, NULL);
 
 /*
index c2df7ea1858c0c1d49a92bd20b77967d440f73cd..bbbcad9a7c34da7e0ee665f8bf0a8566e5c22f76 100644 (file)
@@ -675,9 +675,9 @@ static int lp_register(int nr, struct parport *port)
                lp_reset(nr);
 
        sprintf (name, "%d", nr);
-       devfs_register (devfs_handle, name, 0,
+       devfs_register (devfs_handle, name,
                        DEVFS_FL_DEFAULT, LP_MAJOR, nr,
-                       S_IFCHR | S_IRUGO | S_IWUGO, 0, 0,
+                       S_IFCHR | S_IRUGO | S_IWUGO,
                        &lp_fops, NULL);
 
        printk(KERN_INFO "lp%d: using %s (%s).\n", nr, port->name, 
index 98ec4f5c69a986553fc9bc758d5f70be391d2395..8f7e6017a7526b1069c45280e0e975ea6799ed33 100644 (file)
@@ -605,9 +605,9 @@ void __init memory_devfs_register (void)
     int i;
 
     for (i=0; i<(sizeof(list)/sizeof(*list)); i++)
-       devfs_register (NULL, list[i].name, 0, DEVFS_FL_NONE,
+       devfs_register (NULL, list[i].name, DEVFS_FL_NONE,
                        MEM_MAJOR, list[i].minor,
-                       list[i].mode | S_IFCHR, 0, 0,
+                       list[i].mode | S_IFCHR,
                        list[i].fops, NULL);
 }
 
index cecf896168d0ccc4e09d3ad9d136b3cd6637af38..057da451c8d9a4303c2b4b95a13fe7ee30c1b8a9 100644 (file)
@@ -192,9 +192,9 @@ int misc_register(struct miscdevice * misc)
        if (!devfs_handle)
                devfs_handle = devfs_mk_dir (NULL, "misc", 4, NULL);
        misc->devfs_handle =
-           devfs_register (devfs_handle, misc->name, 0, DEVFS_FL_NONE,
+           devfs_register (devfs_handle, misc->name, DEVFS_FL_NONE,
                            MISC_MAJOR, misc->minor,
-                           S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP, 0, 0,
+                           S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP,
                            misc->fops, NULL);
 
        /*
index 819ed0b1a8bda85529dcd9ac3cf8cf71a5ae1a07..af52cf98f47d73c6d7265408fb01d4983ce94aa8 100644 (file)
@@ -665,7 +665,7 @@ static int __init ppdev_init (void)
        devfs_handle = devfs_mk_dir (NULL, "parports", 0, NULL);
        devfs_register_series (devfs_handle, "%u", PARPORT_MAX,
                               DEVFS_FL_DEFAULT, PP_MAJOR, 0,
-                              S_IFCHR | S_IRUGO | S_IWUGO, 0, 0,
+                              S_IFCHR | S_IRUGO | S_IWUGO,
                               &pp_fops, NULL);
 
        printk (KERN_INFO PP_VERSION "\n");
index fdaeeaea063e9ff7a6f145520039e881f1004251..ba1b9caa973615221438862de8b2c6d52ded2f7e 100644 (file)
@@ -3194,7 +3194,7 @@ int __init stl_init(void)
        devfs_handle = devfs_mk_dir (NULL, "staliomem", 9, NULL);
        devfs_register_series (devfs_handle, "%u", 4, DEVFS_FL_DEFAULT,
                               STL_SIOMEMMAJOR, 0,
-                              S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                              S_IFCHR | S_IRUSR | S_IWUSR,
                               &stl_fsiomem, NULL);
 
 /*
index 133f19aac06014df1c2d6ed5a824d51cdc6dc57d..09b502a723c738ac2be66aaea2df250c2fabee85 100644 (file)
@@ -2905,37 +2905,37 @@ int __init qic02_tape_init(void)
 #endif
        return -ENODEV;
     }
-    devfs_register (NULL, "ntpqic11", 0, DEVFS_FL_NONE,
+    devfs_register (NULL, "ntpqic11", DEVFS_FL_DEFAULT,
                    QIC02_TAPE_MAJOR, 2,
-                   S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP, 0, 0,
+                   S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP,
                    &qic02_tape_fops, NULL);
-    devfs_register (NULL, "tpqic11", 0, DEVFS_FL_NONE,
+    devfs_register (NULL, "tpqic11", DEVFS_FL_DEFAULT,
                    QIC02_TAPE_MAJOR, 3,
-                   S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP, 0, 0,
+                   S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP,
                    &qic02_tape_fops, NULL);
-    devfs_register (NULL, "ntpqic24", 0, DEVFS_FL_NONE,
+    devfs_register (NULL, "ntpqic24", DEVFS_FL_DEFAULT,
                    QIC02_TAPE_MAJOR, 4,
-                   S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP, 0, 0,
+                   S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP,
                    &qic02_tape_fops, NULL);
-    devfs_register (NULL, "tpqic24", 0, DEVFS_FL_NONE,
+    devfs_register (NULL, "tpqic24", DEVFS_FL_DEFAULT,
                    QIC02_TAPE_MAJOR, 5,
-                   S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP, 0, 0,
+                   S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP,
                    &qic02_tape_fops, NULL);
-    devfs_register (NULL, "ntpqic120", 0, DEVFS_FL_NONE,
+    devfs_register (NULL, "ntpqic120", DEVFS_FL_DEFAULT,
                    QIC02_TAPE_MAJOR, 6,
-                   S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP, 0, 0,
+                   S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP,
                    &qic02_tape_fops, NULL);
-    devfs_register (NULL, "tpqic120", 0, DEVFS_FL_NONE,
+    devfs_register (NULL, "tpqic120", DEVFS_FL_DEFAULT,
                    QIC02_TAPE_MAJOR, 7,
-                   S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP, 0, 0,
+                   S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP,
                    &qic02_tape_fops, NULL);
-    devfs_register (NULL, "ntpqic150", 0, DEVFS_FL_NONE,
+    devfs_register (NULL, "ntpqic150", DEVFS_FL_DEFAULT,
                    QIC02_TAPE_MAJOR, 8,
-                   S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP, 0, 0,
+                   S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP,
                    &qic02_tape_fops, NULL);
-    devfs_register (NULL, "tpqic150", 0, DEVFS_FL_NONE,
+    devfs_register (NULL, "tpqic150", DEVFS_FL_DEFAULT,
                    QIC02_TAPE_MAJOR, 9,
-                   S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP, 0, 0,
+                   S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP,
                    &qic02_tape_fops, NULL);
     init_waitqueue_head(&qic02_tape_transfer);
     /* prepare timer */
index d702851d787edf45da3f63ab943e73e5ab09626a..6038b0ebd1f85c10bf9738f84c182010fe6e4797 100644 (file)
@@ -1968,8 +1968,6 @@ void tty_register_devfs (struct tty_driver *driver, unsigned int flags,
 {
 #ifdef CONFIG_DEVFS_FS
        umode_t mode = S_IFCHR | S_IRUSR | S_IWUSR;
-       uid_t uid = 0;
-       gid_t gid = 0;
        struct tty_struct tty;
        char buf[32];
 
@@ -1993,14 +1991,11 @@ void tty_register_devfs (struct tty_driver *driver, unsigned int flags,
        }
 #  ifdef CONFIG_UNIX98_PTYS
        if ( (driver->major >= UNIX98_PTY_SLAVE_MAJOR) &&
-            (driver->major < UNIX98_PTY_SLAVE_MAJOR + UNIX98_NR_MAJORS) ) {
-               uid = current->uid;
-               gid = current->gid;
-       }
+            (driver->major < UNIX98_PTY_SLAVE_MAJOR + UNIX98_NR_MAJORS) )
+               flags |= DEVFS_FL_CURRENT_OWNER;
 #  endif
-       devfs_register (NULL, tty_name (&tty, buf), 0,flags | DEVFS_FL_DEFAULT,
-                       driver->major, minor, mode, uid, gid,
-                       &tty_fops, NULL);
+       devfs_register (NULL, tty_name (&tty, buf), flags | DEVFS_FL_DEFAULT,
+                       driver->major, minor, mode, &tty_fops, NULL);
 #endif /* CONFIG_DEVFS_FS */
 }
 
index 5138c76b88a338ca4cf85d6704949ef5f34f2169..67ff8d856373a61317514e2095b653ad4284f36c 100644 (file)
@@ -476,12 +476,12 @@ void vcs_make_devfs (unsigned int index, int unregister)
     }
     else
     {
-       devfs_register (devfs_handle, name + 1, 0, DEVFS_FL_DEFAULT,
+       devfs_register (devfs_handle, name + 1, DEVFS_FL_DEFAULT,
                        VCS_MAJOR, index + 1,
-                       S_IFCHR | S_IRUSR | S_IWUSR, 0, 0, &vcs_fops, NULL);
-       devfs_register (devfs_handle, name, 0, DEVFS_FL_DEFAULT,
+                       S_IFCHR | S_IRUSR | S_IWUSR, &vcs_fops, NULL);
+       devfs_register (devfs_handle, name, DEVFS_FL_DEFAULT,
                        VCS_MAJOR, index + 129,
-                       S_IFCHR | S_IRUSR | S_IWUSR, 0, 0, &vcs_fops, NULL);
+                       S_IFCHR | S_IRUSR | S_IWUSR, &vcs_fops, NULL);
     }
 #endif /* CONFIG_DEVFS_FS */
 }
@@ -496,12 +496,12 @@ int __init vcs_init(void)
                printk("unable to get major %d for vcs device", VCS_MAJOR);
 
        devfs_handle = devfs_mk_dir (NULL, "vcc", 3, NULL);
-       devfs_register (devfs_handle, "0", 1, DEVFS_FL_DEFAULT,
+       devfs_register (devfs_handle, "0", DEVFS_FL_DEFAULT,
                        VCS_MAJOR, 0,
-                       S_IFCHR | S_IRUSR | S_IWUSR, 0, 0, &vcs_fops, NULL);
-       devfs_register (devfs_handle, "a", 1, DEVFS_FL_DEFAULT,
+                       S_IFCHR | S_IRUSR | S_IWUSR, &vcs_fops, NULL);
+       devfs_register (devfs_handle, "a", DEVFS_FL_DEFAULT,
                        VCS_MAJOR, 128,
-                       S_IFCHR | S_IRUSR | S_IWUSR, 0, 0, &vcs_fops, NULL);
+                       S_IFCHR | S_IRUSR | S_IWUSR, &vcs_fops, NULL);
 
        return error;
 }
index 0e743d5c46b7b29eb9d5735b98d79a600c61e419..4a3bfb8591573be5f581dc12648bd4e13a963c49 100644 (file)
@@ -469,9 +469,9 @@ int video_register_device(struct video_device *vfd, int type)
                         *      has serious privacy issues.
                         */
                        vfd->devfs_handle =
-                           devfs_register (NULL, name, 0, DEVFS_FL_DEFAULT,
+                           devfs_register (NULL, name, DEVFS_FL_DEFAULT,
                                            VIDEO_MAJOR, vfd->minor,
-                                           S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                                           S_IFCHR | S_IRUSR | S_IWUSR,
                                            &video_fops, NULL);
 
 #if defined(CONFIG_PROC_FS) && defined(CONFIG_VIDEO_PROC_FS)
index ab4d3afbb9e158597f13b9008bb0539bca24db3f..53f6b5a9e7b69df19931d971f13a82352c1aeb13 100644 (file)
@@ -2199,9 +2199,9 @@ static int ide_cdrom_register (ide_drive_t *drive, int nslots)
        if (!CDROM_CONFIG_FLAGS (drive)->close_tray)
                devinfo->mask |= CDC_CLOSE_TRAY;
 
-       devinfo->de = devfs_register(drive->de, "cd", 2, DEVFS_FL_DEFAULT,
+       devinfo->de = devfs_register(drive->de, "cd", DEVFS_FL_DEFAULT,
                                     HWIF(drive)->major, minor,
-                                    S_IFBLK | S_IRUGO | S_IWUGO, 0, 0,
+                                    S_IFBLK | S_IRUGO | S_IWUGO,
                                     ide_fops, NULL);
 
        return register_cdrom(devinfo);
index 09e1b12fb71eb8c262581edca60cdd2f597ed79f..911234014e6a9ed5db00c42d22f9559c05853ce0 100644 (file)
@@ -5987,14 +5987,14 @@ int idetape_init (void)
                idetape_setup (drive, tape, minor);
                idetape_chrdevs[minor].drive = drive;
                tape->de_r =
-                   devfs_register (drive->de, "mt", 2, DEVFS_FL_DEFAULT,
+                   devfs_register (drive->de, "mt", DEVFS_FL_DEFAULT,
                                    HWIF(drive)->major, minor,
-                                   S_IFCHR | S_IRUGO | S_IWUGO, 0, 0,
+                                   S_IFCHR | S_IRUGO | S_IWUGO,
                                    &idetape_fops, NULL);
                tape->de_n =
-                   devfs_register (drive->de, "mtn", 3, DEVFS_FL_DEFAULT,
+                   devfs_register (drive->de, "mtn", DEVFS_FL_DEFAULT,
                                    HWIF(drive)->major, minor + 128,
-                                   S_IFCHR | S_IRUGO | S_IWUGO, 0, 0,
+                                   S_IFCHR | S_IRUGO | S_IWUGO,
                                    &idetape_fops, NULL);
                devfs_register_tape (tape->de_r);
                supported++; failed--;
index 972019295cb9eb84b0edcdbf3f04d6c3e5156483..8169df4820c46c79be160a888e7de104a4342069 100644 (file)
@@ -2053,11 +2053,11 @@ int capi_init(void)
         devfs_register_series (NULL, "capi/r%u", CAPINC_NR_PORTS,
                              DEVFS_FL_DEFAULT,
                               capi_rawmajor, 0,
-                              S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                              S_IFCHR | S_IRUSR | S_IWUSR,
                               &capinc_raw_fops, NULL);
 #endif /* CONFIG_ISDN_CAPI_MIDDLEWARE */
-       devfs_register (NULL, "isdn/capi20", 0, DEVFS_FL_DEFAULT,
-                       capi_major, 0, S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+       devfs_register (NULL, "isdn/capi20", DEVFS_FL_DEFAULT,
+                       capi_major, 0, S_IFCHR | S_IRUSR | S_IWUSR,
                        &capi_fops, NULL);
        printk(KERN_NOTICE "capi20: started up with major %d\n", capi_major);
 
index aca7161841ed22fa834b83c77fa06500813a75f8..fa5a3d844413f04223ac036b813c7cb1a832d2ab 100644 (file)
@@ -2581,14 +2581,14 @@ static void isdn_register_devfs(int k)
 
        sprintf (buf, "isdn%d", k);
        dev->devfs_handle_isdnX[k] =
-           devfs_register (devfs_handle, buf, 0, DEVFS_FL_DEFAULT,
-                           ISDN_MAJOR, ISDN_MINOR_B + k,0600 | S_IFCHR, 0, 0,
+           devfs_register (devfs_handle, buf, DEVFS_FL_DEFAULT,
+                           ISDN_MAJOR, ISDN_MINOR_B + k,0600 | S_IFCHR,
                            &isdn_fops, NULL);
        sprintf (buf, "isdnctrl%d", k);
        dev->devfs_handle_isdnctrlX[k] =
-           devfs_register (devfs_handle, buf, 0, DEVFS_FL_DEFAULT,
+           devfs_register (devfs_handle, buf, DEVFS_FL_DEFAULT,
                            ISDN_MAJOR, ISDN_MINOR_CTRL + k, 0600 | S_IFCHR,
-                           0, 0, &isdn_fops, NULL);
+                           &isdn_fops, NULL);
 }
 
 static void isdn_unregister_devfs(int k)
@@ -2610,19 +2610,19 @@ static void isdn_init_devfs(void)
 
                sprintf (buf, "ippp%d", i);
                dev->devfs_handle_ipppX[i] =
-                   devfs_register (devfs_handle, buf, 0, DEVFS_FL_DEFAULT,
+                   devfs_register (devfs_handle, buf, DEVFS_FL_DEFAULT,
                                    ISDN_MAJOR, ISDN_MINOR_PPP + i,
-                                   0600 | S_IFCHR, 0, 0, &isdn_fops, NULL);
+                                   0600 | S_IFCHR, &isdn_fops, NULL);
        }
 #  endif
 
        dev->devfs_handle_isdninfo =
-           devfs_register (devfs_handle, "isdninfo", 0, DEVFS_FL_DEFAULT,
+           devfs_register (devfs_handle, "isdninfo", DEVFS_FL_DEFAULT,
                            ISDN_MAJOR, ISDN_MINOR_STATUS, 0600 | S_IFCHR,
-                           0, 0, &isdn_fops, NULL);
+                           &isdn_fops, NULL);
        dev->devfs_handle_isdnctrl =
-           devfs_register (devfs_handle, "isdnctrl", 0, DEVFS_FL_DEFAULT,
-                           ISDN_MAJOR, ISDN_MINOR_CTRL, 0600 | S_IFCHR, 0, 0, 
+           devfs_register (devfs_handle, "isdnctrl", DEVFS_FL_DEFAULT,
+                           ISDN_MAJOR, ISDN_MINOR_CTRL, 0600 | S_IFCHR,
                            &isdn_fops, NULL);
 }
 
index 2fc74f806136bd5d0a3695eb0d3256a68912a102..ff6f18ee1d34e203990adaf6381a76083496e076 100644 (file)
@@ -674,8 +674,8 @@ void adbdev_init()
        if (devfs_register_chrdev(ADB_MAJOR, "adb", &adb_fops))
                printk(KERN_ERR "adb: unable to get major %d\n", ADB_MAJOR);
        else
-               devfs_register (NULL, "adb", 0, DEVFS_FL_NONE,
+               devfs_register (NULL, "adb", DEVFS_FL_DEFAULT,
                                ADB_MAJOR, 0,
-                               S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                               S_IFCHR | S_IRUSR | S_IWUSR,
                                &adb_fops, NULL);
 }
index b9d5ebfc3bcdbc38bfda20304c94db520b851c4b..e43e3b394ac52531f9f7dc78a329b457d0876a22 100644 (file)
@@ -718,9 +718,9 @@ int __init ppp_init(void)
        err = devfs_register_chrdev(PPP_MAJOR, "ppp", &ppp_device_fops);
        if (err)
                printk(KERN_ERR "failed to register PPP device (%d)\n", err);
-       devfs_handle = devfs_register(NULL, "ppp", 0, DEVFS_FL_NONE,
+       devfs_handle = devfs_register(NULL, "ppp", DEVFS_FL_DEFAULT,
                                      PPP_MAJOR, 0,
-                                     S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                                     S_IFCHR | S_IRUSR | S_IWUSR,
                                      &ppp_device_fops, NULL);
 
        return 0;
index 6885d5fb1a8eec7d54ddc75c612ac668c8963949..c27d89ca9e32c4b21ad687b35ad29b166ff5656c 100644 (file)
@@ -398,7 +398,7 @@ static int __init cosa_init(void)
        devfs_handle = devfs_mk_dir (NULL, "cosa", 4, NULL);
        devfs_register_series (devfs_handle, "%u", nr_cards, DEVFS_FL_DEFAULT,
                               cosa_major, 0,
-                              S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                              S_IFCHR | S_IRUSR | S_IWUSR,
                               &cosa_fops, NULL);
        if (!nr_cards) {
                printk(KERN_WARNING "cosa: no devices found.\n");
index 79e8f27dc0c7d9904b8c31b29c7a92b284805af2..55e27c7d8aa96c8701fd2cf7b34243662f0a78c0 100644 (file)
@@ -792,11 +792,10 @@ register_dasd_last (int di)
                           dasd_info[di]->info.devno,'\0' );
                 dasd_info[di] -> devfs_entry =
                         devfs_register ( NULL /* dir */,
-                                         name, strlen(name),
-                                         0 /* flags */,
+                                         name,
+                                         DEVFS_FL_DEFAULT /* flags */,
                                          DASD_MAJOR, minor,
                                          0755 /* mode */, 
-                                         0 /* uid */ , 0 /* gid */,
                                          &dasd_device_operations, 
                                          (void *)dasd_info[di]);
         }
index 31856af31e812b1ab7da1d583214cc127b64baad..6e11610b00155bb85c89be222813ea006130706e 100644 (file)
@@ -2010,9 +2010,9 @@ int register_sparcaudio_driver(struct sparcaudio_driver *drv, int duplex)
        for (i=0; i < sizeof (dev_list) / sizeof (*dev_list); i++) {
                sparcaudio_mkname (name_buf, dev_list[i].name, dev);
                minor = (dev << SPARCAUDIO_DEVICE_SHIFT) | dev_list[i].minor;
-               devfs_register (devfs_handle, name_buf, 0, DEVFS_FL_NONE,
+               devfs_register (devfs_handle, name_buf, DEVFS_FL_NONE,
                                SOUND_MAJOR, minor, S_IFCHR | dev_list[i].mode,
-                               0, 0, &sparcaudio_fops, NULL);
+                               &sparcaudio_fops, NULL);
        }
 
         /* Setup the circular queues of output and input buffers
index ba68100177ec2cf4f6a306e5fce2200ba7dab704..6dfc4c1322b81c4c92e33fd3a39f73bcc6d4fa6e 100644 (file)
@@ -1031,7 +1031,7 @@ int __init bpp_init(void)
        }
        devfs_handle = devfs_mk_dir (NULL, "bpp", 3, NULL);
        devfs_register_series (devfs_handle, "%u", BPP_NO, DEVFS_FL_DEFAULT,
-                              BPP_MAJOR, 0, S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                              BPP_MAJOR, 0, S_IFCHR | S_IRUSR | S_IWUSR,
                               &bpp_fops, NULL);
 
        return 0;
index 5f7ea69233ec1113319dcbef8aeae728912eb36b..8004569ab3a035904f07a350fa8e530295421e11 100644 (file)
@@ -1605,9 +1605,9 @@ void __init keyboard_zsinit(void (*put_char)(unsigned char))
        spin_unlock_irq(&sunkbd_lock);
 
        /* Register the /dev/kbd interface */
-       devfs_register (NULL, "kbd", 0, DEVFS_FL_NONE,
+       devfs_register (NULL, "kbd", DEVFS_FL_DEFAULT,
                        KBD_MAJOR, 0,
-                       S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH, 0, 0,
+                       S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH,
                        &kbd_fops, NULL);
        if (devfs_register_chrdev (KBD_MAJOR, "kbd", &kbd_fops)){
                printk ("Could not register /dev/kbd device\n");
index dee47f98bf643d4c76dc7da48a6f5ce21fcef290..589b787d057b5294e23cdeeff9130269a0a9bd2d 100644 (file)
@@ -166,9 +166,9 @@ int init_vfc_device(struct sbus_dev *sdev,struct vfc_dev *dev, int instance)
                return -EIO;
 
        sprintf (devname, "%d", instance);
-       dev->de = devfs_register (devfs_handle, devname, 0, DEVFS_FL_DEFAULT,
+       dev->de = devfs_register (devfs_handle, devname, DEVFS_FL_DEFAULT,
                                  VFC_MAJOR, instance,
-                                 S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                                 S_IFCHR | S_IRUSR | S_IWUSR,
                                  &vfc_fops, NULL);
        return 0;
 }
index 71b93e379a70cbc4dd37cc1ed9db9eba96d67dbd..4bfdc59f4f0cb9cae454c66ff7c57b6911d3b330 100644 (file)
@@ -1230,9 +1230,9 @@ static int sg_attach(Scsi_Device * scsidp)
     sdp->detached = 0;
     sdp->sg_tablesize = scsidp->host ? scsidp->host->sg_tablesize : 0;
     sdp->i_rdev = MKDEV(SCSI_GENERIC_MAJOR, k);
-    sdp->de = devfs_register (scsidp->de, "generic", 7, DEVFS_FL_NONE,
+    sdp->de = devfs_register (scsidp->de, "generic", DEVFS_FL_DEFAULT,
                              SCSI_GENERIC_MAJOR, k,
-                             S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP, 0, 0,
+                             S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP,
                              &sg_fops, NULL);
     sg_template.nr_dev++;
     sg_dev_arr[k] = sdp;
index e568c6d1bd52c2f320e27ffc23f735b09b3e4e00..3e1aeec016e23e466add42cc353ac0633fb2fad2 100644 (file)
@@ -777,9 +777,9 @@ void sr_finish()
                sprintf(name, "sr%d", i);
                strcpy(scsi_CDs[i].cdi.name, name);
                 scsi_CDs[i].cdi.de =
-                    devfs_register (scsi_CDs[i].device->de, "cd", 2,
+                    devfs_register (scsi_CDs[i].device->de, "cd",
                                     DEVFS_FL_DEFAULT, MAJOR_NR, i,
-                                    S_IFBLK | S_IRUGO | S_IWUGO, 0, 0,
+                                    S_IFBLK | S_IRUGO | S_IWUGO,
                                     &cdrom_fops, NULL);
                register_cdrom(&scsi_CDs[i].cdi);
        }
index a9d08c16593777f87a43427cb667224ea39336b0..bdc3e8002f478287635a6013493a291d6cd46daf 100644 (file)
@@ -3509,17 +3509,17 @@ static int st_attach(Scsi_Device * SDp)
            /*  Rewind entry  */
            sprintf (name, "mt%s", formats[mode]);
            tpnt->de_r[mode] =
-               devfs_register (SDp->de, name, 0, DEVFS_FL_DEFAULT,
+               devfs_register (SDp->de, name, DEVFS_FL_DEFAULT,
                                MAJOR_NR, i + (mode << 5),
                                S_IFCHR | S_IRUGO | S_IWUGO,
-                               0, 0, &st_fops, NULL);
+                               &st_fops, NULL);
            /*  No-rewind entry  */
            sprintf (name, "mt%sn", formats[mode]);
            tpnt->de_n[mode] =
-               devfs_register (SDp->de, name, 0, DEVFS_FL_DEFAULT,
+               devfs_register (SDp->de, name, DEVFS_FL_DEFAULT,
                                MAJOR_NR, i + (mode << 5) + 128,
                                S_IFCHR | S_IRUGO | S_IWUGO,
-                               0, 0, &st_fops, NULL);
+                               &st_fops, NULL);
        }
        devfs_register_tape (tpnt->de_r[0]);
        tpnt->device = SDp;
index 2d6a4b6f4fc9a911a0266e9f48ed457f6c7f8b89..73e0067595d2d264a977db2a18faff21e26a7533 100644 (file)
@@ -446,11 +446,11 @@ shmiq_init (void)
 {
        printk ("SHMIQ setup\n");
        devfs_register_chrdev(SHMIQ_MAJOR, "shmiq", &shmiq_fops);
-       devfs_register (NULL, "shmiq", 0, DEVFS_FL_DEFAULT,
-                       SHMIQ_MAJOR, 0, S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+       devfs_register (NULL, "shmiq", DEVFS_FL_DEFAULT,
+                       SHMIQ_MAJOR, 0, S_IFCHR | S_IRUSR | S_IWUSR,
                        &shmiq_fops, NULL);
        devfs_register_series (NULL, "qcntl%u", 2, DEVFS_FL_DEFAULT,
                               SHMIQ_MAJOR, 1,
-                              S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                              S_IFCHR | S_IRUSR | S_IWUSR,
                               &shmiq_fops, NULL);
 }
index da0cfe51c4c2f02f805cfd3f8f9575ca47c55928..9ec821b91df39c14af361fad8a3cbc8735a08a33 100644 (file)
@@ -175,9 +175,9 @@ static int sound_insert_unit(struct sound_unit **list, struct file_operations *f
                sprintf (name_buf, "%s", name);
        else
                sprintf (name_buf, "%s%d", name, (r - low) / SOUND_STEP);
-       s->de = devfs_register (devfs_handle, name_buf, 0,
+       s->de = devfs_register (devfs_handle, name_buf,
                                DEVFS_FL_NONE, SOUND_MAJOR, s->unit_minor,
-                               S_IFCHR | mode, 0, 0, fops, NULL);
+                               S_IFCHR | mode, fops, NULL);
        return r;
 }
 
index 5018ad1e774671290238761abbf40225a1f7786a..aa7b82280792c3d195e2d8dc7aae802fa8b605a3 100644 (file)
@@ -565,9 +565,9 @@ static void soundcard_register_devfs (int do_register)
                for (j = 0; j < num || j == 0; j++) {
                        soundcard_make_name (name_buf, dev_list[i].name, j);
                        if (do_register)
-                               devfs_register (NULL, name_buf, 0, DEVFS_FL_NONE,
+                               devfs_register (NULL, name_buf, DEVFS_FL_NONE,
                                        SOUND_MAJOR, dev_list[i].minor+ (j* 0x10),
-                                       S_IFCHR | dev_list[i].mode, 0, 0,
+                                       S_IFCHR | dev_list[i].mode,
                                        &oss_sound_fops, NULL);
                        else {
                                devfs_handle_t de;
index 66a3d2911631e179322e6c1db7e8d10307e31d6c..4fb2985af63ce9363047dd82261be3a323211b3e 100644 (file)
@@ -386,8 +386,8 @@ devfs_handle_t input_register_minor(char *name, int minor, int minor_base)
 {
        char devfs_name[16];
        sprintf(devfs_name, name, minor);
-       return devfs_register(input_devfs_handle, devfs_name, 0, DEVFS_FL_DEFAULT, INPUT_MAJOR, minor + minor_base,
-               S_IFCHR | S_IRUGO | S_IWUSR, 0, 0, &input_fops, NULL);
+       return devfs_register(input_devfs_handle, devfs_name, DEVFS_FL_DEFAULT, INPUT_MAJOR, minor + minor_base,
+               S_IFCHR | S_IRUGO | S_IWUSR, &input_fops, NULL);
 }
 
 void input_unregister_minor(devfs_handle_t handle)
index ee1248a23f9771ce3f134bf1d19a0ce3b6e32baa..864e30f0ca5a022567e4d44e482e905b8acc6d54 100644 (file)
@@ -654,8 +654,8 @@ register_framebuffer(struct fb_info *fb_info)
        }
        sprintf (name_buf, "%d", i);
        fb_info->devfs_handle =
-           devfs_register (devfs_handle, name_buf, 0, DEVFS_FL_NONE,
-                           FB_MAJOR, i, S_IFCHR | S_IRUGO | S_IWUGO, 0, 0,
+           devfs_register (devfs_handle, name_buf, DEVFS_FL_DEFAULT,
+                           FB_MAJOR, i, S_IFCHR | S_IRUGO | S_IWUGO,
                            &fb_fops, NULL);
 
        return 0;
index 582ea7000d7c59690586f8fd68c92377bc8c602a..45025e871c4fc44c40a1383b6c0745573e11d4e4 100644 (file)
@@ -417,7 +417,7 @@ int init_coda_psdev(void)
        devfs_handle = devfs_mk_dir (NULL, "coda", 4, NULL);
        devfs_register_series (devfs_handle, "%u", MAX_CODADEVS, DEVFS_FL_NONE,
                               CODA_PSDEV_MAJOR, 0,
-                              S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                              S_IFCHR | S_IRUSR | S_IWUSR,
                               &coda_psdev_fops, NULL);
        memset(&coda_upc_comm, 0, sizeof(coda_upc_comm));
        memset(&coda_super_info, 0, sizeof(coda_super_info));
index 8b6e58f9c32eb2f09458cc7a3529d62761137a8b..0d3d151774a996dc523f546312f19dd0c94a50ef 100644 (file)
               <free_dentries>.
               Work sponsored by SGI.
   v0.100
+    20000621   Richard Gooch <rgooch@atnf.csiro.au>
+              Changed interface to <devfs_register>.
+              Work sponsored by SGI.
+  v0.101
 */
 #include <linux/types.h>
 #include <linux/errno.h>
 #include <asm/bitops.h>
 #include <asm/atomic.h>
 
-#define DEVFS_VERSION            "0.100 (20000619)"
+#define DEVFS_VERSION            "0.101 (20000621)"
 
 #define DEVFS_NAME "devfs"
 
@@ -1204,15 +1208,10 @@ static void devfsd_notify (struct devfs_entry *de, unsigned int type, int wait)
  *     @dir: The handle to the parent devfs directory entry. If this is %NULL the
  *             new name is relative to the root of the devfs.
  *     @name: The name of the entry.
- *     @namelen: The number of characters in @name, not including a %NULL
- *             terminator. If this is 0, then @name must be %NULL-terminated and the
- *             length is computed internally.
  *     @flags: A set of bitwise-ORed flags (DEVFS_FL_*).
  *     @major: The major number. Not needed for regular files.
  *     @minor: The minor number. Not needed for regular files.
  *     @mode: The default file mode.
- *     @uid: The default UID of the file.
- *     @guid: The default GID of the file.
  *     @ops: The &file_operations or &block_device_operations structure.
  *             This must not be externally deallocated.
  *     @info: An arbitrary pointer which will be written to the @private_data
@@ -1224,12 +1223,10 @@ static void devfsd_notify (struct devfs_entry *de, unsigned int type, int wait)
  *     On failure %NULL is returned.
  */
 
-devfs_handle_t devfs_register (devfs_handle_t dir,
-                              const char *name, unsigned int namelen,
+devfs_handle_t devfs_register (devfs_handle_t dir, const char *name,
                               unsigned int flags,
                               unsigned int major, unsigned int minor,
-                              umode_t mode, uid_t uid, gid_t gid,
-                              void *ops, void *info)
+                              umode_t mode, void *ops, void *info)
 {
     int is_new;
     struct devfs_entry *de;
@@ -1264,7 +1261,6 @@ devfs_handle_t devfs_register (devfs_handle_t dir,
                DEVFS_NAME, name);
        return NULL;
     }
-    if (namelen < 1) namelen = strlen (name);
     if ( S_ISCHR (mode) && (flags & DEVFS_FL_AUTO_DEVNUM) )
     {
        if (next_devnum_char >= MAX_DEVNUM)
@@ -1289,7 +1285,8 @@ devfs_handle_t devfs_register (devfs_handle_t dir,
        minor = next_devnum_block & 0xff;
        ++next_devnum_block;
     }
-    de = search_for_entry (dir, name, namelen, TRUE, TRUE, &is_new, FALSE);
+    de = search_for_entry (dir, name, strlen (name), TRUE, TRUE, &is_new,
+                          FALSE);
     if (de == NULL)
     {
        printk ("%s: devfs_register(): could not create entry: \"%s\"\n",
@@ -1333,8 +1330,16 @@ devfs_handle_t devfs_register (devfs_handle_t dir,
     }
     de->info = info;
     de->mode = mode;
-    de->u.fcb.default_uid = uid;
-    de->u.fcb.default_gid = gid;
+    if (flags & DEVFS_FL_CURRENT_OWNER)
+    {
+       de->u.fcb.default_uid = current->uid;
+       de->u.fcb.default_gid = current->gid;
+    }
+    else
+    {
+       de->u.fcb.default_uid = 0;
+       de->u.fcb.default_gid = 0;
+    }
     de->registered = TRUE;
     de->u.fcb.ops = ops;
     de->u.fcb.auto_owner = (flags & DEVFS_FL_AUTO_OWNER) ? TRUE : FALSE;
index fe47464487e94e6ed3e8b5b1a18aaa2b8efbe301..6e3f2f7827001a09ff514c6fb14391a36b125767 100644 (file)
@@ -28,6 +28,8 @@
                Created <_devfs_convert_name> and supported SCSI and IDE CD-ROMs
     20000203   Richard Gooch <rgooch@atnf.csiro.au>
                Changed operations pointer type to void *.
+    20000621   Richard Gooch <rgooch@atnf.csiro.au>
+               Changed interface to <devfs_register_series>.
 */
 #include <linux/module.h>
 #include <linux/init.h>
@@ -134,8 +136,6 @@ EXPORT_SYMBOL(devfs_register_tape);
  *     @major: The major number. Not needed for regular files.
  *     @minor_start: The starting minor number. Not needed for regular files.
  *     @mode: The default file mode.
- *     @uid: The default UID of the file.
- *     @guid: The default GID of the file.
  *     @ops: The &file_operations or &block_device_operations structure.
  *             This must not be externally deallocated.
  *     @info: An arbitrary pointer which will be written to the private_data
@@ -147,8 +147,7 @@ EXPORT_SYMBOL(devfs_register_tape);
 void devfs_register_series (devfs_handle_t dir, const char *format,
                            unsigned int num_entries, unsigned int flags,
                            unsigned int major, unsigned int minor_start,
-                           umode_t mode, uid_t uid, gid_t gid,
-                           void *ops, void *info)
+                           umode_t mode, void *ops, void *info)
 {
     unsigned int count;
     char devname[128];
@@ -156,8 +155,8 @@ void devfs_register_series (devfs_handle_t dir, const char *format,
     for (count = 0; count < num_entries; ++count)
     {
        sprintf (devname, format, count);
-       devfs_register (dir, devname, 0, flags, major, minor_start + count,
-                       mode, uid, gid, ops, info);
+       devfs_register (dir, devname, flags, major, minor_start + count,
+                       mode, ops, info);
     }
 }   /*  End Function devfs_register_series  */
 EXPORT_SYMBOL(devfs_register_series);
index 5981fa1201a921ea421d0a600254396eb0c17daa..09b94f6fa3d7150841ac3d4780fc09f2651959ed 100644 (file)
@@ -311,9 +311,9 @@ static void devfs_register_partition (struct gendisk *dev, int minor, int part)
                devfs_flags |= DEVFS_FL_REMOVABLE;
        sprintf (devname, "part%d", part);
        dev->part[minor + part].de =
-           devfs_register (dir, devname, 0, devfs_flags,
+           devfs_register (dir, devname, devfs_flags,
                            dev->major, minor + part,
-                           S_IFBLK | S_IRUSR | S_IWUSR, 0, 0,
+                           S_IFBLK | S_IRUSR | S_IWUSR,
                            dev->fops, NULL);
 }
 
index 5e46073a887010ff489c0a2d203dfc6765ac65c4..d9483efb1f55e897be1b149f91a0b0abfeb8406c 100644 (file)
@@ -4,9 +4,18 @@
 #ifndef __ARCH_ALPHA_CACHE_H
 #define __ARCH_ALPHA_CACHE_H
 
-/* Bytes per L1 (data) cache line.  Both EV4 and EV5 are write-through,
-   read-allocate, direct-mapped, physical. */
-#define L1_CACHE_BYTES     32
+#include <linux/config.h>
+
+/* Bytes per L1 (data) cache line. */
+#if defined(CONFIG_ALPHA_GENERIC) || defined(CONFIG_ALPHA_EV6)
+# define L1_CACHE_BYTES     32 /* should be 64, but networking dies */
+#else
+/* Both EV4 and EV5 are write-through, read-allocate,
+   direct-mapped, physical.
+*/
+# define L1_CACHE_BYTES     32
+#endif
+
 #define L1_CACHE_ALIGN(x)  (((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1))
 #define SMP_CACHE_BYTES    L1_CACHE_BYTES
 
index b35fbe6e19d2934291e50195ee5f12cf80e21653..8173779f3423f928d9d3d8bd02f8f828a552d120 100644 (file)
@@ -35,6 +35,7 @@
 #define DEVFS_FL_REMOVABLE      0x020 /* This is a removable media device    */
 #define DEVFS_FL_WAIT           0x040 /* Wait for devfsd to finish           */
 #define DEVFS_FL_NO_PERSISTENCE 0x080 /* Forget changes after unregister     */
+#define DEVFS_FL_CURRENT_OWNER  0x100 /* Set initial ownership to current    */
 #define DEVFS_FL_DEFAULT        DEVFS_FL_NONE
 
 
@@ -52,12 +53,10 @@ typedef struct devfs_entry * devfs_handle_t;
 
 
 #ifdef CONFIG_DEVFS_FS
-extern devfs_handle_t devfs_register (devfs_handle_t dir,
-                                     const char *name, unsigned int namelen,
+extern devfs_handle_t devfs_register (devfs_handle_t dir, const char *name,
                                      unsigned int flags,
                                      unsigned int major, unsigned int minor,
-                                     umode_t mode, uid_t uid, gid_t gid,
-                                     void *ops, void *info);
+                                     umode_t mode, void *ops, void *info);
 extern void devfs_unregister (devfs_handle_t de);
 extern int devfs_mk_symlink (devfs_handle_t dir,
                             const char *name, unsigned int namelen,
@@ -98,8 +97,7 @@ extern void devfs_register_series (devfs_handle_t dir, const char *format,
                                   unsigned int num_entries,
                                   unsigned int flags, unsigned int major,
                                   unsigned int minor_start,
-                                  umode_t mode, uid_t uid, gid_t gid,
-                                  void *ops, void *info);
+                                  umode_t mode, void *ops, void *info);
 
 extern int init_devfs_fs (void);
 extern void mount_devfs_fs (void);
@@ -107,12 +105,10 @@ extern void devfs_make_root (const char *name);
 #else  /*  CONFIG_DEVFS_FS  */
 static inline devfs_handle_t devfs_register (devfs_handle_t dir,
                                             const char *name,
-                                            unsigned int namelen,
                                             unsigned int flags,
                                             unsigned int major,
                                             unsigned int minor,
                                             umode_t mode,
-                                            uid_t uid, gid_t gid,
                                             void *ops, void *info)
 {
     return NULL;
@@ -239,8 +235,7 @@ static inline void devfs_register_series (devfs_handle_t dir,
                                          unsigned int flags,
                                          unsigned int major,
                                          unsigned int minor_start,
-                                         umode_t mode, uid_t uid, gid_t gid,
-                                         void *ops, void *info)
+                                         umode_t mode, void *ops, void *info)
 {
     return;
 }
index b0eb9788ee5904d71a498128a8c60ee5fca3076b..4da257555f81e88c22880cfff16edc3ae59bdf80 100644 (file)
@@ -178,9 +178,9 @@ static devfs_handle_t devfs_handle = NULL;
 
 static void __init make_devfs_entries (const char *name, int minor)
 {
-       devfs_register (devfs_handle, name, 0, DEVFS_FL_DEFAULT,
+       devfs_register (devfs_handle, name, DEVFS_FL_DEFAULT,
                        NETLINK_MAJOR, minor,
-                       S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                       S_IFCHR | S_IRUSR | S_IWUSR,
                        &netlink_fops, NULL);
 }
 
@@ -201,7 +201,7 @@ int __init init_netlink(void)
        make_devfs_entries ("IP6_FW", 13);
        devfs_register_series (devfs_handle, "tap%u", 16, DEVFS_FL_DEFAULT,
                               NETLINK_MAJOR, 16,
-                              S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+                              S_IFCHR | S_IRUSR | S_IWUSR,
                               &netlink_fops, NULL);
        return 0;
 }