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, ®) == 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