Author: eadler
Date: Tue Jun 19 06:18:37 2012
New Revision: 237259
URL: http://svn.freebsd.org/changeset/base/237259

Log:
  Allow users with RO privilege to the device to read the RO attributes.
  
  PR:           bin/167302
  Submitted by: markham breitbach <mark...@ssimicro.com>
  Discussed with:       pjd (briefly)
  Approved by:  cperciva
  MFC after:    1 week

Modified:
  head/usr.sbin/mfiutil/mfi_cmd.c
  head/usr.sbin/mfiutil/mfi_config.c
  head/usr.sbin/mfiutil/mfi_drive.c
  head/usr.sbin/mfiutil/mfi_evt.c
  head/usr.sbin/mfiutil/mfi_flash.c
  head/usr.sbin/mfiutil/mfi_patrol.c
  head/usr.sbin/mfiutil/mfi_show.c
  head/usr.sbin/mfiutil/mfi_volume.c
  head/usr.sbin/mfiutil/mfiutil.c
  head/usr.sbin/mfiutil/mfiutil.h

Modified: head/usr.sbin/mfiutil/mfi_cmd.c
==============================================================================
--- head/usr.sbin/mfiutil/mfi_cmd.c     Tue Jun 19 06:10:34 2012        
(r237258)
+++ head/usr.sbin/mfiutil/mfi_cmd.c     Tue Jun 19 06:18:37 2012        
(r237259)
@@ -301,12 +301,12 @@ mfi_ctrl_get_info(int fd, struct mfi_ctr
 }
 
 int
-mfi_open(int unit)
+mfi_open(int unit, int acs)
 {
        char path[MAXPATHLEN];
 
        snprintf(path, sizeof(path), "/dev/mfi%d", unit);
-       return (open(path, O_RDWR));
+       return (open(path, acs));
 }
 
 void

Modified: head/usr.sbin/mfiutil/mfi_config.c
==============================================================================
--- head/usr.sbin/mfiutil/mfi_config.c  Tue Jun 19 06:10:34 2012        
(r237258)
+++ head/usr.sbin/mfiutil/mfi_config.c  Tue Jun 19 06:18:37 2012        
(r237259)
@@ -35,6 +35,7 @@
 #endif
 #include <err.h>
 #include <errno.h>
+#include <fcntl.h>
 #include <libutil.h>
 #ifdef DEBUG
 #include <stdint.h>
