Page MenuHomeFreeBSD

ufshci: tell the controller how long the EHS is
AcceptedPublic

Authored by jaeyoon on Thu, Sep 10, 8:22 AM.
Tags
None
Referenced Files
F171706895: D59557.id186339.diff
Sat, Sep 12, 9:38 PM
F171692693: D59557.diff
Sat, Sep 12, 6:18 PM
F171664615: D59557.diff
Sat, Sep 12, 1:01 PM
F171658600: D59557.id.diff
Sat, Sep 12, 12:11 PM
Unknown Object (File)
Fri, Sep 11, 1:03 PM
Unknown Object (File)
Fri, Sep 11, 1:01 PM
Unknown Object (File)
Fri, Sep 11, 10:31 AM
Unknown Object (File)
Fri, Sep 11, 1:24 AM
Subscribers
None

Details

Reviewers
imp
Summary

The transfer request descriptor has a field for the total Extra Header
Segment length. The driver left it at zero. A request that carried an
EHS went out as the bare command UPIU, and the device answered a request
it had only seen part of.

Fill the field from the request UPIU header, which already carries the
same length. Every other path sets it to zero, so nothing else changes.
An EHS is the first thing that makes a request vary in size, so assert
that the request and the response still fit in the command descriptor.

Sponsored by: Samsung Electronics

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 76727
Build 73610: arc lint + arc unit