PERFORCE change 126250 for review

Kip Macy kmacy at FreeBSD.org
Sun Sep 9 21:02:46 PDT 2007


http://perforce.freebsd.org/chv.cgi?CH=126250

Change 126250 by kmacy at kmacy_home:ethng on 2007/09/10 04:01:53

	IFC @126249

Affected files ...

.. //depot/projects/ethng/src/sys/arm/include/endian.h#2 integrate
.. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_adapter.h#16 integrate
.. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_include.h#2 integrate
.. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_main.c#17 integrate
.. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_offload.h#3 integrate
.. //depot/projects/ethng/src/sys/dev/cxgb/cxgb_osdep.h#6 integrate
.. //depot/projects/ethng/src/sys/kern/vfs_syscalls.c#3 integrate
.. //depot/projects/ethng/src/sys/net/bpf.c#2 integrate
.. //depot/projects/ethng/src/sys/security/mac/mac_framework.h#2 integrate
.. //depot/projects/ethng/src/sys/security/mac/mac_policy.h#2 integrate
.. //depot/projects/ethng/src/sys/security/mac/mac_vfs.c#2 integrate
.. //depot/projects/ethng/src/sys/security/mac_biba/mac_biba.c#2 integrate
.. //depot/projects/ethng/src/sys/security/mac_bsdextended/mac_bsdextended.c#2 integrate
.. //depot/projects/ethng/src/sys/security/mac_lomac/mac_lomac.c#2 integrate
.. //depot/projects/ethng/src/sys/security/mac_mls/mac_mls.c#2 integrate
.. //depot/projects/ethng/src/sys/security/mac_stub/mac_stub.c#2 integrate
.. //depot/projects/ethng/src/sys/security/mac_test/mac_test.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/Makefile#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/main.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/main.h#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_acct.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_adjtime.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_audit_control.c#1 branch
.. //depot/projects/ethng/src/tools/regression/priv/priv_audit_getaudit.c#1 branch
.. //depot/projects/ethng/src/tools/regression/priv/priv_audit_setaudit.c#1 branch
.. //depot/projects/ethng/src/tools/regression/priv/priv_audit_submit.c#1 branch
.. //depot/projects/ethng/src/tools/regression/priv/priv_clock_settime.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_cred.c#1 branch
.. //depot/projects/ethng/src/tools/regression/priv/priv_io.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_kenv_set.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_kenv_unset.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_msgbuf.c#1 branch
.. //depot/projects/ethng/src/tools/regression/priv/priv_netinet_raw.c#1 branch
.. //depot/projects/ethng/src/tools/regression/priv/priv_proc_setlogin.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_proc_setrlimit.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_sched_rtprio.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_sched_setpriority.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_settimeofday.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_sysctl_write.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_vfs_admin.c#2 delete
.. //depot/projects/ethng/src/tools/regression/priv/priv_vfs_chflags.c#1 branch
.. //depot/projects/ethng/src/tools/regression/priv/priv_vfs_chmod.c#1 branch
.. //depot/projects/ethng/src/tools/regression/priv/priv_vfs_chown.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_vfs_chroot.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_vfs_clearsugid.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_vfs_extattr_system.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_vfs_fhopen.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_vfs_fhstat.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_vfs_fhstatfs.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_vfs_generation.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_vfs_getfh.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_vfs_read_write.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_vfs_setgid.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_vfs_stickyfile.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_vfs_utimes.c#1 branch
.. //depot/projects/ethng/src/tools/regression/priv/priv_vm_madv_protect.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_vm_mlock.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/priv_vm_munlock.c#2 integrate
.. //depot/projects/ethng/src/tools/regression/priv/test_utimes.c#2 delete
.. //depot/projects/ethng/src/usr.bin/netstat/sctp.c#3 integrate

Differences ...

==== //depot/projects/ethng/src/sys/arm/include/endian.h#2 (text+ko) ====

@@ -27,7 +27,7 @@
  *
  *	@(#)endian.h	8.1 (Berkeley) 6/10/93
  * $NetBSD: endian.h,v 1.7 1999/08/21 05:53:51 simonb Exp $
- * $FreeBSD: src/sys/arm/include/endian.h,v 1.10 2005/07/27 19:59:21 jhb Exp $
+ * $FreeBSD: src/sys/arm/include/endian.h,v 1.11 2007/09/09 11:58:38 cognet Exp $
  */
 
 #ifndef _ENDIAN_H_
@@ -99,13 +99,15 @@
 static __inline __uint16_t
 __bswap16_var(__uint16_t v)
 {
+	__uint32_t ret = v & 0xffff;
+
 	__asm __volatile(
 	    "mov    %0, %0, ror #8\n"
 	    "orr    %0, %0, %0, lsr #16\n"
 	    "bic    %0, %0, %0, lsl #16"
-	    : "+r" (v));
+	    : "+r" (ret));
 	
-	return (v);
+	return ((__uint16_t)ret);
 }		
 
 #ifdef __OPTIMIZE__

==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_adapter.h#16 (text+ko) ====

@@ -26,7 +26,7 @@
 POSSIBILITY OF SUCH DAMAGE.
 
 
