Date: Thu, 27 Sep 2012 10:30:12 +0000 (UTC) From: Gleb Smirnoff <glebius@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r240990 - head/sys/dev/pci Message-ID: <201209271030.q8RAUC6s098102@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: glebius Date: Thu Sep 27 10:30:11 2012 New Revision: 240990 URL: http://svn.freebsd.org/changeset/base/240990 Log: Fix several build failures for !COMPAT_FREEBSD32 and !COMPAT_FREEBSD* kernels introduced by r240981. Pointy hat to: sobomax Modified: head/sys/dev/pci/pci_user.c Modified: head/sys/dev/pci/pci_user.c ============================================================================== --- head/sys/dev/pci/pci_user.c Thu Sep 27 09:00:22 2012 (r240989) +++ head/sys/dev/pci/pci_user.c Thu Sep 27 10:30:11 2012 (r240990) @@ -266,7 +266,7 @@ struct pci_conf_io32 { }; #define PCIOCGETCONF_OLD32 _IOWR('p', 1, struct pci_conf_io32) -#endif +#endif /* COMPAT_FREEBSD32 */ #define PCIOCGETCONF_OLD _IOWR('p', 1, struct pci_conf_io) #define PCIOCREAD_OLD _IOWR('p', 2, struct pci_io_old) @@ -338,6 +338,7 @@ pci_conf_match_old(struct pci_match_conf return(1); } +#ifdef COMPAT_FREEBSD32 static int pci_conf_match_old32(struct pci_match_conf_old32 *matches, int num_matches, struct pci_conf *match_buf) @@ -400,8 +401,8 @@ pci_conf_match_old32(struct pci_match_co return(1); } - -#endif +#endif /* COMPAT_FREEBSD32 */ +#endif /* PRE7_COMPAT */ static int pci_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td) @@ -410,7 +411,7 @@ pci_ioctl(struct cdev *dev, u_long cmd, void *confdata; const char *name; struct devlist *devlist_head; - struct pci_conf_io *cio; + struct pci_conf_io *cio = NULL; struct pci_devinfo *dinfo; struct pci_io *io; struct pci_bar_io *bio; @@ -420,20 +421,16 @@ pci_ioctl(struct cdev *dev, u_long cmd, int error, ionum, i, num_patterns; #ifdef PRE7_COMPAT #ifdef COMPAT_FREEBSD32 - struct pci_conf_io32 *cio32; + struct pci_conf_io32 *cio32 = NULL; + struct pci_conf_old32 conf_old32; + struct pci_match_conf_old32 *pattern_buf_old32; #endif struct pci_conf_old conf_old; - struct pci_conf_old32 conf_old32; struct pci_io iodata; struct pci_io_old *io_old; struct pci_match_conf_old *pattern_buf_old; - struct pci_match_conf_old32 *pattern_buf_old32; - cio = NULL; - cio32 = NULL; io_old = NULL; - pattern_buf_old = NULL; - pattern_buf_old32 = NULL; if (!(flag & FWRITE) && cmd != PCIOCGETBAR && cmd != PCIOCGETCONF && cmd != PCIOCGETCONF_OLD) @@ -445,6 +442,7 @@ pci_ioctl(struct cdev *dev, u_long cmd, switch(cmd) { #ifdef PRE7_COMPAT +#ifdef COMPAT_FREEBSD32 case PCIOCGETCONF_OLD32: cio32 = (struct pci_conf_io32 *)data; cio = malloc(sizeof(struct pci_conf_io), M_TEMP, M_WAITOK); @@ -458,14 +456,24 @@ pci_ioctl(struct cdev *dev, u_long cmd, cio->generation = cio32->generation; cio->status = cio32->status; cio32->num_matches = 0; - /* FALLTHROUGH */ + break; +#endif + case PCIOCGETCONF_OLD: +#endif + case PCIOCGETCONF: + cio = (struct pci_conf_io *)data; + } + switch(cmd) { +#ifdef PRE7_COMPAT +#ifdef COMPAT_FREEBSD32 + case PCIOCGETCONF_OLD32: + pattern_buf_old32 = NULL; +#endif case PCIOCGETCONF_OLD: - /* FALLTHROUGH */ + pattern_buf_old = NULL; #endif case PCIOCGETCONF: - if (cio == NULL) - cio = (struct pci_conf_io *)data; pattern_buf = NULL; num_patterns = 0; @@ -566,19 +574,21 @@ pci_ioctl(struct cdev *dev, u_long cmd, * Allocate a buffer to hold the patterns. */ #ifdef PRE7_COMPAT +#ifdef COMPAT_FREEBSD32 if (cmd == PCIOCGETCONF_OLD32) { pattern_buf_old32 = malloc(cio->pat_buf_len, M_TEMP, M_WAITOK); error = copyin(cio->patterns, pattern_buf_old32, cio->pat_buf_len); } else +#endif /* COMPAT_FREEBSD32 */ if (cmd == PCIOCGETCONF_OLD) { pattern_buf_old = malloc(cio->pat_buf_len, M_TEMP, M_WAITOK); error = copyin(cio->patterns, pattern_buf_old, cio->pat_buf_len); } else -#endif +#endif /* PRE7_COMPAT */ { pattern_buf = malloc(cio->pat_buf_len, M_TEMP, M_WAITOK); @@ -629,11 +639,14 @@ pci_ioctl(struct cdev *dev, u_long cmd, } #ifdef PRE7_COMPAT - if ((cmd == PCIOCGETCONF_OLD32 && - (pattern_buf_old32 == NULL || - pci_conf_match_old32(pattern_buf_old32, - num_patterns, &dinfo->conf) == 0)) || - (cmd == PCIOCGETCONF_OLD && + if ( +#ifdef COMPAT_FREEBSD32 + (cmd == PCIOCGETCONF_OLD32 && + (pattern_buf_old32 == NULL || + pci_conf_match_old32(pattern_buf_old32, + num_patterns, &dinfo->conf) == 0)) || +#endif + (cmd == PCIOCGETCONF_OLD && (pattern_buf_old == NULL || pci_conf_match_old(pattern_buf_old, num_patterns, &dinfo->conf) == 0)) || @@ -658,6 +671,7 @@ pci_ioctl(struct cdev *dev, u_long cmd, break; #ifdef PRE7_COMPAT +#ifdef COMPAT_FREEBSD32 if (cmd == PCIOCGETCONF_OLD32) { conf_old32.pc_sel.pc_bus = dinfo->conf.pc_sel.pc_bus; @@ -690,6 +704,7 @@ pci_ioctl(struct cdev *dev, u_long cmd, (u_int32_t)dinfo->conf.pd_unit; confdata = &conf_old32; } else +#endif /* COMPAT_FREEBSD32 */ if (cmd == PCIOCGETCONF_OLD) { conf_old.pc_sel.pc_bus = dinfo->conf.pc_sel.pc_bus; @@ -722,7 +737,7 @@ pci_ioctl(struct cdev *dev, u_long cmd, dinfo->conf.pd_unit; confdata = &conf_old; } else -#endif +#endif /* PRE7_COMPAT */ confdata = &dinfo->conf; /* Only if we can copy it out do we count it. */ if (!(error = copyout(confdata, @@ -756,25 +771,23 @@ pci_ioctl(struct cdev *dev, u_long cmd, cio->status = PCI_GETCONF_MORE_DEVS; getconfexit: +#ifdef PRE7_COMPAT #ifdef COMPAT_FREEBSD32 if (cmd == PCIOCGETCONF_OLD32) { cio32->status = cio->status; cio32->generation = cio->generation; cio32->offset = cio->offset; cio32->num_matches = cio->num_matches; - if (cio != NULL) - free(cio, M_TEMP); - } + free(cio, M_TEMP); + } + if (pattern_buf_old32 != NULL) + free(pattern_buf_old32, M_TEMP); #endif - - if (pattern_buf != NULL) - free(pattern_buf, M_TEMP); -#ifdef PRE7_COMPAT - if (pattern_buf_old32 != NULL) - free(pattern_buf_old32, M_TEMP); if (pattern_buf_old != NULL) free(pattern_buf_old, M_TEMP); #endif + if (pattern_buf != NULL) + free(pattern_buf, M_TEMP); break;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201209271030.q8RAUC6s098102>