USB以太网4字节对齐问题

在移植USB以太网时遇到DWC_OTG错误,提示urb->transfer_buffer地址未按4字节对齐。通过分析源码发现,问题在于u16 buf的内存对齐。解决方案是在定义buf时添加__attribute__ ((aligned (16)))使其满足16字节对齐,从而修复网卡无法使用的状况。
摘要由CSDN通过智能技术生成

<6>[   40.917524] DWC_OTG: dwc_otg_hcd_urb_enqueue urb->transfer_buffer address not align to 4-byte 0xde215bf6

在移植usb以太网的时候遇到上面字节对齐问题,导致网卡无法使用,

分析:


u16 buf __attribute__ ((aligned (16)));
buf = *((u16 *)data);
cpu_to_le16s(&buf);
ret = __ax88179_write_cmd(dev, cmd, value, index,
 size, &buf, 1);


static int __ax88179_write_cmd(struct usbnet *dev, u8 cmd, u16 value, u16 index,
      u16 size, void *data, int in_pm)
{
int ret;

#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值