-$FreeBSD: src/sys/dev/cxgb/cxgb_adapter.h,v 1.19 2007/09/09 04:34:03 kmacy Exp $
+$FreeBSD: src/sys/dev/cxgb/cxgb_adapter.h,v 1.20 2007/09/10 00:59:51 kmacy Exp $
 
 ***************************************************************************/
 
@@ -34,9 +34,6 @@
 #ifndef _CXGB_ADAPTER_H_
 #define _CXGB_ADAPTER_H_
 
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/cxgb/cxgb_adapter.h,v 1.19 2007/09/09 04:34:03 kmacy Exp $");
-
 #include <sys/lock.h>
 #include <sys/mutex.h>
 #include <sys/sx.h>

==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_include.h#2 (text+ko) ====

@@ -1,5 +1,5 @@
 /*
- *  $FreeBSD: src/sys/dev/cxgb/cxgb_include.h,v 1.1 2007/05/28 22:57:26 kmacy Exp $
+ *  $FreeBSD: src/sys/dev/cxgb/cxgb_include.h,v 1.2 2007/09/10 00:59:51 kmacy Exp $
  */
 
 
@@ -10,8 +10,8 @@
 #include <cxgb_offload.h>
 #include <common/cxgb_regs.h>
 #include <common/cxgb_t3_cpl.h>
-#include <dev/cxgb/common/cxgb_ctl_defs.h>
-#include <dev/cxgb/common/cxgb_sge_defs.h>
+#include <common/cxgb_ctl_defs.h>
+#include <common/cxgb_sge_defs.h>
 #include <common/cxgb_firmware_exports.h>
 #include <sys/mvec.h>
 #include <ulp/toecore/toedev.h>

==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_main.c#17 (text+ko) ====

@@ -28,7 +28,7 @@
 ***************************************************************************/
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/cxgb/cxgb_main.c,v 1.33 2007/09/09 01:28:02 kmacy Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/cxgb/cxgb_main.c,v 1.35 2007/09/10 00:59:51 kmacy Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -397,16 +397,21 @@
 	device_t child;
 	const struct adapter_info *ai;
 	struct adapter *sc;
-	int i, reg, error = 0;
+	int i, error = 0;
 	uint32_t vers;
 	int port_qsets = 1;
 #ifdef MSI_SUPPORTED
-	int msi_needed;
+	int msi_needed, reg;
 #endif	
 	sc = device_get_softc(dev);
 	sc->dev = dev;
 	sc->msi_count = 0;
-	
+	ai = cxgb_get_adapter_info(dev);
+
+	/*
+	 * XXX not really related but a recent addition
+	 */
+#ifdef MSI_SUPPORTED	
 	/* find the PCIe link width and set max read request to 4KB*/
 	if (pci_find_extcap(dev, PCIY_EXPRESS, &reg) == 0) {
 		uint16_t lnk, pectl;
@@ -418,14 +423,13 @@
 		pci_write_config(dev, reg + 0x8, pectl, 2);
 	}
 
-	ai = cxgb_get_adapter_info(dev);
 	if (sc->link_width != 0 && sc->link_width <= 4 &&
 	    (ai->nports0 + ai->nports1) <= 2) {
 		device_printf(sc->dev,
 		    "PCIe x%d Link, expect reduced performance\n",
 		    sc->link_width);
 	}
