#define TCBS_AVAIL(X) (NEXT_TCB_TOUSE( NEXT_TCB_TOUSE((X).tail)) != (X).head)
#define RFD_POINTER(skb,bdp) ((rfd_t *) (((unsigned char *)((skb)->data))-((bdp)->rfd_size)))
-#define SKB_RFD_STATUS(skb,bdp) ((RFD_POINTER((skb),(bdp)))->rfd_header.cb_status)
/* ====================================================================== */
/* 82557 */
extern unsigned char e100_cu_unknown_state(struct e100_private *bdp);
#endif
+static inline u16 SKB_RFD_STATUS(struct sk_buff *skb, struct e100_private *bdp)
+{
+ u16 status;
+ rfd_t *rfd = RFD_POINTER(skb, bdp);
+ rfd = map_domain_mem(__pa(rfd));
+ status = rfd->rfd_header.cb_status;
+ unmap_domain_mem(rfd);
+ return status;
+}
+
#define ROM_TEST_FAIL 0x01
#define REGISTER_TEST_FAIL 0x02
#define SELF_TEST_FAIL 0x04
struct e100_private *bdp = dev->priv;
if (!spin_trylock(&bdp->bd_non_tx_lock)) {
+ printk("Couldn't acqure lock in e100_xmit_frame\n");
notify_stop = true;
rc = 1;
goto exit2;
if (!TCBS_AVAIL(bdp->tcb_pool) ||
(bdp->non_tx_command_state != E100_NON_TX_IDLE)) {
+ printk("Bailing from e100_tx_frame %d, %d, %d\n",
+ TCBS_AVAIL(bdp->tcb_pool),
+ bdp->non_tx_command_state,
+ E100_NON_TX_IDLE);
notify_stop = true;
rc = 1;
goto exit1;