-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ps3disk.c: Rewrite ps3disk_transfer #1414
base: main
Are you sure you want to change the base?
Conversation
While I'm not sure about the contents of the patch, permissions seem to change from 644 to 755. C source files should definitely be 644. |
Fixed, thanks. |
This may be ready, but I think @amotin 's comments need a response at the very least. |
I think at the least, we should remove the assert since we have code to handle when it fails and we usually do one or the other. |
There is a CI failure: While in the end, there are no execute permissions for source files, one of your commits introduces those and then another one removes it. Can you squash those commits so that there are no execute permissions set at all? |
2ff36f6
to
1b897fa
Compare
Should be good now |
This function is bugged since the beginning, but it never hit because its variable doesn't allow. However, since commit a77e1f0 it happen now. First, it assume that ds_len will always equal to real user requested size. So it being used for sector count calculation. This is no longer true, and will fail if attempt to read last few sectors. Use bp->bio_length instead. Second, this being a loop is pointless because nsegs will never be > 1 as specified at bus_dma_tag_create() call. And all it doing is to repeat very same command again but with different ds_addr. Since bio_driver2 tag ident pointer are being reused, the result will be discarded at ps3disk_intr(). Signed-off-by: Chattrapat Sangmanee <aomsin27@hotmail.co.th>
1b897fa
to
282ebf8
Compare
This function is bugged since the beginning, but it never hit because its variable doesn't allow.
However, since commit a77e1f0 it happen now.
First, it assume that ds_len will always equal to real user requested size. So it being used for sector count calculation.
This is no longer true, and will fail if attempt to read last few sectors.
Use bp->bio_length instead.
Second, this being a loop is pointless because nsegs will never be > 1 as specified at bus_dma_tag_create() call.
And all it doing is to repeat very same command again but with different ds_addr. Since bio_driver2 tag ident pointer are being reused, the result will be discarded at ps3disk_intr().