-
+#endif
 	touch_bars(dev);
 	pci_enable_busmaster(dev);
 	/*
@@ -705,114 +709,6 @@
 	return;
 }
 
-static int
-alloc_filters(struct adapter *adap)
-{
-	struct filter_info *p;
-	int nfilters;
-	
-	if ((nfilters = adap->params.mc5.nfilters) == 0)
-		return (0);
-
-	adap->filters = malloc(nfilters*sizeof(struct filter_info),
-	    M_DEVBUF, M_ZERO|M_WAITOK);
-	
-	if (adap->filters == NULL)
-		return (ENOMEM);
-
-	/* Set the default filters, only need to set non-0 fields here. */
-	p = &adap->filters[nfilters - 1];
-	p->vlan = 0xfff;
-	p->vlan_prio = FILTER_NO_VLAN_PRI;
-	p->pass = p->rss = p->valid = p->locked = 1;
-
-	return (0);
-}
-
-static inline void
-set_tcb_field_ulp(struct cpl_set_tcb_field *req,
-    unsigned int tid, unsigned int word,
-    uint64_t mask, uint64_t val)
-{
-	struct ulp_txpkt *txpkt = (struct ulp_txpkt *)req;
-
-	txpkt->cmd_dest = htonl(V_ULPTX_CMD(ULP_TXPKT));
-	txpkt->len = htonl(V_ULPTX_NFLITS(sizeof(*req) / 8));
-	OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_SET_TCB_FIELD, tid));
-	req->reply = V_NO_REPLY(1);
-	req->cpu_idx = 0;
-	req->word = htons(word);
-	req->mask = htobe64(mask);
-	req->val = htobe64(val);
-}
-
-static int
-set_filter(struct adapter *adap, int id, const struct filter_info *f)
-{
-	int len;
-	struct mbuf *m;
-	struct ulp_txpkt *txpkt;
-	struct work_request_hdr *wr;
-	struct cpl_pass_open_req *oreq;
-	struct cpl_set_tcb_field *sreq;
-
-	len = sizeof(*wr) + sizeof(*oreq) + 2 * sizeof(*sreq);
-	id += t3_mc5_size(&adap->mc5) - adap->params.mc5.nroutes -
-	      adap->params.mc5.nfilters;
-
-	m = m_gethdr(M_TRYWAIT, MT_DATA);
-	wr = mtod(m, struct work_request_hdr *);
-	wr->wr_hi = htonl(V_WR_OP(FW_WROPCODE_BYPASS) | F_WR_ATOMIC);
-	m->m_len = m->m_pkthdr.len = len;
-	
-	oreq = (struct cpl_pass_open_req *)(wr + 1);
-	txpkt = (struct ulp_txpkt *)oreq;
-	txpkt->cmd_dest = htonl(V_ULPTX_CMD(ULP_TXPKT));
-	txpkt->len = htonl(V_ULPTX_NFLITS(sizeof(*oreq) / 8));
-	OPCODE_TID(oreq) = htonl(MK_OPCODE_TID(CPL_PASS_OPEN_REQ, id));
-	oreq->local_port = htons(f->dport);
-	oreq->peer_port = htons(f->sport);
-	oreq->local_ip = htonl(f->dip);
-	oreq->peer_ip = htonl(f->sip);
-	oreq->peer_netmask = htonl(f->sip_mask);
-	oreq->opt0h = 0;
-	oreq->opt0l = htonl(F_NO_OFFLOAD);
-	oreq->opt1 = htonl(V_MAC_MATCH_VALID(f->mac_vld) |
-			 V_CONN_POLICY(CPL_CONN_POLICY_FILTER) |
-			 V_VLAN_PRI(f->vlan_prio >> 1) |
-			 V_VLAN_PRI_VALID(f->vlan_prio != FILTER_NO_VLAN_PRI) |
-			 V_PKT_TYPE(f->pkt_type) | V_OPT1_VLAN(f->vlan) |
-			 V_MAC_MATCH(f->mac_idx | (f->mac_hit << 4)));
-
-	sreq = (struct cpl_set_tcb_field *)(oreq + 1);
-	set_tcb_field_ulp(sreq, id, 1, 0x1800808000ULL,
-			  (f->report_filter_id << 15) | (1 << 23) |
-			  ((u64)f->pass << 35) | ((u64)!f->rss << 36));
-	set_tcb_field_ulp(sreq + 1, id, 25, 0x3f80000,
-			  (u64)adap->rrss_map[f->qset] << 19);
-	t3_mgmt_tx(adap, m);
-	return 0;
-}
-
-static int
-setup_hw_filters(struct adapter *adap)
-{
-	int i, err;
-	
-#ifndef USE_FILTERS
-	return (0);
-#endif	
-	if (adap->filters == NULL)
-		return 0;
-
-	t3_enable_filters(adap);
-
-	for (i = err = 0; i < adap->params.mc5.nfilters && !err; i++)
-		if (adap->filters[i].locked)
-			err = set_filter(adap, i, &adap->filters[i]);
-	return err;
-}
-
 /**
  *	setup_sge_qsets - configure SGE Tx/Rx/response queues
  *	@sc: the controller softc
@@ -1479,7 +1375,12 @@
 static void
 update_tpeeprom(struct adapter *adap)
 {
+#ifdef FIRMWARE_LATEST
 	const struct firmware *tpeeprom;
+#else
+	struct firmware *tpeeprom;
+#endif
+
 	char buf[64];
 	uint32_t version;
 	unsigned int major, minor;
@@ -1535,7 +1436,11 @@
 static int
 update_tpsram(struct adapter *adap)
 {
+#ifdef FIRMWARE_LATEST
 	const struct firmware *tpsram;
+#else
+	struct firmware *tpsram;
+#endif	
 	char buf[64];
 	int ret;
 	char rev;
@@ -1603,7 +1508,6 @@
 		if (err)
 			goto out;
 
-		alloc_filters(sc);
 		setup_rss(sc);
 		t3_add_configured_sysctls(sc);
 		sc->flags |= FULL_INIT_DONE;
@@ -1641,7 +1545,6 @@
 	if (!(sc->flags & QUEUES_BOUND)) {
 		printf("bind qsets\n");
 		bind_qsets(sc);
-		setup_hw_filters(sc);
 		sc->flags |= QUEUES_BOUND;		
 	}
 out:
@@ -2301,121 +2204,6 @@
 #endif
 }
 
-#if 0
-static void *
-filter_get_idx(struct seq_file *seq, loff_t pos)
-{
-	int i;
-	struct adapter *adap = seq->private;
-	struct filter_info *p = adap->filters;
-
-	if (!p)
-		return NULL;
-
-	for (i = 0; i < adap->params.mc5.nfilters; i++, p++)
-		if (p->valid) {
-			if (!pos)
-				return p;
-			pos--;
-		}
-	return NULL;
-}
-
-static void *filter_get_nxt_idx(struct seq_file *seq, struct filter_info *p)
-{
-	struct adapter *adap = seq->private;
-	struct filter_info *end = &adap->filters[adap->params.mc5.nfilters];
-
-	while (++p < end && !p->valid)
-		;
-	return p < end ? p : NULL;
-}
-
-static void *filter_seq_start(struct seq_file *seq, loff_t *pos)
-{
-	return *pos ? filter_get_idx(seq, *pos - 1) : SEQ_START_TOKEN;
-}
-
-static void *filter_seq_next(struct seq_file *seq, void *v, loff_t *pos)
-{
-	v = *pos ? filter_get_nxt_idx(seq, v) : filter_get_idx(seq, 0);
-	if (v)
-		++*pos;
-	return v;
-}
-
-static void filter_seq_stop(struct seq_file *seq, void *v)
-{
-}
-
-static int filter_seq_show(struct seq_file *seq, void *v)
-{
-	static const char *pkt_type[] = { "any", "tcp", "udp", "frag" };
-
-	if (v == SEQ_START_TOKEN)
-		seq_puts(seq, "index         SIP              DIP       sport "
-			      "dport VLAN PRI MAC type Q\n");
-	else {
-		char sip[20], dip[20];
-		struct filter_info *f = v;
-		struct adapter *adap = seq->private;
-
-		sprintf(sip, NIPQUAD_FMT "/%-2u", HIPQUAD(f->sip),
-			f->sip_mask ? 33 - ffs(f->sip_mask) : 0);
-		sprintf(dip, NIPQUAD_FMT, HIPQUAD(f->dip));
-		seq_printf(seq, "%5zu %18s %15s ", f - adap->filters, sip, dip);
-		seq_printf(seq, f->sport ? "%5u " : "    * ", f->sport);
-		seq_printf(seq, f->dport ? "%5u " : "    * ", f->dport);
-		seq_printf(seq, f->vlan != 0xfff ? "%4u " : "   * ", f->vlan);
-		seq_printf(seq, f->vlan_prio == FILTER_NO_VLAN_PRI ?
-			   "  * " : "%1u/%1u ", f->vlan_prio, f->vlan_prio | 1);
-		if (!f->mac_vld)
-			seq_printf(seq, "  * ");
-		else if (f->mac_hit)
-			seq_printf(seq, "%3u ", f->mac_idx);
-		else
-			seq_printf(seq, " -1 ");
-		seq_printf(seq, "%4s ", pkt_type[f->pkt_type]);
-		if (!f->pass)
-			seq_printf(seq, "-\n");
-		else if (f->rss)
-			seq_printf(seq, "*\n");
-		else
-			seq_printf(seq, "%1u\n", f->qset);
-	}
-	return 0;
-}
-
-static struct seq_operations filter_seq_ops = {
-	.start = filter_seq_start,
-	.next = filter_seq_next,
-	.stop = filter_seq_stop,
-	.show = filter_seq_show
-};
-
-static int filter_seq_open(struct inode *inode, struct file *file)
-{
-	int rc = seq_open(file, &filter_seq_ops);
-
-	if (!rc) {
-		struct proc_dir_entry *dp = PDE(inode);
-		struct seq_file *seq = file->private_data;
-
-		seq->private = dp->data;
-	}
-	return rc;
-}
-
-static struct file_operations filter_seq_fops = {
-	.owner = THIS_MODULE,
-	.open = filter_seq_open,
-	.read = seq_read,
-	.llseek = seq_lseek,
-	.release = seq_release
-};
-
-#endif
-
 static int
 set_eeprom(struct port_info *pi, const uint8_t *data, int len, int offset)
 {
@@ -2733,79 +2521,6 @@
 		m->nmtus = NMTUS;
 		break;
 	}
-	case CHELSIO_SET_FILTER: {
-		struct ch_filter *f = (struct ch_filter *)data;
-		struct filter_info *p;
-		int ret;
-		
-		if (sc->params.mc5.nfilters == 0)
-			return (EOPNOTSUPP);
-		if (!(sc->flags & FULL_INIT_DONE))
-			return (EAGAIN);  /* can still change nfilters */
-		if (sc->filters == NULL)
-			return (ENOMEM);
-
-		if (f->filter_id >= sc->params.mc5.nfilters ||
-		    (f->val.dip && f->mask.dip != 0xffffffff) ||
-		    (f->val.sport && f->mask.sport != 0xffff) ||
-		    (f->val.dport && f->mask.dport != 0xffff) ||
-		    (f->mask.vlan && f->mask.vlan != 0xfff) ||
-		    (f->mask.vlan_prio && f->mask.vlan_prio != 7) ||
-		    (f->mac_addr_idx != 0xffff && f->mac_addr_idx > 15) ||
-		    f->qset >= SGE_QSETS ||
-		    sc->rrss_map[f->qset] >= RSS_TABLE_SIZE)
-			return (EINVAL);
-
-		p = &sc->filters[f->filter_id];
-		if (p->locked)
-			return (EPERM);
-
-		p->sip = f->val.sip;
-		p->sip_mask = f->mask.sip;
-		p->dip = f->val.dip;
-		p->sport = f->val.sport;
-		p->dport = f->val.dport;
-		p->vlan = f->mask.vlan ? f->val.vlan : 0xfff;
-		p->vlan_prio = f->mask.vlan_prio ? (f->val.vlan_prio & 6) :
-						  FILTER_NO_VLAN_PRI;
-		p->mac_hit = f->mac_hit;
-		p->mac_vld = f->mac_addr_idx != 0xffff;
-		p->mac_idx = f->mac_addr_idx;
-		p->pkt_type = f->proto;
-		p->report_filter_id = f->want_filter_id;
-		p->pass = f->pass;
-		p->rss = f->rss;
-		p->qset = f->qset;
-
-		ret = set_filter(sc, f->filter_id, p);
-		if (ret)
-			return ret;
-		p->valid = 1;
-		break;
-	}
-	case CHELSIO_DEL_FILTER: {
-		struct ch_filter *f = (struct ch_filter *)data;
-		struct filter_info *p;
-	
-		if (sc->params.mc5.nfilters == 0)
-			return (EOPNOTSUPP);
-		if (!(sc->flags & FULL_INIT_DONE))
-			return (EAGAIN);  /* can still change nfilters */
-		if (sc->filters == NULL)
-			return (ENOMEM);
-		if (f->filter_id >= sc->params.mc5.nfilters)
-			return (EINVAL);	
-
-		p = &sc->filters[f->filter_id];
-		if (p->locked)
-			return (EPERM);
-		memset(p, 0, sizeof(*p));
-		p->sip_mask = 0xffffffff;
-		p->vlan = 0xfff;
-		p->vlan_prio = FILTER_NO_VLAN_PRI;
-		p->pkt_type = 1;
-		return set_filter(sc, f->filter_id, p);
-	}		
 	case CHELSIO_DEVUP:
 		if (!is_offload(sc))
 			return (EOPNOTSUPP);