@@ -157,7 +158,7 @@ clear_config(int ac, char **av)
        int ch, error, fd;
        u_int i;
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -575,7 +576,7 @@ create_volume(int ac, char **av)
        narrays = 0;
        error = 0;
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -857,7 +858,7 @@ delete_volume(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -925,7 +926,7 @@ add_spare(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -1050,7 +1051,7 @@ remove_spare(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -1196,7 +1197,7 @@ debug_config(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -1233,7 +1234,7 @@ dump(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");

Modified: head/usr.sbin/mfiutil/mfi_drive.c
==============================================================================
--- head/usr.sbin/mfiutil/mfi_drive.c   Tue Jun 19 06:10:34 2012        
(r237258)
+++ head/usr.sbin/mfiutil/mfi_drive.c   Tue Jun 19 06:18:37 2012        
(r237259)
@@ -33,6 +33,7 @@
 #include <sys/errno.h>
 #include <ctype.h>
 #include <err.h>
+#include <fcntl.h>
 #include <libutil.h>
 #include <limits.h>
 #include <stdio.h>
@@ -71,7 +72,7 @@ mfi_drive_name(struct mfi_pd_info *pinfo
                else
                        snprintf(buf, sizeof(buf), "%2u", device_id);
 
-               fd = mfi_open(mfi_unit);
+               fd = mfi_open(mfi_unit, O_RDWR);
                if (fd < 0) {
                        warn("mfi_open");
                        return (buf);
@@ -383,7 +384,7 @@ drive_set_state(char *drive, uint16_t ne
        uint8_t mbox[6];
        int error, fd;
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -484,7 +485,7 @@ start_rebuild(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -541,7 +542,7 @@ abort_rebuild(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -597,7 +598,7 @@ drive_progress(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -663,7 +664,7 @@ drive_clear(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -723,7 +724,7 @@ drive_locate(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");

Modified: head/usr.sbin/mfiutil/mfi_evt.c
==============================================================================
--- head/usr.sbin/mfiutil/mfi_evt.c     Tue Jun 19 06:10:34 2012        
(r237258)
+++ head/usr.sbin/mfiutil/mfi_evt.c     Tue Jun 19 06:18:37 2012        
(r237259)
@@ -32,6 +32,7 @@
 #include <sys/types.h>
 #include <sys/errno.h>
 #include <err.h>
+#include <fcntl.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <strings.h>
@@ -73,7 +74,7 @@ show_logstate(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -541,7 +542,7 @@ show_events(int ac, char **av)
        int ch, error, fd, num_events, verbose;
        u_int i;
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");

Modified: head/usr.sbin/mfiutil/mfi_flash.c
==============================================================================
--- head/usr.sbin/mfiutil/mfi_flash.c   Tue Jun 19 06:10:34 2012        
(r237258)
+++ head/usr.sbin/mfiutil/mfi_flash.c   Tue Jun 19 06:18:37 2012        
(r237259)
@@ -150,7 +150,7 @@ flash_adapter(int ac, char **av)
                goto error;
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");

Modified: head/usr.sbin/mfiutil/mfi_patrol.c
==============================================================================
--- head/usr.sbin/mfiutil/mfi_patrol.c  Tue Jun 19 06:10:34 2012        
(r237258)
+++ head/usr.sbin/mfiutil/mfi_patrol.c  Tue Jun 19 06:18:37 2012        
(r237259)
@@ -32,6 +32,7 @@
 #include <sys/types.h>
 #include <sys/errno.h>
 #include <err.h>
+#include <fcntl.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -86,7 +87,7 @@ show_patrol(int ac, char **av)
        int error, fd;
        u_int i;
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -196,7 +197,7 @@ start_patrol(int ac, char **av)
 {
        int error, fd;
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -222,7 +223,7 @@ stop_patrol(int ac, char **av)
 {
        int error, fd;
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -292,7 +293,7 @@ patrol_config(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");

Modified: head/usr.sbin/mfiutil/mfi_show.c
==============================================================================
--- head/usr.sbin/mfiutil/mfi_show.c    Tue Jun 19 06:10:34 2012        
(r237258)
+++ head/usr.sbin/mfiutil/mfi_show.c    Tue Jun 19 06:18:37 2012        
(r237259)
@@ -32,6 +32,7 @@
 #include <sys/types.h>
 #include <sys/errno.h>
 #include <err.h>
+#include <fcntl.h>
 #include <libutil.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -61,7 +62,7 @@ show_adapter(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDONLY);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -148,7 +149,7 @@ show_battery(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDONLY);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -320,7 +321,7 @@ show_config(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDONLY);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -421,7 +422,7 @@ show_volumes(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDONLY);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -504,7 +505,7 @@ show_drives(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDONLY);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -612,7 +613,7 @@ show_firmware(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDONLY);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -672,7 +673,7 @@ show_progress(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDONLY);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");

Modified: head/usr.sbin/mfiutil/mfi_volume.c
==============================================================================
--- head/usr.sbin/mfiutil/mfi_volume.c  Tue Jun 19 06:10:34 2012        
(r237258)
+++ head/usr.sbin/mfiutil/mfi_volume.c  Tue Jun 19 06:18:37 2012        
(r237259)
@@ -32,6 +32,7 @@
 #include <sys/types.h>
 #include <sys/errno.h>
 #include <err.h>
+#include <fcntl.h>
 #include <libutil.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -294,7 +295,7 @@ volume_cache(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -402,7 +403,7 @@ volume_name(int ac, char **av)
                return (ENOSPC);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDWR);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");
@@ -453,7 +454,7 @@ volume_progress(int ac, char **av)
                return (EINVAL);
        }
 
-       fd = mfi_open(mfi_unit);
+       fd = mfi_open(mfi_unit, O_RDONLY);
        if (fd < 0) {
                error = errno;
                warn("mfi_open");

Modified: head/usr.sbin/mfiutil/mfiutil.c
==============================================================================
--- head/usr.sbin/mfiutil/mfiutil.c     Tue Jun 19 06:10:34 2012        
(r237258)
+++ head/usr.sbin/mfiutil/mfiutil.c     Tue Jun 19 06:18:37 2012        
(r237259)
@@ -95,7 +95,7 @@ static int
 version(int ac, char **av)
 {
 
-       printf("mfiutil version 1.0.13");
+       printf("mfiutil version 1.0.14");
 #ifdef DEBUG
        printf(" (DEBUG)");
 #endif

Modified: head/usr.sbin/mfiutil/mfiutil.h
==============================================================================
--- head/usr.sbin/mfiutil/mfiutil.h     Tue Jun 19 06:10:34 2012        
(r237258)
+++ head/usr.sbin/mfiutil/mfiutil.h     Tue Jun 19 06:18:37 2012        
(r237259)
@@ -139,7 +139,7 @@ int mfi_lookup_drive(int fd, char *drive
 int    mfi_lookup_volume(int fd, const char *name, uint8_t *target_id);
 int    mfi_dcmd_command(int fd, uint32_t opcode, void *buf, size_t bufsize,
     uint8_t *mbox, size_t mboxlen, uint8_t *statusp);
-int    mfi_open(int unit);
+int    mfi_open(int unit, int acs);
 int    mfi_ctrl_get_info(int fd, struct mfi_ctrl_info *info, uint8_t *statusp);
 int    mfi_ld_get_info(int fd, uint8_t target_id, struct mfi_ld_info *info,
     uint8_t *statusp);
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to