==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_offload.h#3 (text+ko) ====

@@ -26,19 +26,24 @@
 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGE.
 
-$FreeBSD: src/sys/dev/cxgb/cxgb_offload.h,v 1.4 2007/08/17 05:57:04 kmacy Exp $
+$FreeBSD: src/sys/dev/cxgb/cxgb_offload.h,v 1.5 2007/09/10 00:59:51 kmacy Exp $
 
 ***************************************************************************/
 
 #ifndef _CXGB_OFFLOAD_H
 #define _CXGB_OFFLOAD_H
 
-
+#ifdef CONFIG_DEFINED
+#include <common/cxgb_version.h>
+#include <cxgb_config.h>
+#include <cxgb_l2t.h>
+#include <common/cxgb_tcb.h>
+#else
+#include <dev/cxgb/common/cxgb_version.h>
+#include <dev/cxgb/cxgb_config.h>
+#include <dev/cxgb/cxgb_l2t.h>
 #include <dev/cxgb/common/cxgb_tcb.h>
-#include <dev/cxgb/cxgb_l2t.h>
-
-#include <dev/cxgb/ulp/toecore/toedev.h>
-#include <dev/cxgb/common/cxgb_t3_cpl.h>
+#endif
 
 struct adapter;
 struct cxgb_client;

==== //depot/projects/ethng/src/sys/dev/cxgb/cxgb_osdep.h#6 (text+ko) ====

@@ -26,7 +26,7 @@
 POSSIBILITY OF SUCH DAMAGE.
 
 
-$FreeBSD: src/sys/dev/cxgb/cxgb_osdep.h,v 1.13 2007/09/09 04:34:03 kmacy Exp $
+$FreeBSD: src/sys/dev/cxgb/cxgb_osdep.h,v 1.14 2007/09/10 00:59:51 kmacy Exp $
 
 ***************************************************************************/
 
@@ -92,6 +92,9 @@
 #define TSO_SUPPORTED
 #define VLAN_SUPPORTED
 #define TASKQUEUE_CURRENT
+#else
+#define if_name(ifp) (ifp)->if_xname
+#define M_SANITY(m, n)
 #endif
 
 #define __read_mostly __attribute__((__section__(".data.read_mostly")))

==== //depot/projects/ethng/src/sys/kern/vfs_syscalls.c#3 (text+ko) ====

@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/vfs_syscalls.c,v 1.442 2007/08/28 20:28:11 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/vfs_syscalls.c,v 1.443 2007/09/10 00:00:16 rwatson Exp $");
 
 #include "opt_compat.h"
 #include "opt_mac.h"
@@ -1693,7 +1693,7 @@
 			goto restart;
 		}
 #ifdef MAC
-		error = mac_check_vnode_delete(td->td_ucred, nd.ni_dvp, vp,
+		error = mac_check_vnode_unlink(td->td_ucred, nd.ni_dvp, vp,
 		    &nd.ni_cnd);
 		if (error)
 			goto out;
@@ -3550,7 +3550,7 @@
 		goto out;
 	}
 #ifdef MAC
-	error = mac_check_vnode_delete(td->td_ucred, nd.ni_dvp, vp,
+	error = mac_check_vnode_unlink(td->td_ucred, nd.ni_dvp, vp,
 	    &nd.ni_cnd);
 	if (error)
 		goto out;

==== //depot/projects/ethng/src/sys/net/bpf.c#2 (text+ko) ====

@@ -33,7 +33,7 @@
  *
  *      @(#)bpf.c	8.4 (Berkeley) 1/9/95
  *
- * $FreeBSD: src/sys/net/bpf.c,v 1.180 2007/08/06 14:26:00 rwatson Exp $
+ * $FreeBSD: src/sys/net/bpf.c,v 1.181 2007/09/10 00:03:06 thompsa Exp $
  */
 
 #include "opt_bpf.h"
@@ -102,7 +102,7 @@
 static void	bpf_detachd(struct bpf_d *);
 static void	bpf_freed(struct bpf_d *);
 static void	bpf_mcopy(const void *, void *, size_t);
-static int	bpf_movein(struct uio *, int, int, struct mbuf **,
+static int	bpf_movein(struct uio *, int, struct ifnet *, struct mbuf **,
 		    struct sockaddr *, int *, struct bpf_insn *);
 static int	bpf_setif(struct bpf_d *, struct ifreq *);
 static void	bpf_timed_out(void *);
@@ -158,10 +158,11 @@
 	{ 1, NULL, filt_bpfdetach, filt_bpfread };
 
 static int
-bpf_movein(struct uio *uio, int linktype, int mtu, struct mbuf **mp,
+bpf_movein(struct uio *uio, int linktype, struct ifnet *ifp, struct mbuf **mp,
     struct sockaddr *sockp, int *hdrlen, struct bpf_insn *wfilter)
 {
 	const struct ieee80211_bpf_params *p;
+	struct ether_header *eh;
 	struct mbuf *m;
 	int error;
 	int len;
@@ -241,7 +242,7 @@
 
 	len = uio->uio_resid;
 
-	if (len - hlen > mtu)
+	if (len - hlen > ifp->if_mtu)
 		return (EMSGSIZE);
 
 	if ((unsigned)len > MCLBYTES)
@@ -273,6 +274,20 @@
 		goto bad;
 	}
 
+	/* Check for multicast destination */
+	switch (linktype) {
+	case DLT_EN10MB:
+		eh = mtod(m, struct ether_header *);
+		if (ETHER_IS_MULTICAST(eh->ether_dhost)) {
+			if (bcmp(ifp->if_broadcastaddr, eh->ether_dhost,
+			    ETHER_ADDR_LEN) == 0)
+				m->m_flags |= M_BCAST;
+			else
+				m->m_flags |= M_MCAST;
+		}
+		break;
+	}
+
 	/*
 	 * Make room for link header, and copy it to sockaddr
 	 */
@@ -615,7 +630,7 @@
 	bzero(&dst, sizeof(dst));
 	m = NULL;
 	hlen = 0;
-	error = bpf_movein(uio, (int)d->bd_bif->bif_dlt, ifp->if_mtu,
+	error = bpf_movein(uio, (int)d->bd_bif->bif_dlt, ifp,
 	    &m, &dst, &hlen, d->bd_wfilter);
 	if (error)
 		return (error);

==== //depot/projects/ethng/src/sys/security/mac/mac_framework.h#2 (text+ko) ====

@@ -35,7 +35,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/security/mac/mac_framework.h,v 1.83 2007/06/26 14:14:01 rwatson Exp $
+ * $FreeBSD: src/sys/security/mac/mac_framework.h,v 1.84 2007/09/10 00:00:16 rwatson Exp $
  */
 
 /*
@@ -351,8 +351,6 @@
 int	mac_check_vnode_chroot(struct ucred *cred, struct vnode *dvp);
 int	mac_check_vnode_create(struct ucred *cred, struct vnode *dvp,
 	    struct componentname *cnp, struct vattr *vap);
-int	mac_check_vnode_delete(struct ucred *cred, struct vnode *dvp,
-	    struct vnode *vp, struct componentname *cnp);
 int	mac_check_vnode_deleteacl(struct ucred *cred, struct vnode *vp,
 	    acl_type_t type);
 int	mac_check_vnode_deleteextattr(struct ucred *cred, struct vnode *vp,
@@ -400,6 +398,8 @@
 	    struct timespec atime, struct timespec mtime);
 int	mac_check_vnode_stat(struct ucred *active_cred,
 	    struct ucred *file_cred, struct vnode *vp);
+int	mac_check_vnode_unlink(struct ucred *cred, struct vnode *dvp,
+	    struct vnode *vp, struct componentname *cnp);
 int	mac_check_vnode_write(struct ucred *active_cred,
 	    struct ucred *file_cred, struct vnode *vp);
 int	mac_getsockopt_label(struct ucred *cred, struct socket *so,

==== //depot/projects/ethng/src/sys/security/mac/mac_policy.h#2 (text+ko) ====

@@ -35,7 +35,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/security/mac/mac_policy.h,v 1.93 2007/07/05 06:45:37 peter Exp $
+ * $FreeBSD: src/sys/security/mac/mac_policy.h,v 1.94 2007/09/10 00:00:16 rwatson Exp $
  */
 /*
  * Kernel interface for MAC policy modules.
@@ -524,10 +524,6 @@
 typedef int	(*mpo_check_vnode_create_t)(struct ucred *cred,
 		    struct vnode *dvp, struct label *dvplabel,
 		    struct componentname *cnp, struct vattr *vap);
-typedef int	(*mpo_check_vnode_delete_t)(struct ucred *cred,
-		    struct vnode *dvp, struct label *dvplabel,
-		    struct vnode *vp, struct label *vplabel,
-		    struct componentname *cnp);
 typedef int	(*mpo_check_vnode_deleteacl_t)(struct ucred *cred,
 		    struct vnode *vp, struct label *vplabel,
 		    acl_type_t type);
@@ -604,6 +600,10 @@
 typedef int	(*mpo_check_vnode_stat_t)(struct ucred *active_cred,
 		    struct ucred *file_cred, struct vnode *vp,
 		    struct label *vplabel);
+typedef int	(*mpo_check_vnode_unlink_t)(struct ucred *cred,
+		    struct vnode *dvp, struct label *dvplabel,
+		    struct vnode *vp, struct label *vplabel,
+		    struct componentname *cnp);
 typedef int	(*mpo_check_vnode_write_t)(struct ucred *active_cred,
 		    struct ucred *file_cred, struct vnode *vp,
 		    struct label *vplabel);
@@ -868,7 +868,6 @@
 	mpo_check_vnode_chdir_t			mpo_check_vnode_chdir;
 	mpo_check_vnode_chroot_t		mpo_check_vnode_chroot;
 	mpo_check_vnode_create_t		mpo_check_vnode_create;
-	mpo_check_vnode_delete_t		mpo_check_vnode_delete;
 	mpo_check_vnode_deleteacl_t		mpo_check_vnode_deleteacl;
 	mpo_check_vnode_deleteextattr_t		mpo_check_vnode_deleteextattr;
 	mpo_check_vnode_exec_t			mpo_check_vnode_exec;
@@ -897,6 +896,7 @@
 	mpo_check_vnode_setowner_t		mpo_check_vnode_setowner;
 	mpo_check_vnode_setutimes_t		mpo_check_vnode_setutimes;
 	mpo_check_vnode_stat_t			mpo_check_vnode_stat;
+	mpo_check_vnode_unlink_t		mpo_check_vnode_unlink;
 	mpo_check_vnode_write_t			mpo_check_vnode_write;
 	mpo_associate_nfsd_label_t		mpo_associate_nfsd_label;
 	mpo_create_mbuf_from_firewall_t		mpo_create_mbuf_from_firewall;

==== //depot/projects/ethng/src/sys/security/mac/mac_vfs.c#2 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/security/mac/mac_vfs.c,v 1.121 2007/04/23 13:36:53 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/security/mac/mac_vfs.c,v 1.122 2007/09/10 00:00:16 rwatson Exp $");
 
 #include "opt_mac.h"
 
@@ -391,20 +391,6 @@
 }
 
 int
-mac_check_vnode_delete(struct ucred *cred, struct vnode *dvp, struct vnode *vp,
-    struct componentname *cnp)
-{
-	int error;
-
-	ASSERT_VOP_LOCKED(dvp, "mac_check_vnode_delete");
-	ASSERT_VOP_LOCKED(vp, "mac_check_vnode_delete");
-
-	MAC_CHECK(check_vnode_delete, cred, dvp, dvp->v_label, vp,
-	    vp->v_label, cnp);
-	return (error);
-}
-
-int
 mac_check_vnode_deleteacl(struct ucred *cred, struct vnode *vp,
     acl_type_t type)
 {
@@ -741,6 +727,20 @@
 }
 
 int
+mac_check_vnode_unlink(struct ucred *cred, struct vnode *dvp, struct vnode *vp,
+    struct componentname *cnp)
+{
+	int error;
+
+	ASSERT_VOP_LOCKED(dvp, "mac_check_vnode_unlink");
+	ASSERT_VOP_LOCKED(vp, "mac_check_vnode_unlink");
+
+	MAC_CHECK(check_vnode_unlink, cred, dvp, dvp->v_label, vp,
+	    vp->v_label, cnp);
+	return (error);
+}
+
+int
 mac_check_vnode_write(struct ucred *active_cred, struct ucred *file_cred,
     struct vnode *vp)
 {

==== //depot/projects/ethng/src/sys/security/mac_biba/mac_biba.c#2 (text+ko) ====

@@ -31,7 +31,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/security/mac_biba/mac_biba.c,v 1.106 2007/04/23 13:36:53 rwatson Exp $
+ * $FreeBSD: src/sys/security/mac_biba/mac_biba.c,v 1.107 2007/09/10 00:00:16 rwatson Exp $
  */
 
 /*
@@ -2625,30 +2625,6 @@
 }
 
 static int
-mac_biba_check_vnode_delete(struct ucred *cred, struct vnode *dvp,
-    struct label *dvplabel, struct vnode *vp, struct label *vplabel,
-    struct componentname *cnp)
-{
-	struct mac_biba *subj, *obj;
-
-	if (!mac_biba_enabled)
-		return (0);
-
-	subj = SLOT(cred->cr_label);
-	obj = SLOT(dvplabel);
-
-	if (!mac_biba_dominate_effective(subj, obj))
-		return (EACCES);
-
-	obj = SLOT(vplabel);
-
-	if (!mac_biba_dominate_effective(subj, obj))
-		return (EACCES);
-
-	return (0);
-}
-
-static int
 mac_biba_check_vnode_deleteacl(struct ucred *cred, struct vnode *vp,
     struct label *vplabel, acl_type_t type)
 {
@@ -3187,6 +3163,30 @@
 }
 
 static int
+mac_biba_check_vnode_unlink(struct ucred *cred, struct vnode *dvp,
+    struct label *dvplabel, struct vnode *vp, struct label *vplabel,
+    struct componentname *cnp)
+{
+	struct mac_biba *subj, *obj;
+
+	if (!mac_biba_enabled)
+		return (0);
+
+	subj = SLOT(cred->cr_label);
+	obj = SLOT(dvplabel);
+
+	if (!mac_biba_dominate_effective(subj, obj))
+		return (EACCES);
+
+	obj = SLOT(vplabel);
+
+	if (!mac_biba_dominate_effective(subj, obj))
+		return (EACCES);
+
+	return (0);
+}
+
+static int
 mac_biba_check_vnode_write(struct ucred *active_cred,
     struct ucred *file_cred, struct vnode *vp, struct label *vplabel)
 {
@@ -3389,7 +3389,6 @@
 	.mpo_check_vnode_chdir = mac_biba_check_vnode_chdir,
 	.mpo_check_vnode_chroot = mac_biba_check_vnode_chroot,
 	.mpo_check_vnode_create = mac_biba_check_vnode_create,
-	.mpo_check_vnode_delete = mac_biba_check_vnode_delete,
 	.mpo_check_vnode_deleteacl = mac_biba_check_vnode_deleteacl,
 	.mpo_check_vnode_deleteextattr = mac_biba_check_vnode_deleteextattr,
 	.mpo_check_vnode_exec = mac_biba_check_vnode_exec,
@@ -3415,6 +3414,7 @@
 	.mpo_check_vnode_setowner = mac_biba_check_vnode_setowner,
 	.mpo_check_vnode_setutimes = mac_biba_check_vnode_setutimes,
 	.mpo_check_vnode_stat = mac_biba_check_vnode_stat,
+	.mpo_check_vnode_unlink = mac_biba_check_vnode_unlink,
 	.mpo_check_vnode_write = mac_biba_check_vnode_write,
 	.mpo_associate_nfsd_label = mac_biba_associate_nfsd_label,
 	.mpo_create_mbuf_from_firewall = mac_biba_create_mbuf_from_firewall,

==== //depot/projects/ethng/src/sys/security/mac_bsdextended/mac_bsdextended.c#2 (text+ko) ====

@@ -33,7 +33,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/security/mac_bsdextended/mac_bsdextended.c,v 1.38 2007/07/05 13:16:04 rwatson Exp $
+ * $FreeBSD: src/sys/security/mac_bsdextended/mac_bsdextended.c,v 1.39 2007/09/10 00:00:17 rwatson Exp $
  */
 
 /*
@@ -504,19 +504,6 @@
 }
 
 static int
-mac_bsdextended_check_vnode_delete(struct ucred *cred, struct vnode *dvp,
-    struct label *dvplabel, struct vnode *vp, struct label *vplabel,
-    struct componentname *cnp)
-{
-	int error;
-
-	error = mac_bsdextended_check_vp(cred, dvp, MBI_WRITE);
-	if (error)
-		return (error);
-	return (mac_bsdextended_check_vp(cred, vp, MBI_WRITE));
-}
-
-static int
 mac_bsdextended_check_vnode_deleteacl(struct ucred *cred, struct vnode *vp,
     struct label *vplabel, acl_type_t type)
 {
@@ -708,6 +695,19 @@
 	return (mac_bsdextended_check_vp(active_cred, vp, MBI_STAT));
 }
 
+static int
+mac_bsdextended_check_vnode_unlink(struct ucred *cred, struct vnode *dvp,
+    struct label *dvplabel, struct vnode *vp, struct label *vplabel,
+    struct componentname *cnp)
+{
+	int error;
+
+	error = mac_bsdextended_check_vp(cred, dvp, MBI_WRITE);
+	if (error)
+		return (error);
+	return (mac_bsdextended_check_vp(cred, vp, MBI_WRITE));
+}
+
 static struct mac_policy_ops mac_bsdextended_ops =
 {
 	.mpo_destroy = mac_bsdextended_destroy,
@@ -720,7 +720,6 @@
 	.mpo_check_vnode_chdir = mac_bsdextended_check_vnode_chdir,
 	.mpo_check_vnode_chroot = mac_bsdextended_check_vnode_chroot,
 	.mpo_check_vnode_create = mac_bsdextended_check_create_vnode,
-	.mpo_check_vnode_delete = mac_bsdextended_check_vnode_delete,
 	.mpo_check_vnode_deleteacl = mac_bsdextended_check_vnode_deleteacl,
 	.mpo_check_vnode_deleteextattr = mac_bsdextended_check_vnode_deleteextattr,
 	.mpo_check_vnode_exec = mac_bsdextended_check_vnode_exec,
@@ -742,6 +741,7 @@
 	.mpo_check_vnode_setowner = mac_bsdextended_check_vnode_setowner,
 	.mpo_check_vnode_setutimes = mac_bsdextended_check_vnode_setutimes,
 	.mpo_check_vnode_stat = mac_bsdextended_check_vnode_stat,
+	.mpo_check_vnode_unlink = mac_bsdextended_check_vnode_unlink,

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list